Ir para conteúdo

Pergunta

Boa noite pessoal, venho aqui a busca de ajuda dos scripters de plantão que entendem de NPC's. <3

  • PEDIDO:
    3 NPC's.
  • COMO FUNCIONA?
    São 3 NPC's que no final formarão uma quest. (se possível colocar no QUEST LOG como QUEST INICIAL)



    LEGENDA: P = Player e N= NPC
    Os textos aqui apresentados serão apenas uma demonstração,
  • Primeiro NPC:
    Este é o NPC de início, onde dará o começo da jornada.

    P = Hi
    N= Olá |PLAYERNAME|, blablabla bla bla bla... Você parece estar {preparado} para a sua jornada.
    P= preparado
    N= OK, blablablabla. Pegue este manual e iremos dar inicio a sua primeira {missão}.
    P= missão
    N= Meu amigo Charlie acabou de voltar da floresta perdida, que tal você falar com ele para saber como chegar na cidade?!

    Azul = quando o player falar Preparado será entregue um item a ele.
    Roxo= Quando o player falar missão será iniciada a missão do quest log e será entregue a ele uma storage ID, para poder falar com o segundo NPC.

  • Segundo NPC:
    Para falar com o este NPC precisa ter a storage entregue pelo 1 NPC.

    P = Hi
    N= Olá |PLAYERNAME|, você está a caminho da {floresta perdida}?
    P= floresta perdida
    N= Bem, é um caminho difícil, porém não há monstros pelo caminho. Mas ouvi dizer que há baús perdidos por lá, talvez ache o {caminho} para sair dela.
    P= Caminho
    N= Não é tão complicado, talvez o norte seja seu foco. Que tal você experimentar por si mesmo?

    Roxo= Quando o player falar Caminho será entregue uma storage ID para que ele possa seguir para o terceiro NPC.
  • Terceiro NPC:
    Para falar com o este NPC precisa ter a storage entregue pelo 2 NPC.

    P = Hi
    N= Olá |PLAYERNAME|, você não parece {preparado} para entrar na floresta.
    P= preparado
    N= Err, talvez, você precise comer. Aliás, você não tem muito tempo para ficar de barriga vazia. Você quer algum {alimento}?
    P= Alimento
    N= Pegue estas duas maçãs. Pode seguir em frente e boa viagem pela floresta.

    Roxo= Quando o player falar alimento será finalizado a quest e será adicionado uma storage (que será usada para o player poder sair do mapa tutorial)

 

 

Agradeço desde já. :)

Link para o comentário
https://xtibia.com/forum/topic/237821-3-npcs/
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

NPC 1

 

 

npc_um.xml

<?xml version="1.0"?>
<npc name="Npc Um" script="npc_um.lua" walkinterval="2000">
  <mana now="800" max="800" />
  <health now="200" max="200" />
  <look type="132" head="0" body="0" legs="0" feet="0" addons="3" />
  <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, blablabla bla bla bla... Você parece estar {preparado} para a sua jornada." />
    <parameter key="message_farewell" value="Ate mais, |PLAYERNAME|!" />
    <parameter key="message_walkaway" value="Valeu!" />
  </parameters>
</npc>

npc_um.lua

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
    
    local tab = {	manual = 2160,
                  storage1 = 1234,
          }
    
    local mark = { status = true, -- se vai colocar marca no mapa?  coloque false se não.
                   posCharlie = {x = 123, y = 456, z = 7} , -- posiçao da marca no mapa
                   charlieMark = 2, -- icone da marca
                   charieDesc = "oii" -- descriçao 
          }
       
