Ir para conteúdo
  • Cadastre-se

Normal Reset Frags e prêmios, Mensalmente


Posts Recomendados

Olá gostaria de pedir um script, no qual, ele todo mês automaticamente tivesse um resete no final do mês dos pontos de frag, e um premio para o top frag do servidor, alguém poderia me ajudar por favor. 

Server 8.60.

Uso otx server.

 

Link para o post
Compartilhar em outros sites

Tem alguma ideia de onde que fica salvo os frags dos players? Eu realmente não lembro onde é, se eu entender como funciona, posso até fazer.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Seria esse o script de frags : 

 

Spoiler

function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
 
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
 
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    } 
    return size.day + size.week + size.month
end 
 
function onLogin(cid)
    registerCreatureEvent(cid, "fraglook")
    return true
end
 
function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) and thing.uid ~= cid then
        doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..']')
        return true
    elseif thing.uid == cid then
        doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..']')
        local string = 'You see yourself.'
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
            string = string..' You are '.. getPlayerGroupName(cid) ..'.'
        elseif getPlayerVocation(cid) ~= 0 then
            string = string..' You are '.. getPlayerVocationName(cid) ..'.'
        else
            string = string..' You have no vocation.'
        end
        string = string..getPlayerSpecialDescription(cid)..''
 
        if getPlayerGuildId(cid) > 0 then 
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
        end 
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
            string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
            string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
            string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
        return false
    end
    return true
end

 

tipo, como seria reset tem esse script no meu server que de remover os frags, dá pra usar como base ? por que os frags ficam na DB

Spoiler

function onUse(cid, item, fromPosition, item2, toPosisition) 
if getCreatureSkullType(cid) == SKULL_WHITE or getCreatureSkullType(cid) == SKULL_RED or getCreatureSkullType(cid) == SKULL_BLACK then 
db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")") 
doCreatureSetSkullType(cid, 0) 
doCreatureSay(cid, "Your frags and skulls is cleaned!", 19) 
doSendMagicEffect(getPlayerPosition(cid), 26) 
doRemoveItem(item.uid, 1) 
else 
doPlayerSendCancel(cid,"You don't remover your frags and skulls.") 
doSendMagicEffect(getPlayerPosition(cid), 2) 
end 
return TRUE 
end

 

@Rusherzin

 

Editado por Gabrielk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

No caso teria que remover o frag do server inteiro, isso não tem problema também... Mas acho que no casos seria legal dar todo domingo, toda semana, não uma vez por mês!

 

eu já fiz um rank frags, no caso só pegar o 1° colocado(nick) e dar a premiação, direto pelo DP(pra caso estiver offline)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
58 minutos atrás, Vodkart disse:

No caso teria que remover o frag do server inteiro, isso não tem problema também... Mas acho que no casos seria legal dar todo domingo, toda semana, não uma vez por mês!

 

eu já fiz um rank frags, no caso só pegar o 1° colocado(nick) e dar a premiação, direto pelo DP(pra caso estiver offline)

Sim, exato. No caso eu queria no final do mês para ter o top frag mensal com premiação. Assim os players disputam quem faz mais frag ate o final do mês e assim recebendo um premio.

@Vodkart teria como ajudar ?

Link para o post
Compartilhar em outros sites

Consegui arrumar um tempo para tentar fazer agora pela manhã, tenta assim:
 

<globalevent name="TopFragger" interval="5" script="monthlyfragger.lua" />
function addItemToDepot(cid, item, count) 
    local items = {item} 
    local count = (count>1) and {count} or {1}
    for a,b in ipairs(items) do
    	local pid = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..cid.."  AND `itemtype` = 2589 ORDER BY `sid` DESC LIMIT 1"):getDataInt("sid")
        local sid = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..cid.."  AND `itemtype` = 2594 AND `pid` = "..pid.." ORDER BY `sid`"):getDataInt("sid")
        local newsid = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..cid.." ORDER BY `sid` DESC LIMIT 1"):getDataInt("sid")+1
        return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..cid..","..newsid..","..sid..","..b..","..count[a]..",'')") or false
    end
end

local hora = 22 -- pode ser de 0 (meia-noite) do último dia do mês até 24, que seria meia noite do primeiro dia do próximo mês
function onThink(cid, interval)
	local gStorage = 56661
	if(os.date("%m", os.time()+(3600 * 24-hora)) ~= os.date("%m") and os.time() >= getGlobalStorageValue(gStorage)) then
		local period   = 86400 * 30
  		local fraggers = db.getResult("SELECT `p`.`id`, COUNT(*) `kills` FROM `player_killers` pk LEFT JOIN `killers` k ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `pk`.`player_id` = `p`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` WHERE `k`.`unjustified` = 1 AND `pd`.`date` >= "..(os.time()-period).." GROUP BY `p`.`id` ORDER BY `kills` DESC")
		local fragrank = {}
		local reward = {2160, 1} -- id do item e quantidade
		
		if(fraggers:getID() ~= -1) then
			repeat
				table.insert(fragrank, {id=fraggers:getDataInt("id"), frags=fraggers:getDataInt("kills")})
			until not fraggers:next()
				fraggers:free()
		end

		if(fragrank[1]) then
			local playeron = false
			local playercid = nil
			for _, pid in ipairs(getPlayersOnline()) do
				if getCreatureName(pid) == getPlayerNameByGUID(fragrank[1].id) then
					playeron = true
					playercid = pid
				end
			end

			if(playeron) then
				doPlayerAddItem(playercid, reward[1], reward[2])
				doBroadcastMessage(getPlayerNameByGUID(fragrank[1].id).." foi o jogador com mais frags no mês.")
				setGlobalStorageValue(gStorage, os.time()+2590000)
			else
				if(addItemToDepot(fragrank[1].id, reward[1], reward[2]) ~= false) then
					doBroadcastMessage(getPlayerNameByGUID(fragrank[1].id).." foi o jogador com mais frags no mês.")
					setGlobalStorageValue(gStorage, os.time()+2590000)
				end
			end
		end
	end
	return true
end

Obs: Em vez de apagar os frags do servidor, estou levando em conta apenas os que aconteceram no último mês.

Editado por Rusherzin (veja o histórico de edições)

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

@Rusherzin tem como fazer por semana ? uso otx

@Rusherzin o ruim que o cara pode criar um char fake e ficar kilando ele divia ter um anti mc no script. ou ja tem ?

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo