[Moveevent] Tiles Para Hunt

Demonbholder
em Actions e Talkactions

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

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!

Oie :D

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

parabéns mlk :]

script mto bom pra colocar nas hunts tanto como armadilha ou para os jogadores serem healados (:

abraços

bossisg.png

phodex

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/01/11Posts: 6Char no Tibia: N/A

massa manow !

 

bom trabalho , fico perfeitin (:

 

t++

Messenger:

luizfelipe_feh_@hotmail.com

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Valeu pessoal, bom saber que gostaram.

Oie :D

Subwat

GAUCHO MACHO
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 27/07/09Posts: 1516Char no Tibia: Gean Riot

LOL,que fera mano nunca tinha visto algo assim kk.

vlw

Entrem Server online desde o dia 22/02/2013 Monster 24HORAS dedicado!

IP: monster24h.com

PROTOCOL:8.60

PORT:7171

 

RATES:

Exp: 9999x~10x

Skills:800x

Magic:200x

Loot:2x

Pvp-e Advanced: 1.1x Ao matar players de level semelhante.

 

Accounts Pelo Account Manager!

Gateu

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 31/01/11Posts: 18

Parabens, funcionou muito bem, REP +

jhony35

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/07/11Posts: 5Char no Tibia: Gogoboy

Vei eu naoo consegui eu pus o 60160 no tile e nao realo nada, tem como ajuda?