ivonebruno01 0 Postado Novembro 14, 2019 Share Postado Novembro 14, 2019 (editado) Estou com problema nesse script. Não da error no console mas, se eu ficar saindo e entrando no tile, começa a curar rápido. local storage = 11131 local _soul = 3 -- Pontos que irá receber local seg = 2 -- intervalo de tempo local efecto = 0 -- efeito local evento = {} function Soul(cid) if isPlayer(cid) then if getPlayerStorageValue(cid, storage) == 1 then doSendMagicEffect(getThingPos(cid), efecto) doPlayerAddSoul(cid,_soul) evento = addEvent(Soul, 1000*seg, cid) if getPlayerStorageValue(cid, storage) < 0 or getPlayerStorageValue(cid, storage) == nil then stopEvent(evento) end end end end function onStepIn(cid, item, pos) if isPlayer(cid) then setPlayerStorageValue(cid, storage, 1) Soul(cid) end return true end function onStepOut(cid, item, pos) if getPlayerStorageValue(cid, storage) == 1 then setPlayerStorageValue(cid, storage) stopEvent(evento) end return true end Editado Novembro 14, 2019 por ivonebruno01 Link para o comentário Compartilhar em outros sites More sharing options...
0 Kuro o Shiniga 87 Postado Novembro 15, 2019 Share Postado Novembro 15, 2019 (editado) Toda vez que o player pisa no Tile o evento de cura é chamado, e toda vez que tu sai ele para, se ficar pisando toda hora vai healar rapido mesmo porque sempre chama o evento quando pisa, tenta assim : local config = { storageum = 11155, _soul = 3, seg = 2, effect = 0, evento = nil } function Soul(cid) if isPlayer(cid) then doSendMagicEffect(getThingPos(cid), config.effect) doPlayerAddSoul(cid, config._soul) config.evento = addEvent(Soul, 1000*config.seg, cid) doSendAnimatedText(getCreaturePosition(cid), "HEALTH", 170) end end function onStepIn(cid, item, pos, topos) if isPlayer(cid) and getPlayerStorageValue(cid, config.storageum) < os.time() then setPlayerStorageValue(cid, config.storageum, os.time() + config.seg*10) Soul(cid) else doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 22, "Voce nao pode retornar agora, espere por 20 segundos!") doTeleportThing(cid, topos) end return true end function onStepOut(cid, item, pos) stopEvent(config.evento) doSendAnimatedText(getCreaturePosition(cid), "STOP", 180) end Tem que adicionar as tag StepIn e StepOut no movements.xml <movevent type="StepIn" actionid="action_id_tile" event="script" value="arquivolua.lua"/> <movevent type="StepOut" actionid="action_id_tile" event="script" value="arquivolua.lua"/> Editado Novembro 15, 2019 por Kuro o Shiniga Link para o comentário Compartilhar em outros sites More sharing options...
0 ivonebruno01 0 Postado Novembro 15, 2019 Autor Share Postado Novembro 15, 2019 Não deu muito certo, quando acabam os 20s e volto pro tile, começa a curar rapido. Acho que esse script aqui é melhor pra resolver isso de tile"moviments", esse é por coordenadas"creaturescripts", mas tem um problema nele, não ta curando. Sabe oque pode ser? function onThink(cid, interval) --if(interval == 1000) then local pos = getCraturePosition(cid) if (x=1305, y=1418, z=7), (x=1320, y=1418, z=7) then if(isPlayerGhost(cid)) then return true end if (isPlayer(cid)) then doCreatureAddMana(cid,300) doCreatureAddHealth(cid,300) end end return true end Link para o comentário Compartilhar em outros sites More sharing options...
0 Kuro o Shiniga 87 Postado Novembro 15, 2019 Share Postado Novembro 15, 2019 (editado) Você adicionou a tag de StepOut no movements.xml ? Não teria porque healar rapadio, o player pode esperar os 20s em cima do tile, e sair e pisar de novo, mas apos ele sair ele para o evento, e quando pisa começa tudo de novo <movevent type="StepOut" actionid="action_id_tile" event="script" value="arquivolua.lua"/> Editado Novembro 15, 2019 por Kuro o Shiniga Link para o comentário Compartilhar em outros sites More sharing options...
0 ivonebruno01 0 Postado Novembro 15, 2019 Autor Share Postado Novembro 15, 2019 No caso, seu eu quiser fazer isso em uma area, terei que colocar ActionId em todos os tile. Por isso que eu queria um de coordenadas, para faciltar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kuro o Shiniga 87 Postado Novembro 16, 2019 Share Postado Novembro 16, 2019 Você quer fazer um sistema que heala apenas em certa poss ? Link para o comentário Compartilhar em outros sites More sharing options...
0 ivonebruno01 0 Postado Novembro 16, 2019 Autor Share Postado Novembro 16, 2019 Não é bem uma posição, em uma area, tipo 5x5 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ivonebruno01 0
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados