Ir para conteúdo

[Gesior Acc] Trade Offline


walefxavier

Posts Recomendados

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

 

....

Editado por Walef Xavier
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 3 weeks later...

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"/>

Editado por Walef Xavier
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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!

Link para o comentário
Compartilhar em outros sites

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...

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 1 month later...
  • 2 weeks later...
×
×
  • Criar Novo...