Doberman

 tutoriel / partage [Système] Messages automatiques

Recommended Posts

Cette quête va vous permettre d'envoyer des messages automatiques (de la même manière qu'un personnage GM utilise la commande /n) à tous vos joueurs toutes les 2 heures par exemple.

 

Pour ajouter/éditer/supprimer des messages, un fichier sera automatiquement créé dans vos files dans le répertoire suivant:

/usr/metin2/share/data

 

Une phrase par ligne dans ce fichier. Vous n'aurez pas à reboot votre serveur ou recompiler vos quêtes à chaque changement.

 

quest automatic_notices begin
state start begin
	function get_notices()
		local check = io.open("data/notices_list", "a")
		check:close()
		local table_get_notices = {}
		local f = io.open("data/notices_list", "r")
		for line in f:lines() do
			table.insert(table_get_notices, line)
		end
		f:close()
		return table_get_notices
	end
	when letter with pc.is_gm() begin
		send_letter("Messages automatiques (management)")
	end
	when button or info with pc.is_gm() begin

		local combien_de_minutes = 30 -- Messages automatiques toutes les combien de minutes ? Actuellement 30.

		local text =
		{
			[0] = "Messages automatiques actuellement désactivés.",
			[1] = "Messages automatiques actuellement activés.",
		}

		say_title("Messages automatiques (management)[ENTER]")
		say(text[game.get_event_flag("notices_loop")])
		say("Que voulez-vous faire ?[ENTER]")
		local choice = select("Activer les messages automatiques", "Les désactiver", locale.cancel)
		if choice == 3 then return end
		if choice == 2 then
			setskin(NOWINDOW)
			syschat("Les messages automatiques ont bien été désactivés.")
			game.set_event_flag("notices_loop", 0)
			clear_server_timer("notices_server_loop")
			return
		end
		if choice == 1 then
			setskin(NOWINDOW)
			syschat("Les messages automatiques ont bien été activés.")
			game.set_event_flag("notices_loop", 1)
			automatic_notices.get_notices()
			server_loop_timer("notices_server_loop", combien_de_minutes*60)
			return
		end
	end
	when notices_server_loop.server_timer with game.get_event_flag("notices_loop") !=0 begin
		local notices = automatic_notices.get_notices()
		notice_all(notices[number(1, table.getn(notices))])
	end
end
end

 

 

N'oubliez pas de modifier ceci par le nombre de minutes entre chaque message automatique:

local combien_de_minutes = 30

Share this post


Link to post
Share on other sites

Salut !

 

Dans un premier temps merci pour cette petite quête fort sympathique :)

 

Je n'ai pas envie de faire mon chieur, loin de là mais il semblerait qu'il y ait un problème car les messages automatiques ne se lance que très rarement, et se désactive tout le temps tout seul (apparaît activé dans la quête mais les messages ne se lance pas).

Share this post


Link to post
Share on other sites

La quête doit être activée manuellement par un GM et se désactive lors d'un reboot (quand on reboot les timer s'effacent mais pas les event_flag, d'où le fait que la quête reste en "activé")

Share this post


Link to post
Share on other sites

D'accord je comprends un peu mieux, mais ça n'explique pas que dans mon cas, même en relançant la quête manuellement après un reboot il arrive qu'elle ne se lance pas ^^

Avec un peu de persévérance ça fini tout de même par fonctionner. :)

Share this post


Link to post
Share on other sites
Le 19/10/2019 à 14:26, steve49370 a dit :

Savez vous comment l'activé IG ? 

Tu as juste a lire la quetes pour le savoir. 

La personne a écrit des commentaires dans le code de la quetes. 

Un commentaire est dédié a ceci.

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.