Ir para conteúdo
  • Cadastre-se

Normal [Resolvido] Como mudar o idioma dos npcs nas sources


Posts Recomendados

Olá, gostaria de saber como arrumo isso, se estiver na área errada por favor, me corrijam!


02:54 [ADM] Heroes: hi

02:55 Bander: Hi [ADM] Heroes, you will lose a lot if you die without Band Of Loss, say trade and check our prices.
02:55 [ADM] Heroes [100]: trade
02:55 Bander: Essa é minha oferta, [ADM] Heroes. Deseja algo?   <<<<<<<<<<<<<<<<<<<<<<<< Queria tirar isso daqui!

 

Citar

<?xml version="1.0" encoding="UTF-8"?> 
<npc name="Bander" script="data/npc/scripts/travel.lua" floorchange="0" walkinterval="3000" >
    <health now="100" max="100"/> 
    <look type="304"/> 
    <parameters> 
        <parameter key="module_shop" value="1"/>
        <parameter key="message_greet" value="Hi |PLAYERNAME|, you will lose a lot if you die without Band Of Loss, say {trade} and check our prices." />
        <parameter key="shop_buyable" value="band of loss,6301,50000"/> 
        <parameter key="message_farewell" value="Good bye, |PLAYERNAME|!" />
        <parameter key="message_walkaway" value="How Rude!" />
    </parameters> 
</npc> 

 

não importa em qual script eu coloque, sempre que digo (TRADE) aparece essa frase!

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

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

npcHandler:addModule(FocusModule:new())

 

eu troquei as sources e mesmo assim o problema continuou :/

Passei a madrugada inteira procurando o erro, para que ninguém tenha a mesma dúvida o problema foi resolvido na pasta npc/lib/npcsystem/npchandler 

Citar

-- Advanced NPC System (Created by Jiddo),
-- Modified by TheForgottenServer Team.

