Ir para conteúdo

Sistema De Sentar Com Recuperação Automatica.


Flaah

Posts Recomendados

Ola galera to XTIBIA, esse é meu primeiro tópico, e só tenho 6 meses de tibia, mais deu pra eu fazer um script, simples mais simbolico e bem util para servers em geral, então vamos lá...

 

Bom o script se baseia-se em 2 scripts juntados mais a ajuda do nosso e velho amigo Vodkart, ele me ajudo na edição e ajustes dos erros encontrados no sistema.

 

O funcionamento é simples, vc da o comando !sentar (você pode editar como quizer), e o seu o personagm sentar, e com isso o MANA e LIFE vão se recuperando aos poucos (você pode editar o tempo de recuperação e quando ele vai ganha de MANA e LIFE por tempo), para que o personagem volte ao normal vc deve digita o comando denovo, !sentar, ai ele saira da paralisação e voltara a andar normalmente.

 

Primeiramente pegue um arquivo qualquer no seu server e renomeie para: sentar.lua

 

Depois abra esse arquivo e coloque o SCRIPT abaixo dentro do arquivo: sentar.lua:

 

SCRIPT:

-- (Sistema para sentar com recuperação automatica) --
-- Criadores: Flaah e Vodkart (Não retirem os créditos) --

 events = {}
 config = {
 sit = {hp = 5, mana = 5},
 outfit = {lookType = 357},
 storage = 21211
}
 local outfits = {
					[1] = {lookType = 200}, -- o numero 1 é o ID da vocação e 200 é o ID do looktype.
					[2] = {lookType = 201}, -- o numero 2 é o ID da vocação e 201 é o ID do looktype.
					[3] = {lookType = 202}, -- o numero 1 é o ID da vocação e 202 é o ID do looktype.	  

}
 function onSay(cid, words, param, channel)
 setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) == -1 and 1 or -1)
 doCreatureSetNoMove(cid, getPlayerStorageValue(cid, config.storage) == 1 and true or false)
 if getPlayerStorageValue(cid, config.storage) == 1 then
 doPlayerSay(cid, "Ufa, Relaxando")
 doSetCreatureOutfit(cid, config.outfit, -1)
 doSendMagicEffect(getCreaturePosition(cid), 69)
 doSitRelax(cid, config.sit)
 else
 doPlayerSay(cid, "OPA, hora de volta ao trabalho")
 doRemoveCondition(cid, CONDITION_OUTFIT)
 stopEvent(events[getPlayerGUID(cid)])
 local voc_id = getPlayerVocation(cid)
 if getPlayerVocation(cid) > 0 then
 doSetCreatureOutfit(cid, outfits[voc_id], -1)
 end
 end
 return true
 end
 function doSitRelax(cid, formula)
 if not isCreature(cid) then return LUA_ERROR end
 doCreatureAddHealth(cid, formula.hp)
 doCreatureAddMana(cid, formula.mana)
 doSendMagicEffect(getCreaturePosition(cid), 69)
 events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula)
 end

 

 

COMANDO:

 

<talkaction words="!sentar" event="script" value="sentar.lua" />

 

INFORMAÇÕES:

 

O que esta em:

 

[1], [2] [3]

 

Você devera coloca cada vocation que tem no seu server.

 

O que esta em:

 

{lookType = 200}

 

Você devera colocar cada looktype que representa cada vocation do seu server.

 

O que esta em:

 

sit = {hp = 5, mana = 5},

 

São a quantidade de MANA e LIFE que o player ira ganha quando estive sentado.

 

O que esta em:

 

outfit = {lookType = 3},

 

é looktype de quando o player estive sentado.

 

O que esta em:

 

doPlayerSay(cid, "Ufa, Relaxando")

e

doPlayerSay(cid, "OPA, hora de volta ao trabalho")

 

São as falas que o player ira solta quando fizer o comando se !sentar e depois !sentar denovo para pode levantar.

 

O que esta em:

 

doSendMagicEffect(getCreaturePosition(cid),  CONST_ME_HOLYAREA)

 

É o efeito que o player irar ganha ao sentar e o segundo é quando o player estive ganhando o MANA e LIFE.

 

E o que esta em:

 

events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula)

 

É o tempo que o player irar fica ganhando o MANA E LIFE. (Sendo que 5000 são 5 segundos).

 

OBS: Para que vc coloque mais vocations e lookType é só repetir essa linha, mais claro trocando os numeros pelos o que você quer:

 

[1] = {lookType = 200},

 

Bom.. tomara que vocês tenham gostado , deu um pouco de trabalho mais valeu a pena, Obrigadão Vodkart pela ajuda, e obrigado XTIBIA pelo ótimo forum de vocês, Boa Noite a Todos.

 

PS: Tomara que eu tenha merecido um +REP ai u.u, KKKKK'

 

ASS: Flaah :)

Editado por Flaah
Link para o comentário
Compartilhar em outros sites

Po boa idéia.. mais senta sim, so ter o lookType pra sentar...

 

Testei aqui e deu super certo, qual sua versão?

 

Testei na versão 8.54.. mais essa idéia que vc me deu foi ótima, semana que vem eu começo a fazer :)

 

Vlw a idéia :)

Editado por Flaah
Link para o comentário
Compartilhar em outros sites

  • 5 months later...

Mais isso que o script que te mandei faiz:

 

Aqui ó.

 

Crie um arquivo chamado: sentar.lua

 

E coloque dentro:

 

events = {}
config = {
male = {lookType = 301},
female = {lookType = 291},
storage = 21211
}
function onStepIn(cid, item, position, fromPosition)
setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) == -1 and 1 or -1)
if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSay(cid, "Ufa, Relaxando")
doSetCreatureOutfit(cid, config.male, -1)
doSetCreatureOutfit(cid, config.female, -1)
doSendMagicEffect(getCreaturePosition(cid),  2)
else
doPlayerSay(cid, "você ficou em pé")
doRemoveCondition(cid, CONDITION_OUTFIT)
stopEvent(events[getPlayerGUID(cid)])
end
return true
end
function doSitRelax(cid, formula)
if not isCreature(cid) then return LUA_ERROR end
doCreatureAddHealth(cid, formula.hp)
doCreatureAddMana(cid, formula.mana)
doSendMagicEffect(getCreaturePosition(cid),  2)
events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula)
end

 

Depois, crie um arquivo escrito: sair.lua

 

E coloque dentro:

 

events = {}
config = {
male = {lookType = 301},
female = {lookType = 291},
storage = 21211
}
function onStepOut(cid, item, position, fromPosition)
setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) == -1 and 1 or -1)
if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSay(cid, "Ufa, Relaxando")
doSetCreatureOutfit(cid, config.male, -1)
doSetCreatureOutfit(cid, config.female, -1)
doSendMagicEffect(getCreaturePosition(cid),  2)
else
doPlayerSay(cid, "você ficou em pé")
doRemoveCondition(cid, CONDITION_OUTFIT)
stopEvent(events[getPlayerGUID(cid)])
end
return true
end
function doSitRelax(cid, formula)
if not isCreature(cid) then return LUA_ERROR end
doCreatureAddHealth(cid, formula.hp)
doCreatureAddMana(cid, formula.mana)
doSendMagicEffect(getCreaturePosition(cid),  2)
events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula)
end

 

 

Depois coloque no movements.xml

 

<movevent type="StepIn" itemid="1652" event="script" value="sentar.lua"/>
<movevent type="StepOut" itemid="1652" event="script" value="sair.lua"/>

 

OBS: Mais informações pra editar o script, entre:

 

http://www.xtibia.co...cao-automatica/

 

PS: No itemid="1652" vc modifica pro ID da cadeira, ou banco que vc queira. happy.png

 

AJUDEI? +REP

Editado por Flaah
Link para o comentário
Compartilhar em outros sites

Tem sim, aqui ó:

 

-- (Sistema para sentar com recuperação automatica) --
-- Criadores: Flaah e Vodkart (Não retirem os créditos) --

 events = {}
 config = {
 sit = {hp = 5, mana = 5},
 male = {lookType = 301},
 female = {lookType = 291},
 storage = 21211
}
 local outfits = {
					[1] = {lookType = 200}, -- o numero 1 é o ID da vocação e 200 é o ID do looktype.
					[2] = {lookType = 201}, -- o numero 2 é o ID da vocação e 201 é o ID do looktype.
					[3] = {lookType = 202}, -- o numero 1 é o ID da vocação e 202 é o ID do looktype.	  

}
 function onSay(cid, words, param, channel)
 setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) == -1 and 1 or -1)
 doCreatureSetNoMove(cid, getPlayerStorageValue(cid, config.storage) == 1 and true or false)
 if getPlayerStorageValue(cid, config.storage) == 1 then
 doPlayerSay(cid, "Ufa, Relaxando")
 doSetCreatureOutfit(cid, config.male, -1)
 doSetCreatureOutfit(cid, config.female, -1)
 doSendMagicEffect(getCreaturePosition(cid), 69)
 doSitRelax(cid, config.sit)
 else
 doPlayerSay(cid, "OPA, hora de volta ao trabalho")
 doRemoveCondition(cid, CONDITION_OUTFIT)
 stopEvent(events[getPlayerGUID(cid)])
 local voc_id = getPlayerVocation(cid)
 if getPlayerVocation(cid) > 0 then
 doSetCreatureOutfit(cid, outfits[voc_id], -1)
 end
 end
 return true
 end
 function doSitRelax(cid, formula)
 if not isCreature(cid) then return LUA_ERROR end
 doCreatureAddHealth(cid, formula.hp)
 doCreatureAddMana(cid, formula.mana)
 doSendMagicEffect(getCreaturePosition(cid), 69)
 events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula)
 end

 

Ou se preferi:

 

events = {}
config = {
sit = {hp = 5, mana = 5},
male = {lookType = 301},
female = {lookType = 291},
storage = 21211
}
function onSay(cid, words, param, channel)
setPlayerStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage) == -1 and 1 or -1)
doCreatureSetNoMove(cid, getPlayerStorageValue(cid, config.storage) == 1 and true or false)
if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSay(cid, "Ufa, Relaxando")
doSetCreatureOutfit(cid, config.male, -1)
doSetCreatureOutfit(cid, config.female, -1)
doSendMagicEffect(getCreaturePosition(cid),  2)
doSitRelax(cid, config.sit)
else
doPlayerSay(cid, "você ficou em pé")
doRemoveCondition(cid, CONDITION_OUTFIT)
stopEvent(events[getPlayerGUID(cid)])
end
return true
end
function doSitRelax(cid, formula)
if not isCreature(cid) then return LUA_ERROR end
doCreatureAddHealth(cid, formula.hp)
doCreatureAddMana(cid, formula.mana)
doSendMagicEffect(getCreaturePosition(cid),  2)
events[getPlayerGUID(cid)] = addEvent(doSitRelax, 5000, cid, formula)
end

 

AJUDEI? +REP mdr.gif

Editado por Flaah
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...