Ir para conteúdo
  • 0

-=[TFS]=- 0.3.6 - 8.60 - NPC Promotion ta Dando Erro no Console e Não Salva Vocação Fica de Primeira Com a Vocação Depois Quando Desloga e Loga Some Me Ajude Por Favor


Muvuka

Pergunta

-=[TFS]=- 0.3.6 - 8.60 - NPC Promotion ta Dando Erro no Console e Não Salva Vocação Fica de Primeira Com a Vocação Depois Quando Desloga e Loga Some

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local vocation = {
    [2] = 6,
    [3] = 7,
    [4] = 8
}

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 = cid
    msg = string.lower(msg)
    local level = 717217

    if isInArray({"promotion", "promot", "promo"}, msg) then
        selfSay('Voce precisa ter 100 [VIP COINS] e estar no level 717217!', cid)
        talkState[talkUser] = 1
    elseif msg == "yes" and talkState[talkUser] == 1 then
        local playerVocation = getPlayerVocation(cid)
        if vocation[playerVocation] then
            if getPlayerLevel(cid) >= level then
                if getPlayerItemCount(cid, 11192) >= 100 then
                    doPlayerRemoveItem(cid, 11192, 100)
                    local newVocationId = vocation[playerVocation]
                    doPlayerSetVocation(cid, newVocationId)
                    doSendMagicEffect(getPlayerPosition(cid), 12)
                    selfSay("Parabens, voce foi promovido!", cid)
                else
                    selfSay("Voce nao tem 100 [VIP COINS] suficientes para ser promovido.", cid)
                end
            else
                selfSay("Desculpe, voce precisa estar no level " .. level .. " ou acima para ser promovido!", cid)
            end
        else
            selfSay("Desculpe, voce não pode receber promocao.", cid)
        end
        talkState[talkUser] = 0
    end

    return true
end

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

 

data/npc/scripts/promotion.lua:15: in function <data/npc/scripts/promotion.lua:15>

[20/07/2024 08:57:34] [Error - Npc interface] 
[20/07/2024 08:57:34] data/npc/scripts/promotion.lua:onThink
[20/07/2024 08:57:34] Description: 
[20/07/2024 08:57:34] (luaGetNpcDistanceTo) Thing not found

[20/07/2024 08:57:34] [Error - Npc interface] 
[20/07/2024 08:57:35] data/npc/scripts/promotion.lua:onThink
[20/07/2024 08:57:35] Description: 
[20/07/2024 08:57:35] (luaGetCreatureName) Creature not found

[20/07/2024 08:57:35] [Error - Npc interface] 
[20/07/2024 08:57:35] data/npc/scripts/promotion.lua:onThink
[20/07/2024 08:57:35] Description: 
[20/07/2024 08:57:35] data/npc/lib/npcsystem/npchandler.lua:301: bad argument #3 to 'gsub' (string/function/table expected)
[20/07/2024 08:57:35] stack traceback:
[20/07/2024 08:57:35] 	[C]: in function 'gsub'
[20/07/2024 08:57:35] 	data/npc/lib/npcsystem/npchandler.lua:301: in function 'parseMessage'
[20/07/2024 08:57:35] 	data/npc/lib/npcsystem/npchandler.lua:538: in function 'onWalkAway'
[20/07/2024 08:57:35] 	data/npc/lib/npcsystem/npchandler.lua:473: in function 'onThink'
[20/07/2024 08:57:35] 	data/npc/scripts/promotion.lua:15: in function <data/npc/scripts/promotion.lua:15>
Editado por Muvuka
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 1

A variável talkUser foi ajustada para garantir que a conversa seja atribuída corretamente ao jogador.
substitua:

local talkUser = cid


por:

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid


A lógica para verificar e atualizar a vocação e o nível do jogador foi revisada para garantir que esteja funcionando corretamente.
 

if isInArray({"promotion", "promot", "promo"}, msg) then
    selfSay('Você precisa ter 100 [VIP COINS] e estar no level 717217!', cid)
    talkState[talkUser] = 1
elseif msg == "yes" and talkState[talkUser] == 1 then
    local playerVocation = getPlayerVocation(cid)
    if vocation[playerVocation] then
        if getPlayerLevel(cid) >= level then
            if getPlayerItemCount(cid, 11192) >= 100 then
                doPlayerRemoveItem(cid, 11192, 100)
                local newVocationId = vocation[playerVocation]
                doPlayerSetVocation(cid, newVocationId)
                doSendMagicEffect(getPlayerPosition(cid), 12)
                selfSay("Parabéns, você foi promovido!", cid)
            else
                selfSay("Você não tem 100 [VIP COINS] suficientes para ser promovido.", cid)
            end
        else
            selfSay("Desculpe, você precisa estar no level " .. level .. " ou acima para ser promovido!", cid)
        end
    else
        selfSay("Desculpe, você não pode receber promoção.", cid)
    end
    talkState[talkUser] = 0
end



script completo corrigido:
 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local vocation = {
    [2] = 6,
    [3] = 7,
    [4] = 8
}

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
    msg = string.lower(msg)
    local level = 717217

    if isInArray({"promotion", "promot", "promo"}, msg) then
        selfSay('Você precisa ter 100 [VIP COINS] e estar no level 717217!', cid)
        talkState[talkUser] = 1
    elseif msg == "yes" and talkState[talkUser] == 1 then
        local playerVocation = getPlayerVocation(cid)
        if vocation[playerVocation] then
            if getPlayerLevel(cid) >= level then
                if getPlayerItemCount(cid, 11192) >= 100 then
                    doPlayerRemoveItem(cid, 11192, 100)
                    local newVocationId = vocation[playerVocation]
                    doPlayerSetVocation(cid, newVocationId)
                    doSendMagicEffect(getPlayerPosition(cid), 12)
                    selfSay("Parabéns, você foi promovido!", cid)
                else
                    selfSay("Você não tem 100 [VIP COINS] suficientes para ser promovido.", cid)
                end
            else
                selfSay("Desculpe, você precisa estar no level " .. level .. " ou acima para ser promovido!", cid)
            end
        else
            selfSay("Desculpe, você não pode receber promoção.", cid)
        end
        talkState[talkUser] = 0
    end

    return true
end

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

 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...