--[[
MAPMARK_TICK = 0
MAPMARK_QUESTION = 1
MAPMARK_EXCLAMATION = 2
MAPMARK_STAR = 3
MAPMARK_CROSS = 4
MAPMARK_TEMPLE = 5
MAPMARK_KISS = 6
MAPMARK_SHOVEL = 7
MAPMARK_SWORD = 8
MAPMARK_FLAG = 9
MAPMARK_LOCK = 10
MAPMARK_BAG = 11
MAPMARK_SKULL = 12
MAPMARK_DOLLAR = 13
MAPMARK_REDNORTH = 14
MAPMARK_REDSOUTH = 15
MAPMARK_REDEAST = 16
MAPMARK_REDWEST = 17
MAPMARK_GREENNORTH = 18
MAPMARK_GREENSOUTH = 19
]]
  	
    if (msgcontains(msg, "preparado")) then
        npcHandler:say("OK, blablablabla. Pegue este manual e iremos dar inicio a sua primeira {missão}.", cid)
        doPlayerAddItem(cid, tab.manual)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "missão") and talkState[talkUser] == 1 then
        npcHandler:say("Meu amigo Charlie acabou de voltar da floresta perdida, que tal você falar com ele para saber como chegar na cidade?!", cid) 
        setPlayerStorageValue(cid, tab.storage1, 1)
        if mark.status then doPlayerAddMapMark(cid, mark.posCharlie, mark.charlieMark, mark.charlieDesc) end
    end
end 


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

 

 

 

NPC 2

 

 

 

npc_dois.xml

<?xml version="1.0"?>
<npc name="Npc Dois" script="npc_dois.lua" walkinterval="2000">
  <mana now="800" max="800" />
  <health now="200" max="200" />
  <look type="132" head="0" body="0" legs="0" feet="0" addons="3" />
  <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, você está a caminho da {floresta perdida}?" />
    <parameter key="message_farewell" value="Ate mais, |PLAYERNAME|!" />
    <parameter key="message_walkaway" value="Valeu!" />
  </parameters>
</npc>

npc_dois.lua

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) if getPlayerStorageValue(cid, 1234) == 1 then npcHandler:onCreatureSay(cid, type, msg) end 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
    
    local storage2 = 4566
    
    local mark = { status = true, -- se vai colocar marca no mapa?  coloque false se não.
                   florestaPos = {x = 123, y = 456, z = 7} , -- posiçao da marca no mapa
                   florestaMark = 2, -- icone da marca
                   florestaDesc = "oii" -- descriçao 
          }
       
--[[
MAPMARK_TICK = 0
MAPMARK_QUESTION = 1
MAPMARK_EXCLAMATION = 2
MAPMARK_STAR = 3
MAPMARK_CROSS = 4
MAPMARK_TEMPLE = 5
MAPMARK_KISS = 6
MAPMARK_SHOVEL = 7
MAPMARK_SWORD = 8
MAPMARK_FLAG = 9
MAPMARK_LOCK = 10
MAPMARK_BAG = 11
MAPMARK_SKULL = 12
MAPMARK_DOLLAR = 13
MAPMARK_REDNORTH = 14
MAPMARK_REDSOUTH = 15
MAPMARK_REDEAST = 16
MAPMARK_REDWEST = 17
MAPMARK_GREENNORTH = 18
MAPMARK_GREENSOUTH = 19
]]
  	
    if (msgcontains(msg, "floresta perdida")) then
        npcHandler:say("Bem, é um caminho difícil, porém não há monstros pelo caminho. Mas ouvi dizer que há baús perdidos por lá, talvez ache o {caminho} para sair dela.", cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "caminho") and talkState[talkUser] == 1 then
        setPlayerStorageValue(cid, storage2, 1)
        npcHandler:say("Não é tão complicado, talvez o norte seja seu foco. Que tal você experimentar por si mesmo?", cid) 
       
        if mark.status then doPlayerAddMapMark(cid, mark.florestaPos, mark.florestaMark, mark.florestaDesc) end
    end
end 


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

ATENÇÃO:

 

Peço que fique atento nesse pedaço:

function onCreatureSay(cid, type, msg) if getPlayerStorageValue(cid, 1234) == 1 then npcHandler:onCreatureSay(cid, type, msg) end end 

tem que alterar o storage para o storage que o npc 1 dá.

 

