[Gesior Acc] Trade Offline

walefxavier
em Tutoriais de Websites

walefxavier

Sonhei que tava acordado, quando acordei tava dormindo.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/05/09Posts: 91Char no Tibia: Dewolive

Vá em xammp/htdocs e crie um arquivo chamado auctionsystem.php dentro adicione isso:

 

 <?PHP
$auctions = $SQL->query('SELECT `auction_system`.`player`, `auction_system`.`id`, `auction_system`.`item_name`, `auction_system`.`item_id`, `auction_system`.`count`, `auction_system`.`cost`, `auction_system`.`date`, `players`.`name` FROM `auction_system`, `players` WHERE `players`.`id` = `auction_system`.`player` ORDER BY `auction_system`.`id` DESC')->fetchAll();
$players = 0;

   $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Instructions<b></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><center><h2>Comandos</h2><b>!offer add, itemName, itemPrice, itemCount</b><br /><small>example: !offer add, plate armor, 500, 1</small><br /><br /><B>!offer buy, AuctionID</b><br /><small>example: !offer buy, 1943</small><br /><br /><b>!offer remove, AuctionID</b><br /><small>example: !offer remove, 1943</small><br /><br /><b>!offer withdraw</b><br /><small>Use this command to get money for sold items.</small></center></TR></TD></TABLE><br />';
   if(empty($auctions))
   {
       $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Auctions</b></td></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD>Currently is no one active Auction.</TD></TR></TABLE>';
       $main_content .= '<br /><p align="right"><small>System created by <a href="http://dynamic-world.servegame.com">WSF</a>.</small></p>';
   }
   else
   {
   foreach($auctions as $auction) {
       $players++;
           if(is_int($players / 2))
               $bgcolor = $config['site']['lightborder'];
           else
               $bgcolor = $config['site']['darkborder'];
       $cost = round($auction['cost']/1000, 2);
       $content .= '<TR BGCOLOR='.$bgcolor.'><TD><center>'.$auction['id'].'</center></TD><TD><center><img src="images/items/'.$auction['item_id'].'.gif"/></center></TD><TD><center>'.$auction['item_name'].'</center></TD><TD><center><a href="?subtopic=characters&name='.urlencode($auction['name']).'">'.$auction['name'].'</a></center></TD><TD><center>'.$auction['count'].'</center></TD><TD><center>'.$cost.'k<br /><small>'.$auction['cost'].'gp</small></center></TD><TD><center>!offer buy, '.$auction['id'].'</center></TR>';
   }

   $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b><center>ID</center></b></TD><TD class="white"><b><center>#</center></b></TD><TD class="white"><b><center>Item Name</center></b></TD><TD class="white"><b><center>Player</center></b></TD><TD class="white"><b><center>Count</center></b></TD><TD class="white"><b><center>Cost</center></b></td><TD class="white"><b><center>Buy</center></b></td></TR>'.$content.'</TABLE>';
   $main_content .= '';
}
   ?> 

 

 

 

Agora vá em index.php e add isso:

 

        case "auctionsystem";
               $topic = "Trade Offline";
               $subtopic = "auctionsystem";
               include("auctionsystem.php");
       break;

 

 

Em Htdocs/layout/tibiacom/layout.php add isto:

 

<a href='?subtopic=auctionsystem'>
 <div id='submenu_auctionsystem' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'>
   <div class='LeftChain' style='background-image:url(layouts/tibiacom/images/general/chain.gif);'></div>
   <div id='ActiveSubmenuItemIcon_auctionsystem' class='ActiveSubmenuItemIcon' style='background-image:url(layouts/tibiacom/images/menu/icon-activesubmenu.gif);'></div>
   <div class='SubmenuitemLabel'><blink><font color=yellow>Trade Offline</font></blink></div>
   <div class='RightChain' style='background-image:url(layouts/tibiacom/images/general/chain.gif);'></div>
 </div>
</a>

 

 

 

E adicione isso no phpmyadmin (database do seu gesior)

 