if(NpcHandler == nil) then
    -- Constant talkdelay behaviors.
    TALKDELAY_NONE = 0 -- No talkdelay. Npc will reply immedeatly.
    TALKDELAY_ONTHINK = 1 -- Talkdelay handled through the onThink callback function. (Default)
    TALKDELAY_EVENT = 2 -- Not yet implemented

    -- Currently applied talkdelay behavior. TALKDELAY_ONTHINK is default.
    NPCHANDLER_TALKDELAY = TALKDELAY_ONTHINK

    -- Constant conversation behaviors.
    CONVERSATION_DEFAULT = 0 -- Conversation through default window, like it was before 8.2 update.
    CONVERSATION_PRIVATE = 1 -- Conversation through NPCs chat window, as of 8.2 update. (Default)
        --Small Note: Private conversations also means the NPC will use multi-focus system.

    -- Currently applied conversation behavior. CONVERSATION_PRIVATE is default.
    NPCHANDLER_CONVBEHAVIOR = CONVERSATION_PRIVATE

    -- Constant indexes for defining default messages.
    MESSAGE_GREET             = 1 -- When the player greets the npc.
    MESSAGE_FAREWELL         = 2 -- When the player unGreets the npc.
    MESSAGE_BUY             = 3 -- When the npc asks the player if he wants to buy something.
    MESSAGE_ONBUY             = 4 -- When the player successfully buys something via talk.
    MESSAGE_BOUGHT            = 5 -- When the player bought something through the shop window.
    MESSAGE_SELL             = 6 -- When the npc asks the player if he wants to sell something.
    MESSAGE_ONSELL             = 7 -- When the player successfully sells something via talk.
    MESSAGE_SOLD            = 8 -- When the player sold something through the shop window.
    MESSAGE_MISSINGMONEY        = 9 -- When the player does not have enough money.
    MESSAGE_NEEDMONEY        = 10 -- Same as above, used for shop window.
    MESSAGE_MISSINGITEM        = 11 -- When the player is trying to sell an item he does not have.
    MESSAGE_NEEDITEM        = 12 -- Same as above, used for shop window.
    MESSAGE_NEEDSPACE         = 13 -- When the player don't have any space to buy an item
    MESSAGE_NEEDMORESPACE        = 14 -- When the player has some space to buy an item, but not enough space
    MESSAGE_IDLETIMEOUT        = 15 -- When the player has been idle for longer then idleTime allows.
    MESSAGE_WALKAWAY        = 16 -- When the player walks out of the talkRadius of the npc.
    MESSAGE_DECLINE            = 17 -- When the player says no to something.
    MESSAGE_SENDTRADE        = 18 -- When the npc sends the trade window to the player
    MESSAGE_NOSHOP            = 19 -- When the npc's shop is requested but he doesn't have any
    MESSAGE_ONCLOSESHOP        = 20 -- When the player closes the npc's shop window
    MESSAGE_ALREADYFOCUSED        = 21 -- When the player already has the focus of this npc.
    MESSAGE_PLACEDINQUEUE        = 22 -- When the player has been placed in the costumer queue.

    -- Constant indexes for callback functions. These are also used for module callback ids.
    CALLBACK_CREATURE_APPEAR     = 1
    CALLBACK_CREATURE_DISAPPEAR    = 2
    CALLBACK_CREATURE_SAY         = 3
    CALLBACK_ONTHINK         = 4
    CALLBACK_GREET             = 5
    CALLBACK_FAREWELL         = 6
    CALLBACK_MESSAGE_DEFAULT     = 7
    CALLBACK_PLAYER_ENDTRADE     = 8
    CALLBACK_PLAYER_CLOSECHANNEL    = 9
    CALLBACK_ONBUY            = 10
    CALLBACK_ONSELL            = 11

    -- Addidional module callback ids
    CALLBACK_MODULE_INIT        = 12
    CALLBACK_MODULE_RESET        = 13

    -- Constant strings defining the keywords to replace in the default messages.
    TAG_PLAYERNAME = '|PLAYERNAME|'
    TAG_ITEMCOUNT = '|ITEMCOUNT|'
    TAG_TOTALCOST = '|TOTALCOST|'
    TAG_ITEMNAME = '|ITEMNAME|'
    TAG_QUEUESIZE = '|QUEUESIZE|'

    NpcHandler = {
        keywordHandler = nil,
        focuses = nil,
        talkStart = nil,
        idleTime = 300,
        talkRadius = 3,
        talkDelayTime = 1, -- Seconds to delay outgoing messages.
        queue = nil,
        talkDelay = nil,
        callbackFunctions = nil,
        modules = nil,
        shopItems = nil, -- They must be here since ShopModule uses "static" functions
        messages = {
            -- These are the default replies of all npcs. They can/should be changed individually for each npc.
            [MESSAGE_GREET]     = 'Bem vindo, |PLAYERNAME|! Eu estive esperando voce!',
            [MESSAGE_FAREWELL]     = 'Adeus, |PLAYERNAME|!',
            [MESSAGE_BUY]         = 'Voce deseja comprar |ITEMCOUNT| |ITEMNAME| por |TOTALCOST| gold coins?',
            [MESSAGE_ONBUY]     = 'Adeus, volte quando quiser.',
            [MESSAGE_BOUGHT]     = 'Bought |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.',
            [MESSAGE_SELL]         = 'Voce deseja vender |ITEMCOUNT| |ITEMNAME| por |TOTALCOST| gold coins?',
            [MESSAGE_ONSELL]     = 'Thank you for this |ITEMNAME|, |PLAYERNAME| gold.',
            [MESSAGE_SOLD]         = 'Sold |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.',
            [MESSAGE_MISSINGMONEY]    = 'Desculpe, voce não tem nenhum dinheiro.',
            [MESSAGE_NEEDMONEY]     = 'Voce não tem dinheiro suficiente.',
            [MESSAGE_MISSINGITEM]     = 'You don\'t even have that item, |PLAYERNAME|!',
            [MESSAGE_NEEDITEM]    = 'Voce não tem este objeto.',
            [MESSAGE_NEEDSPACE]    = 'Voce não tem cap suficiente.',
            [MESSAGE_NEEDMORESPACE]    = 'Voce não tem capacidade para todos os itens.',
            [MESSAGE_IDLETIMEOUT]     = 'Próximo, por favor!',
            [MESSAGE_WALKAWAY]     = 'Até mais!',
            [MESSAGE_DECLINE]    = 'Not good enough, is it... ?',
            [MESSAGE_SENDTRADE]    = 'Essa é minha oferta, |PLAYERNAME|. Deseja algo?',
            [MESSAGE_NOSHOP]    = 'Desculpe, eu não comercializo nada.',
            [MESSAGE_ONCLOSESHOP]    = 'Obrigado, volte sempre que precisar.',
            [MESSAGE_ALREADYFOCUSED]= '|PLAYERNAME|! Já estou falando com voce...',
            [MESSAGE_PLACEDINQUEUE] = '|PLAYERNAME|, please wait for your turn. There are |QUEUESIZE| customers before you.'
        }
    }

    -- Creates a new NpcHandler with an empty callbackFunction stack.
    function NpcHandler:new(keywordHandler)
        local obj = {}
        obj.callbackFunctions = {}
        obj.modules = {}
        if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
            obj.focuses = {}
            obj.talkStart = {}
        else
            obj.queue = Queue:new(obj)
            obj.focuses = 0
            obj.talkStart = 0
        end
        obj.talkDelay = {}
        obj.keywordHandler = keywordHandler
        obj.messages = {}
        obj.shopItems = {}

        setmetatable(obj.messages, self.messages)
        self.messages.__index = self.messages

        setmetatable(obj, self)
        self.__index = self
        return obj
    end

    -- Re-defines the maximum idle time allowed for a player when talking to this npc.
    function NpcHandler:setMaxIdleTime(newTime)
        self.idleTime = newTime
    end

    -- Attackes a new keyword handler to this npchandler
    function NpcHandler:setKeywordHandler(newHandler)
        self.keywordHandler = newHandler
    end

    -- Function used to change the focus of this npc.
    function NpcHandler:addFocus(newFocus)
        if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
            if(self:isFocused(newFocus)) then
                return
            end

            table.insert(self.focuses, newFocus)
        else
            self.focuses = newFocus
        end

        self:updateFocus()
    end
    NpcHandler.changeFocus = NpcHandler.addFocus --"changeFocus" looks better for CONVERSATION_DEFAULT

    -- Function used to verify if npc is focused to certain player
    function NpcHandler:isFocused(focus)
        if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
            for k,v in pairs(self.focuses) do
                if v == focus then
                    return true
                end
            end

            return false
        end

        return (self.focuses == focus)
    end

    -- This function should be called on each onThink and makes sure the npc faces the player it is talking to.
    --    Should also be called whenever a new player is focused.
    function NpcHandler:updateFocus()
        if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
            for pos, focus in pairs(self.focuses) do
                if(focus ~= nil) then
                    doNpcSetCreatureFocus(focus)
                    return
                end
            end

            doNpcSetCreatureFocus(0)
        else
            doNpcSetCreatureFocus(self.focuses)
        end
    end

    -- Used when the npc should un-focus the player.
    function NpcHandler:releaseFocus(focus)
        if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
            if(not self:isFocused(focus)) then
                return
            end

            local pos = nil
            for k,v in pairs(self.focuses) do
                if v == focus then
                    pos = k
                end
            end
            table.remove(self.focuses, pos)
            self.talkStart[focus] = nil
            closeShopWindow(focus) --Even if it can not exist, we need to prevent it.
            self:updateFocus()
        else
            closeShopWindow(focus)
            self:changeFocus(0)
        end
    end

    -- Returns the callback function with the specified id or nil if no such callback function exists.
    function NpcHandler:getCallback(id)
        local ret = nil
        if(self.callbackFunctions ~= nil) then
            ret = self.callbackFunctions[id]
        end

        return ret
    end

    -- Changes the callback function for the given id to callback.
    function NpcHandler:setCallback(id, callback)
        if(self.callbackFunctions ~= nil) then
            self.callbackFunctions[id] = callback
        end
    end

    -- Adds a module to this npchandler and inits it.
    function NpcHandler:addModule(module)
        if(self.modules == nil or module == nil) then
            return false
        end

        module:init(self)
        if(module.parseParameters ~= nil) then
            module:parseParameters()
        end

        table.insert(self.modules, module)
        return true
    end

    -- Calls the callback function represented by id for all modules added to this npchandler with the given arguments.
    function NpcHandler:processModuleCallback(id, ...)
        local ret = true
        for i, module in pairs(self.modules) do
            local tmpRet = true
            if(id == CALLBACK_CREATURE_APPEAR and module.callbackOnCreatureAppear ~= nil) then
                tmpRet = module:callbackOnCreatureAppear(unpack(arg))
            elseif(id == CALLBACK_CREATURE_DISAPPEAR and module.callbackOnCreatureDisappear ~= nil) then
                tmpRet = module:callbackOnCreatureDisappear(unpack(arg))
            elseif(id == CALLBACK_CREATURE_SAY and module.callbackOnCreatureSay ~= nil) then
                tmpRet = module:callbackOnCreatureSay(unpack(arg))
            elseif(id == CALLBACK_PLAYER_ENDTRADE and module.callbackOnPlayerEndTrade ~= nil) then
                tmpRet = module:callbackOnPlayerEndTrade(unpack(arg))
            elseif(id == CALLBACK_PLAYER_CLOSECHANNEL and module.callbackOnPlayerCloseChannel ~= nil) then
                tmpRet = module:callbackOnPlayerCloseChannel(unpack(arg))
            elseif(id == CALLBACK_ONBUY and module.callbackOnBuy ~= nil) then
                tmpRet = module:callbackOnBuy(unpack(arg))
            elseif(id == CALLBACK_ONSELL and module.callbackOnSell ~= nil) then
                tmpRet = module:callbackOnSell(unpack(arg))
            elseif(id == CALLBACK_ONTHINK and module.callbackOnThink ~= nil) then
                tmpRet = module:callbackOnThink(unpack(arg))
            elseif(id == CALLBACK_GREET and module.callbackOnGreet ~= nil) then
                tmpRet = module:callbackOnGreet(unpack(arg))
            elseif(id == CALLBACK_FAREWELL and module.callbackOnFarewell ~= nil) then
                tmpRet = module:callbackOnFarewell(unpack(arg))
            elseif(id == CALLBACK_MESSAGE_DEFAULT and module.callbackOnMessageDefault ~= nil) then
                tmpRet = module:callbackOnMessageDefault(unpack(arg))
            elseif(id == CALLBACK_MODULE_RESET and module.callbackOnModuleReset ~= nil) then
                tmpRet = module:callbackOnModuleReset(unpack(arg))
            end

            if(not tmpRet) then
                ret = false
                break
            end
        end

        return ret
    end

    -- Returns the message represented by id.
    function NpcHandler:getMessage(id)
        local ret = nil
        if(self.messages ~= nil) then
            ret = self.messages[id]
        end

        return ret
    end

    -- Changes the default response message with the specified id to newMessage.
    function NpcHandler:setMessage(id, newMessage)
        if(self.messages ~= nil) then
            self.messages[id] = newMessage
        end
    end

    -- Translates all message tags found in msg using parseInfo
    function NpcHandler:parseMessage(msg, parseInfo)
        local ret = msg
        for search, replace in pairs(parseInfo) do
            ret = string.gsub(ret, search, replace)
        end

        return ret
    end

    -- Makes sure the npc un-focuses the currently focused player
    function NpcHandler:unGreet(cid)
        if(not self:isFocused(cid)) then
            return
        end

        local callback = self:getCallback(CALLBACK_FAREWELL)
        if(callback == nil or callback(cid)) then
            if(self:processModuleCallback(CALLBACK_FAREWELL)) then
                if(self.queue == nil or not self.queue:greetNext()) then
                    local msg = self:getMessage(MESSAGE_FAREWELL)
                    local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid) }
                    msg = self:parseMessage(msg, parseInfo)

                    self:say(msg, cid)
                    self:releaseFocus(cid)
                    self:say(msg)
                end
            end
        end
    end

    -- Greets a new player.
    function NpcHandler:greet(cid)
        if(cid ~= 0) then
            local callback = self:getCallback(CALLBACK_GREET)
            if(callback == nil or callback(cid)) then
                if(self:processModuleCallback(CALLBACK_GREET, cid)) then
                    local msg = self:getMessage(MESSAGE_GREET)
                    local parseInfo = { [TAG_PLAYERNAME] = getCreatureName(cid) }
                    msg = self:parseMessage(msg, parseInfo)

                    self:say(msg)
                    self:addFocus(cid)
                    self:say(msg, cid)
                end
            end
        end
    end

    -- Handles onCreatureAppear events. If you with to handle this yourself, please use the CALLBACK_CREATURE_APPEAR callback.
    function NpcHandler:onCreatureAppear(cid)
        local callback = self:getCallback(CALLBACK_CREATURE_APPEAR)
        if(callback == nil or callback(cid)) then
            if(self:processModuleCallback(CALLBACK_CREATURE_APPEAR, cid)) then
                --
            end
        end
    end

    -- Handles onCreatureDisappear events. If you with to handle this yourself, please use the CALLBACK_CREATURE_DISAPPEAR callback.
    function NpcHandler:onCreatureDisappear(cid)
        local callback = self:getCallback(CALLBACK_CREATURE_DISAPPEAR)
        if(callback == nil or callback(cid)) then
            if(self:processModuleCallback(CALLBACK_CREATURE_DISAPPEAR, cid)) then
                if(self:isFocused(cid)) then
                    self:unGreet(cid)
                end
            end
        end
    end

    -- Handles onCreatureSay events. If you with to handle this yourself, please use the CALLBACK_CREATURE_SAY callback.
    function NpcHandler:onCreatureSay(cid, class, msg)
        local callback = self:getCallback(CALLBACK_CREATURE_SAY)
        if(callback == nil or callback(cid, class, msg)) then
            if(self:processModuleCallback(CALLBACK_CREATURE_SAY, cid, class, msg)) then
                if(not self:isInRange(cid)) then
                    return
                end

                if(self.keywordHandler ~= nil) then
                    if((self:isFocused(cid) and (class == TALKTYPE_PRIVATE_PN or NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT)) or not self:isFocused(cid)) then
                        local ret = self.keywordHandler:processMessage(cid, msg)
                        if(not ret) then
                            local callback = self:getCallback(CALLBACK_MESSAGE_DEFAULT)
                            if(callback ~= nil and callback(cid, class, msg)) then
                                if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
                                    self.talkStart[cid] = os.time()
                                else
                                    self.talkStart = os.time()
                                end
                            end
                        else
                            if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
                                self.talkStart[cid] = os.time()
                            else
                                self.talkStart = os.time()
                            end
                        end
                    end
                end
            end
        end
    end

    -- Handles onPlayerEndTrade events. If you wish to handle this yourself, use the CALLBACK_PLAYER_ENDTRADE callback.
    function NpcHandler:onPlayerEndTrade(cid)
        local callback = self:getCallback(CALLBACK_PLAYER_ENDTRADE)
        if(callback == nil or callback(cid)) then
            if(self:processModuleCallback(CALLBACK_PLAYER_ENDTRADE, cid, class, msg)) then
                if(self:isFocused(cid)) then
                    local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid) }
                    local msg = self:parseMessage(self:getMessage(MESSAGE_ONCLOSESHOP), parseInfo)
                    self:say(msg, cid)
                end
            end
        end
    end

    -- Handles onPlayerCloseChannel events. If you wish to handle this yourself, use the CALLBACK_PLAYER_CLOSECHANNEL callback.
    function NpcHandler:onPlayerCloseChannel(cid)
        local callback = self:getCallback(CALLBACK_PLAYER_CLOSECHANNEL)
        if(callback == nil or callback(cid)) then
            if(self:processModuleCallback(CALLBACK_PLAYER_CLOSECHANNEL, cid, class, msg)) then
                if(self:isFocused(cid)) then
                    self:unGreet(cid)
                end
            end
        end
    end

    -- Handles onBuy events. If you wish to handle this yourself, use the CALLBACK_ONBUY callback.
    function NpcHandler:onBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks)
        local callback = self:getCallback(CALLBACK_ONBUY)
        if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then
            if(self:processModuleCallback(CALLBACK_ONBUY, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then
                --
            end
        end
    end

    -- Handles onSell events. If you wish to handle this yourself, use the CALLBACK_ONSELL callback.
    function NpcHandler:onSell(cid, itemid, subType, amount, ignoreCap, inBackpacks)
        local callback = self:getCallback(CALLBACK_ONSELL)
        if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then
            if(self:processModuleCallback(CALLBACK_ONSELL, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then
                --
            end
        end
    end

    -- Handles onThink events. If you wish to handle this yourself, please use the CALLBACK_ONTHINK callback.
    function NpcHandler:onThink()
        local callback = self:getCallback(CALLBACK_ONTHINK)
        if(callback == nil or callback()) then
            if(NPCHANDLER_TALKDELAY == TALKDELAY_ONTHINK) then
                if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
                    for cid, talkDelay in pairs(self.talkDelay) do
                        if(talkDelay.time ~= nil and talkDelay.message ~= nil and os.time() >= talkDelay.time) then
                            selfSay(talkDelay.message, cid)
                            self.talkDelay[cid] = nil
                        end
                    end
                elseif(self.talkDelay.time ~= nil and self.talkDelay.message ~= nil and os.time() >= self.talkDelay.time) then
                    selfSay(self.talkDelay.message)
                    self.talkDelay.time = nil
                    self.talkDelay.message = nil
                end
            end

            if(self:processModuleCallback(CALLBACK_ONTHINK)) then
                if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
                    for pos, focus in pairs(self.focuses) do
                        if(focus ~= nil) then
                            if(not self:isInRange(focus)) then
                                self:onWalkAway(focus)
                            elseif((os.time() - self.talkStart[focus]) > self.idleTime) then
                                self:unGreet(focus)
                            else
                                self:updateFocus()
                            end
                        end
                    end
                elseif(self.focuses ~= 0) then
                    if(not self:isInRange(self.focuses)) then
                        self:onWalkAway(self.focuses)
                    elseif(os.time()-self.talkStart > self.idleTime) then
                        self:unGreet(self.focuses)
                    else
                        self:updateFocus()
                    end
                end
            end
        end
    end

    -- Tries to greet the player with the given cid.
    function NpcHandler:onGreet(cid)
        if(self:isInRange(cid)) then
            if(NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE) then
                if(not self:isFocused(cid)) then
                    self:greet(cid)
                    return
                end
            elseif(NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT) then
                if(self.focuses == 0) then
                    self:greet(cid)
                elseif(self.focuses == cid) then
                    local msg = self:getMessage(MESSAGE_ALREADYFOCUSED)
                    local parseInfo = { [TAG_PLAYERNAME] = getCreatureName(cid) }
                    msg = self:parseMessage(msg, parseInfo)
                    self:say(msg)
                else
                    if(not self.queue:isInQueue(cid)) then
                        self.queue:push(cid)
                    end

                    local msg = self:getMessage(MESSAGE_PLACEDINQUEUE)
                    local parseInfo = { [TAG_PLAYERNAME] = getCreatureName(cid), [TAG_QUEUESIZE] = self.queue:getSize() }
                    msg = self:parseMessage(msg, parseInfo)
                    self:say(msg)
                end
            end
        end
    end

    -- Simply calls the underlying unGreet function.
    function NpcHandler:onFarewell(cid)
        self:unGreet(cid)
    end

    -- Should be called on this npc's focus if the distance to focus is greater then talkRadius.
    function NpcHandler:onWalkAway(cid)
        if(self:isFocused(cid)) then
            local callback = self:getCallback(CALLBACK_CREATURE_DISAPPEAR)
            if(callback == nil or callback(cid)) then
                if(self:processModuleCallback(CALLBACK_CREATURE_DISAPPEAR, cid)) then
                    if(self.queue == nil or not self.queue:greetNext()) then
                        local msg = self:getMessage(MESSAGE_WALKAWAY)
                        local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid) }
                        msg = self:parseMessage(msg, parseInfo)

                        self:say(msg, cid)
                        self:releaseFocus(cid)
                        self:say(msg)
                    end
                end
            end
        end
    end

    -- Returns true if cid is within the talkRadius of this npc.
    function NpcHandler:isInRange(cid)
        local distance = getDistanceBetween(getCreaturePosition(getNpcCid()), getCreaturePosition(cid))
        if(distance == -1) then
            return false
        end
 
        return (distance <= self.talkRadius)
    end

    -- Resets the npc into it's initial state (in regard of the keyrodhandler).
    --    All modules are also receiving a reset call through their callbackOnModuleReset function.
    function NpcHandler:resetNpc()
        if(self:processModuleCallback(CALLBACK_MODULE_RESET)) then
            self.keywordHandler:reset()
        end
    end

    -- Makes the npc represented by this instance of NpcHandler say something.
    --    This implements the currently set type of talkdelay.
    --    shallDelay is a boolean value. If it is false, the message is not delayed. Default value is false.
    function NpcHandler:say(message, focus, shallDelay)
        local shallDelay = shallDelay or false
        if(NPCHANDLER_TALKDELAY == TALKDELAY_NONE or not shallDelay) then
            if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
                selfSay(message, focus)
                return
            else
                selfSay(message)
                return
            end
        end

        -- TODO: Add an event handling method for delayed messages
        if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
            self.talkDelay[focus] = {
                message = message,
                time = os.time() + self.talkDelayTime,
            }
        else
            self.talkDelay = {
                message = message,
                time = os.time() + self.talkDelayTime
            }
        end
    end
end
 

 

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

Pelo o que eu entendi você quer traduzir essa frase do NPC.

Já que na sources nao deu certo, você pode fazer algo bem simples, você só vai acrescentar uma coisa.

"message_sendtrade" e colocar a frase que deseja, nesse caso pega esse aqui e cola isso no arquivo do npc e testa.

 

Citar

<?xml version="1.0" encoding="UTF-8"?> 
<npc name="Bander" script="data/npc/scripts/travel.lua" floorchange="0" walkinterval="3000" >
    <health now="100" max="100"/> 
    <look type="304"/> 
    <parameters> 
        <parameter key="module_shop" value="1"/>
        <parameter key="message_greet" value="Oi |PLAYERNAME|, você pode perder muito sem Band Of Loss, diga {trade} e veja nossos preços." />
        <parameter key="shop_buyable" value="band of loss,6301,50000"/> 
        <parameter key="message_farewell" value="Até Mais, |PLAYERNAME|!" />
        <parameter key="message_walkaway" value="Que falta de educação!" />
        <parameter key="message_sendtrade" value="Essa é minha oferta, |PLAYERNAME|. Deseja algo?" />
    </parameters> 
</npc> 

 

 

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

Esta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.

Spoiler

This is an automated message! This topic has been moved to the correct area.
Please read the forum rules.

 

Você deve traduzir um por um, o mesmo vale para outros scripts!

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

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.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo