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

essa função

if (getPlayerReset(cid) >= 50) then

ela é do meu sistema de reset do server, que quando o player chega a um certo level ele reseta o level, como voce pode ver aqui :

 

Essa é so a parte das funçoes

 

--=[Functions]=--

-- installReset()' [instala o Sistema.]
-- tableResetInstall()' [Verifica Se o Sistema ja foi instaladao.]
-- nowReseting()' [Verifica, retorna o erro ou reseta.]
-- getPlayerReset(cid)' [Pega numero de resets do player.]
-- checLevelStageReset(cid)' [Verifica o Level para Resetar.]
-- newReset(cid)' [Verifica todas as Condições de Reset.]
-- addValue(value)' [Adiciona numero de resets.]
Link para o comentário
Compartilhar em outros sites

  • 0

fiz essa pequena alteraçao adicionando a função, nao sei muito como se faz, mais fiz, e continua dando erro, so que é outro erro:

 

 

 

 

function onSay(cid, words, param, channel)

function getPlayerReset(cid)
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
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
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce precisa ter ".. reset.." resets para poder mudar de classe.")
return TRUE
end
local newvoc = tabble[param].reqVoc ~= nil and (tabble[param].reqVoc+1) or 14
setPlayerStorageValue(cid, 887979, newvoc)
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

 

 

 

Erro:

[07/01/2014 23:14:14] [Error - TalkAction Interface] 
[07/01/2014 23:14:14] data/talkactions/scripts/classes.lua:onSay
[07/01/2014 23:14:15] Description: 
[07/01/2014 23:14:15] data/talkactions/scripts/classes.lua:43: attempt to compare number with nil
[07/01/2014 23:14:15] stack traceback:
[07/01/2014 23:14:15]  data/talkactions/scripts/classes.lua:43: in function <data/talkactions/scripts/classes.lua:1>
Editado por kaizy536
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

 

--[[ <(Advanced Reset System 2.0)>

Versão: 2.0
Testado em: 8.50 e 8.60
TFS: 0.3.6 and 0.4.0
-=[Características]=-
~( Versão 2.0 )~
- Resets agora Armazenados na DataBase; (Sem Valor de Storage)
- Instala o System e cria a Tabela de Resets com o comando "/installreset";
- Resets no Look do jogador ex: 22:10 You see Marcello [Reset 2] (Level 8). He is an elder druid.;
- [sTAGES] para "Premium Account" e "Free Account"; ]]
--=[Functions]=--
-- installReset()' [instala o Sistema.]
-- tableResetInstall()' [Verifica Se o Sistema ja foi instaladao.]
-- nowReseting()' [Verifica, retorna o erro ou reseta.]
-- getPlayerReset(cid)' [Pega numero de resets do player.]
-- checLevelStageReset(cid)' [Verifica o Level para Resetar.]
-- newReset(cid)' [Verifica todas as Condições de Reset.]
-- addValue(value)' [Adiciona numero de resets.]
--=[Comandos de Jogadores]=--
-- "/installreset" -- Só será usado uma vez, para instalar o sistema.
-- "!resetar" -- Para Resetar.
function onSay(cid, words, param)
if words =="!resetar" then
--[ Condições de Reset ] --
local coNdConf = {
needPz = true, -- Precisa estar em Pz pra resetar? [true, false]
needPa = false, -- Precisa ser Premium Account Pra resetar? [true, false]
white = false, -- Players com Pk White podem resetar? [true, false]
red = true, -- Players com Pk Red pode resetar? [true, false]
battle = true, -- Players precisão estar sem battle pra resetar? [true, false]
teleport = false, -- Teleportar Player para o templo após resetar? [true, false]
look = true, -- Aparecer Resets no Look do Player? [true, false]
pid = getPlayerGUID(cid), -- Não Mexer.
--[ Configurações do Reset ] --
resetConf = {
Level =2000, -- Level Necessário para Resetar. [Valor]
backLvl = 25, -- Level que voltará após o Reset. [Valor]
time = 2, -- Tempo para o Player deslogar ao resetar, em segundos. [Valor]
},
}
--[[>> STAGES <<]]--
x=true;X=true -- Não Mexer.
local stage = {Abilitar = {x}, Desabilitar = {}, --<< Abilitar Stages?? >>-- [{x};{}]
-- [RESETS] | [PREMMY] | [FREE]
stage1= {resets= 4, premmy= 2000, free= 2000},
stage2= {resets= 9, premmy= 2500, free= 2500},
stage3= {resets= 14, premmy= 3500, free= 3500}, -- EXPLICANDO e Configurando stages. (Se estiver Abilitado [Abilitar = {x}])
stage4= {resets= 19, premmy= 4500, free= 4500}, -- resets = Número de resets para o Stage;
stage5= {resets= 24, premmy= 5500, free= 5500}, -- premmy = Level necessário para Premium Accounts;
stage6= {resets= 29, premmy= 6500, free= 6500}, -- free = Level necessário para Free Accounts;
stage7= {resets= 34, premmy= 7500, free= 7500}, -- Coloque em Ordem...
stage8= {resets= 39, premmy= 8500, free= 8500}, -- [OBS: MARQUE UM "X" PARA ABILITAR OU DESABILITAR OS STAGES]
stage9= {resets= 44, premmy= 9500, free= 9500}, -- EX: para desabilitar mude: Abilitar = {}, Desabilitar = {x}
stage10={resets= 49, premmy= 10000, free= 10000},
stage11={resets= 54, premmy= 12500, free= 12500},
stage12={resets= 59, premmy= 15000, free= 15000},
stage13={resets= 64, premmy= 17500, free= 17500},
stage14={resets= 69, premmy= 20000, free= 20000},
stage15={resets= 74, premmy= 22500, free= 22500},
stage16={resets= 79, premmy= 25000, free= 25000},
stage17={resets= 84, premmy= 27500, free= 27500},
stage18={resets= 89, premmy= 30000, free= 30000},
stage19={resets= 94, premmy= 32500, free= 32500},
stage20={resets= 99, premmy= 35000, free= 35000},
stage21={resets= 100, premmy= 40000, free= 40000},
}
--[[>> FIM STAGES <<]]--
--=[Pega Valor de Resets]=--
function getPlayerReset(cid)
local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";")
rss = qr:getDataInt("reset", coNdConf.pid)
if rss < 0 then
rss = 0
end
return rss
end
local success = " ~~ Sucesso! ~~ \nVocê tem agora "..(getPlayerReset(cid)+1).." resets. \nVocê será deslogado em "..coNdConf.resetConf.time.." segundos." ;err = doPlayerSendTextMessage
local qrt = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";");rss_db = qrt:getDataInt("reset", coNdConf.pid)
local lvl_query = "UPDATE `players` SET `level` = "..(coNdConf.resetConf.backLvl)..", `experience` = 0 WHERE `id`= " .. coNdConf.pid .. ";"
local reset_query = "UPDATE `players` SET `reset` = "..(getPlayerReset(cid)+(1)).." WHERE `id`= " .. coNdConf.pid .. ";"
local nolook_query = "UPDATE `players` SET `description` = '' WHERE `players`.`id`= " .. coNdConf.pid .. ";"
local look_query = "UPDATE `players` SET `description` = ' ["..(getPlayerReset(cid)+(1)).." Resets]' WHERE `players`.`id`= " .. coNdConf.pid .. ";"
--=[Reseta]=--
function addValue(value)
if coNdConf.look == false then
doRemoveCreature(cid)
db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(nolook_query)
else
doRemoveCreature(cid)
db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(look_query)
return LUA_NO_ERROR
end
end
function nowReseting()
if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." levels para você Resetar. -")
return true
end
if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then
doPlayerPopupFYI(cid, success)
addEvent(addValue, coNdConf.resetConf.time*1000, value)
else
doPlayerPopupFYI(cid, success)
addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid)))
addEvent(addValue, coNdConf.resetConf.time*1000, value)
return true
end
end
--[sTAGES Nao mexer em nada.]--
function checkLevelStageReset(cid)
local stages = {
{resets= stage.stage1.resets, premmy= stage.stage1.premmy, free= stage.stage1.free},
{resets= stage.stage2.resets, premmy= stage.stage2.premmy, free= stage.stage2.free},
{resets= stage.stage3.resets, premmy= stage.stage3.premmy, free= stage.stage3.free},
{resets= stage.stage4.resets, premmy= stage.stage4.premmy, free= stage.stage4.free},
{resets= stage.stage5.resets, premmy= stage.stage5.premmy, free= stage.stage5.free},
{resets= stage.stage6.resets, premmy= stage.stage6.premmy, free= stage.stage6.free},
{resets= stage.stage7.resets, premmy= stage.stage7.premmy, free= stage.stage7.free},
{resets= stage.stage8.resets, premmy= stage.stage8.premmy, free= stage.stage8.free},
{resets= stage.stage9.resets, premmy= stage.stage9.premmy, free= stage.stage9.free},
{resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free},
{resets=stage.stage11.resets, premmy=stage.stage11.premmy, free=stage.stage11.free},
{resets=stage.stage12.resets, premmy=stage.stage12.premmy, free=stage.stage12.free},
{resets=stage.stage13.resets, premmy=stage.stage13.premmy, free=stage.stage13.free},
{resets=stage.stage14.resets, premmy=stage.stage14.premmy, free=stage.stage14.free},
{resets=stage.stage15.resets, premmy=stage.stage15.premmy, free=stage.stage15.free},
{resets=stage.stage16.resets, premmy=stage.stage16.premmy, free=stage.stage16.free},
{resets=stage.stage17.resets, premmy=stage.stage17.premmy, free=stage.stage17.free},
{resets=stage.stage18.resets, premmy=stage.stage18.premmy, free=stage.stage18.free},
{resets=stage.stage19.resets, premmy=stage.stage19.premmy, free=stage.stage19.free},
{resets=stage.stage20.resets, premmy=stage.stage20.premmy, free=stage.stage20.free},
}
local resets = getPlayerReset(cid)
for i, tab in ipairs(stages) do
if resets <= tab.resets then
coNdConf.resetConf.Level = isPremium(cid) and tab.premmy or tab.free
break
end
end
if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then
err(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." levels para você Resetar. -")
return TRUE
end
if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then
doPlayerPopupFYI(cid, success)
addEvent(addValue, coNdConf.resetConf.time*1000, value)
else
doPlayerPopupFYI(cid, success)
addEvent(addValue, coNdConf.resetConf.time*1000, value)
addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid)))
return true
end
end
function newReset(cid)
if(coNdConf.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == LUA_ERROR) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return TRUE end
if(coNdConf.needPa == true) and not isPremium(cid) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return TRUE end
if(coNdConf.white == false) and (getCreatureSkullType(cid) == 3) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK White. -") return TRUE end
if(coNdConf.red == false) and (getCreatureSkullType(cid) == 4) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return TRUE end
if(coNdConf.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return TRUE end
local xy = {true,false}
table.insert(stage.Abilitar, false)
table.insert(stage.Desabilitar, false)
if stage.Abilitar[1] == xy[1] and stage.Desabilitar[1] == xy[2] then
checkLevelStageReset(cid)
elseif stage.Abilitar[1] == xy[2] and stage.Desabilitar[1] == xy[1] then
nowReseting()
else
doPlayerPopupFYI(cid, "LUA_ERROR; Configure corretamente o Sistema de STAGES!")
end
return true
end
function tableResetInstall()
print(not rss_db and LUA_ERROR or "Tabela de Resets: Instalada ... [success] ")
addEvent(newReset, 1000, cid)
return false
end
if tableResetInstall() then
end
end
--=[install System]=--
function installReset()
if db.executeQuery("ALTER TABLE `players` ADD reset INT(11) NOT NULL DEFAULT 0;") then
print("[MarcelloMkez] -= Advanced Reset System 2.0 por DataBase =- Instalado com sucesso!")
return TRUE
end
print('[Advanced Reset System/MarcelloMkez] Não foi possível instalar o Sistema.')
return FALSE
end
local tt = {
"Preparando Instalação...",
"Instalando: TableReset Db...",
"Instalando: getPlayerReset()...",
"Instalando: addValue()...",
"Instalando: checkLevelStageReset()...",
"Instalando: newReset() and nowReseting()...",
"Finalizando Instalação...",
"...",
success = {
"Iniciando...",
"function: TableReset Db... [success]",
"function: getPlayerReset()... [success]",
"function: addValue(value)... [success]",
"function: checkLevelStageReset()... [success]",
"function: newReset() and nowReseting()... [success]",
"Fim da Instalação. ",
"by: ~~ MarcelloMkez ~~ \nContato: marcello_dirt@hotmail.com",
inst = {"MarcelloMkez","Advanced Reset System 2.0 por DataBase"
},
},
}
if words == "/installreset" and getPlayerAccess(cid) >= 3 then
function install()
if installReset() then
print(""..tt.success[7].."")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,""..tt.success[8].."")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] -="..tt.success.inst[2].."=- Instalado com sucesso!")
else
print("["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].")
end
return 1
end
function concl(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[7].."")
print(""..tt[8].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[7].."")
doPlayerSendTextMessage(cid, typetx,""..tt[8].."")
addEvent(install, 1000,cid)
end
function finall(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[6].."")
print(""..tt[7].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[6].."")
doPlayerSendTextMessage(cid, typetx,""..tt[7].."")
addEvent(concl, 3000,cid)
end
function installDd(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[5].."")
print(""..tt[6].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[5].."")
doPlayerSendTextMessage(cid, typetx,""..tt[6].."")
addEvent(finall, 1000,cid)
end
function installCc(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[4].."")
print(""..tt[5].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[4].."")
doPlayerSendTextMessage(cid, typetx,""..tt[5].."")
addEvent(installDd, 1000,cid)
end
function installBb(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[3].."")
print(""..tt[4].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[3].."")
doPlayerSendTextMessage(cid, typetx,""..tt[4].."")
addEvent(installCc, 1000,cid)
end
function installAa(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[2].."")
print(""..tt[3].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[2].."")
doPlayerSendTextMessage(cid, typetx,""..tt[3].."")
addEvent(installBb, 1000,cid)
end
function toInstall()
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[1].."")
print(""..tt[2].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[1].."")
doPlayerSendTextMessage(cid, typetx,""..tt[2].."")
addEvent(installAa, 1000,cid)
end
function preparation()
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt[1].."")
doPlayerSendTextMessage(cid, typetx,""..tt[1].."")
addEvent(toInstall, 3000,cid)
end
if preparation() then
end
end
return 1
end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

