Ir para conteúdo

[Help] Vip System Mock


Blueberry

Posts Recomendados

to tentando adicionar vip com o GOD mas não vai de jeito nenhum, eu uso TFS, ele está retornando um erro no console quando eu uso o comando "/vip add 5 god flashback"

 

[27/11/2011 19:35:26] [Error - TalkAction Interface]
[27/11/2011 19:35:26] data/talkactions/scripts/VIP/addvipp.lua:onSay
[27/11/2011 19:35:26] Description:
[27/11/2011 19:35:26] data/lib/049-vipsys.lua:102: attempt to call field 'executeQuery' (a nil value)
[27/11/2011 19:35:26] stack traceback:
[27/11/2011 19:35:26]  data/lib/049-vipsys.lua:102: in function <data/lib/049-vipsys.lua:98>
[27/11/2011 19:35:26]  (tail call): ?
[27/11/2011 19:35:26]  data/talkactions/scripts/VIP/addvipp.lua:13: in function <data/talkactions/scripts/VIP/addvipp.lua:1>

 

Se alguém puder dar uma luz, valendo REP +

Obrigado desde já.

 

 

049-vipsys.lua

vip = {

name = "Vip system";

author = "Mock";

version = "1.0.0.0";

query="ALTER TABLE `accounts` ADD `vip_time` INTEGER";

query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL"

}

 

function vip.setTable()

dofile('config.lua')

if sqlType == "sqlite" then

db.executeQuery(vip.query)

else

db.executeQuery(vip.query2)

end

end

 

function vip.getVip(cid)

assert(tonumber(cid),'Parameter must be a number')

if isPlayer(cid) == FALSE then error('Player don\'t find') end;

ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';")

if ae:getID() == -1 then

return 0

end

 

local retee = ae:getDataInt("vip_time") or 0

ae:free()

return retee

end

 

function vip.getVipByAcc(acc)

assert(acc,'Account is nil')

local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';")

if a:getID() ~= -1 then

return a:getDataInt("vip_time") or 0, a:free()

else

error('Account don\'t find.')

end

end

 

function vip.setVip(cid,time)

dofile("config.lua")

assert(tonumber(cid),'Parameter must be a number')

assert(tonumber(time),'Parameter must be a number')

if isPlayer(cid) == FALSE then error('Player don\'t find') end;

db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';")

end

 

function vip.getVipByAccount(acc)

assert(acc,'Account is nil')

return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0

end

 

function vip.hasVip(cid)

assert(tonumber(cid),'Parameter must be a number')

if isPlayer(cid) == FALSE then return end;

local t = vip.getVip(cid) or 0

if os.time(day) < t then

return TRUE

else

return FALSE

end

end

 

function vip.hasVips(cid)

assert(tonumber(cid),'Parameter must be a number')

if isPlayer(cid) == FALSE then return end;

local t = vip.getVip(cid)

if os.time(day) < t then

return TRUE

else

return FALSE

end

end

 

function vip.accountHasVip(acc)

assert(acc,'Account is nil')

if os.time() < vip.getVipByAccount(acc) then

return TRUE

else

return FALSE

end

end

function vip.getDays(days)

return (3600 * 24 * days)

end

 

function vip.addVipByAccount(acc,time)

assert(acc,'Account is nil')

assert(tonumber(time),'Parameter must be a number')

local a = vip.getVipByAcc(acc)

a = os.difftime(a,os.time())

if a < 0 then a = 0 end;

a = a+time

return vip.setVipByAccount(acc,a)

end

 

function vip.setVipByAccount(acc,time)

dofile("config.lua")

assert(acc,'Account is nil')

assert(tonumber(time),'Parameter must be a number')

db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';")

return TRUE

end

 

function vip.returnVipString(cid)

assert(tonumber(cid),'Parameter must be a number')

if isPlayer(cid) == TRUE then

return os.date("%d %B %Y %X ", vip.getVip(cid))

end

end

 

addvipp.lua

function onSay(cid, words, param)

if param == "" then

return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Real\n---------------\nDeletar vip:\n/vip del player\n/vip del Real\n---------------\nVer a vip:\n/vip see player\n/vip see Real\n---------------\n")

end

if param:lower():find('add') == 1 and 3 then

local _,_,id,name = param:lower():find('add (%d+) (.+)')

name = name or ""

id = tonumber(id or 1) or 1

if tonumber(id) == nil or getPlayerByName(name) == false then

return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Adicionar vip:\n/vip add days player\n/vip add 30 Real\n [Player: "..name.."]")

end

if isPlayer(getPlayerByName(name)) == TRUE then

vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id))

 

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".")

doPlayerSendTextMessage(getPlayerByName(name),MESSAGE_INFO_DESCR,"Você recebeu "..tonumber(id).." dias de vip.")

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,name.." não esta online ou não existe.")

end

elseif param:lower():find('del') == 1 and 3 then

local _,_,name = param:lower():find('del (.+)')

if getPlayerByName(name) == false then

return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Deletar vip:\n/vip del player\n/vip del Real\n")

end

 

vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time())

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"A vip de "..name.." foi apagada.")

elseif param:lower():find('see') == 1 and 3 then

local _,_,name = param:lower():find('see (.+)')

name = name or ""

if getPlayerByName(name) == false then

return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Ver a vip:\n/vip see player\n/vip see Real\n")

end

local ret_ = vip.getVip(getPlayerByName(name))

if ret_ == 0 then

return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,name.." Não tem vip, e nunca teve.")

else

return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_))

end

end

return TRUE

end

Editado por Blueberry
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...