Ir para conteúdo

[Encerrado] Como colocar rank de reset no ot


fakewar

Posts Recomendados

Se o teu sistema de reset for por storage, usa esse rank de reset aqui.

data/talkactions/scripts/rankreset.lua:

 

local storageRank = 59381 -- storage que salva resets
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)
if (param == "") then
  doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você possui "..getPlayerStorageValue(cid, storageRank).." resets.")
  return true
end
if (param == "rank") then
    local max = 5
    local letters_to_next = 50
    local name_now
    local name = "Highscore for Reputação\n"
    local rkn = 0
    local no_break = 0
    name = name.."\n"
    name = name.."Rank. Reset | Nome do Jogador\n"
    local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = ".. storageRank .." 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
    if name ~= "Highscore\n" then
		    doPlayerPopupFYI(cid, name)
    end
    return true
else
    doPlayerSendCancel(cid, "Command valid: !reset, !reset rank.")
end
return true
end

 

Agora, vá em data/talkactions/talkactions.xml, e adicione isso:

 

<talkaction words="!reset" event="script" value="rankreset.lua"/>

Link para o comentário
Compartilhar em outros sites

olha este e meu sistema de reset .

 

 

 

 

-- CONFIGS --

prem = false -- Premium Account necessária para resetar? (true / false)

pz = true -- É preciso estar em Protection Zone para resetar? (true / false)

white = false -- Players com White Skull podem resetar? (true / false)

red = false -- Players com Red Skull podem resetar? (true / false)

black = false -- Players com Black Skull podem resetar? (true / false)

battle = false -- Players com battle podem resetar? (true / false)

teleport = true -- Teleportar o player para o templo após o reset? (true / false)

look = true -- Aparecer resets no look? (true / false)

 

level = 700000 -- Level necessário para resetar

nlevel = 10000 -- Level que o player ficará após o reset

time = 3 -- Tempo para o player deslogar ao resetar (segundos)

limite = 1000 -- Limite de resets (Caso não queira limite, coloque false)

 

system = "storage" -- Modo do sistema (database / storage)

storage = 39650 -- Storage dos resets

group = 5 -- ID do Group que tem permissão para adicionar resets (6 = god, 5 = cm, 4 = gm, 3 = senior tutor, 2 = tutor)

exhastor = 17138

-- CONFIGS --

------------------------------------------------------------------------------------------------------------------------------------

function getPlayerResets(tid)

if system == "database" then

local a = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..pid..";")

b = a:getDataInt("resets", pid)

return b

elseif system == "storage" then

return getPlayerStorageValue(tid, storage) < 0 and 0 or getPlayerStorageValue(tid, storage)

else

return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")

end

end

 

function doPlayerAddResets(tid, count)

if system == "database" then

return db.executeQuery("UPDATE `players` SET `resets` = '"..(getPlayerResets(tid)+(count == nil and 1 or count)).."' WHERE `id` = '"..pid.."';")

elseif system == "storage" then

return setPlayerStorageValue(tid, storage, getPlayerResets(tid)+(count == nil and 1 or count))

else

return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")

end

end

 

function doPlayerReset(tid, count, mid)

if teleport then

doTeleportThing(tid, getTownTemplePosition(getPlayerTown(tid)))

end

local resets = getPlayerResets(tid)

function setResetsInLook(tid)

return db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..(resets+(count == nil and 1 or count)).."]' WHERE `id` = '"..(mid == nil and pid or mid).."';")

end

if system == "database" then

doRemoveCreature(tid)

doPlayerAddResets(tid, count == nil and 1 or count)

elseif system == "storage" then

doPlayerAddResets(tid, count == nil and 1 or count)

doRemoveCreature(tid)

else

return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")

end

db.executeQuery("UPDATE `players` SET `level` = '"..nlevel.."' WHERE `id` = '"..(mid == nil and pid or mid).."';")

if look then

setResetsInLook(tid)

end

end

------------------------------------------------------------------------------------------------------------------------------------

function onSay(cid, words, param)

pid = getPlayerGUID(cid)

 

if words == "!reset" or words == "!resetar" then

