Ir para conteúdo
  • 0

Trocar de item por outro item


EddyHavaiano

Pergunta

Galera preciso de ajuda com um npc exemplo do npc

 

o npc pede 30 major token por 1 item que no caso do meu servidor baiak 10.1 e edita vai ser warzone earth rod e eu queria uma script configuravel que adicionasse mais items que nao e so um

 

REP +

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Fiz rapidinho aqui, qualquer erro, só postar:

XML (OBS: Não se esqueça de configurá-lo corretamente [no caso, looktype, head, body, name, etc])

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Nome do npc" script="tradenpc.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="1485" head="10" body="15" legs="20" feet="25"/>
 
<parameters>
<parameter key="message_greet" value="Ola, eu posso {trocar} alguns items por 30 Major Tokens."/>
</parameters>
 
</npc>
Crie um arquivo .lua em data/npc/scripts com nome tradenpc, e coloque nele o seguinte conteúdo:
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 t = {items = {xxx, yyy, zzz}, give_items = {xxx, yyy, zzz}}   
local cfg = {
    token_id = xxx,    --ID do Major Token.
    token_qnt = 30,    --Quantidade de Major Tokens que o player terá que dar pro NPC. 
}
    if msgcontains(msg, 'trocar') or msgcontains(msg, 'troca') then
       selfSay("Então, você gostaria de trocar "..token_qnt.." Major Tokens por x quantidade de x items?", cid)
       talkState[talkUser] = 1
       return true
    elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
        if getPlayerItemCount(cid, cfg.token_id) >= cfg.token_qnt then
            item = t.items
            qnt = t.give_items
            for a, b in pairs(t) do
                for i = 1, #item do
                    selfSay("Certo, aqui estão os items!", cid)
                    doPlayerRemoveItem(cid, cfg.token_id, cfg.token_qnt)
                    doPlayerAddItem(cid, item[i], qnt[i])
                    talkState[talkUser] = 0
                    return true
                end
            end
        else
            selfSay("Você não tem os items necessários...", cid)
            talkState[talkUser] = 0
        end
    end       
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Sobre a tabela t, mude em items os items que irá ganhar, e a quantidade em give_items. Por exemplo, você quer que o player receba os items de ID 2156 (4 unidades) e 2157(7 unidades). Então, a configuração ficaria assim: local t = {items = {2156, 2157}, give_items = {4, 7}} Se o ID do item fica na primeira posição da tabela items, então sua quantidade deve ficar na primeira posição da tabela give_items.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...