Mudrock 326 Postado Agosto 26, 2015 Share Postado Agosto 26, 2015 Troque seu shopsystem.php por esse : <?php if(!defined('INITIALIZED')) exit; if($config['site']['shop_system']) { if($logged) { $user_premium_points = $account_logged->getCustomField('premium_points'); } else { $user_premium_points = 'Login first'; } function getItemByID($id) { $id = (int) $id; $SQL = $GLOBALS['SQL']; $data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE '.$SQL->fieldName('id').' = '.$SQL->quote($id).';')->fetch(); if($data['offer_type'] == 'item') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'mount') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'addon') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'premmium') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } return $offer; } function getOfferArray() { $offer_list = $GLOBALS['SQL']->query('SELECT * FROM '.$GLOBALS['SQL']->tableName('z_shop_offer').';'); $i_item = 0; $i_mount = 0; $i_addon = 0; $i_container = 0; while($data = $offer_list->fetch()) { if($data['offer_type'] == 'item') { $offer_array['item'][$i_item]['id'] = $data['id']; $offer_array['item'][$i_item]['item_id'] = $data['itemid1']; $offer_array['item'][$i_item]['item_count'] = $data['count1']; $offer_array['item'][$i_item]['points'] = $data['points']; $offer_array['item'][$i_item]['description'] = $data['offer_description']; $offer_array['item'][$i_item]['name'] = $data['offer_name']; $i_item++; } elseif($data['offer_type'] == 'mount') { $offer_array['mount'][$i_mount]['id'] = $data['id']; $offer_array['mount'][$i_mount]['container_id'] = $data['itemid1']; $offer_array['mount'][$i_mount]['container_count'] = $data['count1']; $offer_array['mount'][$i_mount]['item_id'] = $data['itemid1']; $offer_array['mount'][$i_mount]['item_count'] = $data['count2']; $offer_array['mount'][$i_mount]['points'] = $data['points']; $offer_array['mount'][$i_mount]['description'] = $data['offer_description']; $offer_array['mount'][$i_mount]['name'] = $data['offer_name']; $i_mount++; } elseif($data['offer_type'] == 'addon') { $offer_array['addon'][$i_addon]['id'] = $data['id']; $offer_array['addon'][$i_addon]['container_id'] = $data['itemid1']; $offer_array['addon'][$i_addon]['container_count'] = $data['count1']; $offer_array['addon'][$i_addon]['item_id'] = $data['itemid1']; $offer_array['addon'][$i_addon]['item_count'] = $data['count2']; $offer_array['addon'][$i_addon]['points'] = $data['points']; $offer_array['addon'][$i_addon]['description'] = $data['offer_description']; $offer_array['addon'][$i_addon]['name'] = $data['offer_name']; $i_addon++; } elseif($data['offer_type'] == 'container') { $offer_array['container'][$i_container]['id'] = $data['id']; $offer_array['container'][$i_container]['container_id'] = $data['itemid1']; $offer_array['container'][$i_container]['container_count'] = $data['count1']; $offer_array['container'][$i_container]['item_id'] = $data['itemid2']; $offer_array['container'][$i_container]['item_count'] = $data['count2']; $offer_array['container'][$i_container]['points'] = $data['points']; $offer_array['container'][$i_container]['description'] = $data['offer_description']; $offer_array['container'][$i_container]['name'] = $data['offer_name']; $i_container++; } } return $offer_array; } if(($action == '') or ($action == 'item') or ($action == 'mount') or ($action == 'addon') or ($action == 'container')) { unset($_SESSION['viewed_confirmation_page']); $offer_list = getOfferArray(); if(empty($action)) { if(count($offer_list['item']) > 0) $action = 'item'; elseif(count($offer_list['mount']) > 0) $action = 'mount'; elseif(count($offer_list['addon']) > 0) $action = 'addon'; elseif(count($offer_list['container']) > 0) $action = 'container'; } function selectcolor($value) { if($GLOBALS['action'] == $value) return '#505050; color: #FFFFFF'; else return '#303030; color: #aaaaaa'; } if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="2"><B>Choose a categorie: </B>'; if(count($offer_list['container']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=container" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('container').';">Premium Account<img src="images/items/7.gif"/></a>'; if(count($offer_list['item']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=item" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('item').';">Items<img src="images/items/3.gif"/></a>'; if(count($offer_list['mount']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=mount" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('mount').';">Mounts<img src="images/items/11.gif"/></a>'; if(count($offer_list['addon']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=addon" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('addon').';">Addons<img src="images/items/1.gif"/></a>'; $main_content .= '</TD></TR></TD></TR></table><table BORDER=0 CELLPaDDING="4" CELLSPaCING="1" style="width:100%;font-weight:bold;text-align:center;"><tr style="background:#505050;"><td colspan="3" style="height:px;"></td></tr></table>'; } //show list of items offers if((count($offer_list['item']) > 0) and ($action == 'item')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['item'] as $item) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$item['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $item['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($item['name']).'</b> ('.$item['points'].' points)<br />'.htmlspecialchars($item['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$item['id'].'"><input type="hidden" name="buy_id" value="'.$item['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$item['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of mount offers if((count($offer_list['mount']) > 0) and ($action == 'mount')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['mount'] as $mount) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$mount['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $mount['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($mount['name']).'</b> ('.$mount['points'].' points)<br />'.htmlspecialchars($mount['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$mount['id'].'"><input type="hidden" name="buy_id" value="'.$mount['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$mount['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of addon offers if((count($offer_list['addon']) > 0) and ($action == 'addon')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['addon'] as $addon) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$addon['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $addon['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($addon['name']).'</b> ('.$addon['points'].' points)<br />'.htmlspecialchars($addon['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$addon['id'].'"><input type="hidden" name="buy_id" value="'.$addon['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$addon['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of containers offers if((count($offer_list['container']) > 0) and ($action == 'container')) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['container'] as $container) { $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$container['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $container['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($container['name']).'</b> ('.$container['points'].' points)<br />'.htmlspecialchars($container['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="contform_'.$container['id'].'"><input type="hidden" name="buy_id" value="'.$container['id'].'"><div class="navibutton"><a href="" onClick="contform_'.$container['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //Finish container if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0)) { $main_content .= '<table BORDER=0 CELLPaDDING="4" CELLSPaCING="1" style="width:100%;font-weight:bold;text-align:center;"> <tr style="background:#505050;"> <td colspan="3" style="height:px;"></td> </tr> </table>'; } } if($action == 'select_player') { unset($_SESSION['viewed_confirmation_page']); if(!$logged) { $errormessage .= 'Please login first.'; } else { $buy_id = (int) $_REQUEST['buy_id']; if(empty($buy_id)) { $errormessage .= 'Please <a href="?subtopic=shopsystem">select item</a> first.'; } else { $buy_offer = getItemByID($buy_id); if(isset($buy_offer['id'])) //item exist in database { if($user_premium_points >= $buy_offer['points']) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Selected Offer</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Name:</b></td><td width="550">'.htmlspecialchars($buy_offer['name']).'</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Description:</b></td><td width="550">'.htmlspecialchars($buy_offer['description']).'</td></tr> </table><br /> <form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to player from your account</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">'; $players_from_logged_acc = $account_logged->getPlayersList(); if(count($players_from_logged_acc) > 0) { foreach($players_from_logged_acc as $player) { $main_content .= '<option>'.htmlspecialchars($player->getName()).'</option>'; } } else { $main_content .= 'You don\'t have any character on your account.'; } $main_content .= '</select> <input type="submit" value="Give"></td></tr> </table> </form><br /><form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to other player</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of player</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="110"><b>From:</b></td><td width="550"><input type="text" name="buy_from"> <input type="submit" value="Give"> - your nick, \'empty\' = Anonymous</td></tr> </table><br /> </form>'; } else { $errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.'; } } else { $errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">select item</a> again.'; } } } if(!empty($errormessage)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR> </table>'; } } elseif($action == 'confirm_transaction') { if(!$logged) { $errormessage .= 'Please login first.'; } else { $buy_id = (int) $_POST['buy_id']; $buy_name = trim($_POST['buy_name']); $buy_from = trim($_POST['buy_from']); if(empty($buy_from)) { $buy_from = 'Anonymous'; } if(empty($buy_id)) { $errormessage .= 'Please <a href="?subtopic=shopsystem">select item</a> first.'; } else { if(!check_name($buy_from)) { $errormessage .= 'Invalid nick ("from player") format. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.'; } else { $buy_offer = getItemByID($buy_id); if(isset($buy_offer['id'])) //item exist in database { if($user_premium_points >= $buy_offer['points']) { if(check_name($buy_name)) { $buy_player = new Player(); $buy_player->find($buy_name); if($buy_player->isLoaded()) { $buy_player_account = $buy_player->getAccount(); if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes') { if($buy_offer['type'] == 'item') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Item added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } elseif($buy_offer['type'] == 'mount') { $account_id = $buy_player->getCustomField('id'); $on = $SQL->query('SELECT * FROM '.$SQL->tableName('players_online').' WHERE '.$SQL->fieldName('player_id').' = '.$account_id.';')->fetch(); if ($on == false) { $SQL->query('INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES ('.$account_id.', '.$SQL->quote($buy_offer['item_id']).', 1);'); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Mount was added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> mounts (he will get this mounts after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } else { $errormessage .= '<b>'.htmlspecialchars($buy_player->getName()).' has to be offline!</b>'; } } elseif($buy_offer['type'] == 'addon') { $account_id = $buy_player->getCustomField('id'); $on = $SQL->query('SELECT * FROM '.$SQL->tableName('players_online').' WHERE '.$SQL->fieldName('player_id').' = '.$account_id.';')->fetch(); if ($on == false) { $SQL->query('INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES ('.$account_id.', '.$SQL->quote($buy_offer['item_id']).', 1);'); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Addon was added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> addons (he will get this addons after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } else { $errormessage .= '<b>'.htmlspecialchars($buy_player->getName()).' has to be offline!</b>'; } } elseif($buy_offer['type'] == 'container') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote($buy_offer['container_id']).', '.$SQL->quote($buy_offer['container_count']).', '.$SQL->quote('container').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Container of items added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this container with items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } } else { $set_session = TRUE; $_SESSION['viewed_confirmation_page'] = 'yes'; $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="3" class="white"><b>Confirm Transaction</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['name']).'</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['description']).'</td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'. htmlspecialchars($buy_offer['points']).' premium points</b> from your account</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_player->getName()).'</font></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_from).'</font></td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Transaction?</b></td><td width="275" align="left"> <form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.htmlspecialchars($buy_from).'"><input type="hidden" name="buy_name" value="'.htmlspecialchars($buy_name).'"><input type="submit" value="Accept"></form></td> <td align="right"><form action="?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr> </table> '; } } else { $errormessage .= 'Player with name <b>'.htmlspecialchars($buy_name).'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.'; } } else { $errormessage .= 'Invalid name format. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.'; } } else { $errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.'; } } else { $errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">select item</a> again.'; } } } } if(!empty($errormessage)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR> </table>'; } if(!$set_session) { unset($_SESSION['viewed_confirmation_page']); } } elseif($action == 'show_history') { if(!$logged) { $errormessage .= 'Please login first.'; } else { $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td><font color="'.$char_color.'">'.htmlspecialchars($item_received['to_name']).'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= htmlspecialchars($item_received['from_nick']); $items_received_text .= '</td><td>'.htmlspecialchars($item_received['offer_id']).'</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s", $item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><center><B>Transactions History</B></center></TD></TR> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR> </table><br>'; if(!empty($items_received_text)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="5"><B>Item Transactions</B></TD></TR> <tr bgcolor="'.$config['site']['darkborder'].'"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Bought on page</b></td><td><b>Received on OTS</b></td></tr> '.$items_received_text.' </table><br />'; } if(empty($items_received_text)) $errormessage .= 'You did not buy/receive any item.'; } if(!empty($errormessage)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR> </table>'; } } $main_content .= '<br><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Premium Points</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b><font color="green">You have premium points: </font></b>'.$user_premium_points.'</TD></TR> </table>'; } else $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=center CLASS=white ><B>Shop Information</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><center>Shop is currently closed. [to admin: edit it in \'config/config.php\']</TD></TR> </table>'; Agr em data/creaturescripts/scripts crie addonmount.lua addonmount.lua function onLogin(cid) local player = Player(cid) local addons ={ --[storage] = {outfit_male, outfit_female}, [28416] = {143, 147}, -- barbarian [28417] = {134, 142}, -- warrior [28418] = {152, 156}, -- assassins [28419] = {465, 466}, -- Insectoid [28420] = {133, 141}, -- summoner [28421] = {472, 471}, -- Entrepreneur [28422] = {144, 148}, -- duid [28423] = {278, 279}, -- brotherhood [28424] = {577, 578}, -- Dream Warden [28425] = {610, 618}, -- Glooth Engineer [28426] = {130, 138}, -- mage [28427] = {634, 635}, -- Conjurer [28428] = {128, 136}, -- Citizen [28429] = {129, 137}, -- Hunter [28430] = {131, 139}, -- Kinghit [28431] = {132, 140}, -- Noblewoman [28432] = {145, 149}, -- Wizard [28433] = {146, 150}, -- Oriental [28434] = {151, 155}, -- Pirate [28435] = {153, 157}, -- Beggar [28436] = {154, 158}, -- Shaman [28437] = {251, 252}, -- Norsewoman [28438] = {268, 269}, -- Nightmare [28439] = {273, 270}, -- jester [28441] = {289, 288}, -- demonhunter [28442] = {325, 324}, -- yalaharian [28444] = {335, 336}, -- warnaster [28445] = {327, 366}, -- wayfarer [28446] = {430, 431}, -- afflicted [28447] = {432, 433}, -- elementalist [28448] = {463, 464}, -- deepling [28449] = {512, 513}, -- crystal warlord [28450] = {516, 514}, -- soil guardian [28451] = {541, 542}, -- demon [28452] = {574, 575}, -- cave explorer [28453] = {619, 620}, -- jersey [28454] = {637, 636}, -- beastmaster [28455] = {632, 633} -- champion } for storage, addon in pairs(addons) do if player:getStorageValue(storage) > 0 then player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addOutfitAddon(addon[1], 3) player:addOutfitAddon(addon[2], 3) player:sendTextMessage(MESSAGE_INFO_DESCR, "Seu Addon full foi adicionado!") player:setStorageValue(storage, 0) end end local mounts ={ --[storage] = mounts, [80000] = 1, -- Widow Queen [80001] = 2, -- Racing Bird [80002] = 3, -- War Bear [80003] = 4, -- Black Sheep [80004] = 5, -- Midnight Panther [80005] = 6, -- Draptor [80006] = 7, -- Titanica [80007] = 8, -- Tin Lizzard [80008] = 9, -- Blazebringer [80009] = 10, -- Rapid Boar [80010] = 11, -- Stampor [80011] = 12, -- Undead Cavebear [80012] = 13, -- Donkey [80013] = 14, -- Tiger Slug [80014] = 15, -- Uniwheel [80015] = 16, -- Crystal Wolf [80016] = 17, -- War Horse [80017] = 18, -- Kingly Deer [80018] = 19, -- Tamed Panda [80019] = 20, -- Dromedary [80020] = 21, -- King Scorpion [80021] = 22, -- Rented Horse [80022] = 23, -- Armoured War Horse [80023] = 24, -- Shadow Draptor" [80024] = 25, -- Rented Horse [80025] = 26, -- Nethersteed [80026] = 27, -- Ladybug [80027] = 28, -- Manta [80028] = 29, -- Ironblight [80029] = 30, -- Magma Crawler [80030] = 31, -- Dragonling [80031] = 32, -- Gnarlhound [80032] = 33, -- Crimson Ray [80033] = 34, -- Steelbeak [80034] = 35, -- Water Buffalo [80035] = 36, -- Tombstinger [80036] = 37, -- Platesaurian [80037] = 38, -- Ursagrodon [80038] = 39, -- The Hellgrip [80039] = 40, -- Jade Lion [80040] = 41, -- Golden Lion [80041] = 42, -- Shock Head [80042] = 43, -- Walker [80043] = 44, -- Azudocus [80044] = 45, -- Carpacosaurus [80045] = 46, -- Death Crawler [80046] = 47, -- Flamesteed [80047] = 48, -- Jade Pincer [80048] = 49, -- Tempest [80049] = 50 -- Winter King } for storage, mount in pairs(mounts) do if player:getStorageValue(storage) > 0 then player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addMount(mount) player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua Mount foi adicionado!") player:setStorageValue(storage, 0) end end return true end Só adicionar a storage do arquivo no itemid do shop. event type="login" name="ShopMountAddon" script="addonmount.lua"/> Créditos : Summ Link para o comentário Compartilhar em outros sites More sharing options...
Lumus 254 Postado Agosto 27, 2015 Share Postado Agosto 27, 2015 Realmente muito bom. Já usava em meu servidor. Link para o comentário Compartilhar em outros sites More sharing options...
marcio1234 1 Postado Outubro 15, 2015 Share Postado Outubro 15, 2015 Olá @@Mudrock, tem como adicionar mais addons e mounts ?? ex: tem que colocar assim né " [28456] = {634, 635} -- King " e " [80050] = 51 -- King " assim do jeito que fiz tá certo?? Link para o comentário Compartilhar em outros sites More sharing options...
marcio1234 1 Postado Outubro 21, 2015 Share Postado Outubro 21, 2015 @up Link para o comentário Compartilhar em outros sites More sharing options...
Taiger 286 Postado Janeiro 5, 2016 Share Postado Janeiro 5, 2016 funciona para tfs 1.2? Link para o comentário Compartilhar em outros sites More sharing options...
deivisonamorim 1 Postado Abril 7, 2016 Share Postado Abril 7, 2016 fiz como ta aii mais nao aparece as imagens pq? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados