que versão é seu servidor?
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Vip System By Account V1.0
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

info
Grupo: Visconde
Registrado: 20/08/06
Posts: 250
Reputação: +146

@DeathAngels
Esse script é pra TFS 0.3.6
E pelos seus erros é pq não existe a coluna no seu banco de dados.
E você precisa executar a talk /installvip ou o comando sql:
ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;
info
Grupo: Campones
Registrado: 04/09/10
Posts: 9
Reputação: 0
Char no Tibia: Pino Walker

kydrai veelho, so seu fan agora. primeira vez que eu consegui. mas tipo, num tem os tiles? eu programei tudo certinho aí coloquei um no templo e fechei o lugar como se fosse uma casa e o tile nao deixa passar tlgd? aí eu nao to conseguindo passar mesmo com o player vip. vc sabe o que é? ajuda de boaa
Abraços.
Galera, alguem sabe por level no comando? por exemplo !buyvip só para lvl 100+?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

@UP
aqui:
function onSay(cid, words, param, channel)
if words == "/buyvip" then
local price = 1000000
local days = 30
local level = 100
if getPlayerLevel(cid) >= level then
if doPlayerRemoveMoney(cid, price) then
addVipDays(cid, days)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter level "..level.." ou mais para adquirir vip.")
end
elseif words == "/vipdays" then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or ""))
end
return TRUE
end
info
Grupo: Barão
Registrado: 01/06/10
Posts: 230
Reputação: +25

ainda presciso que o player perca uma storage qndo a vip acaba ![]()
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

mais esse do kydrai nao tem storage
info
Grupo: Barão
Registrado: 01/06/10
Posts: 230
Reputação: +25

exato, só que eu necessitava que o player ganha-se uma storage para apareçer vip no site,
deu certo, só não esta funcionando pro player perde essa stoage quando a vip acaba.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

tenta fazer pelo login:
function onLogin(cid) local storage = XXXX -- numero da sua storage if isVip(cid) == FALSE then if getPlayerStorageValue(cid, storage) >= 1 then setPlayerStorageValue(cid, storage, -1) end end return TRUE end
info
Grupo: Barão
Registrado: 01/06/10
Posts: 230
Reputação: +25

fiz isso em um novo arquivo lua e nada...
sera q da implantando pelo viplogin?
o meu é este:
function onLogin(cid)
if isVip(cid) == FALSE then
doPlayerSetPromotionLevel(cid,1)
end
local vip = isVip(cid)
if getVipTime(cid) > 0 and vip == FALSE then
local townid = 2
doPlayerSetTown(cid, townid)
local templePos = getTownTemplePosition(getPlayerTown(cid))
doTeleportThing(cid, templePos, false)
setVipTime(cid, 0)
doTeleportPlayers(cid, templePos)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!")
elseif vip == TRUE then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..". Agora você tem 20% de exp a mais!") or ""))
end
return TRUE
end
Editado Setembro 8 por felipedorgas
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

testa
function onLogin(cid)
if isVip(cid) == FALSE then
doPlayerSetPromotionLevel(cid,1)
end
local vip = isVip(cid)
if getVipTime(cid) > 0 and vip == FALSE then
local townid = 2
doPlayerSetTown(cid, townid)
local storage = XXXX -- valor da sua storage
local templePos = getTownTemplePosition(getPlayerTown(cid))
doTeleportThing(cid, templePos, false)
setPlayerStorageValue(cid, storage, -1)
setVipTime(cid, 0)
doTeleportPlayers(cid, templePos)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!")
elseif vip == TRUE then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..". Agora você tem 20% de exp a mais!") or ""))
end
return TRUE
end
info
Grupo: Barão
Registrado: 01/06/10
Posts: 230
Reputação: +25

nada...tem alguma ideia sobre isso?
info
Grupo: Campones
Registrado: 06/09/10
Posts: 7
Reputação: 0
Char no Tibia: Thralan Cat

Oie Estou com uma duvida por exemplo,e pra mim adicionar o player na area vip ??
Ae fis tudo certinho e deu certo VLws lek vc e mt bom
Oi cara.
Estou com uma duvida um pouco mais aprofundada.
Estou a combinar este vip system com o gesior
Mudei as tables premdays para vipsystem, assim, o valor vai direto para a tabela do vip system.
Só que vejamos:
Percebi que seu vip system nao funciona como dias normais, e sim como um numero grande.
Por exemplo:
Se eu adicionar 15 dias em um jogador, eu vou no mysql e encontro o seguinte valor no viptime
viptime 1287808282
Se eu adicionar 30 dias em um jogador, eu vou no mysql e encontro o seguinte valor no viptime
viptime 1289104983
Consegui fazer um multiplicador no shopsystem.php, que vai multiplicar os dias comprados para xega nesse grande valor.
Mas a pergunta é:
Que conta louca é feita para chegar neste numero enorme?
Veja, no seu script diz
days * 24 * 60 * 60
Só que 15 * 24 * 60 * 60 é igual a 1296000 e não a 1287808282.
Gostaria de saber qual a linha de raciocinio para chegar neste valor para chegar em um multiplicador comum e colocar no gesior para que a viptime seja comprada diretamente pelo site.
Muito obrigado por postar este sistema!
Estou no aguardo da resposta!
Obrigado pela atenção!





info
Grupo: Artesão
Registrado: 27/03/10
Posts: 112
Reputação: +108
Gênero: Masculino
Char no Tibia: Ny Uchiha
Arrumei aki so que agora :
Quando o Player fala /buyvip
aparece:
17:47 Você adicionou 30 dia(s) de vip, agora você possui 0 dia(s) de vip. << Mesmo sem dinheiro aparece isso , com dinheiro ele tira 1kk e da nisso tambem.
Se o player fala /vipdays aparece :
17:48 Você possui 0 dia(s) de vip. Ela irá durar até 31/12/69 22:00:00.
Erros do /buyvip
[28/08/2010 17:49:02] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: viptime (UPDATE "accounts" SET "viptime" = 1285620542 WHERE "id" = 2;)
[28/08/2010 17:49:02] Error during getDataInt(viptime).
Erros do /vipdays
[28/08/2010 17:49:26] Error during getDataInt(viptime).
[28/08/2010 17:49:26] Error during getDataInt(viptime).
[28/08/2010 17:49:26] Error during getDataInt(viptime).
Agora com o GOD , no /addvip Name, Dias da isso :
17:50 /addvip GOD Maniaco, 30
17:50 Você adicionou 30 dia(s) de vip ao GOD Maniaco, agora ele possui 0 dia(s) de vip.
E o erro
[28/08/2010 17:50:12] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: viptime (UPDATE "accounts" SET "viptime" = 1285620612 WHERE "id" = 2;)
[28/08/2010 17:50:12] Error during getDataInt(viptime).
Vlw =)