Ir para conteúdo
  • Cadastre-se

Vip no Char e nao a account


Posts Recomendados

Boa Tarde!

 

nao sei bem a que esse topico se refere entao ja peço descupas de postei no lugar errado.

pois bem, queria saber como eu faço pra ficar vip so o char que esta com o vip e nao pra account toda.

 

exemplo: comprei um vip pro char Rochell, entao so ele tem que ficar vip, ai vou e crio outro char na mesma account e ele ja sai vip.

 

espero que ajudem, se nao intenderam me avise..

 

abraços

 

 

no aguardo.

Link para o post
Compartilhar em outros sites

USE ESTE SISTEMA:

http://www.tibiaking.com/forum/topic/20589-vip-system-by-mock-100/

 

NO LUGAR DE `accounts` Você irá substituir por `players` , assim todos o sistema vip irá verificar a condição do players e não da conta...

 

 

ENTENDEU?

Link para o post
Compartilhar em outros sites

Se usar mysql troque:

if sqlType == "sqlite" then

Por

if sqlType == "mysql" then

Link para o post
Compartilhar em outros sites

Se quiser postar seu sistema a gente altera também. Mas creio que já seja o do mock então faça como nosso amigo ( Mythera) de cima citou.

Editado por Ka zuza (veja o histórico de edições)

z_WL63_Tt.png

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingGeral"

Para: "OTServSuporte OTServSuporte de Scripts"

Link para o post
Compartilhar em outros sites

Se ão tiver sido resolvido a dúvida poste seu sistema aqui.

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Boa tarde.

Conferindo com o tutorial indicado, é sim o sistema do Mock.
O arquivo data/creaturescrpits/scripts/fimvip.lua, o data/movements/scripts/viptile.lua não existem.
Em data/talkactions/scripts, nenhum dos arquivos citados existe (existe o addvip.lua, com apenas um 'p').
Os outros arquivos estão lá.

Devo concluir que o sistema de vip configurado aqui está incompleto? Nos nossos testes, conseguimos adicionar o tempo vip e o nome da conta mudou com o [VIP]. Só não testamos ainda se a conta deixa de ser vip após o tempo ter acabado.

Na função:

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 `players` 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

Posso substituir a condição WHERE para procurar logo pelo id e passar o cid no parâmetro?
Assim: ae =  db.getResult("SELECT `vip_time` FROM `players` WHERE `id` = 'cid';")

E também na função:
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

Ficar assim: db.executeQuery("UPDATE `"..sqlDatabase.."`.`players` SET `vip_time` = '"..(os.time()+time).."' WHERE `players`.`id` ='cid';")


Quando vocês falam em postar o sistema aqui, devo enviar toda a pasta 'data'?

Apenas para efeito de curiosidade, qual a diferença dessas duas funções? Não entendi a lógica do "or 0".
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

 

Agradeço desde já a atenção.

Abraços.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo