Ir para conteúdo

Comando !reset


starsot

Posts Recomendados

eae pessoal,queria saber algumas coisa pra ajeitar meu servidor de tibia 8.4

 

1º-Como crio comando !reset e o rank de reset ?

2º-Senao der certo o de cima ^ queria criar npc de reset

3º-No meu servidor,toda hora buga a magia,como faço pra ficar certinho sem nenhum bug de magia ?

 

Obrigado,postem o mais rapido faxendo favor !

 

valeu pessoal

 

meu server é

 

starsot.servegame.com

 

 

Valeu denovo :)

Link para o comentário
Compartilhar em outros sites

Em talkacions/scripters crie um arquivo chamado reset.lua e coloque isso dentro

function onSay(cid, words, param)

config = {

level=1000, -- level necessario pra reseta.

RemainingLvl=100, -- level que ficará depois de ser resetado.

exper=4200, -- experiencia que ficará depois de ser resetado.

pid=getPlayerGUID(cid), -- não mecha

skull="yes", -- players com white skull podem resetar? ("yes" or "no").

redskull="yes", -- players com red skull podem resetar? ("yes" or "no").

prot="yes", -- players precisam estar em protection zone pra resetar? ("yes" or "no").

bat="yes" --players precisam estar sem fight pra resetarem? ("yes" or "no").

}

 

function getResets(cid)

reset = getPlayerStorageValue(cid,1020)

if reset < 0 then

reset = 0

end

return reset

end

 

if(config.skull == "no") and (getCreatureSkullType(cid) == 3) then

doPlayerSendTextMessage(cid,22,"apenas players sem white skull podem resetar.")

return TRUE

end

 

if(config.redskull == "no") and (getCreatureSkullType(cid) == 4) then

doPlayerSendTextMessage(cid,22,"apenas player sem red skull podem resetar.")

return TRUE

end

 

if(config.prot == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then

doPlayerSendTextMessage(cid,22,"você precisa estar em protection zone pra poder resetar.")

return TRUE

end

 

if(config.bat == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then

doPlayerSendTextMessage(cid,22,"você precisa estar sem battler pra poder resetar.")

return TRUE

end

 

if getPlayerLevel(cid) >= config.level then

setPlayerStorageValue(cid,1020,getResets(cid)+1)

doPlayerPopupFYI(cid,"you now was reset, you have "..getResets(cid)+(1).." reset\'s.")

doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

doRemoveCreature(cid)

db.executeQuery("UPDATE `players` SET `level` = "..config.RemainingLvl..", `experience` = "..config.exper.." WHERE `id` = "..config.pid)

else

doPlayerSendCancel(cid, "You need to have level "..config.level.." or more you may be reset.")

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

end

 

return TRUE

end

Em talkactions.xml coloca isso

<talkaction words="!resetar" script="reset.lua"/>

Tahu

Link para o comentário
Compartilhar em outros sites

eu tenhu rank reset

 

vai em talkactions/scripts

 

e abra o ranks.lua

 

coloque issu dentro

 

function getPlayerNameByGUID2(n)

local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";")

if c:getID() == -1 then

return "SQL_ERROR["..n.."]"

end

return c:getDataString("name")

end

 

function onSay(cid, words, param)

local max = 20

local letters_to_next = 20

 

local skills = {

['fist'] = 0,

['club'] = 1,

['sword'] = 2,

['axe'] = 3,

['distance'] = 4,

['shielding'] = 5,

['fishing'] = 6,

['dist'] = 4,

['shield'] = 5,

['fish'] = 6,

}

local name_now

local name = "Highscore for level\n"

local rkn = 0

local no_break = 0

param = string.lower(param)

dofile('config.lua')

if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil then

name = name.."\n"

name = name.."Rank Level - Nome do Jogador\n"

local v = db.getResult("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT 0,"..(max)..";")

repeat

no_break = no_break +1

if v:getID() == -1 then

break

end

rkn = rkn+1

name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))

space = ""

for i=1, letters_to_next-l do

space = space.." "

end

name = name..rkn..". "..v:getDataInt("level") .." - "..name_now..space.." ".."\n"

if no_break >= 20 then

break

end

until v:next() == false

 

elseif param == "magic" or param == "ml" then

name = name.."\n"

name = name.."Rank Magic - Nome do Jogador\n"

local v = db.getResult("SELECT `name`, `level`, `maglevel` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT 0,"..(max)..";")

repeat

if v:getID() == -1 then

break

end

rkn = rkn+1

name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))

space = ""

for i=1, letters_to_next-l do

space = space.." "

end

name = name..rkn..". "..v:getDataInt("maglevel").." - "..name_now..space.." ".." ".."".."\n"

until v:next() == false

 

elseif param == "reset" or param == "resets" then

name = name.."\n"

name = name.."Rank Reset - Nome do Jogador\n"

local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 2310 ORDER BY cast(value as INTEGER) DESC;")

local kk = 0

 

repeat

if kk == max or v:getID() == -1 then

break

end

kk = kk+1

name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))

space = ""

for i=1, letters_to_next-l do

space = space.." "

end

if name_now == nil then

name_now = 'sql error['..v:getDataInt("player_id")..']'

end

name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n"

until v:next() == false

 

elseif skills[param] ~= nil then

name = name.."\n"

name = name.."Rank "..param.." fighting - Nome do Jogador\n"

local v = db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..skills[param].." ORDER BY `value` DESC;")

local kk = 0

 

repeat

if kk == max or v:getID() == -1 then

break

end

kk = kk+1

name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))

space = ""

for i=1, letters_to_next-l do

space = space.." "

end

 

if name_now == nil then

name_now = 'sql error['..v:getDataInt("player_id")..']'

end

name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n"

until v:next() == false

end

if name ~= "Highscore\n" then

doPlayerPopupFYI(cid, name)

end

 

return TRUE

end

 

ai em talkactions.xml coloque

 

	<talkaction words="!rank reset" script="ranks.lua"/>	

 

Vermelho é a storage do seu sistema de reset se for por talkactions tu abra la e procure pela a storage do seu sistema troka la e ja era so fala !rank reset q ta de boa todos os ranks irao funcionar distance level etc

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...