Merchant System - Venda Seus Items Offline

noobinhu
em Actions e Talkactions

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

Bom, este sistema eu fiz faz alguns dias, fiquei com preguiça de postar, tem mais alguns ainda, logo eu posto.

 

Primeiro, antes de usar o sistema, que é inteiro baseado em um NPC, você precisa importar essa table aqui na sua database do OTServer:

 

Query SQL:

-- phpMyAdmin SQL Dump

-- version 2.11.7

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Dez 06, 2008 as 04:39 PM

-- Versão do Servidor: 5.0.51

-- Versão do PHP: 5.2.6

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

 

--

-- Banco de Dados: `tfs84`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `merchantsystem`

--

 

CREATE TABLE IF NOT EXISTS `merchantsystem` (

`id` int(10) NOT NULL auto_increment,

`ownerid` int(10) NOT NULL,

`itemid` int(10) NOT NULL,

`price` int(10) NOT NULL,

`selled` int(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin AUTO_INCREMENT=9 ;

 

--

-- Extraindo dados da tabela `merchantsystem`

--

 

Aqui o script LUA do NPC:

dofile('./config.lua')

local offerTime = 10 -- Seconds to offer items

 

 

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

 

time = os.clock()

time2 = os.clock()

function onThink()

npcHandler:onThink()

if (time2 + 10) < os.clock() then

selfSay('Come here to buy and sell your items.')

time2 = os.clock()

end

if (time + offerTime) < os.clock() then

time = os.clock()

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

 

local cur = assert(con:execute("SELECT * FROM merchantsystem WHERE selled LIKE 0 ORDER BY itemid ASC,price ASC"))

results = 0

money = 0

row = cur:fetch({}, "a")

totallines = cur:numrows()

local itemrand = math.random(1,totallines)

while results < totallines do

local itemrand2 = math.random(1,totallines)

if (itemrand == itemrand2) then

offerid = row.id

itemid = row.itemid

itemname = getItemName(itemid)

local cur2 = assert(con:execute("SELECT * FROM merchantsystem WHERE selled LIKE 0 AND itemid LIKE "..itemid.." ORDER BY price ASC LIMIT 1"))

row2 = cur2:fetch({}, "a")

itemprice2 = row2.price

if (itemprice2 == row.price) then

broadcastMessage('Merchant NPC: Sell '.. itemname ..' for '.. row.price ..' gold coins.',MESSAGE_EVENT_ADVANCE)

break

end

end

row = cur:fetch(row, "a")

results = results+1

end

 

end

end

 

 

function setMerchantItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, playerid, itemid, price)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

textsArray = {}

indextype = 0

assert(con:execute("INSERT INTO merchantsystem VALUES (id,"..playerid..","..itemid..","..price..",0)"))

return TRUE

end

 

function getMerchantItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, itemid)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

 

local cur = assert(con:execute("SELECT * FROM merchantsystem WHERE itemid LIKE "..itemid.." AND selled LIKE 0 ORDER BY price ASC LIMIT 1"))

row = cur:fetch({}, "a")

 

return row

end

 

function buyedMerchantItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, offerid)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

textsArray = {}

indextype = 0

local cur = assert(con:execute("UPDATE merchantsystem SET selled=1 WHERE id LIKE "..offerid.." AND selled LIKE 0"))

return TRUE

end

 

 

function getNPCMoney(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, playerid)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

textsArray = {}

indextype = 0

local cur = assert(con:execute("SELECT * FROM merchantsystem WHERE ownerid LIKE "..playerid.." AND selled LIKE 1"))

results = 0

money = 0

row = cur:fetch({}, "a")

totallines = cur:numrows()

while results < totallines do

money = money + row.price

row = cur:fetch(row, "a")

results = results+1

end

local cur = assert(con:execute("UPDATE merchantsystem SET selled=2 WHERE ownerid LIKE "..playerid.." AND selled LIKE 1"))

return money

end

 

function getNPCItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, playerid)

if sqlType == "mysql" then

env = assert(luasql.mysql())

con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))

else -- sqlite

env = assert(luasql.sqlite3())

con = assert(env:connect(sqliteDatabase))

end

textsArray = {}

indextype = 0

