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

Hystos

Membre
  • Compteur de contenus

    256
  • Inscription

  • Dernière visite

À propos de Hystos

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

Hystos's Achievements

Community Regular

Community Regular (8/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

14

Réputation sur la communauté

  1. Hystos

    Reset_char.php

    Salut ! Le problème vient probablement de la connexion SQL. En effet, le script que tu nous présentes utilise mysqli avec une variable de connexion nommée $sqlServ . Tu ne vois probablement pas d'erreur car ton serveur apache est configuré de façon à ce que ce type d'erreur n’apparaisse pas. Quoi qu'il en soit, tu peux essayer de modifier les requêtes SQL pour utiliser simplement mysql. Il faudra enlever tous les "i" dans les fonctions mysqli (=> mysql) et l'argument $sqlServ qui devient inutile. Je me dois de te mettre en garde. Metin2CMS est codé proprement. Certes il n'utilise pas les dernières modes et technologies (mysql, programmation impérative) mais il applique tout de même le modèle MVC en faisant tourner un moteur de templates. Toute modification de Metin2CMS devrait utiliser les outils déjà en place pour gagner en efficacité (mise en cache des fichiers de templates compilés) et en lisibilité. Ainsi, si tu as des bases en PHP/Html, je te conseille de réécrire cette fonctionnalité en utilisant le cadre fourni par le CMS.
  2. Je reviens juste sur quelques points cités plus haut, mais je réponds pas au problème posé, désolé Selon moi, la meilleure façon d'implémenter un nouveau système est atteinte quand on peut difficilement voir la différence entre ce dernier et les systèmes déjà présents de base. En gros, ça veut dire utiliser les outils qu'utilise le jeu de base sans chercher à bidouiller pour rien. Dans l'exemple de ton tableau de personnages, Sparks, c'est simplement de la duplication d'information. Tous tes personnages sont déjà stockés dans une table SQL facilement accessible, et n'étant pas forcément coûteuse si on passe par les sources (et surtout pas par un pseudo module implanté pour jouer avec des requêtes dans les .quest). Ce n'est pas logique de créer un nouveau tableau avec les noms de tous les personnages du jeu (en se faisant chier avec des trucs pas évidents à gérer : plusieurs login => pas de duplication, le logout pas forcément envoyé comme on le veut...). De plus, beaucoup de gens sous estiment la puissance du langage SQL. Les requêtes "basiques" que vous trouvez un peu partout avec un SELECT, un WHERE, un ORDER BY, etc... c'est que la partie immergée de l'iceberg ! Toute sa puissance repose dans ses groupements, ses jointures, ses sous-requêtes, ... En utilisant au mieux de ses capacités le SQL, on peut vraiment faire des miracles qui auraient nécessité plusieurs requêtes "basiques" avec des boucles imbriquées (cf empires). Ainsi, selon moi, la meilleure façon d'écrire ce genre de système est de passer intégralement par les sources, et de transmettre quelques fonctions aux quêtes pour l'affichage. A l'intérieur des fonctions codées en C++, il faudra utiliser les éléments de base mis à disposition (les tables SQL, les contenus pré-chargés lors du lancement du serveur, les tableaux dynamiques présents et remplis en cours de fonctionnement). C'est comme ça que fonctionnent le reste des éléments du jeu (guildes, batiments de guilde, shops, ...). En plus, il y a de nombreuses alternatives possibles qui deviennent faciles à faire. Les joueurs actuellement connectés sont par exemple déjà stockés dans un "tableau" en C++ qu'il suffit d'utiliser au besoin. PS : C'est un peu ironique pour moi de dire ça car il y a quelques années j'étais "Monsieur qui fait tout avec les quêtes" ! Je gérais les drops, les kills, les events, les systèmes de ce genre et énormément d'autres uniquement avec des quêtes. J'avais pas le choix, mais ça montre que c'est possible. Avec plus de recul et d'expérience, et surtout la publication des sources, on se rend bien compte qu'on peut faire beaucoup mieux !
  3. Il y a 2 ans de ça j'avais écris précisément ce système. Je pense pas pouvoir te le retrouver, j'ai fais un nettoyage de printemps il y a quelques mois, mais ça te prouve que c'est largement faisable. En plus, à l'époque, je pouvais pas toucher aux sources donc ça se faisait à coup de requêtes SQL relativement coûteuses ! Dans une quête de ce type, il y a deux parties principales : la gestion des kills et la gestion de la temporalité. Tu peux déjà commencer par réfléchir à la manière dont sont gérés les kills en PvP sur ton serveur (module intégré au game serveur, quête, rien du tout ?). La plupart des systèmes téléchargeables directement sur des sites comme epvp étaient il y a quelques mois des quêtes bourrées de requêtes SQL dégueulasses (désolé du terme). Si tu manipules un peu les sources, utilises les et code le système proprement. Tu gagneras ENORMEMENT en rapidité, en stabilité et en fonctionnalités. Une fois que tu auras ton implémentation, ça ne devient plus très difficile. Il faut générer la liste des cibles potentielles, avec quelques restrictions. Globalement, cette fonctionnalité ci passera parfaitement dans une fonction que tu pourras écrire en C++ facilement et qui correspond simplement à l'application d'une requête SQL avec quelques paramètres (level, dernière connexion récente, empire particulier ?). Ensuite, pour l'aspect "Journalier", moi je l'avais écris dans une quête avec les fonctions en lua qui permettent de gérer la temporalité. Tu peux certainement là encore faire mieux en passant par les sources. Si tu as la motivation et quelques connaissances basiques, je te conseille vraiment d'essayer de le faire par toi même en passant par les sources. Tu pourras ainsi approfondir la gestion des kills dans les sources (ce qui est crois moi très enrichissant et peut te permettre de vraiment différencier ton serveur des autres) et raisonner comme un vrai développeur sur metin2 (et pas bidouiller une quête qui te fera la même chose en moins bien et beaucoup plus coûteux).
  4. Salut, En ce qui concerne le vote, tu as utilisé ce tutoriel : /topic/11822-mt2cms-votes-rémunérés/ ? Dans ce cas, les fichiers donnés sont fonctionnels. Tu as du faire une erreur lors de l'installation (base de données en particulier), la configuration ou l'adaptation de ton design aux fichiers du template. Commence par nous donner les fichiers modifiés du script de vote et le contenu des tables installées (history_vote, liens_vote...) en vérifiant qu'elles sont bien dans la base site. Ensuite, pour l'impossibilité de connexion, ça peut être beaucoup de choses. Si tu veux qu'on puisse t'aider, on a besoin d'avoir tous les fichiers auxquels tu as touché.
  5. Hystos

    "Hack attack"

    Dans les lignes que je t'ai dis, tu as ceci : if (test_server) { sys_log(0, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d", ch->GetName(), current_time - ch->m_kAttackLog.dwTime, GET_ATTACK_SPEED(ch), ch->m_speed_hack_count); ch->ChatPacket(CHAT_TYPE_INFO, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d", ch->GetName(), current_time - ch->m_kAttackLog.dwTime, GET_ATTACK_SPEED(ch), ch->m_speed_hack_count); } Rajoute /* au début et */ à la fin. /*if (test_server) { sys_log(0, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d", ch->GetName(), current_time - ch->m_kAttackLog.dwTime, GET_ATTACK_SPEED(ch), ch->m_speed_hack_count); ch->ChatPacket(CHAT_TYPE_INFO, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d", ch->GetName(), current_time - ch->m_kAttackLog.dwTime, GET_ATTACK_SPEED(ch), ch->m_speed_hack_count); }*/ Le compilateur "ignorera" ces lignes de code.
  6. Hystos

    "Hack attack"

    Etrange ! Essaye de rajouter à la fin : TEST_SERVER:0 Tu peux vérifier simplement la présence du mode test en lançant ton serveur et en regardant attentivement ce qui est écrit. Si c'est en mode test, tu devrais voir pour chaque core un truc de ce genre : ----------------------------------------------- TEST_SERVER ----------------------------------------------- Sinon, il y a un moyen assez simple de l'enlever si tu as accès aux sources. Tu vas dans battle.cpp (game serveur) et tu commentes de la ligne 784 à 797.
  7. Hystos

    "Hack attack"

    Salut ! Tu obtiens ce message suite à une détection de speed hack par le serveur. En gros, selon lui, tu tapes plus vite que tu le devrais. C'est peut être du à un problème de latences. Dans tous les cas, cet avertissement apparaît uniquement parce que ton serveur est en mode test. Tu peux changer cette configuration dans le CONFIG de chaque core et mettre TEST_SERVER:0 à la place de 1.
  8. Hystos

    Renommé 9000 icones

    C'est possible avec de nombreux logiciels tels que [Hidden Content] par exemple.
  9. Hystos

    Renommé 9000 icones

    D'accord. J'ai seulement modifié les extensions après, pas les fichiers en soit... J'avais mal lu ton premier message
  10. Hystos

    Renommé 9000 icones

    Salut, J'ai eu besoin de faire un renommage de masse il y a quelque temps et je me suis écris un petit script pour ça. Je te passe le code : @echo off setlocal enableDelayedExpansion title Modification d'extension tga vers jpeg color 0F set /a total=0 set folder=%~dp0 echo. echo Repertoire de modification : echo %folder% echo. echo Fichiers presents : echo. for %%X in (*.tga) do ( set /a total+=1 echo %%X ) echo. echo Renommer les %total% fichiers en jpeg ? (rentrer OK si oui, autre chose si non) : set /p testv=^>^> echo. if /i %testv% == OK ( set /a total = 0 for %%X in (*.tga) do ( set /a total+=1 ren "%folder%%%X" "%%~nX.jpeg" ) echo Action effectuee avec succes ) else ( echo Modification annulee ) echo. pause exit Il suffit de créer un fichier .bat avec ce code dans le répertoire des fichiers à modifier puis de l'executer.
  11. Hystos

    Serveur metin 2 .

    Salut, Sur Virtual Box, va dans les configurations de ta machine virtuelle, puis dans Réseau, choisi "Accès par Pont" dans le champ "Mode d'accès réseau" et en dessous le nom de ta carte réseau qui devrait s'afficher automatiquement.
  12. Salut, Les fichiers dont on parle se trouvent dans le game client. Pour pouvoir les modifier, il faut que tu télécharges les sources du client et que tu les compiles toi même pour obtenir ton propre game. Sinon, il doit exister une dif pour résoudre le problème mais c'est vraiment archaïque comme procédé désormais.
  13. Le game est le programme qui gère le jeu. Si tu l'as modifié et que tu as fais une erreur, il est possible que le fonctionnement du serveur soit perturbé. Cependant, en ce qui concerne tes personnages, tu ne risques rien car les données du serveur ne dépend pas du game mais uniquement de ta base de données. Tu as fais probablement une bêtise dans une modification mais tes personnages restent intacts. Pense à inspecter les fichiers de log du serveur et du client.
  14. C'est ça Si tu réfléchies à ce que tu as fais, c'est tout à fait logique. Le nouveau game que tu vois correspond à la compilation de tes fichiers sources. Il suffit maintenant de remplacer l'ancien par le nouveau afin d'appliquer tes modifications.

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.