saho 0 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 Ae galera, estou querendo saber pra onde vai o item comprado no shop vip do char. Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 para a bag do player que comprou Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 O meu nao esta indo =/. Tem algum arquivo que tem que modificar? Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 s faça isso: Crie um script com nome shop.lua no globalevents e coloque isso 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 ..' << Seu item esta esperando por voce. Por favor faça o local para este item em sua mochila e aguarde '.. SQL_interval ..' segundos para obte-lo.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << Seu item esta esperando por voce. O peso do item e '.. full_weight ..' oz., Vc tem no momento '.. free_cap ..' oz. de capacidade livre. Coloque alguns itens no deposito e espere cerca de '.. SQL_interval ..' segundos para obte-lo.') end end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end Coloque isso no globalevents.xml <globalevent name="shop" interval="30" script="shop.lua"/> e execute esse comando na database: CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL default '1', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `offer_id` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_pacc` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `pacc_days` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 Eu fiz tudo, mais o char n recebe o item na bag. No caso o item era um 3382 (Crown Legs) Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 vc executou os comandos certos na database do seu ot e colocou a linha no globalevents.xml? tem q esperar 30 segs pra o item chegar Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 ele fica falando Crown Legs << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about 30 seconds to get it. mais n chega nada, eu relogo e n chega Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 vc tem q ter a cap nescessaria e tem q ter espaço na bag para receber o item Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 O problema e que eu estou com 5mil de cap e sem equip. O unban, tirar redskull, o trocar name... ta funcionando blz. Cara no codigo aqui eu dei uma olhada, e eu sako um pouco de java e ta o segunte... no phpmyadmin o parametro 3 no zcomunication ta vazio, no codigo ele seria o container_id, no caso acho que o local pra onde o item iria. Será esse o erro? Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 tenta colocar o item a venda na aba items do shop gesior e colocar uma backpack para esperar o item se puder me passa o site pra eu olhar Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 vulcano.servegame.com:8090 o servidor esta aberto. Me passa o nome do char que eu adiciono pontos pra voce testar. Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 acho melhor vc instalar uma versão mais recente do gesior (0.3.8) pos n sei se esse se esse funciona com esse script Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 o ot veio com script proprio. Este local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE local SQL_interval = 30 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 local id = tonumber(result_plr:getDataInt("id")) local action = tostring(result_plr:getDataString("action")) local delete = tonumber(result_plr:getDataInt("delete_it")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) 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) doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!") doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000) 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 Ja testei com seu codigo, e esse... mais nao funciona Link para o comentário Compartilhar em outros sites More sharing options...
dreigon67 16 Postado Dezembro 4, 2011 Share Postado Dezembro 4, 2011 eu fui criar um char e deu outro erro ta dizendo q n tem os samples na database vc exclui eles? Link para o comentário Compartilhar em outros sites More sharing options...
saho 0 Postado Dezembro 4, 2011 Autor Share Postado Dezembro 4, 2011 Putz acho que deletei os chars. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados