Yakutche 2 Postado Novembro 16, 2017 Share Postado Novembro 16, 2017 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. Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/ Compartilhar em outros sites More sharing options...
Rayan 2 Postado Novembro 16, 2017 Share Postado Novembro 16, 2017 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. Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723780 Compartilhar em outros sites More sharing options...
Yakutche 2 Postado Novembro 16, 2017 Autor Share Postado Novembro 16, 2017 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. Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723784 Compartilhar em outros sites More sharing options...
kttallan 319 Postado Novembro 16, 2017 Share Postado Novembro 16, 2017 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 Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723785 Compartilhar em outros sites More sharing options...
Yakutche 2 Postado Novembro 16, 2017 Autor Share Postado Novembro 16, 2017 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: Ocultar conteúdo Coloque no action.xml a tag com o id dos dois itens, o On e o Off Explicação: Ocultar conteúdo 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: Ocultar conteúdo 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 ?? Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723790 Compartilhar em outros sites More sharing options...
kttallan 319 Postado Novembro 16, 2017 Share Postado Novembro 16, 2017 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. Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723791 Compartilhar em outros sites More sharing options...
Yakutche 2 Postado Novembro 16, 2017 Autor Share Postado Novembro 16, 2017 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. Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723792 Compartilhar em outros sites More sharing options...
kttallan 319 Postado Novembro 16, 2017 Share Postado Novembro 16, 2017 Qual base do seu tfs, achei estranho não ter funcionado, pela logica parece está correta. Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723794 Compartilhar em outros sites More sharing options...
Yakutche 2 Postado Novembro 16, 2017 Autor Share Postado Novembro 16, 2017 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 Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723798 Compartilhar em outros sites More sharing options...
Fjinst 36 Postado Novembro 17, 2017 Share Postado Novembro 17, 2017 (editado) 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 17, 2017 por Fjinst Link para o comentário https://xtibia.com/forum/topic/246635-escript-de-teleport/#findComment-1723801 Compartilhar em outros sites More sharing options...
Posts Recomendados