Ir para conteúdo
Entre para seguir isso  
kleyne

[GESIOR ACC] Vende Char Por pontos

Recommended Posts

kleyne    0
kleyne

43673009256257985775.giflá pessoal traquilo?!

 

resolvi passa para otnet eu peguei esse script em outro fórum.

 

na verdade ele não colocou o credito do criado.

Credito: Kleyner (Edit)

 

estão peguei e fiz um traduze em português, e editei alguma paste mais organizado do fundo.

 

Explicando da leilão:

 

  • Venda nos leilões personagens (por Premium points)
  • opção "Compre agora"
  • Personagem de name lock, quando o jogador comprá-lo (o jogador pode escolher o novo nome no site da sua conta)
  • Painel de administração (loga na conta de admin site, padrão 1 ) para procurar bons personagens para vender (uma espécie de tempo offline, o nível, você pode definir o nível mínimo)
  • Traduzido em Português.

 

Fotos:

Lista de Leilões

17061705505029198413.jpg

 

Painel de administração da LEILÃO e Adicionar

56933804070536330901.jpg

 

Informações do Personagens de Leilão

52823122102323722375.jpg

 

estão vamos começa o tutorial.

 

1ª cola isso em sua database na SQL

 

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` )); 

 

 

2ª Criar arquivo chamado sellchar.php e cola isso.

 

<?PHP ################################################# ### Scripted by PhoOwned ### ### All rights reserverd ### ### Do not use/distribute without permission! ### ### Contact: [email protected] ### ### [email protected] ### ################################################# /* 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: #efe1c7;text-align: center;vertical-align: middle;font-size: 20pt} .tableRow0 {background-color: #a4967f;text-align: left;vertical-align: middle;font-size: 12pt} .tableRow0:hover {background-color: #fef0d6;} .tableRow1 {background-color: #ebdcc5;text-align: left;vertical-align: middle;font-size: 12pt} .tableRow1:hover {background-color: #fef0d6;} .tableRowSmall0 {background-color: #a4967f;text-align: left;vertical-align: middle;font-size: 10pt} .tableRowSmall0:hover {background-color: #fef0d6;} .tableRowSmall1 {background-color: #efe1c7;text-align: left;vertical-align: middle;font-size: 10pt} .tableRowSmall1:hover {background-color: #fef0d6;} .linkButton {background-color: #a4967f;font-size: 14pt;padding: 6px;text-shadow: 2mm 2mm 2mm #fef0d6;letter-spacing: 2mm} .linkButton:hover {background-color: efe1c7;} .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 + ". voce nao pode oferecer " + bid + "."); return false } if(bid > user_points) { alert ("voce nao pode oferecer " + bid + ". voce tem apenas " + user_points + "."); return false } if(account_id == bidder_id) { var answer = confirm ("Voce tem maior lance no leilao. Tem certeza que quer fazer oferta mais elevada?") 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 + ". voce tem apenas " + user_points + "."); return false } var answer = confirm ("Este personagem custo " + buy_now + ". Voce quer comprar?") 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"> <center>Painel de administracao do LEILAO</center></a> </div>'; if($action == "addauction") ############ Adicionar Leilao / 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 . 'Personagem com ID ' . $id . ' leilao adicionou.' . $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="normalText"><a href="?subtopic=sellchar"> <center><img src="\images/Volta.png"> </center></a></div>'; $main_content .= '<div class="bigText" style="text-align: center">Adicionar Leilao</div>'; $main_content .= '<div class="normalText">Se voce deixar Comprar campo em branco ou definido como 0, ele nao vai ser possivel comprar o carater de opcao de compra agora.</div>'; $main_content .= '<table class="tableFonts" style="margin-left: auto;margin-right: auto;">'; $main_content .= '<tr class="tableHead"><td colspan="8">Caracteres da lista</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">ordenar por</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">Nome contem:<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" /> dias</td><td>Resultados<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>Nome</td><td>Nivel & Vocacao</td><td>Offline</td><td>Leilao tempo</td><td>Leilao minutos. offer</td><td>Compra Agora</td><td>Adicioner</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" /> horas</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">Leilao 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'] . '"><center> Excluir leilao.</center> </a></div>'; $main_content .= '<div class="normalText"> <a href="?subtopic=sellchar"> <center> <img src="\images/Volta.png"> </center></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">Personagem de Informacao</td></tr>'; $main_content .= '<tr><td><table style="width: 360px;border-spacing: 1px">'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>ID do Leilao:</td><td>' . $auctionInfo['id'] . '</td></tr>'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Nome:</td><td>' . $auctionChar->getName() . '<br /><div style="font-size: 8pt;">(Voce seleciona novo nome quando voce ganha leilao.)</div></td></tr>'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Nivel:</td><td>' . $auctionChar->getLevel() . '</td></tr>'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Profissao:</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 cap ############ 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-image: url(/images/items/11.gif)">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-image: url(/images/items/11.gif)">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">Informacoes Leilao:</td></tr>'; if($auctionInfo['buy_now'] > 0) $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Compre agora:</td><td>' . $auctionInfo['buy_now'] . ' premium points</td></tr>'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>lance mais alto:</td><td>' . $auctionInfo['bid'] . ' premium points</td></tr>'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Tempo restante:</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">SUA OFERTA</td></tr>'; $main_content .= '<tr class="tableRow' . ($row++ % 2) . '"><td>Oferta:</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="Oferta" /></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'] . ');"> <img src="\images/Compra.png"></a>'; } $main_content .= '<p><div style="padding-top: 50px;padding-left: 5%"><a href="?subtopic=sellchar" class="linkButton"> <img src="\images/Volta.png"> </a> </a></div><BR>'; } 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">Oferta de Personagem</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">Voce tem mais oferta do que ' . $userBid . ' pontos a mais no leilao 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"><img src="\images/Volta.png"></a></div>'; } else $main_content .= $errorFormStart . 'Desculpe! Sua oferta e menor, entao atual oferta mais elevada.<br />Seu lance e: ' . $userBid . '<br />Lance mais alto: ' . $auctionInfo['bid'] . '' . $errorFormEnd; } else $main_content .= $errorFormStart . 'Desculpe! Voce nao tem pontos premium suficiente.<br />Seu lance e: ' . $userBid . '<br />Voce tem: ' . $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">Parabens</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">Voce comprou novo personagem! Carater e agora em sua conta. Entrar no jogo e selecione novo nome para seu personagem.</div>'; $main_content .= '<div style="padding-top: 120px;padding-left: 45%"> <a href="?subtopic=sellchar" class="linkButton"><img src="\images/Volta.png"> </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 . 'ERRO! Personagem nao existe.' . $errorFormEnd; } else $main_content .= $errorFormStart . 'ERRO! Você nao pode comprar esse carater por opcao de comprar agora. voca so pode oferecer em leilao.' . $errorFormEnd; } else $main_content .= $errorFormStart . 'ERRO! Leilao com este ID nao existe.' . $errorFormEnd; } else $main_content .= $errorFormStart . 'Voce nao esta logado.' . $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 . 'Voce nao pode apagar. Voce neo tem acesso.' . $errorFormEnd; $main_content .= '<div class="bigText" style="text-align: center">Lista de Leiloes</div>'; $main_content .= '<div class="normalText">Com este sistema voce pode comprar nao-utilizado (inativos) caracteres por meio de leiloes para eles. Quando voce compra em um personagem que vai assumir automaticamente os pontos de premio de sua conta. Se alguem fora lances, voce ira obter os pontos de premio acrescentado a sua conta. Se o tempo do leilao e inferior a 2 minutos, quando alguem fizer uma oferta, um minuto sera automaticamente adicionado ao tempo do leilao para dar tempo para uma nova licitacao do licitante anterior. Se voce optar por "comprar agora", voce encontrara o personagem dentro de 1 minuto.</div>'; $main_content .= '<table class="tableFonts"><tr class="tableHead" style="font-size: 28px;text-align: center"><td>Tempo restante</td><td>Nivel e Profissao</td><td>Premium Points</td><td>Maior lance</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">Imprensa em leilao para obter mais informacoes..</div>'; $main_content .= '<script type="text/javascript">'; if(isset($timers)) foreach($timers as $timer_id => $time_left) $main_content .= 'countdown(' . $time_left . ', \'' . $timer_id . '\');'; $main_content .= '</script>'; } $main_content .= '</b></td> </td> </tr> <div align="right"> <small> <b>Editado por Kleyner: <a href="http://forums.otserv.com.br/member.php?127403-kleyne/">Kleyner</a> </b> </small> </div> '; ?>"]SellChar.php

 

Pronto. agora e so vc faz leilão com jogadores que gostarias de vende char, mais lembrado somente Admin como God q pode faz leilão para o jogadores.

 

Link da Images Itens

Editado por kleyne
Formatação e Link Images itens

Compartilhar este post


Link para o post
Falling    0
Falling

Onde cria esse arquivo? sellchar.php ;s

Nao indendi, o proprio player nao pode por o char dele em leilao?

Compartilhar este post


Link para o post
kleyne    0
kleyne
Onde cria esse arquivo? sellchar.php ;s

Nao indendi, o proprio player nao pode por o char dele em leilao?

 

tipw, o sellchar.php fica na paste do seu site ex: C:\xampp\htdocs\sellchar.php

 

tipw e por seguranças para todos player, somente Admin ou GM depende da funções da equipe quer tem acesso, e so configura para quem tem acesso.

 

Pq o player nao pode por char em leilao? pq esse leilao tem acesso em todos leilao que esta na venda. ele pode deleta todas que estive em leilao vendedo um char, por isso colocou somente Admin q pode editar, Deletar e Add.

Compartilhar este post


Link para o post
Rajas    0
Rajas

qual a senha para baixar as imagens??

Compartilhar este post


Link para o post
SubythKiller    2
SubythKiller
-- Ta faltando a senha das imagens...

 

Parabéns cara, mereçe um ST++

Estava procurando isso e vir aqui na otnet pra ver minhas mensagens e me deparei com isso... Obrigado por compartilhar!

Compartilhar este post


Link para o post
Alexx Pirado lol    3
Alexx Pirado lol

@Tópico

Esse script parece ser muito bom, porém ao meu ver faltam algumas funcionalidades, mesmo assim, show de script!

 

@Off

Eu fico realmente surpreendido ao ver pessoas pegando scripts prontos de outras pessoas/fóruns e colocando na assinatura como "Trabalhos Feitos"..

Nada contra postar scripts prontos, na verdade até apoio, pois muitas pessoas não tem conhecimento em inglês para procurar em outros fóruns e até mesmo por confiar mais nesta comunidade acabam procurando scripts somente aqui..

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×