Ir para conteúdo
Entre para seguir isso  
niccosloko

[Gesior Shop-System] Shop Admin Page v4

Recommended Posts

niccosloko    0
niccosloko

Shop Admin Page v4

Gesior Shop-System

 

 

--

 

  • penmh5.gif Introdução

Eu fiz um upload do script v4.Agora eu adicionei funções para você editar o suas ofertas no Shop.

Agora você pode acessar o site pelo "?subtopic=shopadmin".

 

Características do Shop Admin Page:

Adicionar uma oferta nova loja

Lista de Oferta Shop

Editar / Apagar uma Oferta Shop

Adicione pontos para a conta de um personagem

 

 

21e1clx.gifScript

navbits_finallink_ltr.gifPHP Codigo

 

<?PHP
if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) {
$offertype = $_REQUEST['offer_type'];
if((empty($action)) AND (empty($offertype))) {
   $main_content .= '<br><h2><center><a href="?subtopic=shopadmin&offer_type=item">ADD SHOP OFFER</a><br><br>
   <a href="?subtopic=shopadmin&action=viewoffer">VIEW SHOP OFFER <i>(EDIT/DELETE)</i></a><br><br><a href="?subtopic=shopadmin&action=points">ADD POINTS</a></center>';
   }
if($_REQUEST['offer_type']){
   $shop_points = stripslashes(ucwords(strtolower(trim($_REQUEST['shop_points']))));
   $shop_offer_type = stripslashes(trim($_REQUEST['offer_type']));
       if(empty($shop_points)) {
           $main_content .= '<table border="0"><tr><td  align="center"><b>Select offer type:</b></td><td><table border="0" ><tr bgcolor="#505050">
               <td><font color="white">Item</td><td><font color="white">Container</td><td><font color="white">Pacc</td><td><font color="white">Redskull</td><td><font color="white">Unban</td><td><font color="white">Changename</td></tr>
               <tr bgcolor="#D4C0A1">
               <td align="center"><a href="?subtopic=shopadmin&offer_type=item"><input type="radio" name="offer_type" value="item"></a></td>
               <td align="center"><a href="?subtopic=shopadmin&offer_type=container"><input type="radio" name="offer_type" value="container" ></a></td>
               <td align="center"><a href="?subtopic=shopadmin&offer_type=pacc"><input type="radio" name="offer_type" value="pacc" ></a></td>
               <td align="center"><a href="?subtopic=shopadmin&offer_type=redskull"><input type="radio" name="offer_type" value="redskull" ></a></td>
               <td align="center"><a href="?subtopic=shopadmin&offer_type=unban"><input type="radio" name="offer_type" value="unban" ></a></td>
               <td align="center"><a href="?subtopic=shopadmin&offer_type=changename"><input type="radio" name="offer_type" value="changename" ></a></td>
               </tr></table></td></tr>';
               $main_content .= '<form action="?subtopic=shopadmin&offer_type='.$shop_offer_type.'&check" method="post" ><table border="0"><tr><td align="center" ><b>Points:</b></td>
               <td><input type="textbox" name="shop_points" maxlenght="7" style="width: 70px"></td></tr>';
               if($_REQUEST['offer_type'] == 'container'){
                   $main_content .= '<tr><td align="center" ><b>Container ID:</b></td>
                   <td><input type="text" name="shop_itemid1" maxlenght="7" style="width: 70px" ></td></tr>
                   <tr><td align="center" ><b>Count Container:</b></td>
                   <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>
                   <tr><td align="center" ><b>Item ID:</b></td>
                   <td><input type="text" name="shop_itemid2" maxlenght="7" style="width: 70px" ></td></tr>
                   <tr><td align="center" ><b>Count Item:</b></td>
                   <td><input type="text" name="shop_count2" maxlenght="7" style="width: 70px" ></td></tr>';
               }
               if($_REQUEST['offer_type'] == 'item'){
                   $main_content .= '<tr><td align="center"><b>Item ID:</b></td>
                   <td><input type="text" name="shop_itemid1" maxlenght="7" style="width: 70px" ></td></tr>
                   <tr><td align="center"><b>Item Count:</b></td>
                   <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>';
               }
               if($_REQUEST['offer_type'] == 'pacc'){
                   $main_content .= '<tr><td align="center" ><b>Days:</b></td>
                   <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>';
               }
               $main_content .= '<tr><td align="center" ><b>Offer Description:</b></td>
               <td ><textarea name="shop_offer_description" rows="2" cols="35"></textarea></td></tr>
               <tr><td align="center" ><b>Offer Name:</b></td>
               <td><input type="text" name="shop_offer_name" maxlenght="40" style="width: 200px" ></td></tr>
               <tr><td><input name="submit" type="submit" value="Submit" /></form></td><td>
               <form action="?subtopic=shopadmin&offer_type=container" method="post" >
               <input name="submit" type="submit" value="Reset" /></form></td></tr></table>';
           $main_content .= '<form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>';
           }
           else
           {
           $shop_points = stripslashes(trim($_POST['shop_points']));
           $shop_offer_type = stripslashes(trim($_REQUEST['offer_type']));
           $shop_itemid1 = stripslashes(trim($_POST['shop_itemid1']));
           $shop_count1 = stripslashes(trim($_POST['shop_count1']));
           $shop_itemid2 = stripslashes(trim($_POST['shop_itemid2']));
           $shop_count2 = stripslashes(trim($_POST['shop_count2']));
           $shop_offer_description = stripslashes(trim($_POST['shop_offer_description']));
           $shop_offer_name = stripslashes(trim($_POST['shop_offer_name']));
               $SQL->query('INSERT INTO `z_shop_offer` (id, points, itemid1, count1, itemid2, count2, offer_type, offer_description, offer_name, pid) VALUES (NULL, '.$SQL->quote($shop_points).', '.$SQL->quote($shop_itemid1).', '.$SQL->quote($shop_count1).', '.$SQL->quote($shop_itemid2).', '.$SQL->quote($shop_count2).', '.$SQL->quote($shop_offer_type).', '.$SQL->quote($shop_offer_description).', '.$SQL->quote($shop_offer_name).', 0)');
               $main_content .= '<center><h2><font color="red">Added to Shop:</font></h2></center><hr/>
               <tr><td align="center" ><b>Points:</b></td>
               <td>'.$shop_points.'</td></tr><br>';
               if($shop_offer_type == 'container'){
                   $main_content .= '<tr><td align="center" ><b>Container ID:</b></td>
                   <td>'.$shop_itemid1.'</td></tr><br>
                   <tr><td align="center" ><b>Count Container:</b></td>
                   <td>'.$shop_count1.'</td></tr><br>
                   <tr><td align="center" ><b> Item ID (in Container):</b></td>
                   <td>'.$shop_itemid2.'</td></tr><br>
                   <tr><td align="center" ><b>Count Item (in Container):</b></td>
                   <td>'.$shop_count2.'</td></tr><br>'; }
               if ($shop_offer_type == 'item'){
                   $main_content .= '<tr><td align="center" ><b>Item ID:</b></td>
                   <td>'.$shop_itemid1.'</td></tr><br>
                   <tr><td align="center" ><b>Count Item:</b></td>
                   <td>'.$shop_count1.'</td></tr><br>'; }
               if ($shop_offer_type == 'pacc'){
                   $main_content .= '<tr><td align="center" ><b>Days:</b></td>
                   <td>'.$shop_count1.'</td></tr><br>'; }
               $main_content .= '<tr><td align="center" ><b>Offer Type:</b></td>
               <td>'.$shop_offer_type.'</td></tr><br>
               <tr><td align="center" ><b>Offer Description:</b></td>
               <td>'.$shop_offer_description.'</td></tr><br>
               <tr><td align="center" ><b>Offer Name:</b></td>
               <td>'.$shop_offer_name.'</td></tr>
               <br><form action="?subtopic=shopadmin&offer_type=item" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>';
               }
   }
if($action == "viewoffer") {
   $items = simplexml_load_file($config['site']['server_path'].'/data/items/items.xml') or die('<b>Could not load items!</b>');
       foreach($items->item as $v)
           $itemList[(int)$v['id']] = $v['name'];
       $order = array("id" => "id", "points" => "points", "offer_type" => "offer_type", "itemid1" => "itemid1", "itemid2" => "itemid2");
               $main_content .= '<center><table width="550"><tr BGCOLOR="#505050"><td width="5"><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'id') . '" class=white>ID:</td><td width="5"><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'points') . '" class=white>Points:</td><td width="7">
                   <font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'itemid1') . '" class=white>Item ID:</td><td width="5"><font color="white">Count:</td><td width="7"><center><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'itemid2') . '" class=white>Container ID:</center></td><td width="5"><font color="white">Count:</td><td width="7"><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'offer_type') . '" class=white>Offer Type:</td>
                   <td width="85"><font color="white">Offer Description:</td><td width="30"><font color="white">Offer Name:</td><td width="30"></td></tr>';
       $shopoffers = $SQL->query('SELECT id, points, itemid1, count1, itemid2, count2, offer_type, offer_description, offer_name, pid FROM z_shop_offer ' . makeOrder($order, 'order', 'id'));
           foreach($shopoffers as $shop) {
                 $main_content .= '</B><tr BGCOLOR="#D4C0A1"><td align="center">'.$shop['id'].'<td align="center">'.$shop['points'].'</td>';
           if($shop['itemid1'] == "0") {
                 $main_content .= '<td align="center">'.$shop['itemid1'].'<br></td>';
           }
           else
           {
               $main_content .= '<td align="center">'.$shop['itemid1'].'<br>(' . $itemList[(int)$shop['itemid1']] . ')</td>';
           }
           $main_content .= '<td align="center">'.$shop['count1'].'</td>';
       if($shop['itemid2'] == "0") {
           $main_content .= '<td align="center">'.$shop['itemid2'].'</td>';
       }
       else
       {
           $main_content .= '<td align="center">'.$shop['itemid2'].'<br>(' . $itemList[(int)$shop['itemid2']] . ')</td>';
       }
       $main_content .= '<td align="center">'.$shop['count2'].'</td><td align="center">'.$shop['offer_type'].'</td><td align="left">'.$shop['offer_description'].'</td><td align="left">'.$shop['offer_name'].'</td>';
       $main_content .= '<td align="center"><a href="?subtopic=shopadmin&action=editoffer&id='.$shop['id'].'"><img src="'.$layout_name.'/images/news/edit_news.png" border="0"></a><br><br><a href="?subtopic=shopadmin&action=deleteoffer&id='.$shop['id'].'"><img src="'.$layout_name.'/images/news/delete_news.png" border="0"></a></td>';
   }
   $main_content .= '</td></tr></TABLE><br><form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>';
}
if($action == "deleteoffer") {
   $id = (int) $_REQUEST['id'];
   $SQL->query('DELETE FROM z_shop_offer WHERE id = '.$id.' LIMIT 1;');
   $main_content .= '<center>Shop offer has been deleted.</center><br><center><form action="?subtopic=shopadmin&action=viewoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form></center>';
   }
if($action == "editoffer") {
   $id = (int) $_REQUEST['id'];
   $shopoffers = $SQL->query('SELECT * FROM z_shop_offer WHERE id = '.$id.' LIMIT 1;');
       foreach($shopoffers as $shop) {
   $main_content .= '<form action="?subtopic=shopadmin&action=edited&id='.$id.'" method="post" ><table border="0"><tr><td align="center" ><b>Points:</b></td>
   <td><input type="textbox" name="shop_points" maxlenght="7" value="'.$shop['points'].'" style="width: 70px"></td></tr>';
   if($shop['offer_type'] == 'container'){
       $main_content .= '<tr><td align="center" ><b>Container ID:</b></td>
       <td><input type="text" name="shop_itemid1" maxlenght="7" value="'.$shop['itemid1'].'" style="width: 70px" ></td></tr>
       <tr><td align="center" ><b>Count Container:</b></td>
       <td><input type="text" name="shop_count1" maxlenght="7" value="'.$shop['count1'].'" style="width: 70px" ></td></tr>
       <tr><td align="center" ><b>Item ID:</b></td>
       <td><input type="text" name="shop_itemid2" maxlenght="7" value="'.$shop['itemid2'].'" style="width: 70px" ></td></tr>
       <tr><td align="center" ><b>Count Item:</b></td>
       <td><input type="text" name="shop_count2" maxlenght="7" value="'.$shop['count2'].'" style="width: 70px" ></td></tr>';
   }
   if($shop['offer_type'] == 'item'){
       $main_content .= '<tr><td align="center"><b>Item ID:</b></td>
       <td><input type="text" name="shop_itemid1" maxlenght="7" value="'.$shop['itemid1'].'" style="width: 70px" ></td></tr>
       <tr><td align="center"><b>Item Count:</b></td>
       <td><input type="text" name="shop_count1" maxlenght="7" value="'.$shop['count1'].'" style="width: 70px" ></td></tr>';
   }
   if($shop['offer_type'] == 'pacc'){
       $main_content .= '<tr><td align="center" ><b>Days:</b></td>
       <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>';
   }
   $main_content .= '<tr><td align="center" ><b>Offer Type:</b></td>
   <td><input type="text" name="shop_offer_type" value="'.$shop['offer_type'].'" maxlenght="40" style="width: 200px" ></td></tr>
   <tr><td align="center" ><b>Offer Description:</b></td>
   <td ><textarea name="shop_offer_description" rows="2" cols="35">'.$shop['offer_description'].'</textarea></td></tr>
   <tr><td align="center" ><b>Offer Name:</b></td>
   <td><input type="text" name="shop_offer_name" value="'.$shop['offer_name'].'" maxlenght="40" style="width: 200px" ></td></tr>
   <tr><td><input name="submit" type="submit" value="Submit" /></form></td><td></td></tr></table>';
   $main_content .= '<form action="?subtopic=shopadmin&action=viewoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>';
   }
   }
if($action == "edited") {
   $id = (int) $_REQUEST['id'];
   $shop_points = stripslashes(trim($_POST['shop_points']));
   $shop_offer_type = stripslashes(trim($_POST['shop_offer_type']));
   $shop_itemid1 = stripslashes(trim($_POST['shop_itemid1']));
   $shop_count1 = stripslashes(trim($_POST['shop_count1']));
   $shop_itemid2 = stripslashes(trim($_POST['shop_itemid2']));
   $shop_count2 = stripslashes(trim($_POST['shop_count2']));
   $shop_offer_description = stripslashes(trim($_POST['shop_offer_description']));
   $shop_offer_name = stripslashes(trim($_POST['shop_offer_name']));
   $SQL->query('UPDATE `z_shop_offer` SET `points` = '.$shop_points.', `itemid1` = '.$SQL->quote($shop_itemid1).', `count1` = '.$SQL->quote($shop_count1).', `itemid2` = '.$SQL->quote($shop_itemid2).', `count2` = '.$SQL->quote($shop_count2).', `offer_type` = '.$SQL->quote($shop_offer_type).', `offer_description` = '.$SQL->quote($shop_offer_description).', `offer_name` = '.$SQL->quote($shop_offer_name).' WHERE `id` = '.$id.';');
   $main_content .= '<b><center>Shop offer successfully edited.</b><br><br><form action="?subtopic=shopadmin&action=viewoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form><meta http-equiv="refresh" content="1;url=/?subtopic=shopadmin&action=viewoffer" />';
}
if($action == "points") {
   $player = stripslashes(ucwords(strtolower(trim($_REQUEST['character']))));
   $points = $_POST['points'];
   if(empty($player)) {
       $main_content .= '<form action="" method="post"><B>Enter Character Name:</B><input type="textbox" name="character"><br>
       <B>Enter Points Amount:</B><input type="textbox" name="points"><br><input type="submit" value="Submit">
       </form></center><form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>';
   }
   else
   {
       $player_data = $SQL->query("SELECT * FROM `players` WHERE `name` = '".$player."';")->fetch(); 
       $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + '".$points."' WHERE `id` = '".$player_data['account_id']."'");
       $main_content .= '<b><center>'.$points.' Premium Points added to the account of <i>'.$player.'</i> !</b></center><br>
       <form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>';
       }
   }
}
else
{
$main_content .= 'Sorry, you have not the rights to access this page.';
}
?> 

 

navbits_finallink_ltr.gifScreens :

[spoiler=Imagem]screen1u.jpg

 

 

 

___________________________

 

21e1clx.gifPSI: Se aparecer um erro como este

navbits_finallink_ltr.gif

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pid' in 'field list'' in /var/www/korek/shopadmin.php:121 Stack trace: #0 /var/www/korek/shopadmin.php(121): PDO->query('INSERT INTO `z_...') #1 /var/www/korek/index.php(213): include('/var/www/korek/...') #2 {main} thrown in /var/www/korek/shopadmin.php on line 121

 

navbits_finallink_ltr.gifFaça isso no phpmyadmin :

 

ALTER TABLE `z_shop_offer` ADD `pid` INT( 11 ) NOT NULL DEFAULT '0';  

 

--

 

OBS: Para inserir basta criar um arquivo chamado shopadmin.php e colocar no index.php! Para o colocar faça isso:

 

case "shopadmin";
   $subtopic = "shopadmin";
   $topic = "Shop Admin";
   include("shopadmin.php");
 break;

 

 

--

 

Espero que gostem

Editado por Rhys

Compartilhar este post


Link para o post
Velho Doidao    2
Velho Doidao

Obrigado pela contribuição, Aprovado.

Compartilhar este post


Link para o post
rodrigoxt    0
rodrigoxt

Muito bom!

Compartilhar este post


Link para o post
Maacob    0
Maacob

uma perguntinha, quanto tempo demora pro item cair na conta do player?

Compartilhar este post


Link para o post
Morauer    0
Morauer

Se poder me ajudar, eu consigo adicionar os itens mais não aparece as imagens dos itens, alguem poderia me ajudar ?

 

shopsystem.jpg

Compartilhar este post


Link para o post
Sorcerer of luz    0
Sorcerer of luz

Muito massa!!

gostei

Compartilhar este post


Link para o post
Fixthow    33
Fixthow
uma perguntinha, quanto tempo demora pro item cair na conta do player?

 

@maacob, o membro niccosloko posto o sistema do site, mais esqueçeu de postar o sistema de globalevents

 

1. Abra ".../xampp/htdocs/config/config.ini" e ativa o shop (troque "0" por "1"):
shop_system = "1"

*Altere o Login.lua caso use o TFS 0.2.9, 0.2.10, 0.2.11, 0.2.12, 0.2.13, 0.2.14, 0.2.15, 0.2.16, 0.2.17, 0.2.18, 0.2.19 OR TFS 0.3 REV. under 815:

 

2*. Abra o arquivo login.lua na pasta do seu servidor ".../pasta-do-seu-servidor/data/creaturescripts/scripts/login.lua"
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 19
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
SQL_COMUNICATION_INTERVAL = SQL_interval * 1000
function onLogin(cid)
   if(InitShopComunication == 0) then
       local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, {})
       InitShopComunication = eventServ
   end
   registerCreatureEvent(cid, "PlayerDeath")
   return TRUE
end

function sql_communication(parameters)
   dofile("./config.lua")
   env = assert(luasql.mysql())
   con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))
   result_plr = assert(con:execute("SELECT * FROM z_ots_comunication WHERE `type` = 'login';"))
   todo = result_plr:fetch({}, "a")
   while todo do
       id = tonumber(todo.id)
       action = tostring(todo.action)
       delete = tonumber(todo.delete_it)
       cid = getPlayerByName(tostring(todo.name))
       if isPlayer(cid) == TRUE then
           local itemtogive_id = tonumber(todo.param1)
           local itemtogive_count = tonumber(todo.param2)
           local container_id = tonumber(todo.param3)
           local container_count = tonumber(todo.param4)
           local add_item_type = tostring(todo.param5)
           local add_item_name = tostring(todo.param6)
           local received_item = 0
           local full_weight = 0
           if add_item_type == 'container' then
               container_weight = getItemWeight(container_id, 1)
               if isItemRune(itemtogive_id) == TRUE then
                   items_weight = container_count * getItemWeight(itemtogive_id, 1)
               else
                   items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
               end
               full_weight = items_weight + container_weight
           else
               full_weight = getItemWeight(itemtogive_id, itemtogive_count)
               if isItemRune(itemtogive_id) == TRUE then
                   full_weight = getItemWeight(itemtogive_id, 1)
               else
                   full_weight = getItemWeight(itemtogive_id, itemtogive_count)
               end
           end
           local free_cap = getPlayerFreeCap(cid)
           if full_weight <= free_cap then
               if add_item_type == 'container' then
                   local new_container = doCreateItemEx(container_id, 1)
                   local iter = 0
                   while iter ~= container_count do
                       doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                       iter = iter + 1
                   end
                   received_item = doPlayerAddItemEx(cid, new_container)
               else
                   local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                   received_item = doPlayerAddItemEx(cid, new_item)
               end
               if received_item == RETURNVALUE_NOERROR then
                   doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
                   delete = assert(con:execute("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";"))
                   assert(con:execute("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";"))
               else
                   doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
               end
           else
               doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
           end
       end
       todo = result_plr:fetch (todo, "a")
   end
   con:close()
   env:close()
   local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end

3.Se sua versão do TFS For 0.3 (alpha1 or new):

Não altere o Login.lua e Sim o Globals.lua

no arquivo data/globalevent/globalevents.xml adicione:

       <globalevent name="shop" interval="30" script="shop.lua"/>  

3.1. Criei um arquivos dentro da pasta data/globalevents/scripts/shop.lua e coloque lá dentro:

 

-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 19
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
   local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
   if(result_plr:getID() ~= -1) then
       while(true) do
           id = tonumber(result_plr:getDataInt("id"))
           action = tostring(result_plr:getDataString("action"))
           delete = tonumber(result_plr:getDataInt("delete_it"))
           cid = getCreatureByName(tostring(result_plr:getDataString("name")))
           if isPlayer(cid) == TRUE then
               local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
               local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
               local container_id = tonumber(result_plr:getDataInt("param3"))
               local container_count = tonumber(result_plr:getDataInt("param4"))
               local add_item_type = tostring(result_plr:getDataString("param5"))
               local add_item_name = tostring(result_plr:getDataString("param6"))
               local received_item = 0
               local full_weight = 0
               if add_item_type == 'container' then
                   container_weight = getItemWeightById(container_id, 1)
                   if isItemRune(itemtogive_id) == TRUE then
                       items_weight = container_count * getItemWeightById(itemtogive_id, 1)
                   else
                       items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)
                   end
                   full_weight = items_weight + container_weight
               else
                   full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                   if isItemRune(itemtogive_id) == TRUE then
                       full_weight = getItemWeightById(itemtogive_id, 1)
                   else
                       full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                   end
               end
               local free_cap = getPlayerFreeCap(cid)
               if full_weight <= free_cap then
                   if add_item_type == 'container' then
                       local new_container = doCreateItemEx(container_id, 1)
                       local iter = 0
                       while iter ~= container_count do
                           doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                           iter = iter + 1
                       end
                       received_item = doPlayerAddItemEx(cid, new_container)
                   else
                       local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                       received_item = doPlayerAddItemEx(cid, new_item)
                   end
                   if received_item == RETURNVALUE_NOERROR then
                       doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
                       db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                       db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                   else
                       doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
                   end
               else
                   doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
               end
           end
           if not(result_plr:next()) then
               break
           end
       end
       result_plr:free()
   end
   return TRUE
end  

pontoAzul.gif Configurações:

-- mensagem que será envido para o players do script "type" (types veja no "global.lua")
SHOP_MSG_TYPE = 17
-- tempo que o script levará para checar a DB (em segundos) 
SQL_interval = 30

4.2 Abra ".../pasta-do-seu-servidor/data/global.lua"

e adicione esta linha

InitShopComunication = 0

 

 

@Caratsu,

Para apareçer a gif do item ( imagem ) adicione ela na pasta item_images dentro da pasta do seu site, e altere o nome da imagem para o ID do seu item na DB, exemplo se vc tem um helmet lá e o ID dele é 5 vc altera a imagem dele na pasta item_images para 5 ele irá abrir.

Editado por Fixthow

Compartilhar este post


Link para o post
katjas    0
katjas

Minha database nao tem essa table

z_shop_offer

como faco pra criar uma pelo sqlitestudio-1.1.3

no meu arquivo forgoten.s3db

por favor me ajude

Compartilhar este post


Link para o post
ParsonS    0
ParsonS

LoL que dahora ..

 

Futuramente acho que irei usar ja vou guardar aqui :D

 

Vlw

 

;D

Compartilhar este post


Link para o post
Sorcerer of luz    0
Sorcerer of luz

Otimo tutorial!!!

Obrigado por ajudar a gente.

Compartilhar este post


Link para o post
SubythKiller    2
SubythKiller

Muito bom valeu, e você corrigiu os bugs em, Valeu mesmo, já estou usando o sistema...

ele não trava como o outro \o/ Inda bem agora sim!

Compartilhar este post


Link para o post
Jenny1991    0
Jenny1991

Fatal error: Call to undefined function getOrder() in C:\xampp\htdocs\pages\shopadmin.php on line 98

Compartilhar este post


Link para o post
Majesty    1755
Majesty

Fatal error: Call to undefined function getOrder() in C:\xampp\htdocs\pages\shopadmin.php on line 98

 

Encontrei na OTLand o mesmo tópico do Gesior Shop System v4, dá uma olhada lá, pois deve ter a solução para esse erro:

https://otland.net/threads/gesior-shop-system-shop-admin-page-v4.29724/

Compartilhar este post


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

    Nenhum usuário registrado visualizando esta página.

×