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

Poccnn
Por Poccnn
em CreatureScripts e Movements

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

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. 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

lpdz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/01/08Posts: 4Char no Tibia: Jaquera

Teria como colocar pra aparecer o nome do jogador e o level pra aparecer na tela?

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

Aquela mensagem em vermelho para o servidor todo?

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

lpdz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/01/08Posts: 4Char no Tibia: Jaquera

Sim... se tiver como claro...

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

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

 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

lpdz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/01/08Posts: 4Char no Tibia: Jaquera

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...

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

Substitua a função doplayeraddmoney para doplayeradditem com os respectivos parâmetros e a recompensa desejada.

 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

lpdz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/01/08Posts: 4Char no Tibia: Jaquera

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...

 

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino
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

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

Markzi

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/08/17Posts: 9

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

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino
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.

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

Markzi

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/08/17Posts: 9

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

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino
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

 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

mulino

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/02/09Posts: 2Char no Tibia: mulino
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