Postado Maio 3, 2014 11 anos depende doque vc quiser, onAdvance acho que serve só pra skills/ml/level, se fizer com storage vc vai ter que upar pra ele checar o storage e ativar o dano por segundo. Se fizer por login, o player ganha o storage mas só vai tomar o dano quando relogar. Eu faria por onThink que é uma função que fica se repetindo de 1 em 1 segundo a checagem mas dá pra vc mudar esse intervalo. aqui nesse link dá pra vc checar todos os callbacks de acordo com o tipo de script, espero que te ajude: http://www.tibiaking.com/forum/topic/8603-callbacks edit2: aqui eu vou te dar um exemplo de como utilizar por onThink (esse script eu fiz prum amigo mas ele me deu permissão pra postar) Funciona assim: vc clica no escudo da medusa e ativa essa skill (quem olhar pra medusa vira pedra), só que enquanto vc tiver utilizando a skill vc fica perdendo 20 de vida por segundo. Perceba que no meu caso eu não precisei mudar o interval, eu só coloquei interval e foi o tempo padrão, que é 1 segundo. -- Medusa script for Severo's OT. Made by Night Wolf :DDD local gelocondition = createConditionObject(CONDITION_PARALYZE) setConditionParam(gelocondition, CONDITION_PARAM_TICKS, 10000) setConditionFormula(gelocondition, -0.9, 0, -0.9, 0) local config = { itemid = 2536, --id do item que deverá ser equipado para ativar a spell place = 5, --posição que o item deve estar para funcionar (mão esquerda) place2 = 6, --posição que o item deve estar para funcionar (mão direita) storage = 90984, -- storage que checará se o escudo está ativado ou desativado damage = 20, -- damage que dará a cada checagem de onthink enquanto o shield estiver ativado tempo = 10 -- quantos segundos vai ficar o outfit de medusa } local medusa = {lookType = 330, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} local function canEffect(pos, pz, proj) -- Night Wolf based on Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onThink(cid, interval) if(not isPlayer(cid)) then return true end if (getPlayerSlotItem(cid, config.place).itemid == config.itemid) or (getPlayerSlotItem(cid, config.place2).itemid == config.itemid) then local pos = getPlayerPosition (cid) if getPlayerStorageValue(cid, config.storage) == 1 and canEffect (pos) then local position = getPlayerPosition (cid) doCreatureAddHealth(cid, -config.damage) doSendMagicEffect(position, 0) doSendAnimatedText(position, "-"..config.damage , 180) doSetCreatureOutfit(cid, medusa, config.tempo*1000) if getPlayerLookDir(cid) == 0 then effectPositions = { {x=position.x, y=position.y-1, z=position.z}, {x=position.x, y=position.y-2, z=position.z}, {x=position.x, y=position.y-3, z=position.z} } elseif getPlayerLookDir(cid) == 1 then effectPositions = { {x=position.x+1, y=position.y, z=position.z}, {x=position.x+2, y=position.y, z=position.z}, {x=position.x+3, y=position.y, z=position.z} } elseif getPlayerLookDir(cid) == 2 then effectPositions = { {x=position.x, y=position.y+1, z=position.z}, {x=position.x, y=position.y+2, z=position.z}, {x=position.x, y=position.y+3, z=position.z} } elseif getPlayerLookDir(cid) == 3 then effectPositions = { {x=position.x-1, y=position.y, z=position.z}, {x=position.x-2, y=position.y, z=position.z}, {x=position.x-3, y=position.y, z=position.z} } end if isCreature(cid) == TRUE then for _, ePos in ipairs(effectPositions) do local mob = getTopCreature(ePos).uid if canEffect (ePos) and mob ~= 0 and isMonster(mob) then local idpedra = math.random(1356,1359) -- id da pedra que o os inimigos se tornarão ao serem atingidos pela magia doSetItemOutfit(mob, idpedra, config.tempo*1000) doAddCondition(mob, gelocondition) doSendMagicEffect(ePos, 34) end end for _, ePos in ipairs(effectPositions) do if canEffect(ePos) then doSendMagicEffect(ePos, 44) end end else end end end return true end Espero que vc consiga fazer esse script que vc quer, e se possível, compartilhe ele conosco! Seu server não vai deixar de ser original só porque outras pessoas irão utilizar um script feito por você, lembre-se disso. Editado Maio 3, 2014 11 anos por xWhiteWolf (veja o histórico de edições)
Postado Maio 3, 2014 11 anos zikamu cuido com o flood, leia as regras, você já tem 2 reputações negativas, caso acontece novamente irei solicitar banimento.
Postado Maio 3, 2014 11 anos Eu não quero que desenvolvam o script pra mim, eu queria saber qual a 1 linha que eu uso, ex: function onLogin Olha, não lembro de nenhum creatureevent que seja executado quando um player ganha storage. Explica o que você quer fazer EXATAMENTE, que fica mais fácil de ajudar. O jeito mais simples é colocando pra executar o que você deseja no mesmo script que muda a storage do Player..
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.