local cur = assert(con:execute("SELECT * FROM merchantsystem WHERE ownerid LIKE "..playerid.." AND selled LIKE 0"))

results = 0

items = {}

row = cur:fetch({}, "a")

totallines = cur:numrows()

while results < totallines do

items[results] = row.itemid

row = cur:fetch(row, "a")

results = results+1

end

local cur = assert(con:execute("UPDATE merchantsystem SET selled=3 WHERE ownerid LIKE "..playerid.." AND selled LIKE 0"))

return items

end

 

function trim(s)

-- from PiL2 20.4

return (s:gsub("^%s*(.-)%s*$", "%1"))

end

 

function sellItem(cid, message, keywords, parameters, node)

if(not npcHandler:isFocused(cid)) then

return false

end

 

msg = string.lower(message)

 

storages = {}

storages.itemid = 21547

storages.cost = 21548

 

 

if (parameters.getitem == TRUE) then

b = string.find(msg, "item:")

itemname = trim(string.sub(msg, 6))

npcHandler:say(itemname, cid)

itemid = getItemIdByName(itemname)

 

if itemid ~= LUA_ERROR then

setPlayerStorageValue(cid,storages.itemid,itemid)

npcHandler:say('So, for how much gold coins do you want to sell your '.. itemname ..'? (To say the item\'s cost use this format message: "money: Cost Goes Here")', cid)

return TRUE

else

npcHandler:say('Sorry, I didn\'t understand the item\'s name!', cid)

return FALSE

end

elseif (parameters.getmoney == TRUE) then

b, e = string.find(msg, "%d+")

if b == nil or e == nil then

quantity = 1

else

quantity = tonumber(string.sub(msg, b, e))

end

 

 

if isNumber(quantity) ~= TRUE then

quantity = 1

end

 

setPlayerStorageValue(cid,storages.cost,quantity)

itemid = getPlayerStorageValue(cid,storages.itemid)

itemname = getItemName(itemid)

 

npcHandler:say('Do you want to sell your '..itemname..' for '..quantity..' gold coins? (You will need to pay a fee of 1000 gold coins to me.)', cid)

return TRUE

elseif (parameters.decline == TRUE) then

npcHandler:say('Ok then.', cid)

npcHandler:resetNpc()

return TRUE

elseif (parameters.confirm == TRUE) then

itemid = getPlayerStorageValue(cid,storages.itemid)

itemname = getItemName(itemid)

cost = getPlayerStorageValue(cid,storages.cost)

playerid = getPlayerGUIDByName(getPlayerName(cid))

 

if(doPlayerTakeItem(cid, itemid, 1) == LUA_NO_ERROR) then

if getPlayerMoney(cid) >= 1000 then

if cost >= 0 then

doPlayerRemoveMoney(cid, 1000)

setMerchantItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, playerid, itemid, cost)

npcHandler:say('Right, now you are selling your '.. itemname ..' for '.. cost ..' gold coins. You can \'get back\' it or wait for someone buy. When someone buy, I will get the money and you will need to get it here.', cid)

else

npcHandler:say('You cannot sell an item costing a negative value.', cid)

end

else

npcHandler:say('You don\'t have 1000 gold coins to pay the fee.', cid)

end

else

npcHandler:say('You don\'t have a '.. itemname ..' to sell.', cid)

end

npcHandler:resetNpc()

return TRUE

end

 

 

end

 

function buyItem(cid, message, keywords, parameters, node)

if(not npcHandler:isFocused(cid)) then

return false

end

 

msg = string.lower(message)

 

storages = {}

storages.id = 21610

storages.owner = 21611

storages.itemid = 21612

storages.price = 21613

 

 

 

if (parameters.getitem == TRUE) then

b = string.find(msg, "item:")

itemname = trim(string.sub(msg, 6))

itemid = getItemIdByName(itemname)

 

if itemid ~= LUA_ERROR then

local itemget = getMerchantItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, itemid)

if itemget ~= nil then

npcHandler:say('The cheaper '.. itemname ..' that I have costs '.. itemget.price ..' gold coins. Do you want to buy?', cid)

setPlayerStorageValue(cid,storages.id,itemget.id)

setPlayerStorageValue(cid,storages.owner,itemget.ownerid)

