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

Doberman

Membre
  • Compteur de contenus

    134
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Doberman

  1. Ou faut tout simplement se dire: les joueurs ne prennent plus (vraiment plus) autant de plaisir à jouer à Metin qu'avant. En partant de là, le meilleur gameplay n'y ferait rien. Ils finiront par être lassé plus ou moins tôt (et non tard, généralement c'est tôt): et c'est ce qui se passe depuis 1-2 ans. Te complique pas les choses, range ta fierté de développeur et fais ce qui marche le mieux en ce moment: le minimum
  2. Doberman

    Quette

    Elle fonctionne il suffit de l'activer côté sources mais tu peux facilement en créer une. Ton code est juste sparks (et je vois pas d'autres moyens pour faire ça), tu t'es juste trompé sur le {Cg} qui doit être {Sg}
  3. C'est déjà fait de base sur tous les files et sources. Sinon, utilise la quête de sparks: quest lingo begin state start begin when ID_DE_TON_LINGOT.use begin pc.change_gold(2000000000) item.remove() end end end
  4. C'est vrai oui la bonne vieille époque "de l'empereur" si tu parles du monarch il y a aussi besoin des sources pour le régler
  5. Exactement Hystos, je ne l'avais pas précisé parce que ça me semblait cohérent : maintenant qu'on a les sources, faire les requêtes directement dessus (en C++) en créant une nouvelle fonction est beaucoup mieux que faire les requêtes par quêtes (mieux que ce soit dans la consommation, la rapidité, etc. vu que la base de données est directement reliée) On t'apprendra sparks
  6. Tu peux récupérer la liste des joueurs en une seule requête, quel que soit leur empire. Ensuite, si tu veux les stocker dans 3 tables différentes il faudra 3 requêtes. Et non je bosse sans requêtes SQL aussi je les utilise rarement mais parfois elles sont les seules solutions viables. Peut-être pas les seules solutions possibles dans certains cas mais dans celui-ci si on veut éviter des table.insert, des setqf, et j'en passe, elles sont nécessaires.
  7. Sparks le "when login" s'exécute à chaque changement de map d'un personnage, donc à moins que tu rajoutes quelque chose pour que le table.insert ne s'exécute qu'une seule fois par personnage, quand est-ce que tu vas "débloquer" la situation ? C'est à dire remettre ce quelque chose à zéro. Ca peut être un setqf getqf, etc. Parce que sinon tu vas avoir des centaines de fois le même pseudonyme dans ta table et c'est tout sauf bon Pareille pour le "when logout", quand tu es à la page de chargement lors d'un changement de map le jeu te considère comme déconnecté, et quand tu arrives dans la map tu es reconsidéré comme connecté. Tu peux bidouiller après bien sûr c'est faisable mais ça reviendrait à se casser la tête juste pour ne pas utiliser une seule requête SQL.
  8. Exactement Sparks, je voulais être simple pour lui faire comprendre mais maintenant que tu as détaillé tout ça il pourra comprendre la difficulté de sa demande. Néanmoins je suis pas d'accord sur un point : le système va obligatoirement nécessiter des requêtes MySQL. Comme l'a dit Sparks le code est réalisable par un codeur de quêtes compétent mais ça nécessite pas mal de boulot, boulot qui sera fait par une personne qui te demandera sûrement de l'argent. N'ayant pas le temps, que ce soit payé ou gratuit, je laisse ma place sur celle-ci
  9. C'est une quête assez complexe (ça dépend pour qui) à coder ça m'étonnerait que quelqu'un te la fasse comme ça gratuitement pour le plaisir mais bonne chance. Quand je dis complexe c'est plutôt dans le check de l'activité du joueur: si les 3 joueurs choisis ne sont plus actifs c'est problématique.
  10. Doberman

    Dédié pas cher

    Le problème c'est que les dédiés à 5 et 10€ de kimsufi sont TOUJOURS indisponibles
  11. Doberman

    Lv de départ

    pc.set_level ne fonctionne qu'en 2014+ pc.give_exp2(pc.get_next_exp()) fera déconnecter le personnage while .. do pc.give_exp2() fera déconnecter le personnage Je t'aurai bien donné la mienne qui ne fait pas déconnecter le personnage et utilisable en 2013 mais je suis pas chez moi
  12. Doberman

    Quête reste affiché

    Non Sparks. Si tu n'as absolument aucun send_letter donc aucune quête à gauche de l'écran, si tu parles à un npc, par exemple, le texte restera affiché comme a pu te le montrer Yoshee. Maintenant, en guise de contournement, créé une quête avec seulement: when login begin send_letter("fix") - et le problème sera résolu. Non Galet. Je n'ai pas le système d'étoles mais le problème est là. Yoshee créé une quête et met ce code dedans: quest fix begin state start begin when login begin send_letter("test") end when button or info begin say("x") end end end Le problème devrait être contourné, bien que ce soit toujours assez problématique.
  13. Doberman

    Quête reste affiché

    Pour "contourner" ce problème d'affichage sans passer par les sources il faut que le personnage ait toujours une quête à gauche. Lorsqu'il n'en a aucune et qu'il en ouvre une, le texte reste affiché.
  14. Doberman

    Comment avoir l'etole

    J'ai été contraint de l'enlever. Envoies-moi un message privé.
  15. Doberman

    Packs client

    Il me semble que root et property sont les deux seuls noms obligatoires, du moins d'après mes souvenirs. Si tu veux changer leur nom, tu dois aussi modifier les sources client. Pour le reste des fichiers, tu peux les renommer directement dans ton dossier pack sans oublier les modifications dans le fichier Index
  16. Doberman

    [Système] Rates automatiques

    Elle n'existe sur aucunes files (par ailleurs, c'est bien la mienne). La quête présente sur le garde du village permet de donner 1 seul bonus à 1 seul royaume et d'une durée déterminée, vous devrez donc relancer à chaque fois. Celle-ci permet de donner les 3 bonus en même temps, qui seront redonnés automatiquement de telle heure à telle heure et de tel jour à tel jour.
  17. Centre de Téléchargement Télécharger ( Interne ) Cette quête va vous permettre de donner des bonus automatiquement (de yang, de drop et d'expérience) à tous vos joueurs, de lundi à vendredi à partir de 17:00 jusqu'à 19:00. Elle augmente actuellement ces bonus de 150%, valeur que vous pouvez changer en modifiant cette ligne: local combien_de_pourcent = 150 Ouvrez votre locale.lua et ajoutez ceci où vous voulez (à la fin par exemple): locale.empire_names = { [1] = "Shinsoo", [2] = "Chunjo", [3] = "Jinno", } La quête: quest automatic_rates_event begin state start begin function get_os_time_first() local time = os.date("%a %H:%M") if (time >= "Mon 17:00" and time <= "Mon 19:00") or (time >= "Tue 17:00" and time <= "Tue 19:00") or (time >= "Wed 17:00" and time <= "Wed 19:00") or (time >= "Thu 17:00" and time <= "Thu 19:00") or (time >= "Fri 17:00" and time <= "Fri 19:00") then return true else if game.get_event_flag(""..locale.empire_names[pc.get_empire()].."_first_check") !=0 then game.set_event_flag(""..locale.empire_names[pc.get_empire()].."_first_check", 0) end return false end end when letter with pc.is_gm() begin send_letter("Rates automatiques (management)") end when button or info with pc.is_gm() begin local text = { [0] = "Rates automatiques actuellement désactivés.", [1] = "Rates automatiques actuellement activés.", } say_title("Rates automatiques (management)") say() say(text[game.get_event_flag("empire_priv")]) say("Que voulez-vous faire ?[ENTER]") local choice = select("Activer les rates automatiques", "Les désactiver", locale.cancel) if choice == 3 then return end if choice == 2 then setskin(NOWINDOW) syschat("Les rates automatiques ont bien été désactivés.") game.set_event_flag("empire_priv", 0) return end if choice == 1 then setskin(NOWINDOW) syschat("Les rates automatiques ont bien été activés.") game.set_event_flag("empire_priv", 1) return end end when login with game.get_event_flag("empire_priv") !=0 and automatic_rates_event.get_os_time_first() == true begin local combien_de_pourcent = 150 if game.get_event_flag(""..locale.empire_names[pc.get_empire()].."_first_check") == 0 then game.set_event_flag(""..locale.empire_names[pc.get_empire()].."_first_check", 1) __give_empire_priv(pc.get_empire(), 1, combien_de_pourcent, 2*60*60) __give_empire_priv(pc.get_empire(), 2, combien_de_pourcent, 2*60*60) __give_empire_priv(pc.get_empire(), 4, combien_de_pourcent, 2*60*60) end end end end Si vous ne savez pas implanter une quête, suivez ce tutoriel : ici
  18. Centre de Téléchargement Télécharger ( Interne ) 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
  19. Doberman

    [Partenariat] Epicode

    Bienvenue à ce nouveau partenariat !
  20. Il te suffit de faire 256000+50 et 51200+50 ce qui donne: pc.warp(résultat du calcul 1, résultat du calcul 2) va voir le tutoriel de valithis tu comprendras
  21. Il y a un tutoriel de @Galet sur la préparation d'une machine, je crois que le sujet s'appelle "Environnement complet". Désinstalle tout ce que tu as installé un par un mais pas avec "pkg remove", exemple: au lieu de: pkg delete gcc48 fais: cd /usr/ports/lang/gcc48 make deinstall clean Peut-être que ça ne change rien mais pour être sûr mieux vaut faire comme ça. Tu sais où se trouve "cstdlib" ?
  22. Essaye en gcc49 juste pour voir. Les commandes à taper sur putty: portsnap fetch extract #Quand la mise à jour des ports sera terminée: cd /usr/ports/lang/gcc49 make deinstall clean #Quand la désinstallation sera terminée: pkg install gcc49 N'oublie pas de modifier dans ton Makefile (dans /usr/src/mainline/Srcs/Server/game/src): CC = g++48 par: CC = g++49
  23. Je viens de tester la quête elle marche convenablement. Le problème vient de ton installation comme on a pu te le dire plus haut. Par ailleurs, les tabulations n'ont aucun rapport avec le fonctionnement d'une quête; Peux-tu nous décrire explicitement les étapes que tu suis pour implanter une quête ? -Comme je te l'ai dis plus haut- essaye en remplaçant l'ID 50514 par 40002
  24. Doberman

    Drop des metins

    Montre-nous tes lignes en question dans drop_mob_item

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.