Se ele usar o item(deixar ligado) vai registrar a vida atual até ae ok porém não entendi a parte de healar, visto que caso ele tome algum hit ele deveria healar na msm hr a vida antiga? isso iria funcionar apenas 1x ou sempre ficando praticamente imortal enquanto o item durar? Se me explicar um pouco melhor posso tentar usar o pouco que sei e te ajudar.
- Fórum
- OTServ
- Pedidos
- Tópicos Sem Resposta
- Escript de teleport
50 minutos atrás, Rayan disse:Se ele usar o item(deixar ligado) vai registrar a vida atual até ae ok porém não entendi a parte de healar, visto que caso ele tome algum hit ele deveria healar na msm hr a vida antiga? isso iria funcionar apenas 1x ou sempre ficando praticamente imortal enquanto o item durar? Se me explicar um pouco melhor posso tentar usar o pouco que sei e te ajudar.
Imagina o seguinte, você ta full life (200), dai você ativa o item, ele vai registrar a sua vida atual ( no caso full 200), então enquanto o item ta ativo você começa a ser atacado e perde vida, dai quando você usa o item. sua vida vai voltar ao que foi registrado (200) e também tem a parte do teleporte, então o item desliga e tem o CD para poder ativar novamente.
info
Grupo: Infante
Registrado: 06/03/13
Posts: 1.6k
Reputação: +319
Gênero: Masculino
Char no Tibia: Lord Sorte

Olá mano eu tentei fazer aqui o codigo que você pediu, se tiver como postar o resultado (ainda não testei pois não tenho nenhum servidor nesse meu pc).
Observação:
Coloque no action.xml a tag com o id dos dois itens, o On e o Off
Explicação:
On: ID do item quando ficar em funcionamento.
Off: ID do item quando não ficar em funcionamento.
Pos: não mexer aqui pois ele vai inserir na tablea a posição atual do player.
Life: Mesma coisa, irá inserir na tabela o hp atual do player na hora que clicou.
Storage: Não mexer pode prejudicar o codigo.
Time: Tempo em segundos em que o player poderá usar o item novamente.
Codigo:
function onUse(cid, item, frompos, item2, topos)
local config = {
on = 1212, off == 1213, pos = {}, life = {}, storage = 50000, time = 5
}
if not config then return true end
if item.itemid == config.off then
if getPlayerStorageValue(cid, config.storage) < 0 then
doTransformItem(item.uid, config.on)
doPlayerSendTextMessage(cid, 27, "O seu item acaba de ser ativado!")
table.insert(config.pos, getThingPos(cid))
table.insert(config.life, getCreatureHealth(cid))
else
doPlayerSendCancel(cid, "Você ainda não pode usar esse item espere ["..getPlayerStorageValue(cid, config.storage) < os.time.."] segundos.")
return true
end
end
if item.itemid == config.on then
doTransformItem(item.uid, config.off)
doCreatureAddHealth(cid, config.life)
doTeleportThing(cid, config.pos)
table.remove(config.pos)
table.remove(config.life)
doPlayerSendTextMessage(cid, 27, "Pronto você acaba de recuperar seu HP!")
setPlayerStorageValue(cid, config.storage, os.time() + config.time)
end
return true
end
47 minutos atrás, kttallan disse:Olá mano eu tentei fazer aqui o codigo que você pediu, se tiver como postar o resultado (ainda não testei pois não tenho nenhum servidor nesse meu pc).
Observação:
Explicação:
On: ID do item quando ficar em funcionamento.
Off: ID do item quando não ficar em funcionamento.
Pos: não mexer aqui pois ele vai inserir na tablea a posição atual do player.
Life: Mesma coisa, irá inserir na tabela o hp atual do player na hora que clicou.
Storage: Não mexer pode prejudicar o codigo.
Time: Tempo em segundos em que o player poderá usar o item novamente.
Codigo:
function onUse(cid, item, frompos, item2, topos)
local config = {
on = 1212, off == 1213, pos = {}, life = {}, storage = 50000, time = 5
}
if not config then return true end
if item.itemid == config.off then
if getPlayerStorageValue(cid, config.storage) < 0 then
doTransformItem(item.uid, config.on)
doPlayerSendTextMessage(cid, 27, "O seu item acaba de ser ativado!")
table.insert(config.pos, getThingPos(cid))
table.insert(config.life, getCreatureHealth(cid))
else
doPlayerSendCancel(cid, "Você ainda não pode usar esse item espere ["..getPlayerStorageValue(cid, config.storage) < os.time.."] segundos.")
return true
end
end
if item.itemid == config.on then
doTransformItem(item.uid, config.off)
doCreatureAddHealth(cid, config.life)
doTeleportThing(cid, config.pos)
table.remove(config.pos)
table.remove(config.life)
doPlayerSendTextMessage(cid, 27, "Pronto você acaba de recuperar seu HP!")
setPlayerStorageValue(cid, config.storage, os.time() + config.time)
end
return true
end
Uma Dúvida, no Action.xml as tags devem ser 2 correto?
e elas devem ser como <action uniqueid//<action itemid//<action actionid ??
info
Grupo: Infante
Registrado: 06/03/13
Posts: 1.6k
Reputação: +319
Gênero: Masculino
Char no Tibia: Lord Sorte

Agora, Yakutche disse:Uma Dúvida, no Action.xml as tags devem ser 2 correto?
e elas devem ser como <action uniqueid//<action itemid//<action actionid ??
<action itemid="3896;3897 event="script" value="teleport.lua"/>
sendo 3896 e 3897 os ids dos itens on e off.
27 minutos atrás, kttallan disse:<action itemid="3896;3897 event="script" value="teleport.lua"/>
sendo 3896 e 3897 os ids dos itens on e off.
Olha ai as Img, tentei colocar no ACTxml como voce passou porem da erro no servidor, assim ele abre, porem o item "off" não muda e o "ligado" ao usar da Debug no jogo.
39 minutos atrás, kttallan disse:<action itemid="3896;3897 event="script" value="teleport.lua"/>
sendo 3896 e 3897 os ids dos itens on e off.
Vou Mudar um Pouco a Ideia, Não precisa Transformar o Item. 1º Você usa x Item ele Registra seu HP atual e aparece x Mensagem, "você Ativou xxx". ele fica ativo por um certo período e desliga. Caso você leve dano com ele ativado e use ele em um local valido (qualquer local n pz acessível) sua vida volta a oque foi registrado e o item é desativado. Obs. mesmo esquema dos Colldown tem q ter 1 para o item permanecer ativo e 1 para poder ser ativo novamente.
info
Grupo: Infante
Registrado: 06/03/13
Posts: 1.6k
Reputação: +319
Gênero: Masculino
Char no Tibia: Lord Sorte

Qual base do seu tfs, achei estranho não ter funcionado, pela logica parece está correta.
45 minutos atrás, kttallan disse:Qual base do seu tfs, achei estranho não ter funcionado, pela logica parece está correta.
Baixei aqui mesmo, Nows do Sasky e Thiago, tenho tb Extnl que o Renan disponibilizou e alguns Dno
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Qual a versão do servidor?
Edit:
OBS: NÃO TESTEI
Sobre o exhaust poderá dar uma bugada, mas não custa nada testar.
Fiz baseado na versão 7.81, coloque o id da mascara ligada e desligada no script e no actions.xml
Em actions/scripts, crie um script com o nome da mascara e coloque isso
function onUse(cid, item, frompos, item2, topos)
local idmascaranormal = 4450 ----- id da mascara normal
local idmascaratransformada = 4432 ----- id da mascara colorida
local storagegravarvida = 1430 ---- nao mexer aqui
local exhaust = 5 --- o tempo do exhaust que vai demorar
local nie = 48971
if getPlayerExhaust(cid, nie) == 0 then
if item.itemid == idmascaranormal then
doTransformItem(item.uid,idmascaratransformada)
doSendMagicEffect(topos, 17)
setPlayerStorageValue(cid,storagegravarvida, getPlayerHealth(cid))
doPlayerSendTextMessage(cid,22,"A mascara esta ativada.")
elseif item.itemid == idmascaratransformada then
doTransformItem(item.uid,idmascaranormal)
doPlayerAddHealth(cid,getPlayerStorageValue(cid, storagegravarvida))
setPlayerStorageValue(cid,storagegravarvida, -1)
doSendMagicEffect(topos, 2)
setPlayerExhaust(cid, nie, exhaust)
doPlayerSendTextMessage(cid,22,"A mascara esta desativada.")
end
else
doPlayerSendTextMessage(cid, 22, "Espere ".. getPlayerExhaust(cid, nie).." segundo(s) para poder usar a mascara novamente.")
end
return true
end
Em actions.xml abra e coloque a tag
<action itemid="IDMASCARACOLORIDA" script="NOMEDOSCRIPT.lua" /> <action itemid="IDMASCARANORMAL" script="NOMEDOSCRIPT.lua" />
Editado Novembro 16 por Fjinst







info
Grupo: Campones
Registrado: 07/10/16
Posts: 7
Reputação: +2
Gênero: Masculino
Não sei se o Post está no local correto caso não esteja Por favor Mova.
Olá pessoal do Xtibia, estou querendo um Script meio "complicado", bom eu acho que é complicado pois não entendo muito de Scritp. Vamos ao Pedido.
O Script tem que funcionar da seguinte Maneira.
1º Eu Uso "x" Item na minha bag ou slots do inventario. Este "x" item muda. Como assim? Ex: é uma Mascara cinza ao usar ela ativa e fica "colorida". Quero isso para diferenciar de Ligado e Desligado. Caso Seja possível uma mensagem deve aparecer "x está ativo".
2º No momento em que o item é Ligado a vida atual do Jogador é Registrada. (Obs.: Apenas a Vida dele, não quero que registre a mana)
3º Quando o jogador usar o Item "Ligado" (em algum local aceitável do mapa) a vida dele será recuperada para a quantia que o item registrou ao ser Ligado. e o jogador será teleportado para aquela posição.
-Regras-
1ª O item deve ter 1 Colldown ao ser ligado, ele ficara "x" tempo ligado e então desativa sozinho.
2ª No momento que o jogador usar o Item "ligado" e a vida volta, o script "reseta", no caso quando ele "ligar" novamente o item irá salvar a vida que ele está no momento.
3ª Deve haver um Colldown Para "ligar" o item novamente. Caso o jogador tente "ligar" antes do tempo acabar aparece uma mensagem "faltam x segundos" para o jogador.
----------------------------------------------------------
Obs¹: Caso possivel o item "ligado" possa ser usado nos slots do inventario jogador. em caso de trap a qual n seja possível escapar ele vai ter 1 chance de curar se ativou o item.