Eu não mexo com LuaSql mas acho que isso funciona:
local config = {
moneyid = 2159,
}
function onUse(cid, fromPosition, itemEx, toPosition, moneyid)
if doPlayerRemoveItem(cid, config.moneyid, 5) == TRUE then
local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(cid) .. ";")
if (Target:getID() ~= -1) then
if (getPlayerByName(getPlayerName(cid))) then
doSendMagicEffect(getCreaturePosition(getPlayerByName(data1)), CONST_ME_MAGIC_GREEN)
end
if getVipTimeByName(getPlayerName(cid)) == 0 then
db.executeQuery("UPDATE `accounts` SET `vip_time` = 86400 * 30 + ".. os.time() .." WHERE `accounts`.`id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
else
db.executeQuery("UPDATE `accounts` SET `vip_time` = `accounts`.`vip_time` + (86400 * 30) 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` + 30 WHERE `accounts`.`id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi adicionado 30 dias de vip ao player ".. getPlayerName(cid) ..".")
else
doPlayerSendCancel(cid, "O player ".. getPlayerName(cid) .." não existe.")
end
return TRUE
end
end
Você não tinha definido o que era "data1". Teste e veja se deu certo.
flw






info
Grupo: Campones
Registrado: 14/01/06
Posts: 12
Reputação: 0
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 ende 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 endPS: FUNCIONA APENAS EM SISTEMA VIP SQL!
Editado Março 5 por spin182