setPlayerStorageValue(cid,storages.itemid,itemget.itemid)

setPlayerStorageValue(cid,storages.price,itemget.price)

return TRUE

else

npcHandler:say('Sorry, I don\'t have a '.. itemname ..' to sell you now!', cid)

return FALSE

end

return TRUE

else

npcHandler:say('Sorry, I didn\'t understand the item\'s name!', cid)

return FALSE

end

elseif (parameters.decline == TRUE) then

npcHandler:say('Ok then.', cid)

npcHandler:resetNpc()

return TRUE

elseif (parameters.confirm == TRUE) then

offerid = getPlayerStorageValue(cid,storages.id)

itemprice = getPlayerStorageValue(cid,storages.price)

ownerid = getPlayerStorageValue(cid,storages.owner)

itemid = getPlayerStorageValue(cid,storages.itemid)

itemname = getItemName(itemid)

playerid = getPlayerGUIDByName(getPlayerName(cid))

 

if getPlayerMoney(cid) >= itemprice then

doPlayerRemoveMoney(cid, itemprice)

doPlayerAddItem(cid,itemid,1)

buyedMerchantItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, offerid)

npcHandler:say('Thank you for buying it!', cid)

else

npcHandler:say('You don\'t have enough money to buy it.', cid)

end

npcHandler:resetNpc()

return TRUE

end

 

 

end

 

function getMoneyBack(cid, message, keywords, parameters, node)

if(not npcHandler:isFocused(cid)) then

return false

end

 

msg = string.lower(message)

 

if (parameters.confirm == TRUE) then

playerid = getPlayerGUIDByName(getPlayerName(cid))

moneyhave = getNPCMoney(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, playerid)

if (moneyhave > 0) then

doPlayerAddMoney(cid,moneyhave)

npcHandler:say('Ok, take it man.', cid)

else

npcHandler:say('You don\'t have money to get back.', cid)

end

npcHandler:resetNpc()

return TRUE

end

 

 

end

 

function getItemBack(cid, message, keywords, parameters, node)

if(not npcHandler:isFocused(cid)) then

return false

end

 

msg = string.lower(message)

 

if (parameters.confirm == TRUE) then

playerid = getPlayerGUIDByName(getPlayerName(cid))

itemshave = getNPCItem(sqlType, mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort, sqliteDatabase, playerid)

if (itemshave[0] ~= nil) then

for k,v in pairs(itemshave) do

doPlayerAddItem(cid,v,1)

end

npcHandler:say('Ok, take it man.', cid)

else

npcHandler:say('You don\'t have items to get back.', cid)

end

npcHandler:resetNpc()

return TRUE

end

 

 

end

 

 

 

 

local getItemNode = KeywordNode:new({'item:'}, sellItem, {getitem = TRUE})

local getMoneyNode = KeywordNode:new({'money: '}, sellItem, {getmoney = TRUE})

local noSellNode = KeywordNode:new({'no'}, sellItem, {decline = TRUE})

local yesSellNode = KeywordNode:new({'yes'}, sellItem, {confirm = TRUE})

 

 

local sellnode = keywordHandler:addKeyword({'sell item'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'What is the name of the item which you want to sell? (To say the item\'s name use this format message: "item: Item Name Goes Here")'})

local getItem = sellnode:addChildKeywordNode(getItemNode)

local getMoney = getItem:addChildKeywordNode(getMoneyNode)

getMoney:addChildKeywordNode(yesSellNode)

getMoney:addChildKeywordNode(noSellNode)

 

local getItemNode = KeywordNode:new({'item:'}, buyItem, {getitem = TRUE})

local noBuyNode = KeywordNode:new({'no'}, buyItem, {decline = TRUE})

local yesBuyNode = KeywordNode:new({'yes'}, buyItem, {confirm = TRUE})

 

local buynode = keywordHandler:addKeyword({'buy item'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'What is the name of the item which you want to buy? (To say the item\'s name use this format message: "item: Item Name Goes Here")'})

local getItem = buynode:addChildKeywordNode(getItemNode)

getItem:addChildKeywordNode(yesBuyNode)

getItem:addChildKeywordNode(noBuyNode)

 

keywordHandler:addKeyword({'get money'}, getMoneyBack, {confirm = TRUE})

 

