Aller au contenu
Concours du mois de Juin 2018 : Carte Amazon 15 €

Prof-Stof

Membre
  • Compteur de contenus

    15
  • Inscription

  • Dernière visite

  • Points

    0 [ Donner ]

Réputation sur la communauté

4 Neutre

À propos de Prof-Stof

  • Rang
    Moussaillon
  • Date de naissance 17 avril
  1. Bonjour / Bonsoir, Après que j'ai eu marre de garder un œil sur mon ping (latence de connexion) pendant que je suis sur un jeu on-ligne. Je veux partager avec vous un petit utilitaire que j'ai créé, qui vous alerte quand votre ping dépasse une valeur que vous pouvez tolérer, quand vous perdez la connexion et quand vous êtes reconnecté. J'espère que ça va vous aider. Les critiques et les idées pour l'amélioration sont les bienvenues.
  2. partage Files 2016 [Team FE]

    Bonsoir, Très beau travail !!! je tiens à vous encourager Azraël est invisible et dès que j'ouvre la fenêtre de costume le client se ferme ! o_O
  3. [Partage] Courrier hors ligne !

    Bonjour/bonsoir, Quand le joueur se connecte, une vérification se lance s'il a reçu des messages il recevras une notification ainsi que la vérification se fait tout les 2 heures (vous pouvez modifier le temps) Pour la sécurité, je viens d'en parler avec un professeur d'administration informatique (Windows / Linux) et de Routage/Switching, il m'a confirmé après un test qu'il n'y a pas de problème si un malin essaye d'utiliser les commande SQL. Cordialement
  4. [Partage] Courrier hors ligne !

    Ne vous inquiétez pas, le champs est de type "varchar" et l'insertion dans la table se fait avec une requête INSERT danc une concaténation n'aura pas un lieu. mysql_query("INSERT INTO player.inbox (sender, reciever, objet, message) VALUES ('"..pc.name.."','"..sname.."','"..objet.."','DELET FROM player.player'); ") ===> Syntax error ET comme vous l'avez anticipé, un malin a essayé d'en faire et ça n'a pas marché donc détendez vous Mise à jour: Pour plus de sécurité j'ai ajouté une fonction qui vérifie les champs pour les commande SQL et le malin sera sanctionner en lui enlevant la moitié de ses yang :cool:
  5. [Partage] Courrier hors ligne !

    Mise à jour de la quête, j'ai ajouté une notification qui s'affiche après le login si le joueur a reçu des message quand il était hors ligne
  6. [Partage] Courrier hors ligne !

    Alors pourquoi je le pose ici si ça marche pas ? et voici une screen IG qui rassemble l'envoie et la réception des messages, et ça fonctionne parfaitement même en cas des messages multiples
  7. [Partage] Courrier hors ligne !

    Bonjour/bonsoir, Comme son titre l'indique, un petit système que les joueurs peuvent utiliser IG au cas ou celui avec lequel on veut parler est hors ligne alors on lui laisse un message et il peut consulter ça " Boîte à lettre " sur un PNJ quand il sera connecter. J'ai trouvé cette idée sur un serveur et j'ai cherché, j'ai trouvé la quête et boooom un bug d'idiot: 1- On reçoit nos propres messages 2- On ne peut pas effacer les message lus 3- Le récepteur ne reçoit pas nos messages Alors j'ai refait tous le travail, testé et ça marche à 100% Si un quelqu'un essaye de faire le malin avec les commande SQL (DELETE, INSERT, UPDATE) soit qu'il les écrit en majuscule ou en minuscule il sera sanctionner en lui enlevant la moitié de ses yang :cool: Une image: Le système IG Notre petit système est basé sur une quête et une table SQL Ouvrez le fichier questlib.lua et ajoutez ces lignes à la fin du fichier: function str_ch(var, var1) if string.find(var, var1) != nil then return 1 end end Puis dans le fichier quest_functions ajoutez cette ligne: str_ch Placez la quête dans le dossier /usr/metin2/share/locale/france/quest et n'oubliez pas de la déclarer dans locale_list Remplacer 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 elseif str_ch(sname, "DELETE") or str_ch(sname, "delete") or str_ch(sname, "INSERT") or str_ch(sname, "insert") or str_ch(sname, "UPDATE") or str_ch(sname, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) 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 elseif str_ch(objet, "DELETE") or str_ch(objet, "delete") or str_ch(objet, "INSERT") or str_ch(objet, "insert") or str_ch(objet, "UPDATE") or str_ch(objet, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() return end say_title(mob_name(npc.get_race())..":") say("") say("Ecrivez votre message ici: ") local message1 = input() say("") --- if(tostring(message1) == nil or message1 == "") then say("Ecrivez votre message ! ") return elseif str_ch(message1, "DELETE") or str_ch(message1, "delete") or str_ch(message1, "INSERT") or str_ch(message1, "insert") or str_ch(message1, "UPDATE") or str_ch(message1, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() return end say_title(mob_name(npc.get_race())..":") say("") say("Ecrivez votre message ici: ") say("Laissez vide si vous avez termine !") local message2 = input() if str_ch(message2, "DELETE") or str_ch(message2, "delete") or str_ch(message2, "INSERT") or str_ch(message2, "insert") or str_ch(message2, "UPDATE") or str_ch(message2, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() return end say_title(mob_name(npc.get_race())..":") say("") say("Ecrivez votre message ici: ") say("Laissez vide si vous avez termine !") local message3 = input() if str_ch(message3, "DELETE") or str_ch(message3, "delete") or str_ch(message3, "INSERT") or str_ch(message3, "insert") or str_ch(message3, "UPDATE") or str_ch(message3, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() return end say_title(mob_name(npc.get_race())..":") say("") say("Ecrivez votre message ici: ") say("Laissez vide si vous avez termine !") local message4 = input() if str_ch(message4, "DELETE") or str_ch(message4, "delete") or str_ch(message4, "INSERT") or str_ch(message4, "insert") or str_ch(message4, "UPDATE") or str_ch(message4, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() return end say_title(mob_name(npc.get_race())..":") say("") say("Ecrivez votre message ici: ") say("Laissez vide si vous avez termine !") local message5 = input() if str_ch(message5, "DELETE") or str_ch(message5, "delete") or str_ch(message5, "INSERT") or str_ch(message5, "insert") or str_ch(message5, "UPDATE") or str_ch(message5, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() return end say_title(mob_name(npc.get_race())..":") say("") say("Ecrivez votre message ici: ") say("Laissez vide si vous avez termine !") local message6 = input() if str_ch(message6, "DELETE") or str_ch(message6, "delete") or str_ch(message6, "INSERT") or str_ch(message6, "insert") or str_ch(message6, "UPDATE") or str_ch(message6, "update") then say_title(mob_name(npc.get_race())..":") say("") say("Ahaaaaa ! Je t'ai eu malin !!!") say("Bravo! Tu as gagne une jolie sanction.") say("") local san = pc.get_gold() pc.change_gold(- san/2) npc.unlock() 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 :angel: Cordialement Prof-Stof
  8. Bonjour/bonsoir, Alors, après une long recherche sur les forum d'émulation j'arrive pas à trouver la solution pour le bug de tp après le mariage et guerre de guilde. Le problème est après avoir parlé à la vieille dame pour se marier ça nous tp map wedding et hop à la G2, la même chose pour guerre de suilde. Je suis sous files 2013, j'ai changé la quête et ça marche toujours pas ____________________________________________________________________ Résolu !!! Le truc est de désactiver la quête dragonlair.quest, il suffit de l'enlever du local_list et c'est bon pour le mariage ainsi que guerre de guilde Merci pour votre attention. Cordialement Prof-Stof
  9. création Interface

    Merci pour les conseils, et juste pour vous informer le nom "Azlandia-Online" et le dragon .... ne sont pas inclues avec l'interface
  10. création Interface

    Bonjour/bonsoir, Je ne sais pas si c'est la bonne place à mettre mon topic :blush: mais bon ... Alors, un jour je me disais pourquoi pas faire une interface de choix des CH et voilà: J'accepte vos opinions et critiques amicalement Oh avant d'oublier, lien de téléchargement: ICI
×

Information importante

By using this site, you agree to our Conditions d’utilisation.