8.10
Aries 0.4.0
[Actions]Experience Rune
Bardziej zaawansowana runka dodająca graczowi expa. Jeśli chcesz w formule dodawanych pkt doświadczenia zastosować zmienne takie jak Level, Magic Level, Random czy jakieś inne pierdoły ustaw w configu specialFormula na 1 a następnie wpisz swoją formułę w linijce 17.
Kod:
-- Advanced Experence Rune by Avixu
-- Dedicated for Aries 0.4.0
-- Actions.XML: <action itemid="ITEMID" script="experience_rune.lua" allowfaruse="1" />
local config = {
specialFormula = 0, -- jesli chcesz uzyc formuly ze zmiennymi typu level itp ustaw na 1 i podaj formule w linjce 17
experiencePoints = 1000,
magicEffect = 14,
mayUseOnPlayersMsg = 'You may use this item only on players',
removeItem = 1
}
function onUse(cid, item, frompos, item2, topos)
if(isPlayer(item2.uid) == FALSE) then
doPlayerSendCancel(cid, config.mayUseOnPlayerMsg)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return FALSE
end
if config.specialFormula == 1 then
local experiencePoints = math.random(getPlayerLevel(cid)*10, getPlayerLevel(cid)*200)
doPlayerAddExp(item2.uid, experiencePoints)
doPlayerSay(item2.uid, '+' ..experiencePoints.. ' EXP', 16)
else
doPlayerAddExp(item2.uid, config.experiencePoints)
doPlayerSay(item2.uid, '+' ..config.experiencePoints.. ' EXP', 16)
end
doSendMagicEffect(topos, config.magicEffect)
if config.removeItem == 1 then
if(item.type > 1) then
doChangeTypeItem(item.uid, item.type - 1)
elseif(item.type == 1) then
doRemoveItem(item.uid, 1)
end
end
end
____________________
[Actions]Manaruna
Oparta na tej od Killavusa. Skrypt z serii "działa tak samo, ale lepiej" (np. podczas użycia nie na graczu - zamiast lecieć przez 3/4 skryptu zatrzymuje się na samym początku), poza tym jest łatwiejsza do zrozumienia i prostsza do edycji. Full konfiguracja. Jeśli chcesz, aby mr dodawała zawsze tyle samo many, ustaw constantManaAmount na określoną ilość. Jeśli chcesz wykorzystać jakąś formułę - ustaw constantManaAmount na 0 i wpisz ją w linijkach 33 i 34.
Kod:
-- Manarune by Avixu
-- Based on Killavus' manarune
-- Dedicated for Aries 0.4.0
-- Actions.XML: <action itemid="ITEMID" script="manarune.lua" allowfaruse="1" />
local config = {
constantManaAmount = 0, -- set on 0 to use a formula with variables like level etc (line 33, 34)
removeItem = 0,
exhaustSeconds = 1,
exhaustStorageID = 25500, -- this one MUST be unused!
onlyOnPlayersMsg = 'You may use this item only on players',
exhaustedMsg = 'You are exhausted.'
}
function onUse(cid, item, frompos, item2, topos)
if(isPlayer(item2.uid) == FALSE) then
doPlayerSendCancel(cid, config.onlyOnPlayersMsg)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return FALSE
end
if(os.time() < getPlayerStorageValue(cid, config.exhaustStorageID)) then
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
doPlayerSendCancel(cid, config.exhaustedMsg)
return FALSE
end
if config.constantManaAmount == 0 then
local level, mlevel = getPlayerLevel(cid), getPlayerMagLevel(cid)
-- formula settings
-- you may use 'level' and 'mlevel'
local manaMin = (level * 1) + (mlevel * 2)
local manaMax = (level * 2) + (mlevel * 5)
if manaMin < 10 then
local manaMin = 10
end
if manaMax < 10 then
local manaMax = 10
end
local manaAdd = math.random(manaMin, manaMax)
doPlayerAddMana(item2.uid, manaAdd)
doSendAnimatedText(getPlayerPosition(item2.uid), manaAdd, TEXTCOLOR_YELLOW)
else
doPlayerAddMana(item2.uid, config.constantManaAmount)
doSendAnimatedText(getPlayerPosition(item2.uid), config.constantManaAmount, TEXTCOLOR_YELLOW)
end
setPlayerStorageValue(cid, config.exhaustStorageID, os.time() + config.exhaustSeconds)
doSendMagicEffect(getPlayerPosition(item2.uid), CONST_ME_YELLOWENERGY)
doPlayerSay(cid, "Aaaah...", 16)
if config.removeItem == 1 then
if(item.type > 1) then
doChangeTypeItem(item.uid, item.type - 1)
elseif(item.type == 1) then
doRemoveItem(item.uid, 1)
end
end
end
____________________
[Actions]Wycinanie słonia z ice cube
Prosta funkcja, po prostu klikasz obsidian knifem na ice cube i jeśli się uda ajskjub coraz bardziej przypomina słonika.
Kod:
-- Creating an elephant statue of an ice cube
-- by Avixu
-- Dedicated for Aries 0.4.0
-- Actions.XML: <action itemid="5908" script="slonik.lua" />
local config = {
breakChance = 30,
effectOnSuccess = 3,
effectOnDestroy = 9
}
function onUse(cid, item, frompos, item2, topos)
local random = math.random(1,100)
if random <= config.breakChance then
doRemoveItem(item.uid,1)
doSendMagicEffect(topos, config.effectOnDestroy)
elseif item2.itemid ~= 7442 then
doTransformItem(item2.uid, item2.itemid+1)
doSendMagicEffect(topos, config.effectOnSuccess)
elseif item2.itemid == 7442 then
doTransformItem(item2.uid, item2.itemid+2)
doSendMagicEffect(topos, config.effectOnSuccess)
end
end
____________________
[Talkactions]Naprawa softów
Gracz wpisuje !repair i jeśli ma 10k (cenę można zmienić) oraz zużyte softy zamienia je na nowe.
Kod:
-- Repair soft boots in talkactions by Avixu
-- Dedicated for Aries 0.4.0
-- Talkactons.XML: <talkaction words="!repair" script="repair_soft_boots.lua" />
local config = {
repairPrice = 10000
}
function onSay(cid, words, param)
if getPlayerItemCount(cid, 6530) >= 1 then
if(not doPlayerRemoveMoney(cid, confg.repairPrice)) then
doPlayerTakeItem(cid, 6530, 1)
doPlayerAddItem(cid, 6132, 1)
doPlayerSendTextMessage(cid, 19, 'Soft Boots repaired!')
doSendAnimatedText(getPlayerPos(cid), 'Success!', TEXTCOLOR_DARKRED)
else
doPlayerSendCancel(cid, 'Sorry, you don\'t have enough money.')
end
else
doPlayerSendCancel(cid, 'Sorry, you don\'t have a pair of worn soft boots.')
end
end
____________________
8.50
TFS 0.3.5PL2
[Movements]Quest Tile
Kratka przepuszczająca tylko tych, którzy mają pod danym storage id daną wartość.
Kod:
-- Quest tile by Avixu
-- Dedicated for TFS 0.3.5PL2
local config = {
storageID = 7000,
storageValue = 1,
mayPassMessage = "You may pass",
noPassMessage = "Sorry, you need to do quest first",
failMagicEffect = 2
}
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if(getPlayerStorageValue(cid,config.storageID) == config.storageValue and isPlayer(cid)) then
doCreatureSay(cid, config.mayPassMessage, TALKTYPE_ORANGE_1)
else
doTeleportThing(cid, fromPosition, false)
doSendMagicEffect(fromPosition, config.failMagicEffect)
doCreatureSay(cid, config.noPassMessage, TALKTYPE_ORANGE_1)
end
return true
end
____________________
[Actions]Item teleportujący do templeWcześniej dałem tu ten skrypt, teraz mocno go skróciłem i daję ponownie.
Kod:
-- Item teleporting to temple by Avixu
-- Dedicated for TFS 0.3.5PL2
local config = {
teleportOnlyIfNoBattle = 1,
teleportToTemple = 1, -- set on 0 if you want to use own position (teleportPosition)
teleportPosition = { x=95, y=95, z=7 },
removeItem = 1,
startMagicEffect = 2,
destinationMagicEffect = 10,
haveBattleMessage = "You may not use teleportation while you have battle!",
minLevel = 100, -- set on 0 to disable
levelTooLowMessage = "Your level is too low."
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if config.teleportOnlyIfNoBattle == 1 then
if getCreatureCondition(cid, 1024) == TRUE then
doPlayerSendCancel(cid, config.haveBattleMessage)
return FALSE
end
end
if config.minLevel > 0 then
if getPlayerLevel(cid) < config.minLevel then
doPlayerSendCancel(cid, config.levelTooLowMessage)
return FALSE
end
end
if config.teleportToTemple == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
else
doTeleportThing(cid, config.teleportPosition)
end
doSendMagicEffect(getCreaturePosition(cid), config.destinationMagicEffect)
doSendMagicEffect(toPosition, config.startMagicEffect)
if config.removeItem == 1 then
doRemoveItem(item.uid, 1)
end
end
Zakładki