se o player não tiver storage 1234 no valor de 1, o npc não vai falar nada com o cid, Nada nada nada.

 

 

Para falar com o este NPC precisa ter a storage entregue pelo 1 NPC.

se quiser que ele responda algo para orientar, tudo bem eu edito, mas do jeito que está, não falará nada, a menos que fale com o npc 1 primeiro.

 

OBS: o mesmo vai acontecer com o npc 3.

 

 

 

NPC 3:

 

 

 

npc_tres.xml

<?xml version="1.0"?>
<npc name="Npc Tres" script="npc_tres.lua" walkinterval="2000">
  <mana now="800" max="800" />
  <health now="200" max="200" />
  <look type="132" head="0" body="0" legs="0" feet="0" addons="3" />
  <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, você não parece {preparado} para entrar na floresta." />
    <parameter key="message_farewell" value="Ate mais, |PLAYERNAME|!" />
    <parameter key="message_walkaway" value="Valeu!" />
  </parameters>
</npc>

npc_tres.lua

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)		if getPlayerStorageValue(cid, 4566) == 1 then	npcHandler:onCreatureSay(cid, type, msg) end	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
    
    local storage3 = 3456
    
    local mark = { status = true, -- se vai colocar marca no mapa?  coloque false se não.
                   florestaPos = {x = 123, y = 456, z = 7} , -- posiçao da marca no mapa
                   florestaMark = 2, -- icone da marca
                   florestaDesc = "oii" -- descriçao 
          }
       
--[[
MAPMARK_TICK = 0
MAPMARK_QUESTION = 1
MAPMARK_EXCLAMATION = 2
MAPMARK_STAR = 3
MAPMARK_CROSS = 4
MAPMARK_TEMPLE = 5
MAPMARK_KISS = 6
MAPMARK_SHOVEL = 7
MAPMARK_SWORD = 8
MAPMARK_FLAG = 9
MAPMARK_LOCK = 10
MAPMARK_BAG = 11
MAPMARK_SKULL = 12
MAPMARK_DOLLAR = 13
MAPMARK_REDNORTH = 14
MAPMARK_REDSOUTH = 15
MAPMARK_REDEAST = 16
MAPMARK_REDWEST = 17
MAPMARK_GREENNORTH = 18
MAPMARK_GREENSOUTH = 19
]]
  	
    if (msgcontains(msg, "preparado")) then
        npcHandler:say("Err, talvez, você precise comer. Aliás, você não tem muito tempo para ficar de barriga vazia. Você quer algum {alimento}?", cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "alimento") and talkState[talkUser] == 1 then
        setPlayerStorageValue(cid, storage3, 1)
        npcHandler:say("Pegue estas duas maçãs. Pode seguir em frente e boa viagem pela floresta.", cid) 
        if mark.status then doPlayerAddMapMark(cid, mark.florestaPos, mark.florestaMark, mark.florestaDesc) end
    end
end 


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

 

 

 

 

Qualquer erro ou edição, é só falar.

Editado por Caronte
Link para o comentário
https://xtibia.com/forum/topic/237821-3-npcs/#findComment-1675642
Compartilhar em outros sites

  • 0

 

 

NPC 1

 

 

npc_um.xml

<?xml version="1.0"?>
<npc name="Npc Um" script="npc_um.lua" walkinterval="2000">
  <mana now="800" max="800" />
  <health now="200" max="200" />
  <look type="132" head="0" body="0" legs="0" feet="0" addons="3" />
  <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, blablabla bla bla bla... Você parece estar {preparado} para a sua jornada." />
    <parameter key="message_farewell" value="Ate mais, |PLAYERNAME|!" />
    <parameter key="message_walkaway" value="Valeu!" />
  </parameters>
</npc>

npc_um.lua

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
    
    local tab = {	manual = 2160,
                  storage1 = 1234,
          }
    
    local mark = { status = true, -- se vai colocar marca no mapa?  coloque false se não.
                   posCharlie = {x = 123, y = 456, z = 7} , -- posiçao da marca no mapa
                   charlieMark = 2, -- icone da marca
                   charieDesc = "oii" -- descriçao 
          }
       
