oo cara sobre o npc 2 que troca um iten por outro vc pode pega no serve do centurion v4 que tem ele vc pode pega aquiele ou usa como base ^^
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Pedido de NPC's para PDA Sem Level
[Encerrado] Pedido de NPC's para PDA Sem Level
Por narutochuuu, 19 de dez. de 2012 em Tópicos Sem Resposta
info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel

info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Área Incorreta. O certo seria Pedidos e Dúvidas - Scripting!
Reportado!
@TOPIC
Irei tentar fazer ~
info
Grupo: Visconde
Registrado: 24/08/12
Posts: 266
Reputação: +28
Char no Tibia: Paulirous

Área Incorreta. O certo seria Pedidos e Dúvidas - Scripting!
Reportado!
@TOPIC
Irei tentar fazer ~
Roskas desculpa mas esta área é apenas para tibia '-'
info
Grupo: Lorde
Registrado: 17/01/09
Posts: 2.1k
Reputação: +395
Char no Tibia: Adra Sata

Área Incorreta. O certo seria Pedidos e Dúvidas - Scripting!
Reportado!
@TOPIC
Irei tentar fazer ~
Está área é a correta.
é para pokemon.
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Desculpe, confundi, sempre esqueço oque é PDA ![]()
Primeiro NPC:
Vá em data/npcs, crie um arquivo chamado Teleporter.xml, adicione isso dentro:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Teleport NPC" script="teleportitem.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, Posso te teleportar!."/> </parameters> </npc>
Agora na mesma pasta, abra a pasta scripts e crie um arquivo chamado teleportitem.lua, adicione isso dentro:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT
local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO
if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then
selfSay('Deseja ser teleportado?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, itemdesj) >= 1) then
doTeleportThing(cid,postp)
selfSay('Teleportado.', cid)
end
else
selfSay('Desculpe voce nao tem o item necessario.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok flws.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Você pode configurar nesse trecho do SCRIPT:
local postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT
local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO
E aqui oque irá falar para ser teleportado:
if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then
SEGUNDO NPC:
Agora crie um arquivo chamado pokemonchanger.xml na pasta data/npcs e coloque isso dentro:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Pokemon Changer" script="pokechanger.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I am a pokemon changer."/> </parameters> </npc>
Agora em data/npcs/scripts crie um arquivo chamado pokechanger.lua e adicione isso dentro:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local itemdesj = 1234 -- AQUI CONFIGURA O ID DO ITEM
local pokeball = 1235 -- AQUI O ID DA POKEBALL
if(msgcontains(msg, 'change') or msgcontains(msg, 'pokemon')) then
selfSay('Deseja ganhar um pokemon pelo item?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, itemdesj) >= 1) then
doPlayerRemoveItem(cid, itemdesj, 1)
doPlayerAddItem(cid, pokeball)
selfSay('Aqui esta a sua pokebola.', cid)
end
else
selfSay('Voce nao tem o item necessario.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok flws.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
PARA CONFIGURAR É DO MESMO JEITO QUE O OUTRO NPC !
É OQUE MEU CONHECIMENTO ME PERMITE FAZER ^^ COMO NAO CONHEÇO FUNÇÕES ETC, DE POKEMON NÃO POSSO FAZER O 3º, IREI DEIXAR PARA ALGUM SCRIPTER BOM! BOA SORTE, POSTE RESULTADOS
Editado Dezembro 19 por Roksas
info
Grupo: Visconde
Registrado: 24/08/12
Posts: 266
Reputação: +28
Char no Tibia: Paulirous

oo cara sobre o npc 2 que troca um iten por outro vc pode pega no serve do centurion v4 que tem ele vc pode pega aquiele ou usa como base ^^
vou baixar o centurion v4 e já já verei se é como eu estou procurando vlw pela dica ^^
Edit: @Brunnoo tem como me passar o download do server? não achei, achei apenas o cliente
Edit denovo:
Desculpe, confundi, sempre esqueço oque é PDA
Primeiro NPC:
Vá em data/npcs, crie um arquivo chamado Teleporter.xml, adicione isso dentro:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Teleport NPC" script="teleportitem.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, Posso te teleportar!."/> </parameters> </npc>
Agora na mesma pasta, abra a pasta scripts e crie um arquivo chamado teleportitem.lua, adicione isso dentro:
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then selfSay('Deseja ser teleportado?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, itemdesj) >= 1) then doTeleportThing(cid,postp) selfSay('Teleportado.', cid) end else selfSay('Desculpe voce nao tem o item necessario.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok flws.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Você pode configurar nesse trecho do SCRIPT:
local postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO
E aqui oque irá falar para ser teleportado:
if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then
SEGUNDO NPC:
Agora crie um arquivo chamado pokemonchanger.xml na pasta data/npcs e coloque isso dentro:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Pokemon Changer" script="pokechanger.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I am a pokemon changer."/> </parameters> </npc>
Agora em data/npcs/scripts crie um arquivo chamado pokechanger.lua e adicione isso dentro:
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local itemdesj = 1234 -- AQUI CONFIGURA O ID DO ITEM local pokeball = 1235 -- AQUI O ID DA POKEBALL if(msgcontains(msg, 'change') or msgcontains(msg, 'pokemon')) then selfSay('Deseja ganhar um pokemon pelo item?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, itemdesj) >= 1) then doPlayerRemoveItem(cid, itemdesj, 1) doPlayerAddItem(cid, pokeball) selfSay('Aqui esta a sua pokebola.', cid) end else selfSay('Voce nao tem o item necessario.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok flws.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
PARA CONFIGURAR É DO MESMO JEITO QUE O OUTRO NPC !
É OQUE MEU CONHECIMENTO ME PERMITE FAZER ^^ COMO NAO CONHEÇO FUNÇÕES ETC, DE POKEMON NÃO POSSO FAZER O 3º, IREI DEIXAR PARA ALGUM SCRIPTER BOM! BOA SORTE, POSTE RESULTADOS
O segundo npc não teria que colocar a tag do pokemon que viesse dentro da pokebola? Tenta inverter este npc que troca pokemon pelo item do player (OBS: Feito pelo Slicer):
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
------------------------------------------------------------------------------
function havePonyta(cid)
local pbs = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
local slot = getPlayerSlotItem(cid, 8)
if slot.itemid > 0 and isPokeball(slot.itemid) then
if getItemAttribute(slot.uid, "poke") == "Ponyta" then
doRemoveItem(slot.uid, 1)
doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_LEGS).uid, 2395)
return true
end
end
for i = 1, #pbs do
if getItemAttribute(pbs[i], "poke") == "Ponyta" then
doRemoveItem(pbs[i], 1)
return true
end
end
return false
end
------------------------------------------------------------------------------
if msgcontains(msg, 'help') or msgcontains(msg, 'Help') then
if getPlayerStorageValue(cid, 354978) >= 1 then
selfSay("Você ja me ajudou, muito obrigado!", cid)
talkState[talkUser] = 0
return true
else
selfSay("Eu queria tanto ter uma ponyta... Você poderia trazer uma para mim? Eu te recompensaria, é claro...", cid)
talkState[talkUser] = 1
return true
end
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'Yes')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, 354978) <= 0 then
---
local storages = {17000, 63215, 17001, 13008, 5700}
for s = 1, #storages do
if getPlayerStorageValue(cid, storages[s]) >= 1 then
selfSay("Você não pode fazer isso enquanto esta Voando, Montando, Surfando, Mergulhando ou de Bicicleta!", cid)
talkState[talkUser] = 0
return true
end
end
if #getCreatureSummons(cid) >= 1 then
selfSay("Volte seu pokemon!", cid)
talkState[talkUser] = 0
return true
end
---
if havePonyta(cid) then
selfSay("Muito obrigado! Pegue seu prêmio...", cid)
doPlayerAddItem(cid, 12222, 1) --coloque aki o premio...
talkState[talkUser] = 0
return true
else
selfSay("Você não me trouxe a ponyta... Volte quando conseguir uma.", cid)
talkState[talkUser] = 0
return true
end
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Está certo, o meu script diz para que se tiver o item que você quer, remove-lo e adicionar a pokebola, ai voce coloca o ID da pokebola. Não sei de que tag você está falando pois eu não entendo de pokemon, rsrs
@EDIT
Tenho um centurion v4 aqui:
Editado Dezembro 19 por Roksas
info
Grupo: Visconde
Registrado: 24/08/12
Posts: 266
Reputação: +28
Char no Tibia: Paulirous

Vlw pelo download, irei procurar qual npc é o que troca item do player por pokemon do npc
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Ok, poste resultados. Espero ter ajudado! Qualquer dúvida irei responder.
info
Grupo: Visconde
Registrado: 24/08/12
Posts: 266
Reputação: +28
Char no Tibia: Paulirous

não achei o npc que faz isso ;x algum de vocês sabe qual é ?
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.




info
Grupo: Visconde
Registrado: 24/08/12
Posts: 266
Reputação: +28
Char no Tibia: Paulirous
Queria pedir alguns npc's para pda, se for possível atender aos meus pedidos, mas se ajudar apenas 1 já está ótimo e já garantido o Rep+, caso me ajudar em mais de um irei lhe dar rep durante mais tempo e.e
Pedido 1: NPC que teleporta o player se tiver "X" item, MAS, ele não removerá o item, apenas irá conferir se o player tem ele;
Pedido 2: NPC que troca item por pokemon;
Pedido 3: Um npc de batalha que teleporta o player após derrotar ele.
Só estes 3 mesmo... Obrigado pela atenção de todos