LO

Duvida Gesior Shop System

Por Lorranzin, 04 de set. de 2010 em Archived

13
3.5k
LorranzinL
04 de setembro de 2010 às 03:18

EU TENHU 1 SITE GESIOR 0.3.7

COM SHOP SYSTEM APENAS FUNCIONANDO UNBAN,CHANGENAME,UNRED.

OS ITENS NAO CHEGAM AO CHAR.

COMO CONCERTAR?

2 semanas depois...
gutaohG
12 de setembro de 2010 às 20:45

to com mesmo problema,

alguem ajuda ai por favor

12 de setembro de 2010 às 22:00

Faça isso:

 

1. Abra o arquivo globalevents.xml e adiciona a tag:

 

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

 

 

1.Faça Um NOvo Arquivo .lua em :

data\globalevents\scripts Com O Nome shop.lua E cole isso:

 

-- ### 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

 

 

 

2) Abra seu arquivo constant.lua que se encontra em "data/lib/constant.lua" e adicione esta linha em qualquer lugar:

 

InitShopComunication = 0

 

 

3) Na database do seu otserv execute (no phpmyadmin):

 

C

REATE 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`)

);

 

 

Pronto.

1 mês depois...
teko96T
05 de outubro de 2010 às 18:36

N ENTENDI A PARTE 3 PF EXPICA MELHOR AE

1 mês depois...
MaicondozeM
06 de novembro de 2010 às 17:55

Também não entendi a parte 3, preciso e uma explicação melhor. :blush:

Natanael BeckmanN
07 de novembro de 2010 às 03:57

acesse:

 

http://127.0.0.1/phpmyadmin

 

Sua=>database=>SQL=>executa=>o=>comando.

 

REATE 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`)
);

MaicondozeM
11 de novembro de 2010 às 15:28

não consigo por um set completo para vender pelo site, alguem me ajuda?

Natanael BeckmanN
12 de novembro de 2010 às 00:28

Seria bom você fazer um item que, quando o player der user o item virem akele set que você está vendendo no site.

MaicondozeM
12 de novembro de 2010 às 21:27

Seria bom você fazer um item que, quando o player der user o item virem akele set que você está vendendo no site.

 

Certo, vamos lá!

 

1º- Existe maneira de por um Set completo pelo para vender pelo shop? Como?

2º Como faz um item virar vários itens?

 

Abraço

Natanael BeckmanN
13 de novembro de 2010 às 00:49

Vai em scripts e faça o pedido de um script que quando o player clica no item o item da devidos items.

MaicondozeM
15 de novembro de 2010 às 22:14

GM Bekman, eu fiz o pedido mas um cara disse que era proibido e fechou o topico. confere ai

 

(http://forums.######/showthread.php?p=1216259#post1216259)

Natanael BeckmanN
16 de novembro de 2010 às 00:08

Depende aonde você fez seu pedido ;p

 

Faz aqui:

 

http://www.xtibia.com/forum/forum/86-pedidos-de-scripts/

alex125A
16 de novembro de 2010 às 10:36

para o item ir pro player segue este tutorial

http://www.xtibia.com/forum/topic/141500-solucao-shop-gesior/page__gopid__958542#entry958542

 

sobre os itens ir completo acho que teria q fazer pelo container com os codigos daas peças por sequencia (seria bom fazer os teste dando certo aew liberaria).

espero ter ajudado