--[[
MAPMARK_TICK = 0
MAPMARK_QUESTION = 1
MAPMARK_EXCLAMATION = 2
MAPMARK_STAR = 3
MAPMARK_CROSS = 4
MAPMARK_TEMPLE = 5
MAPMARK_KISS = 6
MAPMARK_SHOVEL = 7
MAPMARK_SWORD = 8
MAPMARK_FLAG = 9
MAPMARK_LOCK = 10
MAPMARK_BAG = 11
MAPMARK_SKULL = 12
MAPMARK_DOLLAR = 13
MAPMARK_REDNORTH = 14
MAPMARK_REDSOUTH = 15
MAPMARK_REDEAST = 16
MAPMARK_REDWEST = 17
MAPMARK_GREENNORTH = 18
MAPMARK_GREENSOUTH = 19
]]
  	
    if (msgcontains(msg, "preparado")) then
        npcHandler:say("OK, blablablabla. Pegue este manual e iremos dar inicio a sua primeira {missão}.", cid)
        doPlayerAddItem(cid, tab.manual)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "missão") and talkState[talkUser] == 1 then
        npcHandler:say("Meu amigo Charlie acabou de voltar da floresta perdida, que tal você falar com ele para saber como chegar na cidade?!", cid) 
        setPlayerStorageValue(cid, tab.storage1, 1)
        if mark.status then doPlayerAddMapMark(cid, mark.posCharlie, mark.charlieMark, mark.charlieDesc) end
    end
end 


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

 

 

 

NPC 2

 

 

 

npc_dois.xml

<?xml version="1.0"?>
<npc name="Npc Dois" script="npc_dois.lua" walkinterval="2000">
  <mana now="800" max="800" />
  <health now="200" max="200" />
  <look type="132" head="0" body="0" legs="0" feet="0" addons="3" />
  <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, você está a caminho da {floresta perdida}?" />
    <parameter key="message_farewell" value="Ate mais, |PLAYERNAME|!" />
    <parameter key="message_walkaway" value="Valeu!" />
  </parameters>
</npc>

npc_dois.lua

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) if getPlayerStorageValue(cid, 1234) == 1 then npcHandler:onCreatureSay(cid, type, msg) end 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
    
    local storage2 = 4566
    
    local mark = { status = true, -- se vai colocar marca no mapa?  coloque false se não.
                   florestaPos = {x = 123, y = 456, z = 7} , -- posiçao da marca no mapa
                   florestaMark = 2, -- icone da marca
                   florestaDesc = "oii" -- descriçao 
          }
       
--[[
MAPMARK_TICK = 0
MAPMARK_QUESTION = 1
MAPMARK_EXCLAMATION = 2
MAPMARK_STAR = 3
MAPMARK_CROSS = 4
MAPMARK_TEMPLE = 5
MAPMARK_KISS = 6
MAPMARK_SHOVEL = 7
MAPMARK_SWORD = 8
MAPMARK_FLAG = 9
MAPMARK_LOCK = 10
MAPMARK_BAG = 11
MAPMARK_SKULL = 12
MAPMARK_DOLLAR = 13
MAPMARK_REDNORTH = 14
MAPMARK_REDSOUTH = 15
MAPMARK_REDEAST = 16
MAPMARK_REDWEST = 17
MAPMARK_GREENNORTH = 18
MAPMARK_GREENSOUTH = 19
]]
  	
    if (msgcontains(msg, "floresta perdida")) then
        npcHandler:say("Bem, é um caminho difícil, porém não há monstros pelo caminho. Mas ouvi dizer que há baús perdidos por lá, talvez ache o {caminho} para sair dela.", cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "caminho") and talkState[talkUser] == 1 then
        setPlayerStorageValue(cid, storage2, 1)
        npcHandler:say("Não é tão complicado, talvez o norte seja seu foco. Que tal você experimentar por si mesmo?", cid) 
       
        if mark.status then doPlayerAddMapMark(cid, mark.florestaPos, mark.florestaMark, mark.florestaDesc) end
    end
