Ir para conteúdo

Featured Replies

  • Respostas 10
  • Visualizações 855
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • So volto tarde
    So volto tarde

    Tive de mudar o nome de "refiner" para "normal refiner", também corrigi alguns erros que deixei passar.    

Posted Images

Postado
  • Autor
49 minutos atrás, So volto tarde disse:

Prefere o shopwindow ou pela propria interação do NPC?

pela própria interação do npc seria mais facil pra mim xd

Postado

Sendo assim: 

 

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
   local config = {
        refinerid = 8301,
        qtdrefinerid = 100,
        
        grefinerid = 8303,
        qtdgrefinerid = 125,
        
        urefinerid = 8299,
        qtdurefinerid = 150,
        
        coinref = 9970,
        coingref = 2147,
        coinuref = 2144
    }
    
    if (msgcontains(msg, "refiner")) then
        selfSay('msg confirmação refiner? {yes}', cid)
        talkState[talkUser] = 1
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
    if (getPlayerItemCount(cid, config.coinref) >= config.qtdrefinerid) then
            doPlayerRemoveItem(cid, config.coinref, config.qtdrefinerid)
            doPlayerAddItem(cid, config.refinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg refiner', cid)
        else
            selfSay('voce nao tem '..config.coinref..' '..getItemNameById(config.refinerid), cid)
            talkState[talkUser] = 0
        end
        end
        
    if (msgcontains(msg, "great refiner")) then
        selfSay('msg confirmação great refiner? {yes}', cid)
        talkState[talkUser] = 2
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
    if (getPlayerItemCount(cid, config.coingref) >= config.qtdgrefinerid) then
            doPlayerRemoveItem(cid, config.coingref, config.qtdgrefinerid)
            doPlayerAddItem(cid, config.grefinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg great refiner', cid)
        else
            selfSay('voce nao tem '..config.coingref..' '..getItemNameById(config.grefinerid), cid)
            talkState[talkUser] = 0
        end
        end
        
    if (msgcontains(msg, "ultra refiner")) then
        selfSay('msg confirmação refiner? {yes}', cid)
        talkState[talkUser] = 3
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
    if (getPlayerItemCount(cid, config.coinuref) >= config.qtdurefinerid) then
            doPlayerRemoveItem(cid, config.coinuref, config.qtdurefinerid)
            doPlayerAddItem(cid, config.urefinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg refiner', cid)
        else
            selfSay('voce nao tem '..config.coinuref..' '..getItemNameById(config.urefinerid), cid)
            talkState[talkUser] = 0
        end
        end
        
        
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Todos os valores estão no array "config", em caso de erros ou duvidas só postar um tópico. Caso necessite, o xml em que usei para testes foi este:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="testes" script="testes.lua" walkinterval="0" floorchange="0">
    <health now="100" max="100"/>
    <look type="678" head="20" body="39" legs="45" feet="7" addons="0"/>
    <parameters>
        <parameter key="message_greet" value="a"/>    
    </parameters>
</npc>

 

Postado
  • Autor
9 horas atrás, So volto tarde disse:

Sendo assim: 

 

  Ocultar conteúdo

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
   local config = {
        refinerid = 8301,
        qtdrefinerid = 100,
        
        grefinerid = 8303,
        qtdgrefinerid = 125,
        
        urefinerid = 8299,
        qtdurefinerid = 150,
        
        coinref = 9970,
        coingref = 2147,
        coinuref = 2144
    }
    
    if (msgcontains(msg, "refiner")) then
        selfSay('msg confirmação refiner? {yes}', cid)
        talkState[talkUser] = 1
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
    if (getPlayerItemCount(cid, config.coinref) >= config.qtdrefinerid) then
            doPlayerRemoveItem(cid, config.coinref, config.qtdrefinerid)
            doPlayerAddItem(cid, config.refinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg refiner', cid)
        else
            selfSay('voce nao tem '..config.coinref..' '..getItemNameById(config.refinerid), cid)
            talkState[talkUser] = 0
        end
        end
        
    if (msgcontains(msg, "great refiner")) then
        selfSay('msg confirmação great refiner? {yes}', cid)
        talkState[talkUser] = 2
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
    if (getPlayerItemCount(cid, config.coingref) >= config.qtdgrefinerid) then
            doPlayerRemoveItem(cid, config.coingref, config.qtdgrefinerid)
            doPlayerAddItem(cid, config.grefinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg great refiner', cid)
        else
            selfSay('voce nao tem '..config.coingref..' '..getItemNameById(config.grefinerid), cid)
            talkState[talkUser] = 0
        end
        end
        
    if (msgcontains(msg, "ultra refiner")) then
        selfSay('msg confirmação refiner? {yes}', cid)
        talkState[talkUser] = 3
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
    if (getPlayerItemCount(cid, config.coinuref) >= config.qtdurefinerid) then
            doPlayerRemoveItem(cid, config.coinuref, config.qtdurefinerid)
            doPlayerAddItem(cid, config.urefinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg refiner', cid)
        else
            selfSay('voce nao tem '..config.coinuref..' '..getItemNameById(config.urefinerid), cid)
            talkState[talkUser] = 0
        end
        end
        
        
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Todos os valores estão no array "config", em caso de erros ou duvidas só postar um tópico. Caso necessite, o xml em que usei para testes foi este:

  Ocultar conteúdo

<?xml version="1.0" encoding="UTF-8"?>
<npc name="testes" script="testes.lua" walkinterval="0" floorchange="0">
    <health now="100" max="100"/>
    <look type="678" head="20" body="39" legs="45" feet="7" addons="0"/>
    <parameters>
        <parameter key="message_greet" value="a"/>    
    </parameters>
</npc>

 

Cara, digamos que tenha funcionado 50% kkkkk. Talvez eu não tenho configurado corretamenteo! (sou novo nisso)

Enfim, eu consegui comprar o Refiner, mas o Great ou o Ultra não deu.

 

 

npc.thumb.png.bb02bbc09dd9c20b61caf14303f4aacc.png

 

 

Postado

Tive de mudar o nome de "refiner" para "normal refiner", também corrigi alguns erros que deixei passar.

 

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
   local config = {
        refinerid = 8301,
        qtdrefinerid = 100,
        
        grefinerid = 8303,
        qtdgrefinerid = 125,
        
        urefinerid = 8299,
        qtdurefinerid = 150,
        
        coinref = 9970,
        coingref = 2147,
        coinuref = 2144
    }
    
    if (msgcontains(msg, "normal refiner")) then
        selfSay('msg confirmação refiner? {yes}', cid)
        talkState[talkUser] = 1
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
    if (getPlayerItemCount(cid, config.coinref) >= config.qtdrefinerid) then
            doPlayerRemoveItem(cid, config.coinref, config.qtdrefinerid)
            doPlayerAddItem(cid, config.refinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg refiner', cid)
        else
            selfSay('voce nao tem '..config.qtdrefinerid..' '..getItemNameById(config.coinref), cid)
            talkState[talkUser] = 0
        end
        end
        
    if (msgcontains(msg, "great refiner")) then
        selfSay('msg confirmação great refiner? {yes}', cid)
        talkState[talkUser] = 2
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
    if (getPlayerItemCount(cid, config.coingref) >= config.qtdgrefinerid) then
            doPlayerRemoveItem(cid, config.coingref, config.qtdgrefinerid)
            doPlayerAddItem(cid, config.grefinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg great refiner', cid)
        else
            selfSay('voce nao tem '..config.qtdgrefineridf..' '..getItemNameById(config.coingref), cid)
            talkState[talkUser] = 0
        end
        end
        
    if (msgcontains(msg, "ultra refiner")) then
        selfSay('msg confirmação refiner? {yes}', cid)
        talkState[talkUser] = 3
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
    if (getPlayerItemCount(cid, config.coinuref) >= config.qtdurefinerid) then
            doPlayerRemoveItem(cid, config.coinuref, config.qtdurefinerid)
            doPlayerAddItem(cid, config.urefinerid, 1)
            talkState[talkUser] = 0
            selfSay('troca completa msg refiner', cid)
        else
            selfSay('voce nao tem '..config.qtdurefinerid..' '..getItemNameById(config.coinuref), cid)
            talkState[talkUser] = 0
        end
        end
        
        
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo