Ir para conteúdo

Sistema automático de recompensa por matar o top lvl do otserver


Posts Recomendados

Hail Xtibianos.

Eu criei esse sistema, não lembro se foi a pedido de um membro ou não, para que seja interessante sempre matar o toplvl do otserver devido ao premio recebido por isso.

 

Em config.lua adicione:

huntedTopLevel = 100 -- "false" inibe o sistema; numero é o level minimo necessario para dar hunted ao toplvl.priceForEachLevelTohuntedTopLevel = 100 -- preço pago por cada lvl do toplvl ao mata-lo.

 

Em creaturescripts.xml adicione:

<event type="death" name="toplvl" script="toplvl.lua"/>

 

Em creaturescripts/scripts/config.lua adicione:

registerCreatureEvent(cid, "toplvl")

 

Na mesma pasta, crie um arquivo lua com o nome toplvl e adicione:

function onDeath(cid, corpse, deathList)local top,price =  getConfigInfo("huntedTopLevel"),getConfigInfo("priceForEachLevelTohuntedTopLevel")	if(isPlayer(cid))then		-- hunted top level		local _,level = getTopLevel()		if(tonumber(level) and top and tonumber(level) >= top and tonumber(level) <= getPlayerLevel(cid))then			for _,player in pairs(deathList) do				if(isPlayer(player))then doPlayerAddMoney(player, getPlayerLevel(cid)*price) end			end		end	end	return trueend

 

Agora abra o arquivo lib/050-functions.lua e adicione:

function getTopLevel() --[[( Marcryzius )]]--local target,name,level = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` <= 2 ORDER BY 'level' DESC;"),"",0	if(target:getID() ~= -1) then 		repeat		local glevel = target:getDataInt("level")				if(level < glevel)then				name,level = target:getDataString("name"),	glevel			end		until not(target:next()) 	end	target:free()	return name,levelend

 

No config.lua tu coloca o valor minimo requerido do toplvl para poder ser caçado.

 

Duvidas, erros e qualquer outra coisa, deixe nos comentários. 

Link para o comentário
Compartilhar em outros sites

  • 2 months later...

Existe duas formas práticas de fazer isso. Uma com globalevents e outra com ondeath.

A com globalevents, fica enviando de tempos em tempos a msg de quen é o top level atual; a outra manda a mensagem uma vez, toda vez que se mata o top level atual.

 

Vou deixar aqui a globalevents para ficar anunciando o toplevel atual.

Citar

function onThink(cid, interval)

local name,lvl = getTopLevel()

doBroadcastMessage("top level: "..name.." as level: "..lvl..".")

end

 

Link para o comentário
Compartilhar em outros sites

entendi... mais teria como colocar que se matando aquele player especifico no caso o top level do sv, voce ganha uma recompensa...? outra coisa q eu queria saber, como colocar essa recompensa especifica...

Editado por lpdz
nao dar double post
Link para o comentário
Compartilhar em outros sites

teria como colocar por favor pra mim como ficaria, so pra mim colocar o id que eu quero... é pq n manjo muito disso, mais desde ja obrigado por sanar todas as minhas duvidas...

 

Link para o comentário
Compartilhar em outros sites

47 minutos atrás, lpdz disse:

teria como colocar por favor pra mim como ficaria, so pra mim colocar o id que eu quero... é pq n manjo muito disso, mais desde ja obrigado por sanar todas as minhas duvidas...

 

 

Citar

doPlayerAddItem(player, id do item, quantidade)

@lpdz

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

  • 1 month later...

meu ot não possui creaturescripts/scripts/config.lua

alternativa?

problema com o site também

 

 

Error occured!

Error ID: 
More info: ERROR: #C-1 : Class::ConfigLUA - Line 62 of LUA config file is not valid [key: huntedTopLevel]

File: /var/www/html/classes/configlua.php   Line: 59
File: /var/www/html/classes/configlua.php   Line: 20
File: /var/www/html/classes/configlua.php   Line: 12
File: /var/www/html/system/load.init.php   Line: 42
File: /var/www/html/index.php   Line: 18

Link para o comentário
Compartilhar em outros sites

Em 28/09/2017 at 06:32, Markzi disse:

meu ot não possui creaturescripts/scripts/config.lua

alternativa?

problema com o site também

 

 

Error occured!

Error ID: 
More info: ERROR: #C-1 : Class::ConfigLUA - Line 62 of LUA config file is not valid [key: huntedTopLevel]

File: /var/www/html/classes/configlua.php   Line: 59
File: /var/www/html/classes/configlua.php   Line: 20
File: /var/www/html/classes/configlua.php   Line: 12
File: /var/www/html/system/load.init.php   Line: 42
File: /var/www/html/index.php   Line: 18

 

o arquivo config.lua fica onde está a distro e não nesse diretório ai que tu citou.

Link para o comentário
Compartilhar em outros sites

Sim, eu compreendi, só que quando se altera o config.lua que está atrelado ao site gera esse bug, o site não reconhece essa tag e o script não roda no 1.3 tfs

Link para o comentário
Compartilhar em outros sites

12 minutos atrás, Markzi disse:

Sim, eu compreendi, só que quando se altera o config.lua que está atrelado ao site gera esse bug, o site não reconhece essa tag e o script não roda no 1.3 tfs

Então não mecha no config.lua e adicione a variável ao script.

local huntedTopLevel = 100

 

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
Em 15/08/2017 at 11:29, Poccnn disse:

Existe duas formas práticas de fazer isso. Uma com globalevents e outra com ondeath.

A com globalevents, fica enviando de tempos em tempos a msg de quen é o top level atual; a outra manda a mensagem uma vez, toda vez que se mata o top level atual.

 

Vou deixar aqui a globalevents para ficar anunciando o toplevel atual.

 

descupa reviver o topico mas o meu deu erro

<globalevent name="toplevel" interval="2000" script="toplevel.lua"/>

 

toplevel.lua

function onThink(cid, interval)

local name,lvl = getTopLevel()

doBroadcastMessage("top level: "..name.." as level: "..lvl..".")

end

 

erro ]

 

25/2/2018 14:12:36] [Error - GlobalEvent Interface] 
[25/2/2018 14:12:36] data/globalevents/scripts/toplevel.lua:onThink
[25/2/2018 14:12:36] Description: 
[25/2/2018 14:12:36] data/globalevents/scripts/toplevel.lua:3: attempt to call global 'getTopLevel' (a nil value)
[25/2/2018 14:12:36] stack traceback:
[25/2/2018 14:12:36]     data/globalevents/scripts/toplevel.lua:3: in function <data/globalevents/scripts/toplevel.lua:1>
[25/2/2018 14:12:36] [Error - GlobalEvents::think] Couldn't execute event: toplevel
 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...