Postado Julho 21, 2015 10 anos Olá galera, precisava de um script que trocava itens em troca de diamonds e queria que essa compra seja feita através de falas. Ex: Hi,Bike,yes Meus trabalhos °Pacote de shinys da 3ª e 4ª geração http://www.tibiaking.com/forum/topic/37128-patch-pokemons-shinys-3%C2%AA-e-alguns-da-4%C2%AA-gera%C3%A7%C3%A3o/ °Como criar novos pokemons no pda http://www.tibiaking.com/forum/topic/37546-tutorial-como-criar-novos-pokemons-para-seu-servidor/#entry212787 °Script de boost stone do otpokemonhttp://www.tibiaking.com/forum/topic/37849-action-script-de-boost-stone-parecido-com-otpokemon/ °Fly só para vipshttp://www.tibiaking.com/forum/topic/40868-poketibia-fly-para-vips/
Postado Julho 21, 2015 10 anos Solução Em "Data/npc/scripts", arquivo.lua: local items = { -- [Nome do item] {id do item} {preço do item}. ["enforced helmet"] = {2502, 5}, ["enforced armor"] = {2503, 5} } local moeda = 6527 -- ID do diamond. local storage = 87595 -- Só altere caso essa esteja em uso. 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, "items") or msgcontains(msg, "Items") then local offer = '' for i, r in pairs(items) do offer = offer..i.."," end selfSay('Eu vendo: {'..offer..'} por {'..getItemNameById(moeda)..'}.', cid) talkState[talkUser] = 0 end local item = items[msg] if item then selfSay('Deseja comprar um {'..msg..'} por {'..item[2]..' '..getItemNameById(moeda)..'?}', cid) setPlayerStorageValue(cid, storage, tostring(msg)) talkState[talkUser] = 1 elseif msg == 'yes' and talkState[talkUser] == 1 then local stg = items[getPlayerStorageValue(cid, storage)] if stg then if getPlayerItemCount(cid, moeda) < stg[2] then selfSay('Você não tem '..stg[2]..' {'..getItemNameById(moeda)..'}.', cid) setPlayerStorageValue(cid, storage, -1) talkState[talkUser] = 0 else doPlayerRemoveItem(cid, moeda, stg[2]) doPlayerAddItem(cid, stg[1], 1) selfSay('Você comprou um {'..getPlayerStorageValue(cid, storage)..'} por {'..stg[2]..'} {'..getItemNameById(moeda)..'}.', cid) setPlayerStorageValue(cid, storage, -1) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Em "Data/npc", nome_do_npc.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="NOMEDONPC" script="data/npc/scripts/seller.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="138" head="57" body="59" legs="40" feet="76" addons="0"/> <parameters> <parameter key="message_greet" value="Olá, |PLAYERNAME|. Eu vendo alguns {items}, está interessado em algum?"/> </parameters> </npc> Está configurado para Tibia, mas basta você modificar os id's/nomes ao seu gosto! Créditos: Adriano SwaTT ➥ Regras | Seções OTServ | Seções BOT
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.