if prem and not isPremium(cid) then

doPlayerSendCancel(cid, "Você precisa ser Premium Account para resetar.") return true

elseif pz and not getTilePzInfo(getCreaturePosition(cid)) then

doPlayerSendCancel(cid, "Você precisa estar em Protection Zone para resetar.") return true

elseif white and getCreatureSkullType(cid) == SKULL_WHITE then

doPlayerSendCancel(cid, "Você precisa estar sem White Skull para resetar.") return true

elseif red and getCreatureSkullType(cid) == SKULL_RED then

doPlayerSendCancel(cid, "Você precisa estar sem Red Skull para resetar.") return true

elseif black and getCreatureSkullType(cid) == SKULL_BLACK then

doPlayerSendCancel(cid, "Você precisa estar sem Black Skull para resetar.") return true

elseif battle and hasCondition(cid, CONDITION_INFIGHT) then

doPlayerSendCancel(cid, "Você precisa estar sem battle para resetar.") return true

elseif getPlayerLevel(cid) < level then

doPlayerSendCancel(cid, "Você precisa ter level "..level.." para resetar.") return true

elseif limite and getPlayerResets(cid) == limite then

doPlayerSendCancel(cid, "Você já está no limite de resets ("..limite..").") return true

elseif exhaustion.check(cid, exhastor) then

doPlayerSendCancel(cid, "Espere "..exhaustion.get(cid, exhastor).." segundos para usar o comando novamente.") return true

end

 

addEvent(doPlayerReset, time*1000, cid)

doPlayerPopupFYI(cid, "Você resetou com sucesso. Você agora tem "..(getPlayerResets(cid)+1).." resets. Você será deslogad"..(getPlayerSex(cid) >= 1 and "o" or "a").." em "..time.." segundos.")

exhaustion.set(cid, exhastor, time)

elseif words == "/addresets" then

local t = string.explode(param, ",")

if getPlayerGroupId(cid) < group then return false

elseif not t then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parâmetros incorretos. Especifique o nome do player e opcionalmente a quantidade de resets.") return true

elseif not getPlayerByName(t[1]) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Player "..t[1].." não encontrado.") return true

elseif t[3] then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parâmetros incorretos. Especifique apenas o nome do player e opcionalmente a quantidade de resets.") return true

end

 

addEvent(doPlayerReset, time*1000, getPlayerByName(t[1]), t[2] == nil and "1" or t[2], getPlayerGUIDByName(t[1]))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..(t[2] == nil and "1" or t[2]).." resets no player "..getCreatureName(getPlayerByName(t[1]))..". Agora el"..(getPlayerSex(getPlayerByName(t[1])) >= 1 and "e" or "a").." possui "..(getPlayerResets(getPlayerByName(t[1]))+(t[2] == nil and "1" or t[2])).." resets.")

doPlayerPopupFYI(getPlayerByName(t[1]), ""..getCreatureName(cid).." adicionou "..(t[2] == nil and "1" or t[2]).." resets em seu character. Você agora tem "..(getPlayerResets(getPlayerByName(t[1]))+(t[2] == nil and "1" or t[2])).." resets. Você será deslogad"..(getPlayerSex(getPlayerByName(t[1])) >= 1 and "o" or "a").." em "..time.." segundos.")

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

Usa esse rankreset.lua, aqui agora:

 

local storageRank = 39650 -- storage que salva resets
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)
if (param == "") then
  doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você possui "..getPlayerStorageValue(cid, storageRank).." resets.")
  return true
end
if (param == "rank") then
	    local max = 5
	    local letters_to_next = 50
	    local name_now
	    local name = "Highscore for Reputação\n"
	    local rkn = 0
	    local no_break = 0
	    name = name.."\n"
	    name = name.."Rank. Reset | Nome do Jogador\n"
	    local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = ".. storageRank .." 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
	    if name ~= "Highscore\n" then
					    doPlayerPopupFYI(cid, name)
	    end
	    return true
else
	    doPlayerSendCancel(cid, "Command valid: !reset, !reset rank.")
end
return true
end

Link para o comentário
Compartilhar em outros sites

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...