Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Courrier hors ligne ! By profStof EB


Snobi

Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Source : EB 

Alors j'ai refait tous le travail, testé et ça marche à 100%

 

 

 

Une image: 

Hidden Content

    Give reaction to this post to see the hidden content.

 

 

 

Notre petit système est basé sur une quête et une table SQL

 

Replacer ID_PNJ par l'ID du PNJ que vous voulez utiliser (ligne 33)
 
-----------------------------------

-- Système de message hors ligne --

-- Par: Prof-Stof                --

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

quest courrier begin

	state start begin

		when login begin

            loop_timer("check_msg", 7200) 	-- Vérifier tout les 2 heures, vous pouvez le changer :)

        end

		when login or check_msg.timer begin

			local inbox = mysql_query("select * from player.inbox where reciever = '"..pc.get_name().."' ")

			local inbox_table = {}

			for i = 1,table.getn(inbox),1 do

				table.insert(inbox_table,inbox.objet[i])

			end

			table.insert(inbox_table,"Fermer")	

			if(table.getn(inbox) != 0) then

				say_title("Notification:")

				say("")

				say("")

				say("")

				say("")

				say("")

				say("  Vous avez un message, regardez votre courrier ! ")

				say("")

				say("")

				say("")

				say("")

				say("")

				wait()

			end

		end

		when ID_PNJ.chat."Courrier" begin

			say_title(mob_name(npc.get_race())..":")

			say("")

			---

			say("Salut "..pc.name)

			say("Qu'est ce que tu veux faire ? ")

			say("")

			local s = select("Voir mes courriers","Envoyer un courrier","Fermer")

			if(s == 1) then

				say_title(mob_name(npc.get_race())..":")

				say("")

				---

				local inbox = mysql_query("select * from player.inbox where reciever = '"..pc.get_name().."' ")

				local inbox_table = {}

				for i = 1,table.getn(inbox),1 do

					table.insert(inbox_table,inbox.objet[i])

				end

				table.insert(inbox_table,"Fermer")


				if(table.getn(inbox) == 0) then

					say("")

					say("")

					say("Votre boite de reception est vide ! ")

					say("")

					say("")

					return

				end


				local m = select_table(inbox_table)

				if(table.getn(inbox_table) == s) then

					return

				elseif(table.getn(inbox_table) >= s) then

					say_title(inbox.sender[m]..": ")

					say("")

					---

					say(inbox_table,inbox.message[m])

					mysql_query("UPDATE player.inbox SET lu='1' WHERE id = '"..inbox.id[m].."'; ")

					say("")

					say_reward("Voulez-vous supprimer ce message ? ")

					local q = select(locale.yes,locale.no)

					if(q == 2) then

						return

					end

					mysql_query("DELETE FROM player.inbox WHERE id = '"..inbox.id[m].."'; ")

					say_title(mob_name(npc.get_race())..":")

					say("")

					---

					say("Message supprime avec succes. ")

					say("Merci. ")

					say("")

				end

			elseif(s == 2) then

				say_title(mob_name(npc.get_race())..":")

				say("")

				---

				say("A qui vous allez envoyer le message ? ")

				say("Ecrivez son nom ici. ")

				local sname = input()

				if sname == "" then

				---                                                   l

					say_title(mob_name(npc.get_race())..":")

					say("Euh ... il faudrait me dire le nom de la personne !")

					say("Recommencez si vous voulez.")

					npc.unlock()

					return

				end

				local sp = pc.select(sname)

				local l = pc.get_player_id()

				pc.select(sp)

				say_title(mob_name(npc.get_race())..":")	

				say("")

				say("Veuillez saisir l'objet:")

				say("")

				say("")

				local objet = input()

				if objet == "" then

				---                                                   l

					say_title(mob_name(npc.get_race())..":")

					say("Vous devez saisir l'objet !")

					say("Recommencez si vous voulez.")

					npc.unlock()

					return

				end

				say_title(mob_name(npc.get_race())..":")

				say("")

				say("Ecrivez votre message ici: ")

				local message1 = input()

				say_title(mob_name(npc.get_race())..":")

				say("")

				say("Ecrivez votre message ici: ")

				say("Laissez vide si vous avez termine !")

				local message2 = input()

				say_title(mob_name(npc.get_race())..":")

				say("")

				say("Ecrivez votre message ici: ")

				say("Laissez vide si vous avez termine !")

				local message3 = input()

				say_title(mob_name(npc.get_race())..":")

				say("")

				say("Ecrivez votre message ici: ")

				say("Laissez vide si vous avez termine !")

				local message4 = input()

				say_title(mob_name(npc.get_race())..":")

				say("")

				say("Ecrivez votre message ici: ")

				say("Laissez vide si vous avez termine !")

				local message5 = input()

				say_title(mob_name(npc.get_race())..":")

				say("")

				say("Ecrivez votre message ici: ")

				say("Laissez vide si vous avez termine !")

				local message6 = input()

				say_title(mob_name(npc.get_race())..":")

				say("")

				---

				if(tostring(message1) == nil or message1 == "") then

					say("Ecrivez votre message ! ")

					return

				end

				mysql_query("INSERT INTO player.inbox (sender, reciever, objet, message) VALUES ('"..pc.name.."','"..sname.."','"..objet.."','"..message1.." "..message2.." "..message3.." "..message4.." "..message5.." "..message6.."'); ")

				say("Message envoye avec succes. ")

				say("Merci. ")

			end

		end

	end

end

 

La table SQL à créer dans la base Player

 

SET FOREIGN_KEY_CHECKS=0;

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

-- Table structure for `inbox`

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

DROP TABLE IF EXISTS `inbox`;

CREATE TABLE `inbox` (

 `id` int(16) NOT NULL auto_increment,

 `sender` varchar(50) NOT NULL,

 `reciever` varchar(50) NOT NULL,

 `objet` varchar(50) NOT NULL,

 `message` varchar(20000) NOT NULL,

 `lu` int(10) NOT NULL default '0',

 PRIMARY KEY  (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=latin1;

Un petit merci ne tue pas <fileStore.core_Emoticons>/emoticons/wink.png 

Modifié par Funky Emulation
Core X - External 2 Internal
  • Metin2 Dev 2
  • Good 1
  • Love 21
Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...
  • Réponses 2
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

  • 5 mois après...


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.