Ir para conteúdo
  • 0

Queria Um Sistema De Rank Reset


SamueLGuedes

Pergunta

bem eu queria um sistema de rank reset que mostra os tops resets, se possivel para tfs 0.3 porque ainda nao tenho tfs 0.4, por favor alguem me ajuda

 

 

 

 

esperando respostas

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

va em talkactions.lua e add isso:

<talkaction words="!rank;!ranks;/ranks" event="script" value="rankreset.lua"/>

 

va em scripts, copie qualquer arquivo e renomeie para rankreset e cole:

 

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 = 25
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

 

--

 

caso nao tenha um sistema de reset profissional, use esse, totalmente funcional:

 

va em talkactions.lua e add isso:

    <talkaction log="yes" words="!reset;!resetar" access="0" event="script" value="reset.lua"/>

 

va em scripts, copie qualquer arquivo e renomeie para reset e cole:

 

--[[ SCRIPTING> MarcelloMkez <scriptING ]]
 --[[  [Advanced Reset System]
			   Autor: MarcelloMkez
			   Versão: 1.0
			   TFS: 0.3.6
			   Testado em: 8.50
			   Fórum: www.xtibia.com/forum/topic/138026-talk-action-advanced-reset-system/
 [Características]
	    ~ Versão 1.0 ~

	   - Resets no Look; 
	   - Premium Account ou não;
	   - Mudar Vocação;
	   - Limite de Resets;
	   - Opções para Abilitar e Desabilitar Condições;

	 [Em Construção]
   - Stages Free e Premium;
   - 'Talvez' um novo sistema de mudar Vocação;
	   sem data para postagem.   ]]


   function onSay(cid, words, param)
--[Configurações de Condição]__

   config = {																			 --[[verdadeiro / Falso]]

  needPa = false,				   -- Precisa de Premium Account?						  [true / false]
  needPz = true,				    -- Precisa estar em Protection Zone?				    [true / false]	 
  battle = true,				   -- Precisa estar sem Batlle para Resetar?			   [true / false]
  withe = false,				    -- Players PK Withe pode Resetar?					   [true / false]	  
  red = false,					  -- Players PK Red pode Resetar?						 [true / false]
  tp = true,					    -- Teleportar para o Templo após o reset?			   [true / false]
  look = true,					  -- Mostrar Resets no Look do Player?				    [true / false]
  addLimite = true,			    -- Abilitar Limite de Resets?						   [true / false]
  setClasse = false,				 -- Mudar Vocação do player quando resetar?			  [true / false]
  storage = 2310,				   -- Storage												 [valor]


--[Configurações do Reset]__

		  resetStatus = {   

		  player = getPlayerGUID(cid),	    -- Não Mude.
		  lvl = 2000 ,						 -- Level Necessário para Resetar.								 [valor]
		  lvlreset = 100,					   -- Level que retornará após o Reset.							  [valor]
		  limite = 501,					   -- Máximo de resets que um player pode chegar.				    [valor]
		  newClasse = 1,					  -- Id da Nova Vocação após o Reset.							   [valor]
		  tempo= 3						    -- Tempo para o Player deslogar para Resetar. Em segundos.	    [valor]
    },
   }  

--[Funções]__

			   function Reseting(cid)
		 resets = getResets(cid)
			  setPlayerStorageValue(cid,config.storage,resets+1)
			   doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
				 doPlayerSetVocation(cid, config.resetStatus.newClasse)
				 doRemoveCreature(cid)
			    db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					  return TRUE
	    end

			    function noAll(cid)
			   resets = getResets(cid)
				 setPlayerStorageValue(cid,config.storage,resets+1)
				 doRemoveCreature(cid)
				 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
			 return TRUE
		    end

				    function noTeleporting(cid)
				   resets = getResets(cid)
					 setPlayerStorageValue(cid,config.storage,resets+1)
					  doPlayerSetVocation(cid, config.resetStatus.newClasse)
					 doRemoveCreature(cid)
				   db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
		 return TRUE
	    end

				    function noLook(cid)
				   resets = getResets(cid)
					 setPlayerStorageValue(cid,config.storage,resets+1)
					 doPlayerSetVocation(cid, config.resetStatus.newClasse)
					 doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
					 doRemoveCreature(cid)
				 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
		 return TRUE
	    end
				    function noClasse(cid)
				  resets = getResets(cid)
					 setPlayerStorageValue(cid,config.storage,resets+1)
					 doTeleportThing(cid,   getTownTemplePosition(getPlayerTown(cid)))
					 doRemoveCreature(cid)
				    db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					  return TRUE
	    end

				    function setClasse(cid)
					 resets = getResets(cid)
					 setPlayerStorageValue(cid,config.storage,resets+1)
					 doPlayerSetVocation(cid, config.resetStatus.newClasse)				 
					 doRemoveCreature(cid)
				    db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					  return TRUE
	    end

				    function look(cid)
		 resets = getResets(cid)
					 setPlayerStorageValue(cid,config.storage,resets+1)
					 doRemoveCreature(cid)
				   db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					  return TRUE
	    end

				    function teleporting(cid)
		 resets = getResets(cid)
					 setPlayerStorageValue(cid,config.storage,resets+1)
					 doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
					 doRemoveCreature(cid)
		 db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
					 db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
					  return TRUE
	    end

			  function getResets(cid)
	    resets = getPlayerStorageValue(cid,config.storage)

		   if resets < 0 then
		 resets = 0
	   end
	    return resets

    end


   local resets = getResets(cid)
   local needLvl ="You need "..config.resetStatus.lvl-getPlayerLevel(cid).." level's to reset."
   local msg ="~[Reset: "..getResets(cid).."]~ 'Reset to Success! You will be logged out in "..config.resetStatus.tempo.." Seconds."


 --[Condiçoes]__	  

 if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
  doPlayerSendTextMessage(cid,22,"You Need Protection Zone to be Reset.")
   return TRUE

   elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then
    doPlayerSendTextMessage(cid, 22, "Congratulations, you reached the limit of Resets.")
   return TRUE

    elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then
 doPlayerSendTextMessage(cid,22,"You PK White, so I Can not reset.")
   return TRUE

   elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then
 doPlayerSendTextMessage(cid,22,"You PK Red, so I Can not reset.")
 return TRUE

   elseif(config.needPa == true) and not isPremium(cid) then
 doPlayerSendTextMessage(cid,22,"You need to be Premium Account Reset.")
 return TRUE

   elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
 doPlayerSendTextMessage(cid,22,"You need to be out of Battle Reset.")	 
   return TRUE
    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then
	  addEvent(Reseting, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then
	 addEvent(noAll, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then
	  addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then
	  addEvent(noLook, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then
	   addEvent(noClasse, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then
	   addEvent(setClasse, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then
	   addEvent(look, config.resetStatus.tempo* 1000, cid)

    elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then
	   addEvent(teleporting, config.resetStatus.tempo* 1000, cid)

   elseif doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, needLvl) then
   doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	   return TRUE
   end

    if doPlayerPopupFYI(cid, msg) then

    end
    return TRUE

end
--[by: MarcelloMkez]__

 

 

--

 

 

Ajudei? Rep+ mdr.gif

Link para o comentário
Compartilhar em outros sites

  • 0

sistema de reset? porque não procura um pouco antes de criar um tópico?

mania desses caras de querer TUDO na mão e quando querem, crianças mimadas do krl

Link para o comentário
Compartilhar em outros sites

  • 0

Vodkart voçe nao entendeu né eu quero um rank mais como o rank resets mostrar o top de resets eé que nem mostrar o top de level éa msms coisa mais só que de reset

 

mais agr nao precisa o gahgah me ajudo. ;]

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

  • 0

eu não entendi?

 

"eu quero um rank mais como o rank resets mostrar o top de resets"

 

que rank que não mostra os "top"? pqp vellho.

 

Outra coisa, oque ele postou existe no xtibia, e se você tivesse procurado iria saber.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...