Jump to content
×
×
  • Create New...

talkaction Adicionar Items ao Depot do Jogador[Online/Offline]


Vodkart
 Share

Recommended Posts

Descrição: é um comando para enviar items direto ao depot do jogador, mesmo ele estando online ou offline!

 

Testado: em Versão Sqlite, não sei se suporta versão Mysql/Sql

 

additemdepot.lua
function doPlayerAddDepotItems(pid, item, count) --By magus and edited by vodkart
local item,count = {item},{(count or 1)}
    for k,v in ipairs(item) do
    local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1")
    return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '')") or false
    end
end
function onSay(cid, words, param)
local t = string.explode(param:lower(),",")
if not t[1] then doPlayerSendCancel(cid, "digite Nome, Item ID, quantidade.") return true
elseif not getPlayerByNameWildcard(t[1]) and not getPlayerGUIDByName(t[1]) then doPlayerSendCancel(cid, "Você deve digitar um Nome Válido.") return true 
elseif not tonumber(t[2]) or not tonumber(t[3]) or tonumber(t[3]) < 1 or tonumber(t[3]) > 999 or not isItemStackable(t[2]) and tonumber(t[3]) > 10 then doPlayerSendCancel(cid, "você deve digitar NOME,ID,QUANTIDADE(maior que 0"..(not isItemStackable(t[2]) and " até 10 se não for empilhavel." or " até 1000 se for empilhavel.")..").") return true
elseif not isItemMovable(t[2]) or not getItemNameById(tonumber(t[2])) then  doPlayerSendCancel(cid, "Este item não existe ou não pode ser adicionado ao jogador.") return true
end
local player = getPlayerByNameWildcard(t[1])
if player then
local parcel = doCreateItemEx(ITEM_PARCEL)
if isItemStackable(t[2]) or tonumber(t[3]) == 1 then
doAddContainerItem(parcel, t[2], t[3])
else
for i = 1, t[3] do
doAddContainerItem(parcel, t[2], 1)
end
end
doPlayerSendMailByName(getPlayerNameByGUID(getPlayerGUIDByName(t[1])), parcel, 1)
else
local getPlayer = getPlayerGUIDByName(t[1])
if isItemStackable(t[2]) or tonumber(t[3]) == 1 then
doPlayerAddDepotItems(getPlayer, t[2], t[3])
else
for i = 1, t[3] do
doPlayerAddDepotItems(getPlayer, t[2], 1)
end
end
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você adicionou "..t[3].." "..getItemNameById(t[2]).." ao depot do jogador "..t[1])
return true
end
Tag
<talkaction log="yes" access="5" words="/adddepot" event="script" value="additemdepot.lua"/>
Exemplo de uso:
/adddepot vodkart,2160,500
ou
adddepot vodkart,2494,6
Edited by Vodkart
Link to post
Share on other sites

  • 3 weeks later...

Teria como colocar pra quando o jogador viesse a logar, ele receba uma mensagem assim:

Olá Fawz, você recebeu uma demon legs enquanto estava deslogado. Para pega-la, basta ir ao DP da cidade de Thais.

Olá Fawz, você recebeu um golden helmet..

Olá Fawz, você recebeu 100k...

Link to post
Share on other sites

da pra dar uma adaptada nele pra mysql nao? to usando mysql agr.

Tome.

 

 

 

function doPlayerAddDepotItems(pid, item, count) --By magus and edited by vodkart

local item,count = {item},{(count or 1)}
for k,v in ipairs(item) do
local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1")
return db.query("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '')") or false
end
end
function onSay(cid, words, param)
local t = string.explode(param:lower(),",")
if not t[1] then doPlayerSendCancel(cid, "digite Nome, Item ID, quantidade.") return true
elseif not getPlayerByNameWildcard(t[1]) and not getPlayerGUIDByName(t[1]) then doPlayerSendCancel(cid, "Você deve digitar um Nome Válido.") return true
elseif not tonumber(t[2]) or not tonumber(t[3]) or tonumber(t[3]) < 1 or tonumber(t[3]) > 999 or not isItemStackable(t[2]) and tonumber(t[3]) > 10 then doPlayerSendCancel(cid, "você deve digitar NOME,ID,QUANTIDADE(maior que 0"..(not isItemStackable(t[2]) and " até 10 se não for empilhavel." or " até 1000 se for empilhavel.")..").") return true
elseif not isItemMovable(t[2]) or not getItemNameById(tonumber(t[2])) then doPlayerSendCancel(cid, "Este item não existe ou não pode ser adicionado ao jogador.") return true
end
local player = getPlayerByNameWildcard(t[1])
if player then
local parcel = doCreateItemEx(ITEM_PARCEL)
if isItemStackable(t[2]) or tonumber(t[3]) == 1 then
doAddContainerItem(parcel, t[2], t[3])
else
for i = 1, t[3] do
doAddContainerItem(parcel, t[2], 1)
end
end
doPlayerSendMailByName(getPlayerNameByGUID(getPlayerGUIDByName(t[1])), parcel, 1)
else
local getPlayer = getPlayerGUIDByName(t[1])
if isItemStackable(t[2]) or tonumber(t[3]) == 1 then
doPlayerAddDepotItems(getPlayer, t[2], t[3])
else
for i = 1, t[3] do
doPlayerAddDepotItems(getPlayer, t[2], 1)
end
end
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você adicionou "..t[3].." "..getItemNameById(t[2]).." ao depot do jogador "..t[1])
return true

 

end

 

Edited by Fawz
Link to post
Share on other sites

  • 2 months later...

 

Descrição: é um comando para enviar items direto ao depot do jogador, mesmo ele estando online ou offline!

 

Testado: em Versão Sqlite, não sei se suporta versão Mysql/Sql

 

additemdepot.lua
function doPlayerAddDepotItems(pid, item, count) --By magus and edited by vodkart
local item,count = {item},{(count or 1)}
    for k,v in ipairs(item) do
    local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1")
    return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '')") or false
    end
end
function onSay(cid, words, param)
local t = string.explode(param:lower(),",")
if not t[1] then doPlayerSendCancel(cid, "digite Nome, Item ID, quantidade.") return true
elseif not getPlayerByNameWildcard(t[1]) and not getPlayerGUIDByName(t[1]) then doPlayerSendCancel(cid, "Você deve digitar um Nome Válido.") return true 
elseif not tonumber(t[2]) or not tonumber(t[3]) or tonumber(t[3]) < 1 or tonumber(t[3]) > 999 or not isItemStackable(t[2]) and tonumber(t[3]) > 10 then doPlayerSendCancel(cid, "você deve digitar NOME,ID,QUANTIDADE(maior que 0"..(not isItemStackable(t[2]) and " até 10 se não for empilhavel." or " até 1000 se for empilhavel.")..").") return true
elseif not isItemMovable(t[2]) or not getItemNameById(tonumber(t[2])) then  doPlayerSendCancel(cid, "Este item não existe ou não pode ser adicionado ao jogador.") return true
end
local player = getPlayerByNameWildcard(t[1])
if player then
local parcel = doCreateItemEx(ITEM_PARCEL)
if isItemStackable(t[2]) or tonumber(t[3]) == 1 then
doAddContainerItem(parcel, t[2], t[3])
else
for i = 1, t[3] do
doAddContainerItem(parcel, t[2], 1)
end
end
doPlayerSendMailByName(getPlayerNameByGUID(getPlayerGUIDByName(t[1])), parcel, 1)
else
local getPlayer = getPlayerGUIDByName(t[1])
if isItemStackable(t[2]) or tonumber(t[3]) == 1 then
doPlayerAddDepotItems(getPlayer, t[2], t[3])
else
for i = 1, t[3] do
doPlayerAddDepotItems(getPlayer, t[2], 1)
end
end
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você adicionou "..t[3].." "..getItemNameById(t[2]).." ao depot do jogador "..t[1])
return true
end
Tag
<talkaction log="yes" access="5" words="/adddepot" event="script" value="additemdepot.lua"/>
Exemplo de uso:
/adddepot vodkart,2160,500
ou
adddepot vodkart,2494,6

 

 

 

Coloquei ele e tal, até funfa os comandos e diz que add, mas quando abro o depot ele não tem nada '-'

 

@edit

 

Retiro o que disse :) Funfou aqui xD Valeu mesmo

Edited by DaniloARodrigues
Link to post
Share on other sites

vodkart não ta funcionando pra players offline cara.. testei em serv 8.60!! o item só é enviado quando o player ta on!! vê se da pra ajeitar lek eu agradeceria muito :DD vlw abraços.. aguardando!!

Edited by LanceFake
Link to post
Share on other sites

  • 8 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share