Ir para conteúdo
  • Cadastre-se

(Resolvido)Erro ao falar trade com NPC


Ir para solução Resolvido por kasemaru1,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

TFS 1.3

 

Qual o motivo deste tópico? 

Erro no console que não consigo resolver

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

Sim, erro no console, imagem abaixo.

 

Você tem o código disponível? Se tiver publique-o aqui: 

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)        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 itemid = 10169 -- Novos points
local shopWindow = {}

local t = { -- [ID do item] e o preço que ele irá custar em points.
 [2260] = {price = 1}, -- blank rune 
 [21394] = {price = 10}, -- explode hearth
 [6574] = {price = 100}, -- chocolate bar 
 [36460] = {price = 150} -- infinity backpack
 }

 
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
    if  t[item] and getPlayerItemCount(cid, itemid) < t[item].price then
        selfSay("you do not have "..t[item].price.." Crystal Tokens.", cid)
    else
        doPlayerAddItem(cid, item)
        doPlayerRemoveItem(cid, itemid, (t[item].price))
        selfSay("Here you item", cid)
    end
    
return true
end

if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
    for var, ret in pairs(t) do
        table.insert(shopWindow, {itemId = var, subType = 0, buy = ret.quant, sell = 0, name = getItemNameById(var)})
    end
    openShopWindow(cid, shopWindow, onBuy, onSell)
end
    
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

distro.thumb.png.dda1816f6bba58d475767654eda568db.png

distro.png

Link para o post
Compartilhar em outros sites
19 horas atrás, kasemaru1 disse:

.Qual servidor ou website você utiliza como base? 

TFS 1.3

 

Qual o motivo deste tópico? 

Erro no console que não consigo resolver

 

Está surgindo algum erro? Se sim coloque-o aqui. 

 

Você tem o código disponível? Se tiver publique-o aqui: 

  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)        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 itemid = 10169 -- Novos points
local shopWindow = {}

local t = { -- [ID do item] e o preço que ele irá custar em points.
 [2260] = {price = 1}, -- blank rune 
 [21394] = {price = 10}, -- explode hearth
 [6574] = {price = 100}, -- chocolate bar 
 [36460] = {price = 150} -- infinity backpack
 }

 
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
    if  t[item] and getPlayerItemCount(cid, itemid) < t[item].price then
        selfSay("you do not have "..t[item].price.." Crystal Tokens.", cid)
    else
        doPlayerAddItem(cid, item)
        doPlayerRemoveItem(cid, itemid, (t[item].price))
        selfSay("Here you item", cid)
    end
    
return true
end

if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
    for var, ret in pairs(t) do
        table.insert(shopWindow, {itemId = var, subType = 0, buy = ret.quant, sell = 0, name = getItemNameById(var)})
    end
    openShopWindow(cid, shopWindow, onBuy, onSell)
end
    
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

distro.thumb.png.dda1816f6bba58d475767654eda568db.png

distro.png

Spoiler

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
function NpcHandler:isInRange(cid)
        local distance = getDistanceTo(cid) or -1
        if(distance == -1) then
            return false
        end

        return (distance <= self.talkRadius)
    end

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

npcHandler:addModule(FocusModule:new())
 

 

Talvez o erro estejá no arquivo XML do npc, você adicionou algum item novo?

Manda ai seu XML, antes testa o script acima. 

Link para o post
Compartilhar em outros sites
  • Solução
15 horas atrás, Nysman disse:

 

Talvez o erro estejá no arquivo XML do npc, você adicionou algum item novo?

Manda ai seu XML, antes testa o script acima. 

consegui arrumar, faltava uma , na lista de itens que ele vende e depois de colocar uma linha no compat.lua pra fazer parar de dar o erro do getItem

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