Bom gente, eu já iniciei um tópico aqui mais ou menos sobre o que eu irei tratar aqui agora, porem ele não foi "totalmente" resolvido, na verdade quase não foi rsrsrs, é assim..
Eu tenho um script de reset de classe, que ao utilizar, você troca de classe, ou seja, se transforma em uma nova vocação, e outro script que é o sistema de resets e para trocar de classe tem que ter uma certa quantidade de resets;
O que eu queria é que ao usar o comando para mudar de classe, a quantidade de resets do player volte para 0, para que ele possa estar na classe nova, com 0 resets;
Outro problema que eu também venho tendo é que quando ao utilizar o comando, e estar na nova vocação, o player continua com o mesmo HP/MP de antes, isso é um problema, pois ele ficara com o HP/MP muito "cabuloso".. Portanto eu gostaria que ele ao usar o comando, volte para o Level configurado com o HP/MP de acordo com o Level que ele esta..
Vamos aos Script:
O Script de Mudança de Classe é:
function onSay(cid, words, param, channel)
function getPlayerReset(cid)
local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
return check:getDataInt("reset") <= 0 and 0 or check:getDataInt("reset") end
if (param ~= "dark" and param ~= "hellborn" and param ~= "supreme") then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce digitou errado o nome da classe")
return TRUE
end
local config = {
darklvl = 20, -- level para resetar dark
hellbornlvl = 30, -- level para resetar hellborn
supremelvl = 50, -- level para resetar supreme
vocationDark = 15, -- id vocação dark
vocationHellborn = 16, -- id vocação hellborn
vocationSupreme = 17, -- id vocação supreme
lvlreset = 250, -- level apos resetar primeiras vocações
pz = "yes", -- players precisam estar em protection zone para usar? ("yes" or "no").
battle = "yes", -- players deve estar sem battle ("yes" or "no")
premium = "no" -- se precisa ser premium account ("yes" or "no")
}
if(config.pz == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa estar em Protection Zone para usar este comando.")
return TRUE
end
if(config.premium == "yes") and (not isPremium(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Only players with premium account can use.")
return TRUE
end
if(config.battle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce nao pode usar com battle.")
return TRUE
end
if (param == "dark") then
if (getPlayerReset(cid) >= 50) then
if (getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 8 or getPlayerVocation(cid) == 14) then
db.executeQuery("UPDATE `players` SET `level` = "..config.lvlreset..", `experience` = 0 WHERE `id` = "..config.player)
return TRUE
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa ser level "..config.Supremelvl..".")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa ser Hellborn Deathbringer.")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce precisa ter 100 resets ou mais para poder mudar de classe.")
return TRUE
end
return true
end
end
A função que checa a quantidade de Resets que o player tem é:
function getPlayerReset(cid)
local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
return check:getDataInt("reset") <= 0 and 0 or check:getDataInt("reset") end
Essa função já ta no Script de Mudança de Classe..
OBS: Os Resets não são armazenados em Storage !! acho que já deu pra perceber xD
Por favor, me ajudem, só falta isso para eu terminar meu servidor, e deixa-lo Online, conto com a ajuda de vocês;
Pergunta
kaizy536 19
Bom gente, eu já iniciei um tópico aqui mais ou menos sobre o que eu irei tratar aqui agora, porem ele não foi "totalmente" resolvido, na verdade quase não foi rsrsrs, é assim..
Eu tenho um script de reset de classe, que ao utilizar, você troca de classe, ou seja, se transforma em uma nova vocação, e outro script que é o sistema de resets e para trocar de classe tem que ter uma certa quantidade de resets;
O que eu queria é que ao usar o comando para mudar de classe, a quantidade de resets do player volte para 0, para que ele possa estar na classe nova, com 0 resets;
Outro problema que eu também venho tendo é que quando ao utilizar o comando, e estar na nova vocação, o player continua com o mesmo HP/MP de antes, isso é um problema, pois ele ficara com o HP/MP muito "cabuloso".. Portanto eu gostaria que ele ao usar o comando, volte para o Level configurado com o HP/MP de acordo com o Level que ele esta..
Vamos aos Script:
O Script de Mudança de Classe é:
A função que checa a quantidade de Resets que o player tem é:
Essa função já ta no Script de Mudança de Classe..
OBS: Os Resets não são armazenados em Storage !! acho que já deu pra perceber xD
Por favor, me ajudem, só falta isso para eu terminar meu servidor, e deixa-lo Online, conto com a ajuda de vocês;



Editado por KaizyLink para o comentário
https://xtibia.com/forum/topic/227642-alterando-script-mudan%C3%A7a-de-classe/Compartilhar em outros sites
19 respostass a esta questão
Posts Recomendados