Piabeta Kun 359 Postado Outubro 6, 2012 Share Postado Outubro 6, 2012 (editado) Bem como o já dito no titulo, é um script que voce coloca um char par vender em um leilão por premium points! Sobre o Script: - Vende chars por pontos na loja(o player ponhe uma offer no leilão, quem comprar tem que ter os pontos pedidos na oferta para obter o char e o dono da oferta recebe os pontos!). - O char a venda ao ser comprado receberá namelock e o comprador poderá colocar um novo nome no char! - Painel de administração (Logar com conta administradora) para procurar bons personagens para vender (classificação por tempo offline, nível, você pode definir o nível mínimo). Bem vamos ao que interessa! Execute essa Query 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` )); E crie um arquivo chamado charauction.php e dentro coloque isso: <?PHP ################################################# ### Scripted by PhoOwned ### ### All rights reserverd ### ### Do not use/distribute without permission! ### ### Contact: phoowned@wp.pl ### ### jerzyskalski@wp.pl ### ################################################# /* 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 . '\');'; $main_content .= '</script>'; } $main_content .= '<br /><br />'; ?> Adicione isso em index.php: case "charauction": $topic = "charauction"; $subtopic = "charauction"; include("charauction.php"); break; Logo abaixo disso: case "latestnews": $topic = "Latest News"; $subtopic = "latestnews"; include("latestnews.php"); break; E adicione isso em layout/seulayout/layout.php: <a href='?subtopic=charauction'> <div id='submenu_charauction' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_guilds' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Chars Action</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div></a> Logo abaixo disso: <a href='?subtopic=guilds'> <div id='submenu_guilds' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_guilds' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Guilds</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div></a> Imagens Creditos: PhoOwned PiabetaMan01 (por trazer ao forum). Editado Outubro 6, 2012 por PiabetaMan01 Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/ Compartilhar em outros sites More sharing options...
DragonTheory 2 Postado Outubro 6, 2012 Share Postado Outubro 6, 2012 UiUi Muito xique isso ai curti mesmo,mais nem vo usar pq nao tenho site =( Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1356076 Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 6, 2012 Autor Share Postado Outubro 6, 2012 UiUi Muito xique isso ai curti mesmo,mais nem vo usar pq nao tenho site =( Cuidado com o comentario amigo para não ser considerado flood! Mesmo assim obrigado pelo comentario! Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1356106 Compartilhar em outros sites More sharing options...
DragonTheory 2 Postado Outubro 6, 2012 Share Postado Outubro 6, 2012 UiUi Muito xique isso ai curti mesmo,mais nem vo usar pq nao tenho site =( Cuidado com o comentario amigo para não ser considerado flood! Mesmo assim obrigado pelo comentario! Em qual momento isso poderia ser considerado flood? Pois des de a hora que eu disse "muito xique" eu me esprecei como gostei e você teria que receber como um elogio assim sendo motivador. E flood é quando você faz um comentario totalmente sem sentido,certo? Então não é flood ;D e vo cria um site só pra testa isso kkk Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1356107 Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 6, 2012 Autor Share Postado Outubro 6, 2012 UiUi Muito xique isso ai curti mesmo,mais nem vo usar pq nao tenho site =( Cuidado com o comentario amigo para não ser considerado flood! Mesmo assim obrigado pelo comentario! Em qual momento isso poderia ser considerado flood? Pois des de a hora que eu disse "muito xique" eu me esprecei como gostei e você teria que receber como um elogio assim sendo motivador. E flood é quando você faz um comentario totalmente sem sentido,certo? Então não é flood ;D e vo cria um site só pra testa isso kkk Eu comentei para você não acabar fugindo do assunto que seria o script, intendeu meu caro, eu nao disse que era flood, pq se fosse eu teria o reportado! Você é um bom membro e acho que entende o que eu quiz dizer! Leve na esportiva eu só quiz te ajudar para não manter um padrão de comentario onde no futuro poderia sair do foco do topico e voce tomaria alerta de bobeira! Att: PiabetaMan01 Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1356110 Compartilhar em outros sites More sharing options...
DragonTheory 2 Postado Outubro 6, 2012 Share Postado Outubro 6, 2012 Estamos fugindo do assunto que é o script,discussão encerrada. Sobre o Script Gostei Funcionou Corretamente aqui,Obrigado por nos disponibilizar. Rep+ Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1356117 Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 6, 2012 Autor Share Postado Outubro 6, 2012 Vlw e bom uso a todos! Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1356120 Compartilhar em outros sites More sharing options...
Subhe 3 Postado Outubro 7, 2012 Share Postado Outubro 7, 2012 olha mano, eu boto tudo certinho aqui, aparece a pagina e tals.. mas nao consigo por os char pra leilão tlg ;s me ajuda ai ;s Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1357067 Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 7, 2012 Autor Share Postado Outubro 7, 2012 veja nas configurações o lvl minimo para vender o char e certifiquese que esta logado! Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1357465 Compartilhar em outros sites More sharing options...
RHCP 24 Postado Outubro 11, 2012 Share Postado Outubro 11, 2012 Vi na otland que essa página pode ter inject, bem, eu não sei. Seria legal um sistema de leilao de item no site, por gold mesmo, ai eu ia curtir. Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1360939 Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 11, 2012 Autor Share Postado Outubro 11, 2012 Gold que você fala é por grana in game? Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1361151 Compartilhar em outros sites More sharing options...
RHCP 24 Postado Outubro 13, 2012 Share Postado Outubro 13, 2012 Gold que você fala é por grana in game? Sim, por crystal coin, gold coin, platinium. Vi que tem um sistema assim por talk, mas por site seria show. Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1362840 Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 16, 2012 Autor Share Postado Outubro 16, 2012 Não é impossivel fazer, porém não é minha prioridade no momento! Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1365075 Compartilhar em outros sites More sharing options...
Pedrinhowi 0 Postado Janeiro 25, 2013 Share Postado Janeiro 25, 2013 eu fiz tudu certinho mais ta dando o seguinte erro na pagina Warning: Invalid argument supplied for foreach() in \xampp\htdocs\charauction.php on line 508 tem como me ajudar Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1449137 Compartilhar em outros sites More sharing options...
AlexandreKG 134 Postado Janeiro 27, 2013 Share Postado Janeiro 27, 2013 -RHCP Você quer fazer um leilão em ves de ser char,quer fazer por items no caso crystal coins,gold coins seria isso? -Pedrinhowi Você deve ter feito algo errado,refaça o procedimento e certifique-se que está tudo certo. Link para o comentário https://xtibia.com/forum/topic/195763-gesior-leil%C3%A3o-de-characters-por-premium-points/#findComment-1450379 Compartilhar em outros sites More sharing options...
Posts Recomendados