Ir para conteúdo
  • 0

Alterando Script Mudança de Classe


kaizy536

Pergunta

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
lvlHellborn = 250, -- level apos resetar vocação sacred
player = getPlayerGUID(cid), -- não mexa!
reset = 50,
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
if (getPlayerLevel(cid) >= config.darklvl) then
doPlayerSetVocation(cid, config.vocationDark)
setPlayerStorageValue(cid, 897979, config.vocationDark)
doRemoveCreature(cid)
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.darklvl..".")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa ter promotion.")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce precisa ter 50 resets ou mais para poder mudar de classe.")
return TRUE
end
return true
end
if (param == "hellborn") then
if (getPlayerReset(cid) >= 75) then
if (getPlayerVocation(cid) == 15) then
if (getPlayerLevel(cid) >= config.hellbornlvl) then
doPlayerSetVocation(cid, config.vocationHellborn)
setPlayerStorageValue(cid, 897979, config.vocationHellborn)
doRemoveCreature(cid)
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.hellbornlvl..".")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa ser Dark Hero.")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce precisa ter 75 resets ou mais para poder mudar de classe.")
return TRUE
end
return true
end
if (param == "supreme") then
if (getPlayerReset(cid) >= 100) then
if (getPlayerVocation(cid) == 16) then
if (getPlayerLevel(cid) >= config.supremelvl) then
doPlayerSetVocation(cid, config.vocationSupreme)
setPlayerStorageValue(cid, 897979, config.vocationSupreme)
doRemoveCreature(cid)
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;

 

smile_positivo.gifsmile_positivo.gifsmile_positivo.gif

Editado por Kaizy
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

sim, testo :) Qual funçao?


Olha Vodkart, eu testei o seu script no meu sever, e ele troca de classe sim, sem problemas, ele so nao reseta a quantidade de resets do jogador, e nem o HP/MP do jogador.. Isso nao pode estar acossiado ao fato do boneco nao deslogar apos utilizar o comando? Porque eu usei o comando e ele trocou de classe, e como nao deslogou, creio que nao tem como fazer resetar hp/mp/reset com ele on x.x

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...