Demonbholder 420 Postado Fevereiro 6, 2011 Share Postado Fevereiro 6, 2011 (editado) Olá pessoal do XTibia! Venho aqui, mais uma vez, apresentar um script desenvolvido por min e pelo Vodkart. O script consiste em um sistema de tiles (pisos) com action ids onde eles adicionam uma porcentagem de vida e mana para o jogador, e ainda pode ser usado como armadilha, podendo ser usado em diversas quests. Segue o script e a explicação deste: Como não havia as funções necessárias para o desenvolvimento do script, estas foram criadas no próprio e estão funcionando perfeitamente. Para adicionar o script, vá em data/movements/scripts, crie um arquivo .lua e cole isto dentro dele: function onStepIn(cid, item, pos) if (item.actionid == 60160) then local storage = (3600*24 + os.time()) -- Tempo, no caso, 1 dia. if getPlayerStorageValue(cid, 13090) - os.time() <= 0 then local sec = 20 -- Até quanto segundos vai adicionar. doFillPlayer(cid,sec) setPlayerStorageValue(cid, 13090, storage) doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE) return TRUE end elseif (item.actionid == 60161) then local sec = 10 -- Até quanto segundos vai remover. doTrapPlayer(cid, sec) doSendAnimatedText(getPlayerPosition(cid), "Armadilha!", TEXTCOLOR_ORANGE) doSendMagicEffect(getPlayerPosition(cid), 11) end return TRUE end function doFillPlayer(cid, time) if isCreature(cid) then local percent = 2/10 -- No caso, 20%. doCreatureAddHealth(cid, getCreatureMaxHealth(cid)*percent) doCreatureAddMana(cid, getCreatureMaxMana(cid)*percent) if time ~= 1 then addEvent(doFillPlayer, 1000, cid, time - 1) end return TRUE end return TRUE end function doTrapPlayer(cid, time) if isCreature(cid) then local hp,mana = -10,-10 -- Quantidade de vida/mana a serem removidas por segundo. doCreatureAddMana(cid, mana) doCreatureAddHealth(cid, hp) if time ~= 1 and getCreatureHealth(cid) > 0 then addEvent(doTrapPlayer, 1000, cid, time - 1) end return TRUE end return TRUE end No script acima, você irá escolher dois action id, um para o script de cura, e outro para as armadilhas. No caso, eu escolhi o action id 60160 para a cura, e o action id 60161 para as armadilhas. Azul: Action id usado nos tiles, lembrando que o action id do tile de cura, e o action id do tile de armadilha deve ser diferente. Vermelho: Tempo que vai ficar adicionando/removendo vida e mana do jogador. Verde: Quanto que vai ser adicionado de vida e mana ao jogador em porcentagem, ou seja, vai adicionar tanto por cento da vida máxima do jogador. 1/10 = 10% 2/10 = 20% 3/10 = 30% 4/10 = 40% 5/10 = 50% 6/10 = 60% 7/10 = 70% 8/10 = 80% 9/10 = 90% 1 = 100% Laranja: Quanto que vai remover de vida e mana do jogador (desta vez, não em porcentagem!). Marrom: Este é o tempo necessário para o jogador poder usar o tile e recuperar vida; pode ser configurado com a seguinte conta: Numero_de_Segundos Multiplicado_por Tantas_Vezes Exemplo: 3600*24 -- No caso, são 3600 segundo, o equivalente a uma hora, multiplicado por 24, resultando em um dia. Se você esta por dentro das novidades do forum, certamente já adicionou o script do Vodkart, que se encontra neste link: Script do Vodkart Se já adicionou e seguiu todos os passos exatamente como esta dito lá, o script se torna menor, menos complexo e mais configurável, então pode usar, ao invés do script acima, este outro: function onStepIn(cid, item, pos) if (item.actionid == 60160) then local storage = (3600*24 + os.time()) -- Tempo, no caso, 1 dia. local sec = 20 -- Até quantos segundos vai adicionar. local percent = 0.2 -- Porcentagem de vida/mana a serem adicionadas por segudo, no caso, 20%. if getPlayerStorageValue(cid, 13090) - os.time() <= 0 then doManaSecond(cid,(getCreatureMaxMana(cid)*percent), sec) doHealthSecond(cid,(getCreatureMaxHealth(cid)*percent), sec) setPlayerStorageValue(cid, 13090, storage) doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE) return TRUE end elseif (item.actionid == 60161) then local sec = 10 -- Até quantos segundos vai remover. local hp,mana = -10,-10 -- Quantidade de vida/mana a serem removidas por segundo, doManaSecond(cid, mana, sec) doHealthSecond(cid, hp, sec) doSendAnimatedText(getPlayerPosition(cid), "Armadilha!", TEXTCOLOR_ORANGE) doSendMagicEffect(getPlayerPosition(cid), 11) end return TRUE end A unica diferença é que se você já adicionou as funções do Vodkart, poderá contar com elas e usar o script acima, porém, os dois estão funcionando igualmente. Após ter adicionado um dos scripts, vá em data/movements, abra o arquivo movements.xml e cole esta tag em algum lugar dele: <movevent type="StepIn" actionid="60160;60161" event="script" value="funcao.lua"/> Azul: Action ids usados nos tiles. Cinza: Nome do arquivo .lua criado para adicionar um dos scripts acima. Espero que gostem, e comentem, até a próxima! Editado Março 10, 2011 por Demonbholder Link para o comentário Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Fevereiro 6, 2011 Share Postado Fevereiro 6, 2011 parabéns mlk :] script mto bom pra colocar nas hunts tanto como armadilha ou para os jogadores serem healados (: abraços Link para o comentário Compartilhar em outros sites More sharing options...
phodex 0 Postado Fevereiro 7, 2011 Share Postado Fevereiro 7, 2011 massa manow ! bom trabalho , fico perfeitin (: t++ Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Fevereiro 11, 2011 Autor Share Postado Fevereiro 11, 2011 Valeu pessoal, bom saber que gostaram. Link para o comentário Compartilhar em outros sites More sharing options...
Subwat 405 Postado Março 23, 2011 Share Postado Março 23, 2011 LOL,que fera mano nunca tinha visto algo assim kk. vlw Link para o comentário Compartilhar em outros sites More sharing options...
Gateu 8 Postado Maio 20, 2011 Share Postado Maio 20, 2011 Parabens, funcionou muito bem, REP + Link para o comentário Compartilhar em outros sites More sharing options...
jhony35 0 Postado Julho 25, 2011 Share Postado Julho 25, 2011 Vei eu naoo consegui eu pus o 60160 no tile e nao realo nada, tem como ajuda? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados