Ir para conteúdo
  • Cadastre-se

comando /reload pelo npc


Posts Recomendados

Boa noite, estou tentando encontrar uma maneira de contornar um problema em meu servidor, gostaria de saber se é possível e se alguém sabe como faz. Eu queria fazer um NPC Reload, e o colocaria em um lugar com porta com storage, para apenas tutores ou players com determinado storage pudessem entrar e pedir pro npc fazer um reload no server em caso de algum bug com npc, como por exemplo: /reload npc

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


        if isPremium then
        
                if(msgcontains(msg, 'reload')) then
                    npcHandler:say('You need reload server?', cid)
                    talkState[cid] = 1
                    elseif(msgcontains(msg, 'yes') and (talkState[cid] == 1)) then
                    npcHandler:say('/reload npc', cid)
                                        doSendMagicEffect(getPlayerPosition(cid), 66)



                    talkState[cid] = 0        
                else    
                    npcHandler:say('You don\'t have permission to reload.', cid)
                    talkState[cid] = 0    

                    end


  end

    return true
end
npcHandler:setMessage(MESSAGE_GREET, "Hello!")
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o post
Compartilhar em outros sites
  • 1 month later...

Boa noite, estou tentando encontrar uma maneira de contornar um problema em meu servidor, gostaria de saber se é possível e se alguém sabe como faz. Eu queria fazer um NPC Reload, e o colocaria em um lugar com porta com storage, para apenas tutores ou players com determinado storage pudessem entrar e pedir pro npc fazer um reload no server em caso de algum bug com npc, como por exemplo: /reload npc

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

        if isPremium then

        

                if(msgcontains(msg, 'reload')) then

                    npcHandler:say('You need reload server?', cid)

                    talkState[cid] = 1

                    elseif(msgcontains(msg, 'yes') and (talkState[cid] == 1)) then

                    npcHandler:say('/reload npc', cid)

                                        doSendMagicEffect(getPlayerPosition(cid), 66)

                    talkState[cid] = 0        

                else    

                    npcHandler:say('You don\'t have permission to reload.', cid)

                    talkState[cid] = 0    

                    end

  end

    return true

end

npcHandler:setMessage(MESSAGE_GREET, "Hello!")

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Por que você não faz por globalevents...

no meu caso tive um problema com mods e fiz o reload dele no globalevents

 

não sou scripter nem nada então...

o meu ta assim...

 

em globalevents/scripts reload.lua

local reloadInfo = {
	{RELOAD_MODS},
}
function onThink(interval, lastExecution)
   for i=1, #reloadInfo do
	doReloadInfo(RELOAD_MODS)
   end
   return true
end

e em globalevents.xml

<globalevent name="mods" interval="1800" event="script" value="reload.lua"/>

ai no seu caso você só trocaria o RELOAD_MODS pelo RELOAD_NPCS

Editado por lrickes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Por que você não faz por globalevents...

no meu caso tive um problema com mods e fiz o reload dele no globalevents

 

não sou scripter nem nada então...

o meu ta assim...

 

em globalevents/scripts reload.lua

local reloadInfo = {
	{RELOAD_MODS},
}
function onThink(interval, lastExecution)
   for i=1, #reloadInfo do
	doReloadInfo(RELOAD_MODS)
   end
   return true
end

e em globalevents.xml

<globalevent name="mods" interval="1800" event="script" value="reload.lua"/>

ai no seu caso você só trocaria o RELOAD_MODS pelo RELOAD_NPCS

Cara, algo de errado não está certo no seu script... Da uma revisada nesse(editei o seu):

local reloadInfo = {
    RELOAD_MODS,
}

function onThink(interval, lastExecution)
    for i = 1, #reloadInfo do
        doReloadInfo(reloadInfo[i])
    end
    return true
end

Olha, acho que isso resolve seu npc, eu não mexo com npc a muito tempo...

 

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

local reloads = {
    ["mods"] = RELOAD_MODS,
    ["npcs"] = RELOAD_NPCS,
    
}


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 = msg:lower()
    
    if getPlayerStorageValue(cid, storage) <= 0 or getPlayerGroupId(cid) <= 1 then
        npcHandler:say('You don\'t have permission to reload.', cid)
        talkState[talkUser] = 0 
    elseif talkState[talkUser] <= 0 and msgcontains(msg, 'reload') then
        local str = ""
        for k,v in pairs(reloads) do
            str = str..k..", "
        end
        str = str:sub(1, #str-2)
        npcHandler:say('Do you want to reload what('..str..')?', cid)
        talkState[talkUser] = 1
    elseif talkState[talkUser] == 1 and reloads[msg] then
        doReloadInfo(reloads[msg])
        doSendMagicEffect(getPlayerPosition(cid), 66)
        talkState[talkUser] = 0 
    else
        npcHandler:say('What???', cid)
    end
    return true
end
npcHandler:setMessage(MESSAGE_GREET, "Hello!")
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado por Snowsz (veja o histórico de edições)
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo