Jump to content
×
×
  • Create New...

Galet

 Funkiest
  • Posts

    2,864
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Galet

  1. Bien sûr, ça a toujours été comme ça et comme dans tous les domaines, ceux qui savent faire font, ceux qui ne savent pas prennent ou achètent. L'émulation repose sur des têtes d'affiche, des gens qui font avancer l'émulation à eux seuls et qui sont très précieux. Mais il n'empêche que l'évolution avance au fil des années, que ce soit avec des idées, des concepts ou des systèmes et mises à jour. Ce que tu dis là, c'est justement la différence entre serveur avec des compétences et / ou du budget et parfois de l'idée, puis ceux qui vont avec le courant en essayant de profiter de l'avancée d'autres serveurs. Pour un joueur choisir un serveur est également important. Mais c'est vrai qu'une majorité va suivre plutôt que créer. Le client est toujours en 2.2 / 2.7 en majorité. Le python 3 cependant est en train de timidement faire son apparition, mais ce n'est pas encore là.
  2. Le problème de RevolutionMT2 selon moi c'est qu'il a ouvert en ayant du retard sur ce qui se faisait actuellement, deux bonnes années de retard minimum sur les serveurs actuels que ce soit en matière de système ou de gameplay. C'est probablement volontaire de la part de Clad, qui a de l'expérience à la fois dans le dev et dans Metin2, mais ça a quand même porté un coup à son serveur. Il y a des irréductibles à qui ça plait, mais un serveur actuel se concentre beaucoup sur le confort de l'usager, pour lui éviter les parties un peu rébarbatives du jeu. Les quêtes partout en bas niveau, l'atlasmap qui clignote comme une guirlande, les quêtes avec des récompenses identiques depuis 2004 et l'absence de certains systèmes etc. ont pu bloquer certaines personnes. C'est la difficulté des serveurs likes en 2021. Le second problème, c'est que ça a fait revenir énormément de personnes qui à l'époque jouaient et qui ont pu être découragées par le fait que le gameplay soit identique à l'époque, ou presque. Ce qui peut mener à l'amalgame. En réalité, en 2020 et 2021 désormais, les serveurs ont eu d'énormes avancées, la communauté avance, essaie de rattraper l'officiel, de le dépasser parfois, amène de nouveaux standards : Là où en 2017 utiliser un compilateur moderne et C++11 étaient quelque chose de rare, il est presque nécessaire en 2020 d'utiliser des sources à jour au maximum. C'est un exemple parmi tant d'autres. En 2015 un magasin hors-ligne et les étoles étaient un gage de bon serveur, en 2021 c'est le grand minimum. Tout évolue et il y a encore de quoi devenir joueur en 2021. Je me suis repris à jouer à Metin2 moi même sur l'officiel et sur des serveurs et à beaucoup m'amuser, c'est une question de serveur, de goûts et de période, selon moi.
  3. Je trouve l'émulation de nos jours très différente mais toujours remplie de défis, d'opportunités et de choses excitantes !
  4. Bonjour Brice, Aurais-tu une erreur plus complète ? Cette erreur peut arriver lorsque le module crash (pas d'espace libre, disque mal monté, utilisateur corrompu etc.). Une capture d'écran fera l'affaire. Tu as aussi l'option de créer un autre user. Cependant, je t'avoue que l'utilisation d'un VDI que j'utilisais sous Virtual PC doit être plus compliqué maintenant. Il faudrait que j'en refasse un propre à l'occasion ! Bonne journée
  5. Bienvenue ! Je crois que l'on se connait ! Re-bienvenue à l'occasion
  6. Hey bonjour ! Quels sont les liens morts ? Les files de Kijaru sont dead depuis pas mal de temps mais ça fonctionne avec les sources basiques voire n'importe quelles sources basiques. Voici un lien pour les sources : Si un autre lien est mort, n'hésite pas à me prévenir je mettrai le topic à jour. De rien à tous
  7. Salut ! Non ça explique comment créer un VDI propre, pas comment l'installer !
  8. Salut @Zed, Je suis d'accord avec toi, personnellement je mets la GUI dans uiScript et les scripts dans Root, comme ça j'équilibre un peu les deux, mais il est vrai que je recherche aussi la praticité !
  9. Galet

    fonction Lua

    Salut ! Ce n'est pas possible sans passer par les sources... Il faudrait un trigger "when die" déjà. C'est possible de faire ça sans c++ et ça revient à faire un timer et c'est pas très propre
  10. J'ai vu qu'ils sortaient un mode battle royale, à voir ce que ça peut donner !
  11. Hey, quand on parle du loup (sans mauvais jeu de mot) ! Ce partage du lycan est très vieux et déjà à l'époque je disais que c'était une usine à gaz. Pour faire simple : aucun partage du lycan n'est vraiment fonctionnel. Peut-être que certaines sources l'ont mais après il faut vérifier que le lycan est le même que l'officiel. Personnellement, j'ai fait le mien en me basant sur tout ce qu'il pouvait y avoir dans le dev_wolfbranch et tout le reste je l'ai fait en me basant sur les ninjas. Le saignement je l'ai fait en me basant sur le poison. Les bandages je les ai fait en me basant sur la carpe (ou le poisson qui retire les malus). Courage, c'est plus long que difficile, j'ai du y passer 2-3 semaines sans aucune documentation (que ce soit sur le dump_proto, les skills, les bonus, les avancées de l'officiel etc.)
  12. Galet

    FastEquip

    [Hidden Content]] Salut ! Sinon la méthode proposée par Takuma est bien mais un peu trop "lourde" pour un simple système comme ça, bien que fonctionnelle, tu pourrais aussi "stocker" (ConstInfo) le temps à chaque clic sur le bouton, comme ça, si le temps est inférieur à 15 secondes tu sors un message d'erreur
  13. Salut, c'est dans le cube.txt et dans le cube.quest (ou lua). En tout cas tu dois y référencer le PNJ pour qu'il ouvre la fenêtre de craft dans le fichier de quête et tu dois remplir le fichier cube.txt en accord avec l'id du pnj !
  14. Bonjour, Pour ça il faut déclarer dans les fichiers .lua la race, les skills etc... Après c'est l'affaire d'un setjob
  15. Salut ! Je te conseille de compiler ton client en mode debug, tu auras les informations liées au crash
  16. Salut, Je pense que tu as fait ce fix en renommant simplement les fonctions déjà partagées par "Frozen" sur un célèbre forum d'émulation étranger il y a de ça 1 an (dans exactement deux jours). Merci du portage, mais n'oublie pas la source
  17. Merci, la raison pour laquelle je n'éditais pas le post était les problèmes de mises en page de l'époque ! ^^
  18. Hey ! Merci du tutoriel Je trouve ça propre mais aussi "irréversible", dans le sens où toute les quêtes seront à la même vitesse, si vous voulez gérer ça via lua, il suffit d'ajouter un "setdelay(0)" juste au dessus du "say_title". Pour ceux ne pouvant pas compiler ou ne possédant pas de game 40k, il est possible de modifier directement la fonction say_title dans le questlib.lua pour y ajouter ce fameux "setdelay(0)" ! say_title = function(name, width, height) setdelay(0); [...]end Merci du partage
  19. Yep j'ai déjà précisé où se trouvait le bout de code "déjà attribuée dans char_battle.cpp" Merci du rajout et au plaisir ! ^^
  20. Oui c'est grosso-modo ce que j'expliquais, de mon côté, vu que je ne me suis pas énormément penché sur le passes_per_sec j'ai pensé comme toi mais j'ai aussi pensé au fait que ça pourrait être le temps avant qu'un joueur ne recommence automatiquement à la cité si aucune action n'est entreprise pendant 3 minutes (à tester?). Par ailleurs, pour compter les secondes j'ai pris l'habitude d'utiliser un des nombreux moyens de comptage de seconde dans les sources, j'utilise quand j'en ai besoin le "thecore_heart->pulse" mais ça revient à peu près au même que les autres. En tout cas sympa le tutoriel, c'est ce qui fait avancer cette bonne vieille section
  21. Salut ! Merci du tutoriel, mais sur le coup, HardCode is real haha, bien que le tutoriel fonctionne, je pense que la valeur peut directement être changée sans passer par une soustraction vu qu'elle est (sauf erreur de ma part) déjà attribuée dans char_battle.cpp, c'est d'ailleurs de là que vient le 180. Après ça permet juste de changer le temps à la mort du personnage plutôt qu'au moment où le joueur clique sur "Revivre ici" (d'ailleurs que se passe-t'il si le joueur clique sur "Revivre ici" une fois que le temps imparti est automatiquement écoulé ?) Ce n'est qu'un rapide coup d’œil porté aux sources alors n'hésitez pas à me dire si je fais fausse route, ce qui est probablement le cas vu que je n'ai pas testé la chose ! ^^ Voici le bout de code en question : SCharDeadEventInfo* pEventInfo = AllocEventInfo(); if (IsPC()) { pEventInfo->isPC = true; pEventInfo->dwID = this->GetPlayerID(); m_pkDeadEvent = event_create(dead_event, pEventInfo, PASSES_PER_SEC(180)); } else { pEventInfo->isPC = false; pEventInfo->dwID = this->GetVID(); if (IsRevive() == false && HasReviverInParty() == true) { m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(3)); } else { m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(10)); } } Merci du tuto Sparkk !
  22. Salut ! À la place de tes queries basique du skill_proto, remplace le "INSERT INTO" par "INSERT IGNORE INTO". Sinon enlève le "STRICT_TRANS_TABLES" dans ta configuration MySQL. Le plus rapide serait la première solution

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.