• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Gęsior ACC] Vende personajes en subastas (+ 'Compre ahora') [ por premium points ]

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    akiles

    avatar
    Miembro
    Miembro
    Como el título dice ^^
    - vender personajes en las subastas (por puntos premium)
    - opción "Comprar ahora"
    - el nombre del personaje de bloqueo, cuando el jugador lo compre (jugador puede seleccionar el nuevo nombre en el administrador de namelock en juego)
    - panel de administración (de inicio de sesión en el sitio web de administración cuenta, por defecto 1 ) para buscar buenos personajes para la Venta (ordenar por fuera de línea de tiempo, nivel, puede establecer el nivel mínimo) panel de administración: Subasta: SQL:




    SQL:

    Código:
    CREATE TABLE  ` characters_auctions `(
    ` Identificación del `  INT NOT NULL AUTO_INCREMENT PRIMARY KEY  ,
    ` Estado `  TINYINT (  1  )  NOT NULL  DEFAULT  '0'  ,
    ` finish_time `  int NOT NULL  ,
    ` char_id `  int NOT NULL  ,
    ` buy_now `  NO INT NULL  ,
    ` pujar `  int NOT NULL  ,
    ` postor `  INT NOT NULL  ,
    ÍNDICE  (` finish_time `));

    Script:

    Código:
    <?PHP
    #################################################
    ### Scripted by Akiles                                 ###
    ### All rights reserverd                               ###
    ### Do not use/distribute without permission! ###
    ### Contact: [Tienes que estar registrado y conectado para ver este vínculo]   ###
    ###          pelonchis_pelon@hotmail.com       ###
    #################################################
    /*
    In MySQL:
    CREATE TABLE `characters_auctions` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `state` TINYINT( 1 ) NOT NULL DEFAULT '0' ,
    `finish_time` INT NOT NULL ,
    `char_id` INT NOT NULL ,
    `buy_now` INT NOT NULL ,
    `bid` INT NOT NULL ,
    `bidder` INT NOT NULL ,
    INDEX ( `finish_time` ));
    */
    $add_character_page_access = 3;
    $auctions_default_time = 3 * 24;// auction item in hours
    // styles and scripts
    $main_content .= '  
        <style type="text/css">
        .tableFonts {color: #FFFFFF}
        .tableHead {background-color: #9C5566;text-align: center;vertical-align: middle;font-size: 20pt}
        .tableRow0 {background-color: #003300;text-align: left;vertical-align: middle;font-size: 12pt}
        .tableRow0:hover {background-color: #009900;}
        .tableRow1 {background-color: #551111;text-align: left;vertical-align: middle;font-size: 12pt}
        .tableRow1:hover {background-color: #AA1111;}
        .tableRowSmall0 {background-color: #003300;text-align: left;vertical-align: middle;font-size: 10pt}
        .tableRowSmall0:hover {background-color: #009900;}
        .tableRowSmall1 {background-color: #551111;text-align: left;vertical-align: middle;font-size: 10pt}
        .tableRowSmall1:hover {background-color: #AA1111;}
        .linkButton {background-color: #008800;font-size: 14pt;padding: 6px;text-shadow: 2mm 2mm 2mm #342423;letter-spacing: 2mm}
        .linkButton:hover {background-color: yellow;}
        .bigText {font-size: 24pt}
        .normalText {font-size: 12pt;}
        .showItemSquare {height: 49px;width: 39px;padding: 7px;}
        .showItemImage {height: 40px;width: 40px;padding: 0px;}
        input {text-align: right;}
        
        .er{display:block}
        .er *{
          display:block;
          height:1px;
          overflow:hidden;
          font-size:.01em;
          background:#b20000}
        .er1{
          margin-left:3px;
          margin-right:3px;
          padding-left:1px;
          padding-right:1px;
          border-left:1px solid #870000;
          border-right:1px solid #870000;
          background:#9f0000}
        .er2{
          margin-left:1px;
          margin-right:1px;
          padding-right:1px;
          padding-left:1px;
          border-left:1px solid #6f0000;
          border-right:1px solid #6f0000;
          background:#a30000}
        .er3{
          margin-left:1px;
          margin-right:1px;
          border-left:1px solid #a30000;
          border-right:1px solid #a30000;}
        .er4{
          border-left:1px solid #870000;
          border-right:1px solid #870000}
        .er5{
          border-left:1px solid #9f0000;
          border-right:1px solid #9f0000}
        .erfg{
          background:#b20000;font-size: 16pt;text-align: center}
        </style>
        <script type="text/javascript">
            function checkLogin(account_id) {
            if(account_id == 0)
            {
            alert ("You are not logged in.");
            return false
            }
            return true
            }
            
            function checkBid(account_id, bidder_id, user_points, bid_now) {
            if(!checkLogin(account_id))
            return false
            var bid = window.document.getElementById("bid").value;
            if(bid <= bid_now)
            {
                alert ("Current highest bid is " + bid_now + ". You can not bid " + bid + ".");
                return false
            }
            if(bid > user_points)
            {
                alert ("You can not bid " + bid + ". You have only " + user_points + ".");
                return false
            }
            if(account_id == bidder_id)
            {
            var answer = confirm ("You have highest bid in this auction. Are you sure you want make higher bid?")
            if (answer)
            return true
            else
            return false
            }
            return true
            }
            
            function checkBuyNow(account_id, user_points, buy_now) {
            if(!checkLogin(account_id))
            return false
            if(user_points < buy_now)
            {
                alert ("This character cost " + buy_now + ". You have only " + user_points + ".");
                return false
            }
            var answer = confirm ("This character cost " + buy_now + ". Do you want to buy it?")
            if (answer)
            return true
            else
            return false
            }
            
            var innerHTML;
            function countdown(Time_Left, target_id)
            {
            if(Time_Left <= 0)
            {
                document.getElementById(target_id).innerHTML = \'Finished\';
                return 0;
            }
            setTimeout(countdown, 1000, Time_Left-1, target_id);
            //More datailed.
            days = Math.floor(Time_Left / (60 * 60 * 24));
            Time_Left %= (60 * 60 * 24);
            hours = Math.floor(Time_Left / (60 * 60));
            Time_Left %= (60 * 60);
            minutes = Math.floor(Time_Left / 60);
            Time_Left %= 60;
            seconds = Time_Left;

            dps = \'s\'; hps = \'s\'; mps = \'s\'; sps = \'s\';
            //ps is short for plural suffix.
            if(days == 1) dps =\'\';
            if(hours == 1) hps =\'\';
            if(minutes == 1) mps =\'\';
            if(seconds == 1) sps =\'\';

            innerHTML = days + \' day\' + dps + \' \';
            innerHTML += hours + \' hour\' + hps + \' \';
            innerHTML += minutes + \' minute\' + mps + \' and \';
            innerHTML += seconds + \' second\' + sps;

            document.getElementById(target_id).innerHTML = innerHTML;
            }
        </script>';
        
    $errorFormStart = '<div><b class="er"><b class="er1"><b></b></b><b class="er2"><b></b></b><b class="er3"></b><b class="er4"></b><b class="er5"></b></b><div class="erfg">';
    $errorFormEnd = '</div><b class="er"><b class="er5"></b><b class="er4"></b><b class="er3"></b><b class="er2"><b></b></b><b class="er1"><b></b></b></b></div>';
    function time_left($integer)
     {  
         if($integer <= 0) return "Finished";
         $seconds=$integer;
         if ($seconds/60 >=1)  
         {
             $minutes=floor($seconds/60);
             if ($minutes/60 >= 1)  
             { # Hours  
                 $hours=floor($minutes/60);
                 if ($hours/24 >= 1)  
                 { #days  
                         $days=floor($hours/24);
                         if ($days/7 >=1)  
                         { #weeks  
                             $weeks=floor($days/7);
                             if ($weeks>=2) $return="$weeks weeks";
                             else $return="$weeks week";
                         } #end of weeks  
                         $days=$days-(floor($days/7))*7;
                         if ($weeks>=1 && $days >=1) $return="$return, ";
                         if ($days >=2) $return="$return $days d";
                         if ($days ==1) $return="$return $days d";
                 } #end of days
                 $hours=$hours-(floor($hours/24))*24;
                 if ($days>=1 && $hours >=1) $return="$return, ";
                 if ($hours >=2 || $hours ==0) $return="$return $hours h";
                 if ($hours ==1) $return="$return $hours h";
             } #end of Hours
             $minutes=$minutes-(floor($minutes/60))*60;
             if ($hours>=1 && $minutes >=1) $return="$return, ";
             if ($minutes >=2 || $minutes ==0) $return="$return $minutes m";
             if ($minutes ==1) $return="$return $minutes m";
         } #end of minutes  
         $seconds=$integer-(floor($integer/60))*60;
         if ($minutes>=1 && $seconds >=1) $return="$return, ";
         if ($seconds >=2 || $seconds ==0) $return="$return $seconds sec";
         if ($seconds ==1) $return="$return $seconds sec";
         $return="$return.";
         return $return;
     }
    ############ FINISH AUCTIONS AND ADD CHARACTERS ############
    foreach($SQL->query('SELECT * FROM `characters_auctions` WHERE `state` = 0 AND `finish_time` <= ' . time())->fetchAll() as $finishedAuction)
    {
        if($finishedAuction['bidder'] > 0)
        {
            // if server show error in one of lines below it mean
            // someone delete character or account that won auction
            // admin must check it manualy (give points back to account that won auction?)
            $finishedAuctionBidder = new OTS_Account();
            $finishedAuctionBidder->load($finishedAuction['bidder']);
            $finishedAuctionChar = new OTS_Player();
            $finishedAuctionChar->load($finishedAuction['char_id']);
            $finishedAuctionChar->setAccount($finishedAuctionBidder);
            $finishedAuctionChar->setGroup(1);
            $finishedAuctionChar->save();
            $SQL->query('UPDATE `characters_auctions` SET `state` = 2 WHERE `id` = ' . $finishedAuction['id']);
            $SQL->query('INSERT INTO `bans` (`id` , `type` , `value` ,`param` ,`active` ,`expires` ,`added` ,`admin_id` ,`comment` ,`reason` ,`action` ,`statement`) VALUES (NULL , 2, ' .$auctionChar->getId() . ', 2, 1, -1, ' . time() . ', 1, \'BUY CHAR\', 0, 1, \'\');');
        }
        else
            $SQL->query('UPDATE `characters_auctions` SET `state` = 1 WHERE `id` = ' . $finishedAuction['id']);
    }
    ############ VISIBLE THINGS ############
    if($logged && $account_logged->getPageAccess() >= $add_character_page_access)
        $main_content .= '<div class="normalText"><a href="?subtopic=sellchar&action=addauction">ADMIN PANEL: >ADD AUCTION<</a></div>';
    if($action == "addauction") ############ ADD AUCTION / VIEW CHARACTERS LIST ############
    {
        if($logged && $account_logged->getPageAccess() >= $add_character_page_access)
        {
            $daysAgo = (int) $_REQUEST['days_ago'];
            $nameContains = $_REQUEST['name_contains'];
            $minLevel = (int) $_REQUEST['min_level'];
            $maxLastLogout = time() - $daysAgo * 24 * 3600;
            $orderBy = ($_REQUEST['order_by'] == 'lastlogout') ? $_REQUEST['order_by'] : 'level';
            $orderType = ($_REQUEST['order_type'] == 'DESC') ? $_REQUEST['order_type'] : 'ASC';
            $resultsLimit = (isset($_REQUEST['results_limit'])) ? (int) $_REQUEST['results_limit'] : 30;
            if(isset($_REQUEST['id']))
            {
                $id = (int) $_REQUEST['id'];
                $priceAuction = (int) $_REQUEST['price_auction'];
                $priceBuyNow = (int) $_REQUEST['price_buy_now'];
                $auctionTime = (int) $_REQUEST['auction_time'] * 3600;
                $SQL->query('INSERT INTO `characters_auctions` (`id` ,`finish_time` ,`char_id` ,`buy_now` ,`bid` ,`bidder`) VALUES (NULL , ' . (time() + $auctionTime) . ', ' . $id . ', ' . $priceBuyNow . ', ' . $priceAuction . ', 0);');
                $main_content .= $errorFormStart . 'Character with ID ' . $id . ' auction added.' . $errorFormEnd;
            }
            $charsAlreadyOnAuctions = array(0);
            foreach($SQL->query('SELECT `char_id` FROM `characters_auctions` WHERE `state` = 0') as $charsAlreadyOnAuction)
                $charsAlreadyOnAuctions[] = $charsAlreadyOnAuction['char_id'];
            $main_content .= '<div class="bigText" style="text-align: center">Add Auction</div>';
            $main_content .= '<div class="normalText">If you leave Buy Now field empty or set it to 0 it will be not possible to buy character by option \'Buy Now\'.</div>';
            $main_content .= '<table class="tableFonts" style="margin-left: auto;margin-right: auto;">';
            $main_content .= '<tr class="tableHead"><td colspan="8">CHARACTERS LIST</td></tr>';
            $main_content .= '<form action="?" method="get"><input type="hidden" name="subtopic" value="sellchar" /><input type="hidden" name="action" value="addauction" />';
            $main_content .= '<tr class="tableHead" style="font-size: 10pt;"><td colspan="2">ORDER BY</td><td><select name="order_by"><option' . (($orderBy == 'lastlogout') ? ' selected="selected"' : '') . '>lastlogout</option><option' . (($orderBy == 'level') ? ' selected="selected"' : '') . '>level</option></select></td><td><select name="order_type"><option' . (($orderType == 'ASC') ? ' selected="selected"' : '') . '>ASC</option><option' . (($orderType == 'DESC') ? ' selected="selected"' : '') . '>DESC</option></select></td><td colspan="4"></td></tr>';
            $main_content .= '<tr class="tableHead" style="font-size: 10pt;"><td colspan="3">Nick contains:<br /><input type="text" name="name_contains" value="' . htmlspecialchars($nameContains) .'" size="30" /><td colspan="2">Min. <input type="text" name="min_level" value="' . $minLevel .'" size="4" /> level</td><td>Min. <input type="text" name="days_ago" value="' . $daysAgo .'" size="2" /> days</td><td>Results<br /><input type="text" name="results_limit" value="' . $resultsLimit .'" size="3" /></td><td><input type="submit" value="Search"/></td></tr>';
            $main_content .= '</form>';
            ############ SEARCH FORM ############
            $main_content .= '<tr class="tableHead" style="font-size: 14pt;"><td>ID</td><td>Nick</td><td>Level & Vocation</td><td>Offline</td><td>Auction time</td><td>Auction min. offer</td><td>Buy Now</td><td>Add</td></tr>';
            foreach($SQL->query('SELECT * FROM `players` WHERE `id` NOT IN (' . implode(",", $charsAlreadyOnAuctions) . ') AND `lastlogout` > 0 AND `level` >= ' . $SQL->quote($minLevel) . ' AND `lastlogout` <= ' . $SQL->quote($maxLastLogout) . ' AND `name` LIKE ' . $SQL->quote('%'.$nameContains.'%') . ' ORDER BY `' . $orderBy . '` ' . $orderType . ', `name` ASC LIMIT ' . $resultsLimit .';') as $player)
                $main_content .= '<form action="?subtopic=sellchar&action=addauction&order_by=' . $orderBy .'&order_type=' . $orderType . '&name_contains=' . urlencode($nameContains) . '&min_level=' . $minLevel . '&days_ago=' . $daysAgo . '&results_limit=' . $resultsLimit . '" method="post"><input type="hidden" name="id" value="' . $player['id'] . '" /><tr class="tableRow' . ($row++ % 2) . '"><td>' . $player['id'] . '</td><td>' . $player['name'] . '</td><td>' . $player['level'] . ' ' . $vocation_name[$player['world_id']][$player['promotion']][$player['vocation']] . '</td><td style="float: right;">' . (floor((time() - $player['lastlogin']) / 86400)) . ' days</td><td><input type="text" name="auction_time" value="' . $auctions_default_time . '" size="3" /> hours</td><td><input type="text" name="price_auction" value="" size="5" /> pp</td><td><input type="text" name="price_buy_now" value="" size="5" /> pp</td><td><input type="submit" value="Add Auction" /></td></tr></form>';
            $main_content .= '</table>';
        }
        else
            $main_content .= $errorFormStart . 'ERROR! You do not have access to this page.' . $errorFormEnd;
    }
    elseif($action == "show") ############ SHOW CHARACTER INFO ############
    {
        $auctionInfo = $SQL->query('SELECT * FROM `characters_auctions` WHERE `id` = ' . (int) $_REQUEST['id'])->fetch();
        $main_content .= '<div class="bigText" style="text-align: center">Auction Info</div>';
        if(isset($auctionInfo['id']))
        {
            $auctionChar = new OTS_Player();
            $auctionChar->load($auctionInfo['char_id']);
            if($auctionChar->isLoaded())
            {
                if($logged && $account_logged->getPageAccess() >= $add_character_page_access)
                    $main_content .= '<div class="normalText"><a href="?subtopic=sellchar&delete=' . $auctionInfo['id'] . '">ADMIN PANEL: >DELETE AUCTION<</a></div>';
    ############ SHOW STATS ############
                $row = 0;
                $main_content .= '<table class="tableFonts" style="margin-left: auto;margin-right: auto;">';
                $main_content .= '<tr class="tableHead"><td colspan="3">CHARACTER INFO</td></tr>';
                $main_content .= '<tr><td><table style="width: 360px;border-spacing: 1px">';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>AUCTION ID:</td><td>' . $auctionInfo['id'] . '</td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Name:</td><td>' . $auctionChar->getName() . '<br /><div style="font-size: 8pt;">(You select new name when you win auction.)</div></td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Level:</td><td>' . $auctionChar->getLevel() . '</td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Vocation:</td><td>' . $vocation_name[$auctionChar->getWorld()][$auctionChar->getPromotion()][$auctionChar->getVocation()] . '</td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Health:</td><td>' . $auctionChar->getHealthMax() . '</td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Mana:</td><td>' . $auctionChar->getManaMax() . '</td></tr>';
                $main_content .= '<tr class="tableRowSmall' . ($row++ % 2) . '"><td>Magic Level:</td><td>' . $auctionChar->getMagLevel() . '</td></tr>';
                $main_content .= '<tr class="tableRowSmall' . ($row++ % 2) . '"><td>Sword:</td><td>' . $auctionChar->getSkill(2) . '</td></tr>';
                $main_content .= '<tr class="tableRowSmall' . ($row++ % 2) . '"><td>Axe:</td><td>' . $auctionChar->getSkill(3) . '</td></tr>';
                $main_content .= '<tr class="tableRowSmall' . ($row++ % 2) . '"><td>Club:</td><td>' . $auctionChar->getSkill(1) . '</td></tr>';
                $main_content .= '<tr class="tableRowSmall' . ($row++ % 2) . '"><td>Distance:</td><td>' . $auctionChar->getSkill(4) . '</td></tr>';
                $main_content .= '<tr class="tableRowSmall' . ($row++ % 2) . '"><td>Shielding:</td><td>' . $auctionChar->getSkill(5) . '</td></tr>';
                $main_content .= '</table></td>';
    ############ SHOW EQ ############
                foreach($SQL->query('SELECT * FROM `player_items` WHERE `player_id` = ' . $auctionChar->getId() . ' AND `pid` >= 1 AND `pid` <= 10;') as $item)
                    $player_items[$item['pid']] = $item['itemtype'];
                $row = 0;
                $main_content .= '<td><table style="border-spacing: 1px">';
                $main_content .= '<tr><td class="showItemSquare" style="background-image: url(/images/items/2.gif)"><img src="/images/items/' . $player_items[2] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/1.gif)"><img src="/images/items/' . $player_items[1] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/3.gif)"><img src="/images/items/' . $player_items[3] . '.gif" alt="" class="showItemImage"/></td></tr>';
                $main_content .= '<tr><td class="showItemSquare" style="background-image: url(/images/items/6.gif)"><img src="/images/items/' . $player_items[6] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/4.gif)"><img src="/images/items/' . $player_items[4] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/5.gif)"><img src="/images/items/'. $player_items[5] . '.gif" alt="" class="showItemImage"/></td></tr>';
                $main_content .= '<tr><td class="showItemSquare" style="background-image: url(/images/items/9.gif)"><img src="/images/items/'. $player_items[9] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/7.gif)"><img src="/images/items/'. $player_items[7] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/10.gif)"><img src="/images/items/'. $player_items[10] . '.gif" alt="" class="showItemImage"/></td></tr>';
                $main_content .= '<tr><td class="showItemSquare" style="background-color: #232323;text-align: center">Soul:<br />' . $auctionChar->getSoul() . '</td>';
                $main_content .= '<td class="showItemSquare" style="background-image: url(/images/items/8.gif)"><img src="/images/items/'. $player_items[8] . '.gif" alt="" class="showItemImage"/></td>';
                $main_content .= '<td class="showItemSquare" style="background-color: #232323;text-align: center">Cap:<br />' . $auctionChar->getCap() . '</td></tr>';
                $main_content .= '</tr></table></td>';
                $main_content .= '</tr></table>';
    ############ SHOW DONATORS SHOP ITEMS ############
                $donators_items = $SQL->query('SELECT `player_items`.`itemtype`, SUM(`player_items`.`count`) AS count, `z_shop_offer`.`offer_name` AS name FROM `player_items`, `z_shop_offer` WHERE `player_items`.`player_id` = ' . $auctionChar->getId() . ' AND `z_shop_offer`.`offer_type` = \'item\' AND `player_items`.`itemtype` = `z_shop_offer`.`itemid1` GROUP BY `player_items`.`itemtype`;')->fetchAll();
                $donators_depotitems = $SQL->query('SELECT `player_depotitems`.`itemtype`, SUM(`player_depotitems`.`count`) AS count, `z_shop_offer`.`offer_name` AS name FROM `player_depotitems`, `z_shop_offer` WHERE `player_depotitems`.`player_id` = ' . $auctionChar->getId() . ' AND `z_shop_offer`.`offer_type` = \'item\' AND `player_depotitems`.`itemtype` = `z_shop_offer`.`itemid1` GROUP BY `player_depotitems`.`itemtype`;')->fetchAll();
                if(count($donators_items) > 0 || count($donators_depotitems) > 0)
                {
                    $main_content .= '<table class="tableFonts" style="margin-left: auto;margin-right: auto;padding-top: 30px;">';
                    if(count($donators_items) > 0)
                    {
                        $main_content .= '<tr class="tableHead"><td colspan="3">DONATORS ITEMS</td></tr>';
                        $row = 0;
                        foreach($donators_items as $donator_item)
                            $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td class="showItemSquare"><img src="/images/items/'. $donator_item['itemtype'] . '.gif" alt="" class="showItemImage"/></td><td>' . $donator_item['count'] .'x</td><td>' . $donator_item['name'] . '</td></tr>';
                    }
                    if(count($donators_depotitems) > 0)
                    {
                        $main_content .= '<tr class="tableHead"><td colspan="3">DONATORS IN DEPOT</td></tr>';
                        $row = 0;
                        foreach($donators_depotitems as $donator_depotitem)
                            $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td class="showItemSquare"><img src="/images/items/'. $donator_depotitem['itemtype'] . '.gif" alt="" class="showItemImage"/></td><td>' . $donator_depotitem['count'] .'x</td><td>' . $donator_depotitem['name'] . '</td></tr>';
                    }
                    $main_content .= '</table>';
                }
    ############ SHOW AUCTION INFO ############
                $row = 0;
                $main_content .= '<table class="tableFonts" style="margin-left: auto;margin-right: auto;padding-top: 30px;">';
                $main_content .= '<tr class="tableHead"><td colspan="2">AUCTION INFO</td></tr>';
                if($auctionInfo['buy_now'] > 0)
                    $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Buy now:</td><td>' . $auctionInfo['buy_now'] . ' premium points</td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Highest bid:</td><td>' . $auctionInfo['bid'] . ' premium points</td></tr>';
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Time left:</td><td><div name="timer_' . $auctionInfo['id'] . '" id="timer_' . $auctionInfo['id'] . '">' . time_left($auctionInfo['finish_time'] - time()) . '</div></td></tr>';
                $main_content .= '</table><br /><script type="text/javascript">countdown(' . ($auctionInfo['finish_time'] - time()) . ', \'timer_' . $auctionInfo['id'] . '\');</script>';
                if($auctionInfo['state'] == 0)
                {
                    $main_content .= '<form action="?subtopic=sellchar&action=bid&id=' . $auctionInfo['id'] . '" method="post" onsubmit="return checkBid(' . (($logged) ? $account_logged->getId() : 0) . ', ' . $auctionInfo['bidder'] . ', ' . (($logged) ? $account_logged->getPremiumPoints() : 0) . ', ' . $auctionInfo['bid'] . ');">';
                    $main_content .= '<table class="tableFonts" style="float: left;">';
                    $main_content .= '<tr class="tableHead"><td colspan="2">YOUR BID</td></tr>';
                    $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Bid:</td><td><input type="text" id="bid" name="bid" value="' . ($auctionInfo['bid'] + 1) . '" /> pp</td></tr>';
                    $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td colspan="2" style="text-align: center;"><input type="submit" value="BID" /></td></tr></table></form><br />';
                    if($auctionInfo['buy_now'] > 0)
                        $main_content .= '<a href="?subtopic=sellchar&action=buy&id=' . $auctionInfo['id'] . '" class="linkButton" style="float: right;" onclick="return checkBuyNow(' . (($logged) ? $account_logged->getId() : 0) . ', ' . (($logged) ? $account_logged->getPremiumPoints() : 0) . ', ' . $auctionInfo['buy_now'] . ');">BUY NOW!</a>';
                }
                $main_content .= '<div style="padding-top: 120px;padding-left: 45%"><a href="?subtopic=sellchar" class="linkButton">BACK</a></div>';
            }
            else
                $main_content .= $errorFormStart . 'ERROR! Character doesn\'t exist.' . $errorFormEnd;
        }
        else
            $main_content .= $errorFormStart . 'ERROR! Auction with this ID doesn\'t exist.' . $errorFormEnd;
    }
    elseif($action == "bid") ############ BID CHARACTER ############
    {
        $main_content .= '<div class="bigText" style="text-align: center">Bid character</div>';
        if($logged)
        {
            $auctionInfo = $SQL->query('SELECT * FROM `characters_auctions` WHERE `state` = 0 AND `id` = ' . (int) $_REQUEST['id'])->fetch();
            if(isset($auctionInfo['id']))
            {
                $auctionChar = new OTS_Player();
                $auctionChar->load($auctionInfo['char_id']);
                if($auctionChar->isLoaded())
                {
                    if($account_logged->getPremiumPoints() > $auctionInfo['bid'] || ($account_logged->getId() == $auctionInfo['bidder'] && $account_logged->getPremiumPoints() > 0))
                    {
                        if(isset($_REQUEST['bid']) && (int) $_REQUEST['bid'] > 0)
                        {
                            $userBid = (int) $_REQUEST['bid'];
                            if($account_logged->getPremiumPoints() >= $userBid || ($account_logged->getId() == $auctionInfo['bidder'] && $account_logged->getPremiumPoints() + $auctionInfo['bid'] >= $userBid))
                            {
                                if($userBid > $auctionInfo['bid'])
                                {
                                    if($account_logged->getId() != $auctionInfo['bidder'])
                                    {
                                        $last_bidder = new OTS_Account();
                                        $last_bidder->load($auctionInfo['bidder']);
                                        if($last_bidder->isLoaded())
                                        {
                                            $last_bidder->setPremiumPoints($last_bidder->getPremiumPoints() + $auctionInfo['bid']);
                                            $last_bidder->save();
                                        }
                                        $account_logged->setPremiumPoints($account_logged->getPremiumPoints() - $userBid);
                                    }
                                    else
                                        $account_logged->setPremiumPoints($account_logged->getPremiumPoints() + $auctionInfo['bid'] - $userBid);
                                    $account_logged->save();
                                    $SQL->query('UPDATE `characters_auctions` SET `bid` = ' . $userBid . ', `bidder` = ' . $account_logged->getId() . ' WHERE `id` = ' . $auctionInfo['id']);
                                    if($auctionInfo['finish_time'] - time() < 60)
                                        $SQL->query('UPDATE `characters_auctions` SET `finish_time` = ' . time() + 60 . ' WHERE `id` = ' . $auctionInfo['id']);
                                    $main_content .= '<div class="normalText">You have bidded ' . $userBid . ' premium points on auction ID ' . $auctionInfo['id'] . '!</div>';
                                    $main_content .= '<div style="padding-top: 120px;padding-left: 45%"><a href="?subtopic=sellchar&action=show&id=' . $auctionInfo['id'] . '" class="linkButton">BACK</a></div>';
                                }
                                else
                                    $main_content .= $errorFormStart . 'Sorry! Your bid is lower then current highest bid.<br />Your bid is: ' . $userBid . '<br />Highest bid: ' . $auctionInfo['bid'] . '' . $errorFormEnd;
                            }
                            else
                                $main_content .= $errorFormStart . 'Sorry! You do not have enought premium points.<br />Your bid is: ' . $userBid . '<br />You have: ' . $account_logged->getPremiumPoints() . '' . $errorFormEnd;
                        }
                        else
                            $main_content .= $errorFormStart . 'You must bid more then 0.' . $errorFormEnd;
                    }
                    else
                        $main_content .= $errorFormStart . 'Sorry! You do not have enought premium points.<br />Highest bid is: ' . $auctionInfo['bid'] . '<br />You have: ' . $account_logged->getPremiumPoints() . '' . $errorFormEnd;
                }
                else
                    $main_content .= $errorFormStart . 'ERROR! Character doesn\'t exist.' . $errorFormEnd;
            }
            else
                $main_content .= $errorFormStart . 'ERROR! Auction with this ID doesn\'t exist.' . $errorFormEnd;
        }
        else
            $main_content .= $errorFormStart . 'You are not logged in.' . $errorFormEnd;
    }
    elseif($action == "buy") ############ BUY CHARACTER ############
    {
        $main_content .= '<div class="bigText" style="text-align: center">Buy character</div>';
        if($logged)
        {
            $auctionInfo = $SQL->query('SELECT * FROM `characters_auctions` WHERE `state` = 0 AND `id` = ' . (int) $_REQUEST['id'])->fetch();
            if(isset($auctionInfo['id']))
            {
                if($auctionInfo['buy_now'] > 0)
                {
                    $auctionChar = new OTS_Player();
                    $auctionChar->load($auctionInfo['char_id']);
                    if($auctionChar->isLoaded())
                    {
                        if($account_logged->getPremiumPoints() >= $auctionInfo['buy_now'] || ($account_logged->getId() == $auctionInfo['bidder'] && $account_logged->getPremiumPoints() + $auctionInfo['bid'] >= $auctionInfo['buy_now']))
                        {
                            if($account_logged->getId() != $auctionInfo['bidder'])
                            {
                                $last_bidder = new OTS_Account();
                                $last_bidder->load($auctionInfo['bidder']);
                                if($last_bidder->isLoaded())
                                {
                                    $last_bidder->setPremiumPoints($last_bidder->getPremiumPoints() + $auctionInfo['bid']);
                                    $last_bidder->save();
                                }
                                $account_logged->setPremiumPoints($account_logged->getPremiumPoints() - $auctionInfo['buy_now']);
                            }
                            else
                                $account_logged->setPremiumPoints($account_logged->getPremiumPoints() + $auctionInfo['bid'] - $auctionInfo['buy_now']);
                            $account_logged->save();
                            $auctionChar->setAccount($account_logged);
                            $auctionChar->setGroup(1);
                            $auctionChar->save();
                            $SQL->query('INSERT INTO `bans` (`id` , `type` , `value` ,`param` ,`active` ,`expires` ,`added` ,`admin_id` ,`comment` ,`reason` ,`action` ,`statement`) VALUES (NULL , 2, ' .$auctionChar->getId() . ', 2, 1, -1, ' . time() . ', 1, \'BUY CHAR\', 0, 1, \'\');');
                            $SQL->query('UPDATE `characters_auctions` SET `state` = 2, `finish_time` = ' . time() . ', `bidder` = ' . $account_logged->getId() . ', `bid` = `buy_now` WHERE `id` = ' . $auctionInfo['id']);
                            $main_content .= '<div class="normalText">You have bought new character! Character is now on your account. Login in game and select new name for your character.</div>';
                            $main_content .= '<div style="padding-top: 120px;padding-left: 45%"><a href="?subtopic=sellchar" class="linkButton">BACK</a></div>';
                        }
                        else
                            $main_content .= $errorFormStart . 'Sorry! You do not have enought premium points.<br />It cost: ' . $auctionInfo['buy_now'] . '<br />You have: ' . $account_logged->getPremiumPoints() . '' . $errorFormEnd;
                    }
                    else
                        $main_content .= $errorFormStart . 'ERROR! Character doesn\'t exist.' . $errorFormEnd;
                }
                else
                    $main_content .= $errorFormStart . 'ERROR! You can not buy this character by Buy Now option. You can only Bid on auction.' . $errorFormEnd;
            }
            else
                $main_content .= $errorFormStart . 'ERROR! Auction with this ID doesn\'t exist.' . $errorFormEnd;
        }
        else
            $main_content .= $errorFormStart . 'You are not logged in.' . $errorFormEnd;
    }
    else ############ SHOW LIST OF AUCTIONS ############
    {
        if(isset($_REQUEST['delete']))
            if($logged && $account_logged->getPageAccess() >= $add_character_page_access)
            {
                $SQL->query('DELETE FROM `characters_auctions` WHERE `id` = ' . (int) $_REQUEST['delete']);
                $main_content .= $errorFormStart . 'Auction ' . (int) $_REQUEST['delete'] . ' should be deleted.' . $errorFormEnd;
            }
            else
                $main_content .= $errorFormStart . 'You can not delete. You do not have access.' . $errorFormEnd;
        $main_content .= '<div class="bigText" style="text-align: center">Characters Auctions</div>';
        $main_content .= '<div class="normalText">With this system you can buy un-used (inactive) characters by auctioning for them. When you bid on a character it will automatically take premium points from your account. If someone out-bids you, you will get those premium points added back to your account. If the auction time is under 2 minutes when someone bids, 1 minute will automatically be added to the auction time to give time for a re-bid from the previous bidder. If you choose to "buy now" you will get the character within 1 minute.</div>';
        $main_content .= '<table class="tableFonts"><tr class="tableHead" style="font-size: 28px;text-align: center"><td>Time left</td><td>Char info</td><td>Buy now</td><td>Highest bid</td></tr>';
        foreach($SQL->query('SELECT * FROM `characters_auctions` WHERE `finish_time` > ' . time())->fetchAll() as $auctionInfo)
        {
            $auctionChar = new OTS_Player();
            $auctionChar->load($auctionInfo['char_id']);
            if($auctionChar->isLoaded())
                $main_content .= '<tr class="tableRow' . ($row++ % 2) . '" style="font-size: 16px;text-align: center" onclick="window.location = \'?subtopic=sellchar&action=show&id=' . $auctionInfo['id'] . '\'"><td><div id="timer_' . $auctionInfo['id'] . '">' . time_left($auctionInfo['finish_time'] - time()) . '</div></td><td>' . $auctionChar->getLevel() . ' ' . $vocation_name[$auctionChar->getWorld()][$auctionChar->getPromotion()][$auctionChar->getVocation()] . '</td><td>' . $auctionInfo['buy_now'] . ' pp</td><td>' . $auctionInfo['bid'] . ' pp</td></tr>';
            $timers['timer_' . $auctionInfo['id']] = $auctionInfo['finish_time'] - time();
        }
        $main_content .= '</table><br /><div class="normalText">Press on auction to get more informations.</div>';
        $main_content .= '<script type="text/javascript">';
        foreach($timers as $timer_id => $time_left)
            $main_content .= 'countdown(' . $time_left . ', \'' . $timer_id . '\');';

    Ver perfil de usuario http://monterrey.servegame.com

    akiles

    avatar
    Miembro
    Miembro
    Agradecer no cuesta nada o un :(MG):

    Ver perfil de usuario http://monterrey.servegame.com

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    No puedes comentar dos veces seguidas en un mismo post tienes que esperar 24 horas para poder hacer un comentario o esperar que alguien responda o si te olvidaste de algo por favor edita tu post, ya está advertido en la próxima será baneado por 15 dias.



    Ver perfil de usuario http://www.tibiaface.com

    Invitado

    avatar
    Invitado
    funciona en gesior ?? y es 1.2??

    Codigo no estais completo is bug !

    Ver perfil de usuario

    pierroth

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Y este script donde va o como se pone o k onda?
    esta bueno, pero para los ke no saben ps nada mas nos dejas con las ganas xD

    Pero muchas gracias por el aporte, ojala puedas explicar donde va el script

    Ver perfil de usuario

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Y este script donde va o como se pone o k onda?
    esta bueno, pero para los ke no saben ps nada mas nos dejas con las ganas xD

    Pero muchas gracias por el aporte, ojala puedas explicar donde va el script


    eso va en la apgina web gesior acc



    Ver perfil de usuario http://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).