Vocação Vip Por Database

Akiles III
em Lixeira Pública

Akiles III

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/05/06Posts: 3

Seguinte, eu tenho o seguinte scrip para que quando algum player colocar VIP ele automaticamente receba a vocação VIP:

 

function onLogin(cid)    

if vip.hasVip(cid) == TRUE then  
if(isInArray({5, 6, 7, 8}, getPlayerVocation(cid))) then    
doPlayerSetVocation(cid,getPlayerVocation(cid)+4)    
end  
elseif vip.hasVip(cid) == FALSE then   
if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then  
doPlayerSetVocation(cid,getPlayerVocation(cid)-4)  
end  
end     
return TRUE   
end

 

O problema é que esse scrip não altera nada no banco de dados, assim quando olhamos no site o player ainda continua como Elite Knight etc... Na database um Elite Knight por exemplo possue vocação 4 e promotion 1. Eu precisaria mudar a vocação para 8 e o promotion continuar 1. Dessa forma apareceria no site a vocação VIP.

 

Resumindo, preciso de um scrip que seja algo assim:

 

function onLogin(cid)    

if vip.hasVip(cid) == TRUE then  
if(isInArray({5, 6, 7, 8}, getPlayerVocation(cid))) then    
DB.STORAGE +4 NO CAMPO VOCAÇÃO
end  
elseif vip.hasVip(cid) == FALSE then   
if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then  
DB.STORAGE -4 NO CAMPO VOCAÇÃO  
end  
end     
return TRUE   
end

 

Alguém poderia me ajudar?

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

tenta assim:

 

function onLogin(cid)    

if vip.hasVip(cid) == TRUE then  
if getPlayerPromotionLevel(cid) == 1 then    
setPlayerPromotionLevel(cid, 2)  
end  
elseif vip.hasVip(cid) == FALSE then   
if getPlayerPromotionLevel(cid) == 2 then 
setPlayerPromotionLevel(cid, 1) 
end  
end     
return TRUE   
end

bossisg.png

Akiles III

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/05/06Posts: 3

Ele não reconheceu o promotion 2 como +4 na vocação. Ao fazer isso o player ficou: You see yourself. You are .

Ele chegou a mudar no database pra promotion 2, mas no site ficou em branco a parte da vocação também.

 

O que eu não entendo é como o script anterior "pega" a vocation 5, 6, 7 e 8 sendo que no database fica como a vocação 1, 2, 3 e 4 com promotion 1. Além disso é como se a mudança fosse apenas enquanto o char está logado, pq nada muda na database. E o script que vc me passou mecheu na databse, mas o que eu uso não meche, só muda a vocação no game. ;S

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

você pode até mecher na database do player mais ele vai ter que estar offline

 

vou passar uma função que eu fiz,você pode tentar adptar com o primeiro script para ve se funciona.

 

 

function doPlayerChangeVocation(cid, vocation)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true)
db.executeQuery("UPDATE `players` SET `vocation` = ".. vocation .." WHERE `id` = "..pid)
return TRUE
end

bossisg.png