Postado Abril 26, 2020 5 anos Não sei de quem era o script original, créditos a ele Shop ModernAac editado: *Traduzi 80% para o português *Retirei o bug do f5 pra conseguir comprar vários itens na loja *Troquei algumas linhas de comando que ocasionavam erros nas versões mais atuais do Xampp *Adicionei novas tabelas *Retirei varias linhas de códigos desnecessarias pra deixar o script mais leve *Adicionei mensagem quando o item chegar pra pessoa no jogoLets'go 1-Em sua database importe essa sql Shop.sql2-Na aba principal do Htdocs crie uma pasta chamada "ShopSystem" e dentro dela crie 2 arquivos .php index.php Quote <?php header("Location: ../index.php"); ?> shopping.php Quote <?php sleep(1); // this should halt for 1 seconds for every loop //Product Types //Categories : // //[ 1 - Modificações de conta ] //1 - Conta VIP //2 - Remove Skull (ANY) //3 - Desbanir conta //4 - Trocar nome // //[ 2 - Em Promoçao ] //5 - 50% de desconto // //[ 3 - Novos e notaveis ] //6 - Novos e notaveis // //[ 4 - Itens para iniciantes ] //8 - Itens para iniciantes // //[ 5 - Itens para quests ] //9 - Itens para quests // //[ 6 - Stones e itens de aprimoramento ] //10 - Stones e itens de aprimoramento // //[ 7 - Trajes ] //11 - Trajes // //[ 8 - Skins para Pokemons ] //12 - Skins para Pokemons // //[ 9 - Outros ] //13 - Outros // //HOWTO PUT IMAGES FOR TYPES 1-4 [ Modificaçoes da conta ] //Go to public/images/ folder and create a GIF image (Or put) //With the ID of the type [See at the top of the script] //Ex. Type (1) - Premium Account (public/images/1.gif) //Variables require("config.php"); echo "<div class='title'>Shopping Online</div>"; echo "<div class='info'>"; include("config/functions.php"); require("config/config.php"); $this->load->helper("url"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); $SHOP = new shop; $ide = new IDE; $action = $this->uri->segment(4); $categories = array(1 => 'Modificações de Conta', 2 => 'Em promoçao', 3 => 'Novos e notaveis', 4 => 'Itens para iniciantes', 5 => 'Itens para quest', 6 => 'Stones e itens de aprimoramento', 7 => 'Trajes', 8 => 'Skins para Pokemons', 9 => 'Outros'); if ($_SESSION['logged'] == 1) { if ($SHOP->isInstalled()) { if ($action == '') { if($ide->isAdmin()) { echo "<div class='toolbar' align='center'>"; echo "<a href='".WEBSITE."/index.php/p/v/shopping/admin'>Editar SHOP</a>"; echo "</div><br />"; } echo "<div class='alert alert-info'><b>SISTEMA:</b> Os itens em promoção, <b>mudarão a cada 24 horas'</b>: sendo trocados todos os dias as 18:00 horas</b> </div><br><br><br>"; echo '<div id="accordion">'; $i = 0; foreach($categories as $key=>$value) { echo '<div class="title">'.$categories[$key].'</div> <div class="info">'; if($SQL->query('SELECT * FROM shop_offer WHERE category = '.$key.'')->fetch()) { echo '<table class="table" border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <td width="20%" style="font-weight: bold;">Imagem</td> <td width="40%" style="font-weight: bold;">Produto</td> <td width="20%" style="font-weight: bold;">Pontos</td> <td width="20%" style="font-weight: bold;">Ação</td> </tr>'; foreach($SQL->query('SELECT * FROM shop_offer WHERE category = '.$key.'') as $item) { if (is_int($i / 2)) $bgcolor = "#ececec"; else $bgcolor = "#ffffff"; $i++; echo '<tr class="highlight" bgcolor="'.$bgcolor.'" style="text-align: center;"> <td>'; if($item['category'] == '1') $image = 'public/images/'.$item['type'].'.gif'; else $image = 'public/images/items/'.$item['item'].'.gif'; if(!file_exists($image)) echo 'Sem imagem'; else echo '<img height="32px" width="32px" src="'.WEBSITE.'/'.$image.'"/>'; echo '</td> <td><b>'.$item['name'].'</b><br>'.$item['description'].'</td> <td>'.$item['points'].'</td> <td><button class="btn btn-info" type="submit" onClick="window.location.href=\''.WEBSITE.'/index.php/p/v/shopping/buy/'.$item['id'].'\';" class="ide_button">Comprar</button></td> </tr>'; } echo '</table></div>'; } else { echo ""; echo '</div>'; } } echo '</div>'; echo '<br><center><font style="color: #4F82CB; font-weight: bold; font-size: 12px">Você tem: <font color="#4EBF37">'.$SHOP->points($_SESSION['name']).'</font> pontos premium.</font></center>'; } elseif ($action == 'buy') { $product = $this->uri->segment(5); $productact = $this->uri->segment(6); if (!$product) { alert("Você não selecionou um produto."); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping">Voltar ao shop</a></div>'; } else { if($SQL->query('SELECT * FROM shop_offer WHERE id = '.$product.'')->fetch()) { $info = $SQL->query('SELECT * FROM shop_offer WHERE id = '.$product.'')->fetch(); if($productact == '' || !$productact) { if ($SHOP->points($_SESSION['name']) < $info['points']) { alert("Você não possui pontos suficientes para comprar o produto. (<b>".$info['points']."</b>)"); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping">Voltar ao shop</a></div>'; } else { echo '<div id="accordion">'; echo '<h4>Produto selecionado</h4> <div>'; echo '<table class="table table-striped" border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <td width="25%" style="font-weight: bold;">Imagem</td> <td width="50%" style="font-weight: bold;">Produto</td> <td width="25%" style="font-weight: bold;">Pontos</td> </tr>'; echo '<tr class="highlight" style="text-align: center"> <td>'; if($info['category'] == '1') $image = 'public/images/'.$info['type'].'.gif'; else $image = 'public/images/items/'.$info['item'].'.gif'; if(!file_exists($image)) echo 'Sem imagem'; else echo '<img height="32px" width="32px" src="'.WEBSITE.'/'.$image.'"/>'; echo '</td> <td><b>'.$info['name'].'</b><br>'.$info['description'].'</td> <td>'.$info['points'].'</td> </tr>'; echo '</table></div> <h4>Selecionar personagem</h4> <div> <center><table class="table table-striped" border="0" cellspacing="7" cellpadding="4" width="50%"> <tr> <td><form method="post" action="'.WEBSITE.'/index.php/p/v/shopping/buy/'.$info['id'].'/send">'; if($info['type'] == '4') echo 'Mudar nome do personagem:'; else echo 'Enviar item para o personagem:'; echo '</td> <td><select name="my_char">'; foreach($SHOP->CharacterList($_SESSION['name']) as $row) echo '<option>'.$row['name'].'</option>'; echo '</select></td> </tr> <tr> <td>'; if($info['type'] == '4') echo 'Novo nome:'; else echo 'Ou enviar para outro personagem:'; echo '</td> <td><input type="text" name="other_char" size="10"/></td> </tr> <tr> <td></td> <td><button class="btn btn-success" type="submit" name="submit" value="true" class="ide_button">Comprar produto</td> </tr></table></center></div></div>'; echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/">Voltar ao Shop</a></div>'; } } elseif ($productact == 'send') { if(!$_POST['submit']) header("Location: ".WEBSITE."/index.php/p/v/shopping"); else { if ($SHOP->points($_SESSION['name']) < $info['points']) { alert("Você não mais Pontos (<b>".$info['points']."</b>)"); } else if($info['type'] != '4') { if($_POST['other_char']) { if($SQL->query('SELECT * FROM players WHERE name = "'.$_POST['other_char'].'"')->fetch()) { $destination = $_POST['other_char']; $send = true; } else { alert('<b>'.$_POST['other_char'].'</b> doesn\'t exists.'); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/buy/'.$info['id'].'">Voltar ao Shop</a></div>'; $send = false; } } else { $destination = $_POST['my_char']; $send = true; } } else { $destination = $_POST['my_char']; $send = true; } if($send == true) { $errors = ''; $processed = 0; if ($info['type'] == '1') { $processed = 1; $finish = true; $SHOP->AddPremium($destination,$info['count']); } elseif ($info['type'] == '2') { $skulltime = $SQL->query('SELECT skull,skulltime FROM players WHERE name = "'.$destination.'"')->fetch(); if ($SHOP->isOnline($destination) == 1) { $errors .= 'Sorry, but <b>'.$destination.'</b> is On-Line right now.<br>'; $finish = false; } elseif ($skulltime['skull'] == '0' && $skulltime['skulltime'] == '0') { $errors .= 'Sorry, but <b>'.$destination.'</b> doesn\'t have any skull.<br>'; $finish = false; } else { $processed = 1; $finish = true; $SQL->query('UPDATE players SET skull = 0, skulltime = 0 WHERE name = "'.$destination.'"'); } } elseif ($info['type'] == '3') { if ($SHOP->isOnline($destination) == 1) { $errors .= 'Sorry, but <b>'.$destination.'</b> is On-Line right now.<br>'; $finish = false; } else { if ($SHOP->isBanned($destination)->fetch()) { $processed = 1; $finish = true; $SHOP->UnBan($destination); } else { $errors .= 'Sorry, but <b>'.$destination.'</b>\'s Account isn\'t banned at the moment.<br>'; $finish = false; } } } elseif ($info['type'] == '4') { if ($SHOP->isOnline($destination) == 1) { $errors .= 'Sorry, but <b>'.$destination.'</b> is On-Line right now.<br>'; $finish = false; } else { if ($SQL->query('SELECT * FROM players WHERE name = "'.$_POST['other_char'].'"')->fetch()) { $finish = false; $errors .= 'Sorry, but <b>'.$_POST['other_char'].'</b> already exists.<br>'; } else { if(!$_POST['other_char']) { $finish = false; $errors .= 'Sorry, but you didn\'t put a new name for your character.<br>'; } else { if (!preg_match('/[^A-Za-z]/', $_POST['other_char'])) { $processed = 1; $finish = true; $SQL->query('UPDATE players SET name = "'.$_POST['other_char'].'" WHERE name = "'.$destination.'"'); } else { $finish = false; $errors .= 'Sorry, but <b>'.$_POST['other_char'].'</b> contains invalid characters (Use only: A-Z, a-z).<br>'; } } } } } else { $finish = true; } if ($finish == true) { echo '<div style="text-align: center; font-size: 15px; color: #4EBF37; font-weight: bold;">Transaction Succesfull</div><br>'; if($info['type'] == '4') echo '<center>You have changed the name of <b>'.$destination.'</b> to <b>'.$_POST['other_char'].'</b>.</center>'; elseif($info['type'] == '3') echo '<center>You have UnBanned <b>'.$destination.'</b>\'s Account.</center>'; else echo '<center>Voce acaba de comprar o item <b>'.$info['name'].'</b> e deu para <b>'.$destination.'</b>.</center>'; echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping">Voltar para o Shop</a></div>'; $SQL->query('UPDATE accounts SET premium_points = '.($SHOP->points($_SESSION['name']) - $info['points']).' WHERE name = "'.$_SESSION['name'].'"'); $SQL->query('INSERT INTO shop_history (`id`, `product`, `session`, `player`, `date`, `processed`) VALUES (NULL, \''.$info['id'].'\',\''.$_SESSION['name'].'\', \''.$destination.'\', \''.time().'\',\''.$processed.'\')');; } else { alert($errors); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/buy/'.$info['id'].'">Go Back to Gift Shop</a></div>'; } } } } } else { header("Location: ".WEBSITE."/index.php/p/v/shopping"); } echo '<br><center><font style="color: #4F82CB; font-weight: bold; font-size: 12px">Você tem: <font color="#4EBF37">'.$SHOP->points($_SESSION['name']).'</font> pontos premium.</font></center>'; } } elseif ($action == 'history') { if ($SQL->query('SELECT * FROM shop_history WHERE session = "'.$_SESSION['name'].'" ORDER BY date DESC LIMIT 30')->fetch()) { echo '<div style="text-align: center; font-weight: bold;">Latest 30 Transactions</div> <table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <td class="white" style="text-align: center; font-weight: bold;">Imagem</td> <td class="white" style="text-align: center; font-weight: bold;">Produtos</td> <td class="white" style="text-align: center; font-weight: bold;">To</td> <td class="white" style="text-align: center; font-weight: bold;">Date</td> <td class="white" style="text-align: center; font-weight: bold;">Processed</td> </tr>'; foreach($SQL->query('SELECT `z`.`player` AS `destination`, `z`.`date` AS `date`, `z`.`processed` AS `processed`, `o`.`category` AS `category`,`o`.`type` AS `type`,`o`.`item` AS `item`,`o`.`name` AS `name` FROM `shop_history` z LEFT JOIN `shop_offer` o ON `z`.`product` = `o`.`id` WHERE `z`.`session` = \''.$_SESSION['name'].'\' ORDER BY `z`.`date` DESC LIMIT 30') as $hist) { echo '<tr class="highlight" style="text-align: center"><td>'; if($hist['category'] == '1') $image = 'public/images/'.$hist['type'].'.gif'; else $image = 'public/images/items/'.$hist['item'].'.gif'; if(!file_exists($image)) echo 'NO IMAGE'; else echo '<img height="32px" width="32px" src="'.WEBSITE.'/'.$image.'"/>'; echo '</td> <td>'.$hist['name'].'</td> <td>'.$hist['destination'].'</td> <td>'.date("d-m-Y - H:i a", $hist["date"]).'</td>'; if ($hist['processed'] == '1') echo '<td><img src="'.WEBSITE.'/public/images/true.gif"/></td>'; else echo '<td><img src="'.WEBSITE.'/public/images/false.gif"/></td>'; echo '</tr>'; } echo '</table>'; } else { alert('You didn\'t made any transactions'); } } elseif ($action == 'donate') { $show = $this->uri->segment(5); if ($show == 'history') { if ($SQL->query('SELECT * FROM shop_donation_history WHERE buyer = "'.$_SESSION['name'].'" ORDER BY date DESC LIMIT 30')->fetch()) { echo '<div style="text-align: center; font-weight: bold;">Latest 30 Donations</div> <table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <td class="white" style="text-align: center; font-weight: bold;">Method</td> <td class="white" style="text-align: center; font-weight: bold;">ID/Mail</td> <td class="white" style="text-align: center; font-weight: bold;">To Account</td> <td class="white" style="text-align: center; font-weight: bold;">Points Added</td> <td class="white" style="text-align: center; font-weight: bold;">Date</td> </tr>'; foreach($SQL->query('SELECT * FROM shop_donation_history WHERE buyer = "'.$_SESSION['name'].'" ORDER BY date DESC LIMIT 30') as $hist) { echo '<tr class="highlight" style="text-align: center"> <td>'; echo ($hist['method'] == 'PayPal')?'<img src="https://www.paypal.com/en_US/i/logo/paypal_logo.gif" height="50px" width="100px">':($hist['method'] == 'ContenidoPago')?'<img src="http://www.contenidopago.com/img/logo_ft.jpg" height="50px" width="100px">':''; echo '</td> <td>'.$hist['receiver'].'</td> <td>'.$hist['account'].'</td> <td>'.$hist['points'].'</td> <td>'.date("d-m-Y - H:i a", $hist["date"]).'</td> </tr>'; } echo '</table>'; } else { alert('You didn\'t donated'); } } elseif (!$show || $show == '') { alert("".$config['server_name']."'s Administration <b>is not responsible</b> for <b>cases of loss of products</b>.<br><br> ".$config['server_name']."'s Administration <b>is responsible</b> for <b>cases of loss of points which have been sent to users</b>."); echo '<div id="accordion">'; foreach ($config['donations']['methods'] as $method => $active) { if ($active == true) { echo '<h3><a href="#">'.$method.'</a></h3> <div>'; if ($method == 'ContenidoPago') { alert("This brand new system consists on <b>donations by SMS</b>.<br> After donating you will receive <b>".$config['donations']['contenidopago']['Points']." Points</b>.<br><br> <b>REMEMBER:</b><br> You need to have <b>enough credit</b> to send <u>SMS</u>.<br><br> You <b>MUST</b> fill the <b>Account Name</b> and the <b>Code Received</b> fields with <u>a valid account name</u> and <u>a valid code</u>."); if(!isset($_POST['mysubmit'])) { echo '<form method="post" action="" > <fieldset style="border:1px solid #990000; width:450px; margin:auto;"> <legend style="font-weight:bold;font-size:12px;">Automatic SMS Donation</legend> <ol style="list-style:none;"> <li style="padding-bottom:5px;"><label style="width:100px;float:left;text-align:left;">Account Name:</label><input type="text" style="border:1px solid #CCCCCC;" size="30" name="name" /></li> <li style="padding-bottom:5px;"><label style="width:100px;float:left;text-align:left;">Code received:</label><input type="text" style="border:1px solid #CCCCCC;" size="30" name="codigo" /></li> </ol> <center><input type="submit" name="mysubmit" style="padding:3px;margin-bottom:10px;color:#FFFFFF;background-color:#990000;border:1px solid #000000;" value="Enviar" /></center> </fieldset> </form>'; } else { $codigo=$_POST['codigo']; $name=$_POST['name']; $QueryString = "LinkUrl=http://".urlencode($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $QueryString .= "&codigo=" .urlencode($codigo); $QueryString .= "&idservicio=" .$config['donations']['contenidopago']['Product']; if(intval(get_cfg_var('allow_url_fopen')) && function_exists('file_get_contents')) { $result=@file_get_contents("http://contenidopago.com/codigoval.php?".$QueryString); } elseif(intval(get_cfg_var('allow_url_fopen')) && function_exists('file')) { if($content = @file("http://contenidopago.com/codigoval.php?".$QueryString)) $result=@join('', $content); } elseif(function_exists('curl_init')) { $ch = curl_init ("http://contenidopago.com/codigoval.php?".$QueryString); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec ($ch); if(curl_error($ch)) alert("Error processing request"); curl_close ($ch); } else { alert("It appears that your web host has disabled all functions for handling remote pages and as a result the BackLinks software will not function on your web page. Please contact your web host for more information."); } if ($result =='ok') { if(!(empty($name))) { if(!$SQL->query("SELECT * FROM accounts WHERE name = '".$name."'")->fetch()) { alert('This username does not exist: <font color="blue">'.$name.'</font>'); } else { $SQL->query("UPDATE accounts SET premium_points = premium_points + ".$config['donations']['contenidopago']['Points']." WHERE name = '".$name."'"); alert("Codigo : $codigo validado, puntos sumados correctamente"); $SQL->query("INSERT INTO shop_donation_history (`id`, `method`, `receiver`, `buyer`, `account`, `points`, `date`) VALUES (NULL, 'ContenidoPago', '".$config['donations']['contenidopago']['Product']."', '".$_SESSION['name']."', '".$name."', '".$config['donations']['contenidopago']['Points']."', '".time()."');"); } } else { alert('You did not set the user!'); } } if ($result =='no') { alert('El codigo no es valido o ya esta usado'); } } echo '<center><iframe src ="http://www.contenidopago.com/prom/microcodigo.php" width="270px" height="340px" frameborder="0"> <p>Your browser does not support iframes.</p> </iframe></center>'; } elseif ($method == 'PayPal') { alert("The donation costs <b>".$config['donations']['paypal']['Amount']." ".$config['donations']['paypal']['Money']." (incl. VAT)</b>.<br> After the donation you will receive a total of <b>".$config['donations']['paypal']['Points']." points</b> automatically.<br><br> <b>REMEMBER:</b><br> You need a <u>creditcard</u> <b>or</b> a <u>PayPal account</u> with a minimun of <b>".$config['donations']['paypal']['Amount']." ".$config['donations']['paypal']['Money']."</b>.<br><br> You <b>MUST</b> fill the <b>Account Name</b> with a <u>valid one</u>."); echo '<center><form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_donations"> <input type="hidden" name="business" value="'.$config['donations']['paypal']['Mail'].'"> <input type="hidden" name="lc" value="GB"> <input type="hidden" name="item_name" value="'.$config['donations']['paypal']['Product'].'"> <b>Account Name:</b> <input type="text" name="custom" value=""> <input type="hidden" name="item_number" value="1"> <input type="hidden" name="amount" value="'.$config['donations']['paypal']['Amount'].'"> <input type="hidden" name="currency_code" value="'.$config['donations']['paypal']['Money'].'"> <input type="hidden" name="no_note" value="0"> <input type="hidden" name="no_shipping" value="0"> <input type="hidden" name="notify_url" value="'.WEBSITE.'index.php/p/v/paypal"> <input type="hidden" name="return" value="'.WEBSITE.'"> <input type="hidden" name="session" value="'.$_SESSION['name'].'"> <input type="hidden" name="rm" value="0"> <input type="hidden" name="bn" value="PP-DonationsBF:btn_donateCC_LG_global.gif:NonHosted"><br> <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online."> <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> </form></center>'; } echo '</div>'; } } echo '</div>'; } else { header("Location: ".WEBSITE."/index.php/p/v/shopping/donate"); } } elseif ($action == 'admin') { if($ide->isAdmin()) { $manage = $this->uri->segment(5); echo "<div class='toolbar' align='center'>"; echo "<a href='".WEBSITE."/index.php/p/v/shopping/admin/add/1'>Adicionar novo produto</a> | "; echo "<a href='".WEBSITE."/index.php/p/v/shopping/admin/delete'>Remover produto existente</a> | "; echo "<a href='".WEBSITE."/index.php/p/v/shopping/admin/points'>Adicionar/Remover pontos de players</a>"; echo "</div>"; if ($manage == '' || !$manage) { echo '<center>Welcome to Shop Admin Panel</center>'; } elseif ($manage == 'add') { $types[1] = array(1 => 'Premium Account', 2 => 'Remove Skull', 3 => 'UnBan Account', 4 => 'Change Name'); $types[2] = array(5 => 'Em Promoçao'); $types[3] = array(6 => 'Novos e notaveis'); $types[4] = array(8 => 'Itens para iniciantes'); $types[5] = array(9 => 'Itens para quests'); $types[6] = array(10 => 'Stones e itens de aprimoramento'); $types[7] = array(11 => 'Trajes'); $types[8] = array(12 => 'Skins para Pokemons'); $types[9] = array(13 => 'Outros'); $step = $this->uri->segment(6); if ($step == '1') { echo '<form method="post" action="'.WEBSITE.'/index.php/p/v/shopping/admin/add/2">Selecionar categoria: <select name="category">'; foreach($categories as $key=>$value) { echo '<option value="'.$key.'">'.$categories[$key].'</option>'; } echo '</select> <button type="submit" class="ide_button">Selecionar categoria</form>'; } elseif ($step == '2' && $_POST['category']) { echo '<form method="post" action="'.WEBSITE.'/index.php/p/v/shopping/admin/add/3"> <input type="hidden" name="category" value="'.$_POST['category'].'"/> Selecionar tipo: <select name="type">'; foreach($types[$_POST['category']] as $key=>$value) { echo '<option value="'.$key.'">'.$types[$_POST['category']][$key].'</option>'; } echo '</select> <button type="submit" class="ide_button">Selecionar tipo</form>'; } elseif ($step == '3' && $_POST['category'] && $_POST['type']) { echo '<form method="post" action="'.WEBSITE.'/index.php/p/v/shopping/admin/add/4"> <input type="hidden" name="category" value="'.$_POST['category'].'"/> <input type="hidden" name="type" value="'.$_POST['type'].'"/> <table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <td width="25%">Nome do produto:</td> <td width="25%"><input name="name" type="text" size="18" maxlength="256" /></td> <td width="50%" style="font-size: 9px; color: red; font-weight: bold;">Escreva o nome do produto</td> </tr> <tr> <td width="25%">Dias VIP:</td> <td width="25%"><input name="points" type="text" value="0" size="10" maxlength="11" /></td> <td width="50%" style="font-size: 9px; color: red; font-weight: bold;">Quantos pontos o produto vai custar</td> </tr>'; if ($_POST['type'] == '1') { echo '<tr> <td width="25%">Dias VIP:</td> <td width="25%"><input name="count" type="text" value="0" size="1" maxlength="3" /></td> <td width="50%" style="font-size: 9px; color: red; font-weight: bold;">Dias de conta vip</td> </tr>'; } elseif ($_POST['type'] == '5' || $_POST['type'] == '6' || $_POST['type'] == '7' || $_POST['type'] == '8') { echo '<tr> <td width="25%">Item ID:</td> <td width="25%"><input name="item" type="text" value="0" size="3" maxlength="5" /></td> <td width="50%" style="font-size: 9px; color: red; font-weight: bold;">ID of item to give</td> </tr> <tr> <td width="25%">Count:</td> <td width="25%"><input name="count" type="text" value="0" size="1" maxlength="3" /></td> <td width="50%" style="font-size: 9px; color: red; font-weight: bold;">Count of item (max. 100) (When selecting \'Backpack of Items\' or \'Bag of Items\' type, the ITEM with that count will fill the container!)</td> </tr>'; } echo '<tr> <td width="25%">Descrição:</td> <td width="25%"><textarea style="width: 120px; height: 80px;" name="description"></textarea></td> <td width="50%" style="font-size: 9px; color: red; font-weight: bold;">descrição do produto (Shown of \'ShopSystem\' Page)</td> </tr> </table> <br><center><button type="submit" name="done" value="true" class="ide_button">Adicionar produto</form></center>'; } elseif ($step == '4' && $_POST['done'] == 'true') { $errors = ''; if ($_POST['points'] || $_POST['item'] || $_POST['count']) { if($_POST['points']) { if (!(!preg_match('/[^0-9]/', $_POST['points']))) $errors .= '1'; } elseif($_POST['item']) { if (!(!preg_match('/[^0-9]/', $_POST['item']))) $errors .= '2'; } elseif($_POST['count']) { if (!(!preg_match('/[^0-9]/', $_POST['count']))) $errors .= '3'; } } if ($errors == '') { echo '<div style="text-align: center; font-size: 15px; color: #4EBF37; font-weight: bold;">Product Added!</div><br> <table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr class="highlight"> <td style="font-weight: bold;" width="50%">Nome do produto:</td> <td width="50%">'.$_POST['name'].'</td> </tr> <tr class="highlight"> <td style="font-weight: bold;" width="50%">Categoria:</td> <td width="50%">'.$categories[$_POST['category']].'</td> </tr> <tr class="highlight"> <td style="font-weight: bold;" width="50%">Tipo:</td> <td width="50%">'.$types[$_POST['category']][$_POST['type']].'</td> </tr> <tr class="highlight"> <td style="font-weight: bold;" width="50%">Preço em pontos:</td> <td width="50%">'.$_POST['points'].'</td> </tr>'; if($_POST['type'] == '1') { echo '<tr class="highlight"><td style="font-weight: bold;" width="50%">Dias VIP:</td> <td width="50%">'.$_POST['count'].'</td> </tr>'; } elseif ($_POST['type'] == '5' || $_POST['type'] == '6' || $_POST['type'] == '7' || $_POST['type'] == '8') { echo '<tr class="highlight"><td style="font-weight: bold;" width="50%">Item ID:</td> <td width="50%">'.$_POST['item'].'</td> </tr> <tr class="highlight"><td style="font-weight: bold;" width="50%">Count:</td> <td width="50%">'.$_POST['count'].'</td> </tr>'; } echo '<tr class="highlight"><td style="font-weight: bold;" width="50%">descrição do produto:</td> <td width="50%">'.$_POST['descrição do produto'].'</td> </tr></table>'; $PostItem = (!isset($_POST['item']))?'0':$_POST['item']; $PostCount = (!isset($_POST['count']))?'0':$_POST['count']; $SQL->query("INSERT INTO shop_offer (`id`, `points`, `category`, `type`, `item`, `count`, `descrição do produto`, `name`) VALUES (NULL, '".$_POST['points']."', '".$_POST['category']."', '".$_POST['type']."', '".$PostItem."', '".$PostCount."', '".$_POST['descrição do produto']."', '".$_POST['name']."')"); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/admin">Go Back to Shop Admin</a></div>'; } else { alert('Sorry but 1 or more spaces contains invalid characters.'); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/admin">Go Back to Shop Admin</a></div>'; } } else { header("Location: ".WEBSITE."/index.php/p/v/shopping/admin/add/1"); } } elseif ($manage == 'delete') { $product = $this->uri->segment(6); if (!$product) { echo '<div id="accordion">'; $i = 0; foreach($categories as $key=>$value) { echo '<h3><a href="#">'.$categories[$key].'</a></h3> <div>'; if($SQL->query('SELECT * FROM shop_offer WHERE category = '.$key.'')->fetch()) { echo '<table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <td width="20%" class="white" style="text-align: center; font-weight: bold;">Imagem</td> <td width="40%" class="white" style="text-align: center; font-weight: bold;">Produtos</td> <td width="20%" class="white" style="text-align: center; font-weight: bold;">Pontos</td> <td width="20%" class="white" style="text-align: center; font-weight: bold;">Ação</td> </tr>'; foreach($SQL->query('SELECT * FROM shop_offer WHERE category = '.$key.'') as $item) { if (is_int($i / 2)) $bgcolor = "#ececec"; else $bgcolor = "#ffffff"; $i++; echo '<tr class="highlight" bgcolor="'.$bgcolor.'" style="text-align: center;"> <td>'; if($item['category'] == '1') $image = 'public/images/'.$item['type'].'.gif'; else $image = 'public/images/items/'.$item['item'].'.gif'; if(!file_exists($image)) echo 'NO IMAGE'; else echo '<img height="32px" width="32px" src="'.WEBSITE.'/'.$image.'"/>'; echo '</td> <td><b>'.$item['name'].'</b><br>'.$item['description'].'</td> <td>'.$item['points'].'</td> <td><button type="submit" onClick="window.location.href=\''.WEBSITE.'/index.php/p/v/shopping/admin/delete/'.$item['id'].'\';" class="ide_button">Deletar oferta</button></td> </tr>'; } echo '</table></div>'; } else { alert("Esta categoria não contem produtos"); echo '</div>'; } } echo '</div>'; } else { if($SQL->query('SELECT * FROM shop_offer WHERE id = '.$product.'')->fetch()) { $SQL->query('DELETE FROM shop_offer WHERE id = '.$product.''); $SQL->query('DELETE FROM shop_history WHERE product = '.$product.''); echo '<div style="text-align: center; font-size: 15px; color: #4EBF37; font-weight: bold;">Produto deletado</div><br> <center>o produto de ID <b>'.$product.'</b> foi deletado da database</center>'; echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/admin">Voltar para o Shop</a></div>'; } else { header("Location: ".WEBSITE."/index.php/p/v/shopping/admin/delete"); } } } elseif ($manage == 'points') { if (!isset($_POST['submit'])) { echo '<div id="accordion"> <h3><a href="#">Adicionar Pontos</a></h3> <div> <table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <form method="post" action="'.$_SERVER['PHP_SELF'].'"> <td>Selecionar jogador:</td> <td><select name="player">'; foreach($SQL->query('SELECT * FROM players ORDER BY name DESC') as $player) { echo '<option value="'.$player['id'].'">'.$player['name'].'</option>'; } echo '</select></td> </tr><tr> <td>Enviar para outro jogador</td> <td><input type="text" name="other_char" size="10"/></td> </tr><tr> <td>Quantidade de pontos</td> <td><input type="text" name="points" size="10"/></td> </tr><tr> <td></td> <td><button type="submit" name="submit" value="add" class="ide_button"><button class="ide_button">Adicionar Pontos</button></td> </tr> </table></form> </div> <h3><a href="#">Remover Pontos</a></h3> <div> <table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr> <form method="post" action="'.$_SERVER['PHP_SELF'].'"> <td>Selecionar jogador</td> <td><select name="player">'; foreach($SQL->query('SELECT * FROM players ORDER BY name DESC') as $player) { echo '<option value="'.$player['id'].'">'.$player['name'].'</option>'; } echo '</select></td> </tr><tr> <td>Enviar para outro jogador</td> <td><input type="text" name="other_char" size="10"/></td> </tr><tr> <td>Remover quantos pontos</td> <td><input type="text" name="points" size="10"/></td> </tr><tr> <td></td> <td><button type="submit" name="submit" value="remove" class="ide_button"><button class="ide_button">Remover pontos</button></td> </tr> </table></form> </div> </div>'; } else { $errors = ""; if(!isset($_POST['other_char']) || $_POST['other_char'] == '') { $destination = $_POST['player']; } else { $ID = $SQL->query('SELECT id FROM players WHERE name = "'.$_POST['other_char'].'"')->fetch(); if($ID) $destination = $ID['id']; else $errors .= "Player <b>".$_POST['other_char']."</b> doesn't exists.<br>"; } if($_POST['points'] == '0' || $_POST['points'] < '0') $errors .= "Points quantity must be higher than 0!<br>"; elseif (!(!preg_match('/[^0-9]/', $_POST['points']))) $errors .= "Point quantity must be a <b>numeric value</b>!"; if(isset($destination)) { $player = $SQL->query('SELECT name FROM players WHERE id = "'.$destination.'"')->fetch(); $account = $SHOP->getPlayerAccount($player['name'])->fetch(); if ($_POST['submit'] == 'remove') { if ($SHOP->points($account['name']) == '0' || $SHOP->points($account['name']) < '0') $errors .= "Player <b>".$player['name']."</b> doesn't have any points.<br>"; } } if ($errors == '') { $player = $SQL->query('SELECT name FROM players WHERE id = "'.$destination.'"')->fetch(); $account = $SHOP->getPlayerAccount($player['name'])->fetch(); echo '<div style="text-align: center; font-size: 15px; color: #4EBF37; font-weight: bold;">Points '; echo ($_POST['submit'] == 'add')?'added':'removed'; echo '!</div><br> <center>You have '; echo ($_POST['submit'] == 'add')?'added':'removed'; echo ' <b>'.$_POST['points'].'</b> points to <b>'.$player['name'].'</b>\'s Account.</center>'; echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/admin/points">Voltar para a configuração de pontos</a></div>'; if($_POST['submit'] == 'add') $SQL->query('UPDATE accounts SET premium_points = '.($SHOP->points($account['name']) + $_POST['points']).' WHERE name = "'.$account['name'].'"'); elseif($_POST['submit'] == 'remove') $SQL->query('UPDATE accounts SET premium_points = '.($SHOP->points($account['name']) - $_POST['points']).' WHERE name = "'.$account['name'].'"'); } else { alert($errors); echo '<div align="right"><a href="'.WEBSITE.'/index.php/p/v/shopping/admin/points">Go Back to Points Manage</a></div>'; } } } else { header("Location: ".WEBSITE."/index.php/p/v/shopping/admin"); } } else { header("Location: ".WEBSITE."/index.php"); } } else { header("Location: ".WEBSITE."/index.php/p/v/shopping"); } } elseif(!$SHOP->isInstalled()) { if($ide->isAdmin()) { $SHOP->install(); echo '<div style="text-align: center; font-size: 15px; color: #4EBF37; font-weight: bold;">Shop System Succesfully Installed!</div><br> <center>Your shop system has been installed succesfully!! click <a href="'.WEBSITE.'/index.php/p/v/shopping">HERE</a> to see your shop</center>'; } else { header("Location: ".WEBSITE."/index.php"); } } } else { header("Location: ".WEBSITE."/index.php"); } ?> </div> 3- E dentro dessa mesma pasta, crie uma subpasta chamada " config " e nela crie mais 3 arquivos .php config.php Quote <?php /*Database information*/ $config['database']['host'] = "localhost"; $config['database']['login'] = "root"; $config['database']['password'] = ""; $config['database']['database'] = "DATABASE"; $config['donations']['methods'] = array('ContenidoPago' => true, 'PayPal' => true); $config['donations']['paypal'] = array('Mail' => '', 'Points' => 6, 'Product' => 'Donation for VipHera', 'Money' => 'EUR', 'Amount' => 1); $config['donations']['contenidopago'] = array('Product' => '1347', 'Points' => 4); ?> Altere o Login e Password para os dados do seu site, e Database para o nome da sua database functions.php Quote <?php class shop { function connect() { $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); return $ots->getDBHandle(); } function isInstalled() { require('config.php'); $con = mysqli_connect($config['database']['host'], $config['database']['login'], $config['database']['password'], $config['database']['database']); if(mysqli_query($con, "SELECT * FROM shop_offer,shop_history")) return true; else return false; } function points($account) { $SQL = $this->connect(); $points = $SQL->query('SELECT premium_points FROM accounts WHERE name = "'.$account.'"')->fetch(); return $points['premium_points']; } function getPlayerAccount($name) { $SQL = $this->connect(); $player = $SQL->query('SELECT account_id FROM players WHERE name = "'.$name.'"')->fetch(); return $SQL->query('SELECT * from accounts WHERE id = '.$player['account_id'].''); } function AddPremium($name,$days) { $SQL = $this->connect(); $account = $this->getPlayerAccount($name)->fetch(); return $SQL->query('UPDATE accounts SET premdays = (premdays + '.$days.') WHERE name = "'.$account['name'].'"'); } function CharacterList($account) { $SQL = $this->connect(); $id = $SQL->query('SELECT id FROM accounts WHERE name = "'.$account.'"')->fetch(); return $SQL->query('SELECT * FROM players WHERE account_id = '.$id['id'].''); } function isOnline($name) { $SQL = $this->connect(); $player = $SQL->query('SELECT online FROM players WHERE name = "'.$name.'"')->fetch(); return $player['online']; } function isBanned($name) { $SQL = $this->connect(); $ID = $this->getPlayerAccount($name)->fetch(); return $SQL->query('SELECT * FROM bans WHERE value = '.$ID['id'].''); } function UnBan($name) { $SQL = $this->connect(); $ID = $this->getPlayerAccount($name)->fetch(); return $SQL->query('DELETE FROM bans WHERE value = '.$ID['id'].''); } function execute_file($file) { if (!file_exists($file)) { $this->last_error = "The file $file does not exist."; return false; } $str = file_get_contents($file); if (!$str) { $this->last_error = "Unable to read the contents of $file."; return false; } // split all the queries into an array $quote = ''; $line = ''; $sql = array(); $ignoreNextChar = ''; for ($i = 0; $i < strlen($str); $i++) { if ( !$ignoreNextChar ) { $char = substr($str, $i, 1); $line .= $char; if ($char == ';' && $quote == '') { $sql[] = $line; $line = ''; } else if ( $char == '\\' ) { // Escape char; ignore the next char in the string $ignoreNextChar = TRUE; } else if ($char == '"' || $char == "'" || $char == '`') { if ( $quote == '' ) // Start of a new quoted string; ends with same quote char $quote = $char; else if ( $char == $quote ) // Current char matches quote char; quoted string ends $quote = ''; } } else $ignoreNextChar = FALSE; } if ($quote != '') return false; foreach ($sql as $query) { if (!empty($query)) { $r = mysql_query($query); if (!$r) { $this->last_error = mysql_error(); return false; } } } return true; } function install() { $SQL = $this->connect(); if ($this->isInstalled()) return false; else return $this->execute_file("Shop System/config/Shop.sql"); } } ?> index.php Quote <?php header("Location: ../index.php"); ?> 4- Agora em C:\xampp\htdocs\system\pages crie um arquivo chamado shopping.php Quote <?php include("ShopSystem/shopping.php"); ?> 5- Agora em C:\xampp\htdocs\templates\SUAPASTA\index.tpl Abaixo de <div class="nav_links_logged">Adicione: Quote <a href="{$path}index.php/p/v/shopping"> <img src="{$path}/templates/new/images/menuBalliconGreen.png"class="nav_link_icon"> Shop</a> <br> <a href="{$path}index.php/p/v/shopping/history"> <img src="{$path}/templates/new/images/menuBalliconGreen.png" class="nav_link_icon"> Historico</a> <br> 6- Agora em \Pokemon Server\datapack\globalevents\globalevents.XML adicione Quote <globalevent name="shop" interval="30" script="shop.lua"/> 7- Agora em \Pokemon Server\datapack\globalevents\scripts\ crie um arquivo .lua shop.lua Quote function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doPlayerSendTextMessage(cid,19, "Voce acaba de receber >> "..productn.." << do sistema de Loja Online") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem espaco suficiente para receber o produto >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem espaco para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, voce nao aguenta a capacidade do produto >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true end Editado Abril 26, 2020 5 anos por Hologram (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.