vc fez essa alteação:

 

function getPlayerReset(cid)
end
troca essa por essa:
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
Link para o comentário
Compartilhar em outros sites

  • 0

Vlw cara, ta funcionando direitinho, vc é o cara (y).. pode me ajudar em outro erro nesse mesmo script? =D

 

É assim, esse script ai só tem 3 vocações novas, e a primeira todos podem virar ela, ela funciona de boa, quando usa o comando os players muda de vocação pra a de id 15, a dark, mais quando o player que já é dark usa o comando pra virar a segunda vocação a hellborn ele é deslogado, volta ao level que voltaria apos resetar, mais porem não muda de vocação, ele continua sendo dark, ao invés de virar hellborn :/, ja tentei ate copiar as funções da dark e por na hellborn, mais não funcionou x.x

 

Ficou assim o script:

 

 

 

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)
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
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

 

 

 

se puder me ajudar, ajuda por favor :( so falta isso pra ficar pronto o serv x.x e eu nao consegui arrumar, ja botei tudo que é função mas nada vai

Link para o comentário
Compartilhar em outros sites

  • 0

entao pow, esse é o problema, ja fiz isso, so que so funcionou na primeira vocaçao que é a dark, e nas outras nao funcionaram, aqui a parte que eu adicionei

 

 

 

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)
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
local newvoc = tabble[param].reqVoc ~= nil and (tabble[param].reqVoc+1) or 14
setPlayerStorageValue(cid, 887979, newvoc)
end

 

 

 

a parte azul eu botei qualquer numero pra ver se pegava, e a nil ali é deixei como veio, foi adicionando isso que fez ele ficar na primeira vocaçao de troca, ja a segunda e terceira nem vai x.x

Link para o comentário
Compartilhar em outros sites

  • 0

essa é a tua talk

 

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 (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)
           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
   return true
end
 
if (param == "supreme") 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.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
   return true
end
return true
end
e isso vc coloca n onLogin.lua
if getPlayerStorageValue(cid, 897979) ~= -1 then
doPlayerSetVocation(cid, getPlayerStorageValue(cid, 897979))
end
Link para o comentário
Compartilhar em outros sites

  • 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?

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

  • 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??

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...