keywordHandler:addKeyword({'getback item'}, getItemBack, {confirm = TRUE})

 

npcHandler:addModule(FocusModule:new())

 

Arquivo XML:

<npc name="Merchant" script="data/npc/scripts/merchant.lua" access="5" lookdir="1">

<health now="1000" max="1000"/>

<look type="133" head="0" body="86" legs="0" feet="38" addons="1"/>

<parameters>

<parameter key="message_greet" value="Hello |PLAYERNAME|. I am a items' re-seller. You can 'sell item', 'buy item', 'getback item' and 'get money'."/>

</parameters>

</npc>

 

Edite em negrito para o arquivo LUA do NPC.

 

Exemplo de Uso (Conversa):

 

Vendendo Item:

hi

sell item

item: dragon shield

money: 5000

yes

bye

Comprando Item:

hi

buy item

item: dragon shield

yes

bye

Retirando items e money:

hi

getback item

bye

 

hi

get money

bye

 

Screenshoots:

merchant_1.png

merchant_2.png

 

Espero que usem, obrigado.

 

Yunie.

tibiaa4e

Ex amante de Tibia
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 18/12/05Posts: 912Gênero: MasculinoChar no Tibia: Kohzete

Pelo que eu li ele seria tipo um cara que leiloa as coisas ?

 

E para vender itens offline seria necessario um codigo em php correto ?

 

Sei lá da uma explicada ai que não entendi bem a logica xD

Aposentado de OTserver e Tibia

Meus melhores tutoriais
Enciclopédia Pasta Data
Tutorial de quest

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

É tudo in-game.

 

Você vende seu item para o NPC e ele procura por um comprador, quando alguém comprar este item do NPC, o player pode vir retirar seu dinheiro no NPC. Ou seja, ele pode colocar pra vender e deslogar/ir caçar à vontade. Depois retirar seu dinheiro, caso tenha sido vendido, ou até seu item se não quiser mais vender.

MarcolinoGOD

Byte que eu gosto! (TI na veia)
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 19/06/07Posts: 267Gênero: MasculinoChar no Tibia: Rambocop Infernus

Nunca pensei em ver um Npc assim. Omagod!!! :surprised: Deve ter sido extremamente trabalhoso desenvolver o mesmo!?

Resumindo: Genial!!! :yipi:

 

Parabéns e Obrigado por compartilhar.

--

grafit

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 17/01/08Posts: 85Char no Tibia: Sweet Khelix

nossa cara

mt irado mesmo ^^

e bem prático , pq o cara n precisa fikar falando no trade... o npc ja faz isso ;)

 

parabéns

