pode ser por box ? por exemplo, você dá 50x Essence Zard por uma box que dá um Charizard...
- Fórum
- OTServ
- Suporte
- Resolvidos
- [Resolvido] npc troca item por pokemon
info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

Foi mal, eu li depois
pode ser por box ? por exemplo, você dá 50x Essence Zard por uma box que dá um Charizard...
tem como sem ser por Box, mas eu tô meio ocupado...
Editado Outubro 13 por Danny0
info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

Foi mal, eu li depois
tem como sem ser por Box, mas eu tô meio ocupado...
Também estou sem tempo, por isso vou fazer um com box, se ele quiser, ele pega...
Também estou sem tempo, por isso vou fazer um com box, se ele quiser, ele pega...
Blz '-'
info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

Estou meio que sem tempo, então vou te passar um rápido aqui !
Em data/actions/scripts crie um arquivo chamado boox.lua e cole isso:
local a = {
<action itemid="IDDABOX" event="script" value="boox.lua"/>
Editado Outubro 13 por Bluester
info
Grupo: Lorde
Registrado: 22/07/12
Posts: 2.2k
Reputação: +453
Char no Tibia: Kissy

Tópico movido para área correta verifique a seção antes de postar.
Tópico Movido
Este tópico foi movido de "OTServ → Suporte OTServ → Suporte Spriting"
para "OTServ → Suporte OTServ → Suporte Derivados".
Estou meio que sem tempo, então vou te passar um rápido aqui !
Em data/actions/scripts crie um arquivo chamado boox.lua e cole isso:
local a = {
[iDDABOX] = {pokemons = {"Shiny Charizard"}}local happy = 1000function onUse(cid, item, frompos, item2, topos)local b = a[item.itemid]if not b then return true endlocal pokemon = b.pokemons[math.random(#b.pokemons)]if not pokes[pokemon] then return true enddoPlayerSendTextMessage(cid, 27, "You opened a pokemon prize box +"..item.itemid - (11637).."!")doPlayerSendTextMessage(cid, 27, "The prize pokemon was a "..pokemon..", congratulations!")doSendMagicEffect(getThingPos(cid), 29)addPokeToPlayer(cid, pokemon, 0, nil, btype) --alterado v1.9doRemoveItem(item.uid, 1)if useOTClient thendoCreatureExecuteTalkAction(cid, "/salvar")endreturn trueendEm data/actions/actions.xml cole essa tag:<action itemid="IDDABOX" event="script" value="boox.lua"/>
Data/npc: Crie um arquivo com o nome do NPC que quiser, vou usar Ruby como exemplo, e dentro do arquivo cole isso:<?xml version="1.0" encoding="UTF-8"?><npc name="Ruby" script="RUBYTRADE.lua" walkinterval="350000" floorchange="0" speed="0"><health now="100" max="100"/><look type="2335" head="20" body="100" legs="50" feet="0"/><parameters><parameter key="message_greet" value="Hello |PLAYERNAME|.I need {help}...you help me?"/> </parameters></npc>Em data/npc/scripts crie um arquivo chamado RUBYTRADE.lua e cole isso dentro:local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidmsg = string.lower(msg)---------local need = {{id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE}local rewards = {{id = IDDABOX, qt = 1}, --charizard BOX}local stoFinish = 92120 -- USE ESSA OU A STORAGE QUE QUISER---------if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') thenif getPlayerStorageValue(cid, stoFinish) >= 500 thenselfSay("Sorry, you already had done this quest.", cid)talkState[talkUser] = 0return trueendselfSay("Olá meu amigo, sou o NPC de trocas de Essences, me dê 50 Essences e lhe darei 1 Box que virá seu Pokemon! Diga YES para trocarmos.",cid)talkState[talkUser] = 1return trueelseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 1 thenif getPlayerItemCount(cid, need[1].id) < need[1].qt thenselfSay("Você não me trouxe todas as Essences...", cid)selfSay("Lembre-se, eu preciso de 50 Essences...", cid)talkState[talkUser] = 0return trueendfor i = 1, #need dodoPlayerRemoveItem(cid, need.id, need.qt)endfor i = 1, #rewards dodoPlayerAddItem(cid, rewards.id, rewards.qt)doPlayerAddExperience(cid, 0)endselfSay("Obrigado, tchau!", cid)setPlayerStorageValue(cid, stoFinish, 1)talkState[talkUser] = 0return trueendreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())OBS: Não testei
acho que esse da certo sim vo testar aq vlw jaja posto se funciono.
so como pedi la sera varios pokes mesmo que eu crie uma box pra cada shiny que eu quero trocar tem como esse npc trocar todas as box.
tipo 50 ecence zard > 1 box zard
50 escence toise > 1 box toise
tendeu o mesmo npc trocar varios itens por varias box.
agradeço dmais a ajuda de vcs ae vlw galera.
Foi mal, eu li depois
tem como sem ser por Box, mas eu tô meio ocupado...
ola amigo.
pode ser por box sim amis como falei ae teria que o mesmo npc tipo pedir
me de 50 escence zard e te do > uma box shiny charizard
se me der 50 escence toise te do > uma box toise e assim por diante.
tera uns 30 shiny ou mais pra ele fazer.
desde ja agradeço a qquer ajuda vlw.
Editado Outubro 13 por clebao666
info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

Testa o script que postei acima.acho que esse da certo sim vo testar aq vlw jaja posto se funciono.
so como pedi la sera varios pokes mesmo que eu crie uma box pra cada shiny que eu quero trocar tem como esse npc trocar todas as box.
tipo 50 ecence zard > 1 box zard
50 escence toise > 1 box toise
tendeu o mesmo npc trocar varios itens por varias box.
agradeço dmais a ajuda de vcs ae vlw galera.
ola amigo.
pode ser por box sim amis como falei ae teria que o mesmo npc tipo pedir
me de 50 escence zard e te do > uma box shiny charizard
se me der 50 escence toise te do > uma box toise e assim por diante.
tera uns 30 shiny ou mais pra ele fazer.
desde ja agradeço a qquer ajuda vlw.
Faltou o REP né ? rs, mas fico feliz em ter ajudado de alguma forma.
Testa o script que postei acima.
testado e aprovado. script sem erro e funfando legau apenas teria que ser refeita pra o mesmo npc poder trocar mais itens diferentes por pokes diferentes.
se puder me ajudar agradeço muito vlww ja dei rep++
info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

Só adicionar mais boxes no script boox.lua, e trocar os itens de trocas e as falas do NPC ^^
testado e aprovado. script sem erro e funfando legau apenas teria que ser refeita pra o mesmo npc poder trocar mais itens diferentes por pokes diferentes.
se puder me ajudar agradeço muito vlww ja dei rep++
Só adicionar mais boxes no script boox.lua, e trocar os itens de trocas e as falas do NPC ^^
tipo man se nao entendeu . as box e de boas criar mais umas 200 o foda e enfia um npc pra cada troca de itens por box tendeu. eu queria um npc que o cara fala hi help yes se ele tive o item escence zard ele ganha uma box de shiny zard , ja se ele tiver por exenplo um escence toise ae o proprio npc da pra ele uma box de shiny toise. tendeu senao vo ter que criar um npc e uma box pra cada shiny que eu va por pra trocar e pretendo por todos do server. se souber me ajudar agradeço dmaissss vlw ae man.
tipo man se nao entendeu . as box e de boas criar mais umas 200 o foda e enfia um npc pra cada troca de itens por box tendeu. eu queria um npc que o cara fala hi help yes se ele tive o item escence zard ele ganha uma box de shiny zard , ja se ele tiver por exenplo um escence toise ae o proprio npc da pra ele uma box de shiny toise. tendeu senao vo ter que criar um npc e uma box pra cada shiny que eu va por pra trocar e pretendo por todos do server. se souber me ajudar agradeço dmaissss vlw ae man.
local need = {
{id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE
}
local rewards = {
{id = IDDABOX, qt = 1}, --charizard BOX
}
local need = {
{id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE
{id = ID DAS ESSENCES2, qt = 50}, --ID DAS ESSENCES Blastoise, QUANTIDADE
}
local rewards = {
{id = IDDABOX, qt = 1}, --charizard BOX
{id = IDDABOX2, qt = 1}, --blastoise BOX
}
já tentou ?
local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX }local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE {id = ID DAS ESSENCES2, qt = 50}, --ID DAS ESSENCES Blastoise, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX {id = IDDABOX2, qt = 1}, --blastoise BOX }já tentou ?
desse jeito ae se o cara tem apenas 50 de um item o npc ja da todas as box de uma ves que tao na parte de baixo
no caso testei apenas duas do zard e toise e so tiro 50 das escences e ja foi dando as 2 box
tem que mudar a script ae so nao sei como
local trade_pokes, options = {
["Shiny Charizard"] = {itemid = ID_do_item, count = quantidade},
["Shiny Blastoise"] = {itemid = ID_do_item, count = quantidade},
}, {}
for poke_name, trade_info in pairs(trade_pokes) do
table.insert(options, poke_name.." - "..trade_info.count.."x "..getItemNameById(trade_info.itemid))
end
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
if msgcontains(msg:lower(), "help") or msgcontains(msg:lower(), "trade") then
selfSay("I can trade the following pokemons for the subsequent items. Which one do you wanna buy?", cid)
doPlayerPopupFYI(cid, "*** TRADEABLE POKEMONS ***\n\n"..table.concat(options, "\n"))
talkState[talkUser] = 1
elseif talkState[talkUser] == 1 then
local poke = trade_pokes[msg]
if poke then
if doPlayerRemoveItem(cid, poke.itemid, poke.count) then
selfSay("It was a pleasure to make bussiness with you! Make a good use of your new "..msg..".", cid)
addPokeToPlayer(cid, msg, 0, nil, "normal")
talkState[talkUser] = 0
else
selfSay("You do not have enough itens to buy this pokemon, sorry.", cid)
end
else
selfSay("Sorry, you probably wrote this pokemon's name wrong or I don't sell it. Make sure you're typing it in case-sensitive.")
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Outubro 15 por zipter98








info
Grupo: Artesão
Registrado: 09/10/13
Posts: 124
Reputação: +6
ola galera!
gostaria de uma ajuda na criação de um npc que troca x item por 1 pokemon exemplo:
escence zard x 50 >shiny charizard
escence toise x 50 >shiny blastoise
estarei colocando uns 40 pokes nesse npc .
agradeço dmais a ajuda dos companheiros ae do forum. vlw
uso base cyan by senhor