end 


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

ATENÇÃO:

 

Peço que fique atento nesse pedaço:

function onCreatureSay(cid, type, msg) if getPlayerStorageValue(cid, 1234) == 1 then npcHandler:onCreatureSay(cid, type, msg) end end 

tem que alterar o storage para o storage que o npc 1 dá.

 

se o player não tiver storage 1234 no valor de 1, o npc não vai falar nada com o cid, Nada nada nada.

 

 

se quiser que ele responda algo para orientar, tudo bem eu edito, mas do jeito que está, não falará nada, a menos que fale com o npc 1 primeiro.

 

OBS: o mesmo vai acontecer com o npc 3.

 

 

 

NPC 3:

 

 

 

npc_tres.xml

<?xml version="1.0"?>
<npc name="Npc Tres" script="npc_tres.lua" walkinterval="2000">
  <mana now="800" max="800" />
  <health now="200" max="200" />
  <look type="132" head="0" body="0" legs="0" feet="0" addons="3" />
  <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, você não parece {preparado} para entrar na floresta." />
    <parameter key="message_farewell" value="Ate mais, |PLAYERNAME|!" />
    <parameter key="message_walkaway" value="Valeu!" />
  </parameters>
</npc>

npc_tres.lua

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)		if getPlayerStorageValue(cid, 4566) == 1 then	npcHandler:onCreatureSay(cid, type, msg) end	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
    
    local storage3 = 3456
    
    local mark = { status = true, -- se vai colocar marca no mapa?  coloque false se não.
                   florestaPos = {x = 123, y = 456, z = 7} , -- posiçao da marca no mapa
                   florestaMark = 2, -- icone da marca
                   florestaDesc = "oii" -- descriçao 
          }
       
--[[
MAPMARK_TICK = 0
MAPMARK_QUESTION = 1
MAPMARK_EXCLAMATION = 2
MAPMARK_STAR = 3
MAPMARK_CROSS = 4
MAPMARK_TEMPLE = 5
MAPMARK_KISS = 6
MAPMARK_SHOVEL = 7
MAPMARK_SWORD = 8
MAPMARK_FLAG = 9
MAPMARK_LOCK = 10
MAPMARK_BAG = 11
MAPMARK_SKULL = 12
MAPMARK_DOLLAR = 13
MAPMARK_REDNORTH = 14
MAPMARK_REDSOUTH = 15
MAPMARK_REDEAST = 16
MAPMARK_REDWEST = 17
MAPMARK_GREENNORTH = 18
MAPMARK_GREENSOUTH = 19
]]
  	
    if (msgcontains(msg, "preparado")) then
        npcHandler:say("Err, talvez, você precise comer. Aliás, você não tem muito tempo para ficar de barriga vazia. Você quer algum {alimento}?", cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "alimento") and talkState[talkUser] == 1 then
        setPlayerStorageValue(cid, storage3, 1)
        npcHandler:say("Pegue estas duas maçãs. Pode seguir em frente e boa viagem pela floresta.", cid) 
        if mark.status then doPlayerAddMapMark(cid, mark.florestaPos, mark.florestaMark, mark.florestaDesc) end
    end
end 


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

 

 

 

 

Qualquer erro ou edição, é só falar.

 

 

 

 

Estou testando, logo edito :), agradeço a ajuda desde já. ;)

Só tem um problema xD

Esqueci de pedir para que quando o Player já pegou o storagem, o NPC não fale mais com o player, ou diga alguma coisa tipo, Tenha uma ótima aventura!

Editado por Iluargrott2
Link para o comentário
https://xtibia.com/forum/topic/237821-3-npcs/#findComment-1675651
Compartilhar em outros sites

×
×
  • Criar Novo...