(:

Ththt

?
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 26/07/07Posts: 540Char no Tibia: Keni Daro

o.O Tbm nunca pensei em ver um npc assim...

Gostei mt do script e do topico

Parabens, continue assim

Olá XTibiano:

Sua assinatura estava com um problema na TAG SPOILER e foi movida para a parte "Sobre mim".
Agradecemos a sua compreensão.

Atenciosamente,
JV Chequer

alissonlinneker

ñ frite bacon sem kmiza xP
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 15/12/07Posts: 239

Cara...eu fiz isso mais acho que é melhor...

ele vende os itens pelo site..

é mesmo o puro php sem npcs..

 

ainda tenho de ageitar umas coisas nele...

pretendo divulga-lo aqui algum dia...

 

quanto a esse aí..

ta muito bom tb...

gostei..

acho que ja vi isso no zartha...

na primeira página deles tem falando

=D

 

 

muito bom



Devo esquecer aqueles que me impuseram obstáculos infundados e agradecer àqueles que me impulsionaram adiante. É hora, mais do que nunca, de valorizar as amizades e os conhecimentos adquiridos aqui. Agradeço a todos que me apoiaram. Vlw xTibia!
Amais!
[Retired]



~~>Meus Trabalhos:

---Sistema De Domínio De Castelos. (Action)
---Sistema De Mineraçao (Action)
---Scroll Que Da X Exp Quando é Usada (Action)
---Portas Não Abrem? Venha Aqui Ver Como Arruma! (Action)
---Crie Suas Quest´s De Uma Maneira Rapida E Facil. (Action)
---The Demon OaK Quest (Action)

---Addon Por Item, Com Todos Os Outfits. (Npc)

---Aprenda a colocar suas quests no Quest Log (Tutorial+scripts _ data/xml/quests.xml)
---Conhecendo Melhor A Pasta Globalevents (Tutorial+scripts)
---Gerencie O Seu Mysql Como Se Fosse Sqlite (Tutorial)
---Multi World Sistem - Como Funciona. (Tutorial)

---Projeto de tradução do TFS 8.31 SQL - Inglês para o Portugês (Server 8.31)

---2 Templantes para Web Site de OT (Websites de OTserv)
---Atualização de sites do Gesior para sistema de mult-world (Websites de OTserv)

---Thyrania editado (Map)
---Yalahar Global Completo (Map)

---Pic Editor para Tibia 8.2+ (Programa)
---Ztracker - Clone mapas 8.4 (Programa)



tibiaa4e

Ex amante de Tibia
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 18/12/05Posts: 912Gênero: MasculinoChar no Tibia: Kohzete

ah tah

 

era mto tarde eu fiquei confuso :p

 

Legal mesmo xD

 

Eu também nunca pensei em fazer isso até pq odeio npc :p

Aposentado de OTserver e Tibia

Meus melhores tutoriais
Enciclopédia Pasta Data
Tutorial de quest

daghios

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/12/08Posts: 33Char no Tibia: Sir Ridck

beeem legaal ! Parabéns aeew velho !








fã de:








DragonAdoptable:



Metas:

[x]1post
[x]5 posts (SERVO)
[x]10 posts (CAMPONÊS)
[x]25 posts (CAÇADOR)
[x]50 posts (CAVALEIRO)
[ ]100 posts (BARONETE)
[ ]200 posts (BARÃO)
[ ]300 posts (VISCONDE)
[ ]400 posts (DUQUE)
[ ]600 posts (ARQUEDUQUE)
[ ]800 posts (ARISTOCRATA)
[ ]1000 posts (REGENTE)
[ ]1400 posts (SÁBIO)
[ ]1800 posts (SACERDOTE)
[ ]2500 posts (PRÍNCIPE)

BillyBola

Ex-Imprensa XTibia
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/06/08Posts: 676Char no Tibia: Kimera De Pegasus

Po que foda esse script, imagina se tivesse isso no global, seria otimo.

 

Parabéns por mais um script genial.

guilhermes26

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 25/05/08Posts: 1432Char no Tibia: Akhumura

É aquele npc usado no Zartha?

Nossa, eu adorei, muito bom mesmo :)

Uma vez tinha pensado em alguo assim, mas a preguiça foi maior...

kk²³¹²

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

É o do Zartha sim, eu disse pro Language que ia fazer para postar, e perguntei se queriam testar antecipadamente, então ele testou primeiro :)

 

E agora postei.

Obrigado pelos comments~ ;)

zerosky

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 03/02/07Posts: 208Char no Tibia: Slayer Slasher

O unico ruim de se /dofila config.lua la é q em ot sqlite ele da break as vezes nas funçoes de !save e tals = o commands !ranks :/

~~ Jean Slayer ~~

Skyblade

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/06/08Posts: 76Char no Tibia: Yahuu

nota 1000 cara

 

mto boom mesmo!!

ºº A erva é mais importante pra quem não conhece ela ºº

ºº Nós olhamos pra ela e falamos... A erva...ºº

Bob Marley



ATS Com sistemas unicos como:

Carros,Skate, Quests únicas

Forja de items, mais de 15 sports para jogar

areas de treino e de caça

Items totalmente editados

Tutoriais explicando como jogar no site

Eventos Diários.

Entre agora mesmo!



Esperamos Você la!

tozinho123

Eusoboladopracaralho
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/11/07Posts: 61Char no Tibia: Paladinhozinho

puta qui pario nunca pensei que alguem fosse tao genio assim, e o melhor, compartilha tudo com o pessoal do x tibia, noobinhu vc é foda xD

 

edit

 

mas ou como funciona se tipo, 2 jogadores botarem uma golden legs a venda e um outro pedir pra compra, de qual jogador ele ira vender?

Assinatura bugada, movido para "sobre mim"