Ir para conteúdo
  • 0

Error ao usar o comando..


kaizy536

Pergunta

Então gente, no meu server tem um script que muda a classe, e eu alterei ele pra que pra ser usado, o player teria que ter tantos resets, porem quando eu uso o comando no jogo, da error na distro..

 

OBS na distro nao da error ao ligar o server;

 

Script:

 

 

 

function onSay(cid, words, param, channel)

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
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce precisa ter ".. reset.." resets para poder mudar de classe.")
return TRUE
end
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)
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
local newvoc = tabble[param].reqVoc ~= nil and (tabble[param].reqVoc+1) or 14
setPlayerStorageValue(cid, 887979, newvoc)
end
if (param == "hellborn") then
if (getPlayerVocation(cid) == 15) then
if (getPlayerLevel(cid) >= config.hellbornlvl) then
doPlayerSetVocation(cid, config.vocationHellborn)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = "..config.lvlreset..", `experience` = 0 WHERE `id` = "..config.player)
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa ser level "..config.hellbornlvl..".")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.")
return TRUE
end
end
if (param == "supreme") then
if (getPlayerVocation(cid) == 16) then
if (getPlayerLevel(cid) >= config.supremelvl) then
doPlayerSetVocation(cid, config.vocationSupreme)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = "..config.lvlHellborn..", `experience` = 0 WHERE `id` = "..config.player)
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Voce precisa ser level "..config.supremelvl..".")
return TRUE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.")
return TRUE
end
end
return TRUE
end

 

O codigo, linha, comando, seila como se chama, que lê a quantidade de resets do player é getPlayerReset(cid)

 

 

 

Error:

 

 

[04/01/2014 17:35:31] [Error - TalkAction Interface] 
[04/01/2014 17:35:32] data/talkactions/scripts/classes.lua:onSay
[04/01/2014 17:35:32] Description: 
[04/01/2014 17:35:32] data/talkactions/scripts/classes.lua:40: attempt to call global 'getPlayerReset' (a nil value)
[04/01/2014 17:35:32] stack traceback:
[04/01/2014 17:35:32]  data/talkactions/scripts/classes.lua:40: in function <data/talkactions/scripts/classes.lua:1>

 

 

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

Posts Recomendados

  • 0

 

funcionando de boa :) como faz pra o hp do player resetar junto com a vocaçao? pra ele nao continuar com o msm hp de antes?

eu preciso adicionar so isso aqui pra o player quando usar o comando de troca de classe ir para o lv 8, com hp de lv 8?

local param,config = string.lower(param),{pid = getPlayerGUID(cid),newlv = 8,life = 185,mana = 35}

ou precisa de mais algo?

 

mas todos vão voltar com o msm lvl, hp e mana??

 

 

Mesmo level nao, ao resetar ele volta no level que ta configurado no script, porem o hp/mp continuam o mesmo, tipo, se tiver 50kk, ele vai continuar com 50kk em vez de ir pra o hp/mp que deveria estar com o level 250..

Ah, creio que pra isso tenha que resetar o numero de resets tambem, porque ele vai tar com 50 resets, entao teria que apos mudar de vocação usando o comando, ele volte pra 0 resets, lv 100, com hp/mp de lv 100 configurado pra a vocação, tipo, a vocação da 100hp/mp por level, se ele vai voltar lv 100, ele vai tar com 10k hp/mp.

Como o pedido desse topico ja foi resolvido, eu criei outro sobre esse problema;

http://www.xtibia.com/forum/topic/227049-definindo-hpmp-apos-usar-comando/

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...