CREATE TABLE IF NOT EXISTS `auction_system` (
 `id` int(11) NOT NULL auto_increment,
 `player` int(11) default NULL,
 `item_id` int(11) default NULL,
 `item_name` varchar(255) default NULL,
 `count` int(11) default NULL,
 `cost` int(11) default NULL,
 `date` int(11) default NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

 

Agora basta acessar www.SEUSITE.com/?subtopic=auctionsystem

 

....

Rajas

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/12/07Posts: 132Gênero: MasculinoChar no Tibia: Hannibol

ta faltando o script do ot tbm !!!

brunohenriquevelasques96

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/07/10Posts: 12Char no Tibia: The Dragon

cara a Onde q Fica isso phpmyadmin??? eu nao achei ajuda ae

 

 

vlws

 

 

EDIT: JA ACHEI ERRO MEU !!!

tavax

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 24/06/07Posts: 104Char no Tibia: Tavas

nngm sabe o script do ot?

Nome

walefxavier

Sonhei que tava acordado, quando acordei tava dormindo.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/05/09Posts: 91Char no Tibia: Dewolive

Ta ae o script do ot:

 

Vá em Talkactions/scripts e crie um arquivo.lua chamado auctionsystem.lua e add:

 

  --[[
       Offline player to player item trader (Auction System)
               Script version: 1.2a [ -- FIXED CLONE ITEMS BUG -- ]
]]--
local config = {
       levelRequiredToAdd = 20,
       maxOffersPerPlayer = 5,
       SendOffersOnlyInPZ = true,
       blocked_items = {2165, 2152, 2148, 2160, 2166, 2167, 2168, 2169, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2343, 2433, 2640, 6132, 6300, 6301, 9932, 9933}
       }
function onSay(cid, words, param, channel)
       if(param == '') then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
               return true
       end
       local t = string.explode(param, ",")
       if(t[1] == "add") then
               if((not t[2]) or (not t[3]) or (not t[4])) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
                       return true
               end
               if(not tonumber(t[3]) or (not tonumber(t[4]))) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't set valid price or items count.")
                       return true
               end
               if(string.len(t[3]) > 7 or (string.len(t[4]) > 3)) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This price or item count is too high.")
                       return true
               end
               local item = getItemIdByName(t[2], false)
               if(not item) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
                       return true
               end
               if(getPlayerLevel(cid) < config.levelRequiredToAdd) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have required (" .. config.levelRequiredToAdd .. ") level.")
                       return true
               end
               if(isInArray(config.blocked_items, item)) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This item is blocked.")
                       return true
               end
               if(getPlayerItemCount(cid, item) < (tonumber(t[4]))) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you don't have this item(s).")
                       return true
               end
               local check = db.getResult("SELECT `id` FROM `auction_system` WHERE `player` = " .. getPlayerGUID(cid) .. ";")
               if(check:getID() == -1) then
               elseif(check:getRows(true) >= config.maxOffersPerPlayer) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't add more offers (max. " .. config.maxOffersPerPlayer .. ")")
                       return true
               end
               if(config.SendOffersOnlyInPZ) then    
                       if(not getTilePzInfo(getPlayerPosition(cid))) then
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you add offert to database.")
                               return true
                       end
               end
               if(tonumber(t[4]) < 1 or (tonumber(t[3]) < 1)) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to type a number higher than 0.")
                       return true
               end
                               local itemcount, costgp = math.floor(t[4]), math.floor(t[3])
               doPlayerRemoveItem(cid, item, itemcount)
               db.executeQuery("INSERT INTO `auction_system` (`player`, `item_name`, `item_id`, `count`, `cost`, `date`) VALUES (" .. getPlayerGUID(cid) .. ", \"" .. t[2] .. "\", " .. getItemIdByName(t[2]) .. ", " .. itemcount .. ", " .. costgp ..", " .. os.time() .. ")")
                               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You successfully add " .. itemcount .." " .. t[2] .." for " .. costgp .. " gps to offerts database.")
       end
       if(t[1] == "buy") then
               if(not tonumber(t[2])) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.")
                       return true
               end
               local buy = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";")
               if(buy:getID() ~= -1) then
                       if(getPlayerMoney(cid) < buy:getDataInt("cost")) then
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have enoguh GP.")
                               buy:free()
                               return true
                       end
                       if(getPlayerName(cid) == getPlayerNameByGUID(buy:getDataInt("player"))) then
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you can't buy your own items.")
                               buy:free()
                               return true
                       end
                       if(getPlayerFreeCap(cid) < getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")))then
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You try to buy a " .. buy:getDataString("item_name") .. ". It weight " .. getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")) .. " cap oz. and you have only " .. getPlayerFreeCap(cid) .. " oz. free capacity. Put some items to depot and try again.")
                               buy:free()
                               return true
                       end
                       if(isItemStackable((buy:getDataString("item_id")))) then
                               doPlayerAddItem(cid, buy:getDataString("item_id"), buy:getDataInt("count"))
                       else
                               for i = 1, buy:getDataInt("count") do
                                       doPlayerAddItem(cid, buy:getDataString("item_id"), 1)
                               end
                       end
                       doPlayerRemoveMoney(cid, buy:getDataInt("cost"))
                       db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";")
                       doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. buy:getDataInt("count") .. " ".. buy:getDataString("item_name") .. " for " .. buy:getDataInt("cost") .. " gps!")
                       db.executeQuery("UPDATE `players` SET `auction_balance` = `auction_balance` + " .. buy:getDataInt("cost") .. " WHERE `id` = " .. buy:getDataInt("player") .. ";")
                       buy:free()
               else
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.")
               end
       end
       if(t[1] == "remove") then
               if((not tonumber(t[2]))) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.")
                       return true
               end
                               if(config.SendOffersOnlyInPZ) then    
                                       if(not getTilePzInfo(getPlayerPosition(cid))) then
                                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you remove offerts from database.")
                                               return true
                                       end
               end
               local delete = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";")        
               if(delete:getID() ~= -1) then
                       if(getPlayerGUID(cid) == delete:getDataInt("player")) then
                               db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";")
                               if(isItemStackable(delete:getDataString("item_id"))) then
                                       doPlayerAddItem(cid, delete:getDataString("item_id"), delete:getDataInt("count"))
                               else
                                       for i = 1, delete:getDataInt("count") do
                                               doPlayerAddItem(cid, delete:getDataString("item_id"), 1)
                                       end
                               end
                               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your offert has been deleted from offerts database.")
                       else
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This is not your offert!")
                       end
               delete:free()
               else
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.")
               end
       end
       if(t[1] == "withdraw") then
               local balance = db.getResult("SELECT `auction_balance` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";")
               if(balance:getDataInt("auction_balance") < 1) then
                       doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have money on your auction balance.")
                       balance:free()
                       return true
               end
               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You got " .. balance:getDataInt("auction_balance") .. " gps from auction system!")
               doPlayerAddMoney(cid, balance:getDataInt("auction_balance"))
               db.executeQuery("UPDATE `players` SET `auction_balance` = '0' WHERE `id` = " .. getPlayerGUID(cid) .. ";")
               balance:free()
       end
       return true
end

 

Em talkactions.xml add a tag:

 

<talkaction words="!offer" event="script" value="auctionsystem.lua"/>

w3ndel

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/01/11Posts: 12Char no Tibia: Don't Have

o meu deu um poblema , ele fica do otro lado

la em baixo de Current Pol

 

aalguem me ajuda

AOOOW Potencia !!!

Natanael Beckman

Administrador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/08/06Posts: 554Char no Tibia: Balacky

Pra script funcionar corretamente precisa disso:

 

ALTER TABLE `players` ADD `auction_balance` INT(15) NOT NULL

znExesyD.png

servercore.png

123henrique123

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/10/10Posts: 26

@GM Bekman

onde poe essa linha q vc falo ae?

537438

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/11/07Posts: 10Char no Tibia: Nenhum

queria saber um AUCTION HOUSE, sem precisar de site, como se fosse um NPC dentro do jogo ou por talkactions mesmo, se tiverem add msn :

actionserver@hotmail.com

obs: nao passo o meu pq o meu eh uma bagunça

baaNisHed

Justo, apenas !
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/01/10Posts: 51Char no Tibia: Knight Crim

Voces sao fod* mesmo, to lendo e até agora nao entendi o que é pra fazer ...

gratz,

Guilherme Monteiro

 

The REALLY king of rock !

'

 

 

ozzy_and_slash_together_by_d3g3x4nt0-d37mkok.png

 

 

 

Eu sei, mais nao custa nada o REP+

Piabeta Kun

Ex-Coordenador de Websites
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 23/12/08Posts: 2403Gênero: MasculinoChar no Tibia: Gordo Warlike

nego eskece q pro novatos tem q soletrar!

por favor soletre para nois entendermos, eu creio q a ducida maior de todos e como adicionar as linhas no phpmyadmin, se der manda um passo a passo soletrado, pq falar pega ai e importa no php myadmi nao ajuda de nada!

Daijobu!

 

walefxavier

Sonhei que tava acordado, quando acordei tava dormindo.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/05/09Posts: 91Char no Tibia: Dewolive

xD

 

Acesse o seusite/phpmyadmin na barrinha do seu navegador.

Clique na sua database (a que vc criou quando colocou seu site online)

Depois Clique em SQL,vai estar escrito bem grande la em cima.

Vai aparecer um espaço em branco,vc poem o script que o Gm Beckman falo ae.

Depois so clicar em EXECUTAR...

 

 

____________________

Não sei esplicar muito bem,então quem não entendeu da uma olhada pelo forum ae,que vc acha rapidin...

claudiomir

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/10/07Posts: 63Gênero: MasculinoChar no Tibia: Soldier Neves

vo testa depois.

porco.gif

Cadastrado: 07/10/2007

Piabeta Kun

Ex-Coordenador de Websites
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 23/12/08Posts: 2403Gênero: MasculinoChar no Tibia: Gordo Warlike

+rep proce manolo agora sim bem explicado, soletrado sahusahu, eu ja tinha aprendido antes mais msmo assim vai ajudar qm nao sabe!!!

 

Nice Job man!

Daijobu!

 

ultimarox7

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/03/11Posts: 3Char no Tibia: Atus Lidde

Cara, Te Amo!!!! Zuera, mais cara mto obrigado esse sistema é mto bom!!! :thumbsupsmiley:

+ :button_ok: