Ir para conteúdo
  • Cadastre-se

(Resolvido)Modificar Npc de troca


Ir para solução Resolvido por thelifeofpbion,

Posts Recomendados

Primeiramente queria dizer Obrigado por entrar aqui, mesmo que não consiga resolver meu Problema.

Versão 8.60 tfs 0.4  derivado

 

Iaew Galerinha do TK, estou com um Script de um Npc que troca uma certa quantidade de itens por Outro.

oque eu preciso ?: preciso que o Npc em vez de pedir 1 item, ele peça 2 items.

Exe : para ganhar uma Fusion Armor, o player precisa entregar uma Goku Armor e 500 Golds.

 

Aqui vai o Script do Npc

Spoiler

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "fusion armor") then
        selfSay("Voce tem certeza que quer deseja fazer esta troca ?", cid)
        talkState[talkUser] = 1
    elseif (msgcontains(msg, "yes") and talkState[talkUser] == 1) and (getPlayerItemCount(cid, 2160) <= 499) then
        selfSay("Desculpe, voce precisa ter 500 God Coins.", cid)
        talkState[talkUser] = 1
    elseif (msgcontains(msg, "yes") and talkState[talkUser] == 1) and (getPlayerItemCount(cid, 2160) >= 500) then
        doPlayerRemoveItem(cid, 2160, 500)
        doPlayerAddItem(cid, 2159, 1)
        selfSay("Obrigado, Tome sua Fusion Armor !", cid)
        talkState[talkUser] = 0
    end
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Obg gente.

Link para o post
Compartilhar em outros sites

Seja mais especifico.

qual o id do item que o npc vai coletar?
é 2 itens com o mesmo id? ou são dois itens diferentes? qual o id deles?

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
6 minutos atrás, pablobion disse:

Seja mais especifico.

qual o id do item que o npc vai coletar?
é 2 itens com o mesmo id? ou são dois itens diferentes? qual o id deles?

esse meu Script o Noc só aceita 1 item. quero que ele aceite 2 items com IDS diferente. pq o player vai precisar dar um item e pagar uma certa quantia para trocar.

os ID vc pode por aleatório msm. que eu configuro aqui

 

 

Link para o post
Compartilhar em outros sites
5 minutos atrás, dissolima disse:

esse meu Script o Noc só aceita 1 item. quero que ele aceite 2 items com IDS diferente. pq o player vai precisar dar um item e pagar uma certa quantia para trocar.

os ID vc pode por aleatório msm. que eu configuro aqui

 

 


blz... dinheiro e item né? mais tarde eu vejo e te mando kk

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
  • Solução

Bom, veja se era isso que você precisava...
obs: não esquece de mudar os ids dos itens e mudar a quantidade que é retirada também, porque modifiquei para "2".

só uma pergunta... seu servidor existe moeda adicional? aquelas que depois de 1kk vira outra? 

E cara... não precisa usar <=499, você poderia ter usado apenas < 500 tendeu?

 

Spoiler

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "fusion armor") then
        selfSay("Voce tem certeza que quer deseja fazer esta troca ?", cid)
        talkState[talkUser] = 1
    elseif (msgcontains(msg, "yes") and talkState[talkUser] == 1) and (getPlayerItemCount(cid, 2160) < 2) or (getPlayerItemCount(cid, 10558) < 2)  then
        selfSay("Desculpe, voce precisa ter 500 God Coins e 2  nome do item.", cid)
        talkState[talkUser] = 1
    elseif (msgcontains(msg, "yes") and talkState[talkUser] == 1) and (getPlayerItemCount(cid, 2160) >= 2) and (getPlayerItemCount(cid, 10558) >= 2)  then
        doPlayerRemoveItem(cid, 2160, 2)
		doPlayerRemoveItem(cid, 10558, 2)
        doPlayerAddItem(cid, 2159, 1)
        selfSay("Obrigado, Tome sua Fusion Armor !", cid)
        talkState[talkUser] = 0
    end
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Editado por pablobion (veja o histórico de edições)

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
1 hora atrás, pablobion disse:

Bom, veja se era isso que você precisava...
obs: não esquece de mudar os ids dos itens e mudar a quantidade que é retirada também, porque modifiquei para "2".

só uma pergunta... seu servidor existe moeda adicional? aquelas que depois de 1kk vira outra? 

E cara... não precisa usar <=499, você poderia ter usado apenas < 500 tendeu?

 

  Mostrar conteúdo oculto


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "fusion armor") then
        selfSay("Voce tem certeza que quer deseja fazer esta troca ?", cid)
        talkState[talkUser] = 1
    elseif (msgcontains(msg, "yes") and talkState[talkUser] == 1) and (getPlayerItemCount(cid, 2160) < 2) or (getPlayerItemCount(cid, 10558) < 2)  then
        selfSay("Desculpe, voce precisa ter 500 God Coins e 2  nome do item.", cid)
        talkState[talkUser] = 1
    elseif (msgcontains(msg, "yes") and talkState[talkUser] == 1) and (getPlayerItemCount(cid, 2160) >= 2) and (getPlayerItemCount(cid, 10558) >= 2)  then
        doPlayerRemoveItem(cid, 2160, 2)
		doPlayerRemoveItem(cid, 10558, 2)
        doPlayerAddItem(cid, 2159, 1)
        selfSay("Obrigado, Tome sua Fusion Armor !", cid)
        talkState[talkUser] = 0
    end
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

não testei, más pelo que vi está funcionando perfeitamente! REP+

só irei fazer minhas modificações aqui. vlw

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo