Olá pessoal, bom eu tentei montar um npc que venda vip em um sistema, sql, mas quebrei a cabeça = um loco até desistir dae então resolvi montar uma alavanca que venda vip. Mas não consegui completar e nem estou conseguindo achar aonde está o problema no script vou mandar dae alguem que saiba por favor faça a correção dae agente deixa disponivel pra galera no forum:
Ta aí o codigo do script
local config = {
moneyid = 2159,
}
function onUse(cid, data1, fromPosition, itemEx, toPosition, moneyid)
if doPlayerRemoveItem(cid, config.moneyid, 5) == TRUE then
local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(data1) .. ";")
if (Target:getID() ~= -1) then
if (getPlayerByName(data1)) then
doSendMagicEffect(getCreaturePosition(getPlayerByName(data1)), CONST_ME_MAGIC_GREEN)
end
if getVipTimeByName(Data) == 0 then
db.executeQuery("UPDATE `accounts` SET `vip_time` = 86400 * 30 + ".. os.time() .." WHERE `accounts`.`id` = ".. getAccountIdByName(data1) ..";")
else
db.executeQuery("UPDATE `accounts` SET `vip_time` = `accounts`.`vip_time` + (86400 * 30) WHERE `accounts`.`id` = ".. getAccountIdByName(data1) ..";")
end
db.executeQuery("UPDATE `accounts` SET `vip` = 1 WHERE `accounts`.`id` = ".. getAccountIdByName(data1) ..";")
db.executeQuery("UPDATE `accounts` SET `vip_days` = `accounts`.`vip_days` + 30 WHERE `accounts`.`id` = ".. getAccountIdByName(data1) ..";")
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi adicionado 30 dias de vip ao player ".. data1 ..".")
else
doPlayerSendCancel(cid, "O player ".. data1 .." não existe.")
end
return TRUE
end
end
e o erro que esta dando no console quando usa a alavanca é o seguinte:
Error - Action Interface]
data/actions/scripts/vip.lua:onUse
Description:
data/actions/scripts/vip.lua:21: attempt to concatenate local 'data1' (a table value)
stack traceback:
data/actions/scripts/vip.lua:21: in function <data/actions/scripts/vip.lua:5>
Aguardo respostas!
------------ edit ------------
Segue a prova do crime: o script funfando blz. Valeu Neox Boy!
function doAddVipDays(cid, days)
local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. (db.escapeString(getPlayerName(cid))) .. ";")
if (Target:getID() ~= -1) then
if getVipTimeByName(getPlayerName(cid)) == 0 then
db.executeQuery("UPDATE `accounts` SET `vip_time` = 86400 * days + ".. os.time() .." WHERE `accounts`.`id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
else
db.executeQuery("UPDATE `accounts` SET `vip_time` = `accounts`.`vip_time` + (86400 * days) WHERE `accounts`.`id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
end
db.executeQuery("UPDATE `accounts` SET `vip` = 1 WHERE `accounts`.`id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
db.executeQuery("UPDATE `accounts` SET `vip_days` = `accounts`.`vip_days` + days WHERE `accounts`.`id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
else
print("Erro ao tentar adicionar vip para o jogador " .. getPlayerName(cid) .. ".")
end
return TRUE
end
local config = {
moneyid = 2159,
}
function onUse(cid, fromPosition, itemEx, toPosition, moneyid)
if doPlayerRemoveItem(cid, config.moneyid, 30) then
doAddVipDays(cid, 30)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabéns! Foi adicionado 30 dias de vip ao player ".. getPlayerName(cid) ..". Digite !checkvip para checar os dias de VIP.")
doSendMagicEffect(getCreaturePosition(cid), 27)
doSendAnimatedText(getCreaturePosition(cid), "Vip!", 180)
else
doPlayerSendCancel(cid, "Você não possui moedas VIP suficiente.")
end
return TRUE
end
PS: FUNCIONA APENAS EM SISTEMA VIP SQL!







