Tibia Mod
Forum zostało Przeniesione tutaj:
http://tibiamod.xaa.pl/

Zapraszam.

[8.54]Cooldown spells

Zobacz poprzedni temat Zobacz następny temat Go down

[8.54]Cooldown spells

Pisanie by darkes on Czw Lis 15, 2012 9:19 pm

W skrócie ten skrypt daje nam taką możliwość ,że czar możemy użyć raz na jakiś czas. Jest to lepszy sposób niż exhaused ,którym spamujemy. Skrypt pochodzi z zagranicznego forum o ots

W Lib:
Kod:
function getCooldown(cid, spellname)

local storage = tostring(getPlayerStorageValue(cid, 40001))
local spellname = '"' .. spellname .. '"'

return string.find(storage, spellname) and tonumber(string.match(storage, "%d+", string.find(storage, spellname) + #spellname)) - os.time() or 0
end

function setCooldown(cid, spellname, seconds)

local storage = getPlayerStorageValue(cid, 40001) == -1 and "" or tostring(getPlayerStorageValue(cid, 40001))
local spellname = '"' .. spellname .. '"'

if string.find(storage, spellname) then
local gsub = string.gsub(storage, string.match(storage, "%d+", string.find(storage, spellname) + #spellname), tostring(os.time() + seconds))
setPlayerStorageValue(cid, 40001, gsub)
else
setPlayerStorageValue(cid, 40001, storage .. spellname .. " " .. tostring(seconds + os.time()) .. " ")
end

end

function isExhausted(cid, spellname)

return getCooldown(cid, spellname) > 0
end

W skrócie:
Teraz o nowych funkcjach:

function getCooldown - Cóż, ta funkcja zwraca czas w sekundach, cooldown magii.

function setCooldown - Ta funkcja daje nam tzn coldown - blokadę czaru na określony przez ciebie czas.

function isExhausted - Wreszcie, mamy funkcję zwracającą jeśli gracz jest, czy nie, w użyciu czaru.

Przykłady użycia:
Kod:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 6)

local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function onCastSpell(cid, var)

if isExhausted(cid, "exevo mas san") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "exevo mas san", 10)
end

return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

Fragment przedstawiony u dołu odpowiada za cooldown.
Kod:
function onCastSpell(cid, var)

if isExhausted(cid, "czar") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "czar", liczba sekund)
end

return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

darkes
Uploader

Liczba postów : 27
Join date : 13/11/2012

Zobacz profil autora

Powrót do góry Go down

Zobacz poprzedni temat Zobacz następny temat Powrót do góry


 
Permissions in this forum:
Nie możesz odpowiadać w tematach