KY

Vip System By Account V1.0

Por Kydrai, 04 de jul. de 2010 em Mods, funções e outros

otserv
tibia
script
5.0 (3)
177
71.3k
nyuchihaN
28 de agosto de 2010 às 17:50

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. o.O

 

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 =)

VodkartV
28 de agosto de 2010 às 17:58

que versão é seu servidor?

KydraiK
30 de agosto de 2010 às 13:26

@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;

vamosnessaV
04 de setembro de 2010 às 00:40

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.

duuuhD
05 de setembro de 2010 às 23:29

Galera, alguem sabe por level no comando? por exemplo !buyvip só para lvl 100+?

VodkartV
05 de setembro de 2010 às 23:38

@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

 

 

07 de setembro de 2010 às 15:36

ainda presciso que o player perca uma storage qndo a vip acaba :worriedsmiley:

VodkartV
07 de setembro de 2010 às 15:46

mais esse do kydrai nao tem storage

07 de setembro de 2010 às 16:01

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.

VodkartV
07 de setembro de 2010 às 20:46

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

08 de setembro de 2010 às 13:12

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

VodkartV
08 de setembro de 2010 às 15:02

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

09 de setembro de 2010 às 13:30

nada...tem alguma ideia sobre isso?

1303791
14 de setembro de 2010 às 17:22

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

1 mês depois...
xkvdX
08 de outubro de 2010 às 01:54

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!