Sistama Contra Clonagem De Items Vip!

mangous
em Lixeira Pública

mangous

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/06/06Posts: 33

O Script Seria um Global Events.

Versão : 8.6 Tfs 0.4_DEV

Nível de Experiência : Media ~Alta

 

Se possível façam baseados no Shop.lua que vou colocar ai embaixo, pois é o que eu uso e não tem aquele problema

de enviar infinitas vezes o mesmo item.

 

Pedido :

 

Da mesma forma que a arena adiciona a descriçao do seu nome no trofel,

cada item comprado na loja do site poderia ter uma descriçao, por exemplo:

 

Quando alguém compra uma espada vip no site, quando voce desse look na espada apareceria "you see a espada vip,

shopcode 001" algo assim, o próximo item comprado teria a descriçao shopcode 002 e assim por diante.

 

1 - item comprado no shop teria no final da descrição : [001]

2 - segundo item comprado no shop teria no final da descrição : [002]

3- terceiro item comprado no shop teria no final da descrição : [003]

 

Eu nao manjo muito de script mas teriamos que adicionar no shop.lua a function "doItemSetAttribute"

e a descrição seria uma string baseada numa consulta na db. Teriamos tambem que criar uma tabela e um campo na db para registrar os numeros que ja foram usados,

para que cada item tivesse um numero exclusivo. E quando o item fosse recebido pelo players seria executada uma query que adicionaria +1 no número que

está registrado na db.

Assim cada item comprado na loja teria um codigo exclusivo em ordem crescente.

 

Dessa forma poderiamos encontrar 2 items com um mesmo codigo no bancode dados, e seria evidente que foram clonados,

assim deletariomos 1 deles e ninguem teria items clonados no server.

 

Se possível adicionar um script que na qual se aparececem 2 itens com o mesmo id ex : 2 items com [001], OS 2 FOSSEM DELETADOS.

Pois se todo mundo souber que se clonar vai perder o item, ninguem tentaria e se algum malandro tentase, ele perderia o item

como punição por tentar trapacear.

 

Se possível também adicionar o id do player que esta na db ou então o nome dele também.

 

No final ficando como por exemplo :

 

17:48 You see boots of haste (speed +20).
It weighs 7.50 oz. Item Shop [001] Comprado Por [127]

 

17:48 You see boots of haste (speed +20).
It weighs 7.50 oz. Item Shop [001] Comprado Por [ADM Do OT]

 

 

Onde [001] fosse o id de compra no site e o [127] o id do player que comprou.

 

Gostaria de saber se os programers daqui topariam tentar fazer esse script para não só ajudar a mim, como também

a todos que passam por problemas com itens VIP clonados.

 

MEU shop.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 ###
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.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.query("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

 

 

Vlws Ai To na Espera.

Walk Alone Server 8.7

Mapa Próprio Com + De 300 Quests

Sistemas Inivadores!

Melhor Servidor Da Versão.

Trainers Que Upam Seu Magic Level e Seus Skills Ao Mesmo Tempo! (Sem Precisar Comer e Nem Executar Magia)

 

Não Perca Mais Tempo e Venha Se Divertir!

 

assinatura.jpg

 

WalkAlone Project

Alternative Tibia Server

O N L I N E

 

[ http://WalkAlone.servegame.Com ]

> >ONLINE! 24 HORAS! 8.70!< <

 

Nos contate agora mesmo:

tibiasoul@msn.com (online)

mapperneto

~Mapping Art~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/05/10Posts: 54Char no Tibia: Secret

Fantastica ideia e é exatamente o que eu procuro porem ainda não achei ninguem que possa fazer essa é a medida ideal contra os cloners isso seria a solução que todos os admins procuram, preciso desse sistema e de um que na hora que detectar o item com o mesmo id o item fosse deletado automaticamente por favor pessoal tentem fazer este sistema :(

Mapping é Art, Coerencia Faz Parte, Harmonia é Moda, Show-Off é Foda (By: Mapper Neto)0601e43126c941e39978057555413b91.0.gif