Ir para conteúdo

[Gesior] Leilão De Characters Por Premium Points!


Piabeta Kun

Posts Recomendados

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

 

as1.JPG

 

as2.JPG

 

Creditos:

PhoOwned

PiabetaMan01 (por trazer ao forum).

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

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
Compartilhar em outros sites

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
Compartilhar em outros sites

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
Compartilhar em outros sites

  • 3 months later...

-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
Compartilhar em outros sites

×
×
  • Criar Novo...