Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'tutoriel / partage'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Inscription & Connexion
    • Inscription
    • Connexion
  • Espace Communautaire
    • Funky-Emulation
    • Présentations
    • Discussions Générales
    • Bureau de la Communauté
    • Espace Gaming
    • Espace Premium
  • Emulation & Co
    • Réécrire un Partage / Tutoriel
    • Proposer un Partage / Tutoriel
    • La Boite à Idées
  • Emulation de jeux
    • RaiderZ
    • Aura Kingdom
    • Metin2
    • Dofus
    • World of Warcraft
    • Minecraft
    • Aion
    • Habbo
    • Voir plus...
  • Espace Divers
    • Logiciels
    • Programmation
    • Administration de Systèmes
    • Arts
    • Discord
    • Mobile
    • Divers
  • Internationnal Forum
    • Community
    • Games Emulation
    • Others
  • Forum de PassionDev

Rechercher les résultats dans…

Rechercher les résultats qui contiennent…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Discord


Skype


Biographie


Nationalité


Sexe

603 résultats trouvés

  1. Asuras Continent Version 1.00.3 Téléchargement : [Contenu Masqué] Cordialement, --- Download
  2. Salut tout le monde ! Dans ce tutoriel, je vais vous apprendre à changer le spawn du personnage lors de sa création. Dans ce tutoriel, j'utiliserai Trinity 3.3.5 bien qu'il n'est pas d'énormes différences avec les autres versions. Ne vous inquiétez pas, l'action est plutôt simple à réaliser. CHANGER LES COORDONNÉES DE SPAWN Commencez par ouvrir un client MySQL. J'utilise Navicat pour son ergonomie et sa simplicité. Dans la database world, ouvrez la table playercreateinfo Voici comment est organisé la table: La colonne race correspond à la race du personnage en partant du fait que: 1 Humain 2 Orc 3 Nain 4 Elfe de la nuit 5 Mort-Vivant 6 Tauren 7 Gnome 8 Troll 10 Elfe de Sang 11 Draenei La colonne classe elle, correspond à la classe du personnage tel que: 1 Guerrier 2 Paladin 3 Chasseur 4 Voleur 5 Prêtre 6 Chevalier de la mort 7 Chaman 8 Mage 9 Démoniste 11 Druide La colonne map correspond à l'ID de la map où le personnage doit spawn et la colonne zone à la zone de la map tout simplement. Position X / Position Y / Position Z correspond à la position du personnage où le personnage doit spawn Ainsi, la colonne Orientation correspond à l'orientation du personnage une fois spawn. Pour changer le point de spawn de votre personnage, il faut vous placer à l'endroit voulu IG et taper la commande .gps Pour moi, ça donne: Je veux qu'un orc Mage spawn à cet endroit là. Comment je fais ? J'ajoute une nouvelle ligne dans la table playercreateinfo et je la remplie avec ces informations: race: 2 classe: 8 map: 35 zone: 717 position_x: -0.749057 position_y: 51.301849 position_z: -27.50674 Orientation: 1.567724 Il suffit de reboot et le tour est joué ! Si vous avez des questions, n'hésitez pas Bon jeu !
  3. Salut à tous ! J'ai remarqué qu'il manquait à certains clients un SwitchBot donc j'en ai implanté un et j'ai décidé de le partager avec vous : Screenshots : Installation : Téléchargement : Un p'tit merci si vous avez aimé ! PS : Merci à BakeModz pour adaptation Française !
  4. Bonsoir, La Team FE est un projet communautaire qui a été suggéré il y a bien longtemps maintenant. Aujourd'hui, elle vous propose son premier projet: Les files 2014 de la team FE. L'objectif étant de vous proposer des files stables ouvertes à tous. MDP : teamfe (azerty) soit teq,fe (qwerty) Vous pouvez changer la disposition du clavier en tapant la commande : kbdmap puis choisir French ISO-8859-l (accent keys). La Team FE est composée de (je remercie prindo99 aussi qui a su nous faire un sauvetage de dernières minutes): Kijaru Ant0k Raptt Galet Calypso A différence des files 2014 françaises déjà partagé sur le forum, les files de la team FE ont été légèrement amélioré. De plus, nous avons compilé le game et le client de sorte que ceux-ci puissent être exploité plus facilement. Vous aurez donc la possibilité de retrouver les sources et de pouvoir les compiler sans aucune erreur. TÉLÉCHARGEMENT Virtual Machine FreeBSD 9.2 Files 2014 pré-installés + Sources Mainline du game Version 1.0: Cliquez ici pour télécharger LES FILES 2014 Modification côté File: Modifications côté game: En ce qui concerne le côté client, on a juste fait en sorte qu'il puisse être compilé (d'ailleurs le metin2client.exe compilé se trouve dans l'archive des sources). --- Download
  5. Bonjour, Comme pour le système de metin visible sur la minimap, après plusieurs recherche et demande sur différents forum j'ai réussi à faire de même avec les boss. Pour commencer nous allons nous rendre dans les fichiers sources de votre client. Nous irons donc dans UserInterface et nous allons ouvrir le fichier InstanceBase.h. On cherche: NAMECOLOR_WAYPOINT, On fait une nouvelle ligne et on ajoute: NAMECOLOR_BOSS, On cherche: BOOL IsEnemy(); On ajoute en dessous: ///boss BOOL IsBoss(); Nous en avons maintenant fini avec ce fichier, toujours dans le même dossier on cherche le fichier InstanceBase.cpp. On cherche ceci: BOOL CInstanceBase::IsFlag() On copie en dessous du block tout ça: ///boss BOOL CInstanceBase::IsBoss() { if (GetRace() == 691) return TRUE; if (GetRace() == 692) return TRUE; if (GetRace() == 693) return TRUE; if (GetRace() == 791) return TRUE; if (GetRace() == 991) return TRUE; if (GetRace() == 992) return TRUE; if (GetRace() == 993) return TRUE; if (GetRace() == 1091) return TRUE; if (GetRace() == 1092) return TRUE; if (GetRace() == 1093) return TRUE; if (GetRace() == 1094) return TRUE; if (GetRace() == 1095) return TRUE; if (GetRace() == 2191) return TRUE; if (GetRace() == 1191) return TRUE; if (GetRace() == 1192) return TRUE; if (GetRace() == 1304) return TRUE; if (GetRace() == 1306) return TRUE; if (GetRace() == 1307) return TRUE; if (GetRace() == 1901) return TRUE; if (GetRace() == 1902) return TRUE; if (GetRace() == 1903) return TRUE; if (GetRace() == 2206) return TRUE; if (GetRace() == 2207) return TRUE; if (GetRace() == 2291) return TRUE; if (GetRace() == 2306) return TRUE; if (GetRace() == 2307) return TRUE; if (GetRace() == 2492) return TRUE; if (GetRace() == 2493) return TRUE; if (GetRace() == 2494) return TRUE; if (GetRace() == 2598) return TRUE; if (GetRace() == 3090) return TRUE; if (GetRace() == 3091) return TRUE; if (GetRace() == 3190) return TRUE; if (GetRace() == 3191) return TRUE; if (GetRace() == 3290) return TRUE; if (GetRace() == 3291) return TRUE; if (GetRace() == 3390) return TRUE; if (GetRace() == 3391) return TRUE; if (GetRace() == 3490) return TRUE; if (GetRace() == 3491) return TRUE; if (GetRace() == 3590) return TRUE; if (GetRace() == 3591) return TRUE; if (GetRace() == 3690) return TRUE; if (GetRace() == 3691) return TRUE; if (GetRace() == 3790) return TRUE; if (GetRace() == 3791) return TRUE; if (GetRace() == 3890) return TRUE; if (GetRace() == 3891) return TRUE; if (GetRace() == 5001) return TRUE; if (GetRace() == 5004) return TRUE; if (GetRace() == 5002) return TRUE; if (GetRace() == 5161) return TRUE; if (GetRace() == 5162) return TRUE; if (GetRace() == 5163) return TRUE; if (GetRace() == 6091) return TRUE; if (GetRace() == 6191) return TRUE; return FALSE; } /////////////// /////////////// On en a fini avec ce fichier, toujours dans le même dossier on cherche le fichier InstanceBaseEffect.cpp. Dans le fichier on cherche ceci: else if (IsEnemy()) { if (IsBoss()) return NAMECOLOR_BOSS; return NAMECOLOR_MOB; } else if (IsEnemy()) { return NAMECOLOR_MOB; } On remplace le la totalité du else if par ceci: else if (IsEnemy()) { if (IsBoss()) return NAMECOLOR_BOSS; return NAMECOLOR_MOB; } On en a fini avec ce fichier, toujours dans le même dossier on cherche le fichier PythonCharacterManagerModule.cp.p On cherche ceci à l'intérieur: PyModule_AddIntConstant(poModule, "NAMECOLOR_WAYPOINT", CInstanceBase::NAMECOLOR_WAYPOINT); On colle ceci dessous: PyModule_AddIntConstant(poModule, "NAMECOLOR_BOSS", CInstanceBase::NAMECOLOR_BOSS); On en a fini avec ce fichier, toujours dans le même dossier on cherche maintenant le fichier PythonMinimap.h. On cherche à l’intérieur ceci: TInstanceMarkPositionVector m_BossPositionVector; TInstanceMarkPositionVector m_NPCPositionVector; On ajout ceci en dessous: TInstanceMarkPositionVector m_BossPositionVector; On en a fini avec ce fichier maintenant toujours dans le même dossier on cherche le fichier PythonMinimap.cpp On cherche ceci: m_NPCPositionVector.clear(); On ajout en dessous ceci: m_BossPositionVector.clear(); On cherche maintenant le bloque des NPC: // NPC STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_NPC)); aIterator = m_NPCPositionVector.begin(); while (aIterator != m_NPCPositionVector.end()) { TMarkPosition & rPosition = *aIterator; m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY); m_WhiteMark.Render(); ++aIterator; } On ajout ce bloque qui correspond à celui des BOSS: // Boss STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_BOSS)); aIterator = m_BossPositionVector.begin(); while (aIterator != m_BossPositionVector.end()) { TMarkPosition & rPosition = *aIterator; m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY); m_WhiteMark.Render(); ++aIterator; } On recherche ensuite ceci: else if (pkInstEach->IsEnemy()) { aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; m_MonsterPositionVector.push_back(aMarkPosition); } On ajoute en dessous ceci: else if (pkInstEach->IsBoss()) { aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; m_BossPositionVector.push_back(aMarkPosition); } Vous pouvez maintenant ouvrir Visual Studio, nettoyer votre projet, et le recompiler. Nous passons maintenant à la partie python, pour cela vous allez depack les fichiers root.eix et root.epk. Une fois depack on se rend dans le dossier root et on cherche le fichier python colorInfo.py On ajoute la ligne suivante où l'on veut: CHR_NAME_RGB_BOSS = (9, 22, 255) Vous pouvez changer la couleursur ce site en entrant les différentes valeurs. On cherche ensuite le fichier suivant introloading.py (toujours dans le dossier root): On cherche dedans la ligne suivante: chrmgr.NAMECOLOR_WAYPOINT : colorInfo.CHR_NAME_RGB_WAYPOINT, Et on ajoute en dessous ceci: chrmgr.NAMECOLOR_BOSS : colorInfo.CHR_NAME_RGB_BOSS, Voilà le tutoriel est maintenant terminé merci à vous j'espère que ça vous aidera et vous apportera un petit plus. Cordialement,
  6. Bonjour à tous ! Un petit message d'introduction et on commence ! Tout d'abord merci à @Nicky31 pour son tutoriel qui représente une très grande partie de ce poste ! Je me permets de le reprendre pour corriger/apporter des éléments qui bloquaient pas mal de monde. Durée approximative : 10 à 30 en fonction de votre qualification. L'avantage d'Ancestra Remake 54 est le multi-serveurs (Il peut gérer plusieurs serveurs). Commençons ! 1 - Pré-Requis Disposer d'Ancestra Remake 54 Disposer d'une IP de connexion (Hamachi, No-Ip, dédié ...), à vous de voir ce que vous préférez. Hamachi : Simule un réseau local. No-Ip : Redirige sur votre IP accessible ici quand votre opérateur ne vous permet pas de la garder fixe. Dédié : Sur un autre PC constamment allumé fait maison ou loué en ligne. Hébergeur conseillé : Kimsufi / soyoustart. Disposer de WampServer (gratuit) et de Navicat (crack ou payé) sauf si vous savez vous débrouiller avec PhpMyAdmin Disposer de Dofus 1.29 (Certaines personnes ont des problèmes lors du lancement du client Dofus lorsqu'ils n'installent pas Dofus 1.29 dans Program Files (x86) ). 2 - Installer les base de données En premier lieu, l'émulateur a besoin, pour fonctionner, de deux bases de données. Je vais expliquer la procédure via Navicat, si vous utilisez PhpMyAdmin je pense que vous saurez vous débrouiller tout seul. Si ce n'est pas déjà fait, commencez par installer Wamp & Navicat. Lancez Wamp puis Navicat en attendant que Wamp passe au vert dans votre barre des tâches. Si Wamp ne passe pas vert (vous pouvez passer cette étape si c'est le cas), le problème vient probablement d'une interférence avec skype. Dans skype: Outils -> Options -> Avancées -> Connexion -> Décocher "Utiliser les ports 80 et 443 comme alternative". Redémarrez Skype & Wamp [*]Ouvrez Navicat, cliquez sur Connection -> MySQL [*]Mettez seulement localhost à Connection Name et un mot de passe de votre choix à Password (non obligatoire mais bon). Ne touchez pas à ce qui est déjà rempli, faites Ok [*]Double cliquez sur localhost normalement apparu dans la colonne de gauche de Navicat. (Afin d'ouvrir la connexion) [*]Click droit sur localhost (votre connexion), puis clickez sur New Database [*]Ecrivez ancestra_realm dans Enter database name puis clickez sur OK. [*]Répétez la même opération pour une bdd du nom de ancestra_game [*]Comme pour la connexion, double clickez sur vos deux bases de données afin de les "ouvrir" (cela s'affichera en vert) [*]On va maintenant importer des données dans nos deux bdd à partir de fichiers .sql: Click droit sur ancestra_realm, puis Execute Batch File et ciblez AncestraR_Realm.sql contenu dans le dossier AR54/BDD, puis faites Start [*]Répétez la même opération pour remplir ancestra_game à partir du fichier AncestraR_Game.sql, toujours situé dans le même dossier. Vous voilà maintenant avec vos deux bases de données crées, remplies, prêtes mais ... non à jours J'vous jure, j'vous ai pas fait faire de la *****, juste que les développeurs d'AR ont dû rectifier des choses sur les bases de données, et au lieu de mettre à jour les deux gros patchs qu'on vient d'exécuter, ont mis chaque rectification dans un fichier .sql à part. Tous ces fichiers .sql, vous pouvez les trouver dans le sous dossier BDD/Patchs. Attention ! Vous ne devez pas les exécuter n'importe comment. Vous pouvez observer que le nom de chaque fichier suit cette logique: AncestraR_Realm/Game - Patch revN°Patch - Infos sur contenu.sql Realm/Game correspond à la bdd sur laquelle doit être appliqué le patch. N°Patch correspond au numéro du patch (ils sont tous numérotés) Infos sur contenu correspond à quelques infos sur le contenu du patch. Vous devez exécuter tous ces patchs en faisant attention à le faire sur la bonne base de données, et dans l'ordre croissant des numéros. Exemple pour la db game: AncestraR_Game - Patch rev2 - Pets.sql en premier AncestraR_Game - Patch rev3 - Defenders of resources.sql en deuxième ... PS : Ne vous inquiétez pas "Patch rev5" affiche un message d'erreur dans les logs mais ce n'est pas grave. Au boulot ! Une fois ceci fait, vous aurez vos deux bases de données enfin prêtes et complètes. Nous pourrons alors passer à la configuration de l'émulateur en lui même 2(bis) - Survol du fonctionnement d'un Emulateur La particularité d'AR54 qui m'a poussé à faire un tuto sur son installation (alors qu'il y a déjà des tutos pour d'autres versions d'AR), c'est que la différence de fonctionnement entre cette version et celles antérieures complique sa configuration. Voilà comment fonctionne normalement un émulateur, dissocié en deux parties realm et game : Le client se connecte sur la partie realm. Il choisit son serveur, et le realm lui renvoi l'ip et le port du game gérant le serveur demandé. Le client coupe alors la connexion avec le realm pour se connecter au game Le game gère tout le reste du jeux. Il doit néanmoins communiquer avec le realm pour avoir certaine données. Dans les versions précédentes, le multi-serveur n'était pas géré: on ne pouvait alors avoir qu'un serveur, et il n'était plus utile d'avoir cette organisation avec une application realm et une autre pour chaque serveur. Les développeurs ont donc fusionné ces deux applications en une seule. De cette façon, le client restait tout le temps connecté sur la même application (pas tout à fait en réalité, mais on entrerait dans les détails techniques). Au niveau de la configuration; on n'avait qu'une config pour une application, avec une ip & un port à renseigner pour l'unique application. Avec le multi-serveur, les développeurs ont du dissocier le realm et le game : Un seul realm (serveur de connexion), et un game par serveur. Il faut donc à présent une config par appli' (deux pour un seul serveur), et des ips & ports en plus. En résumé, il nous faut: L'ip du realm et son port de connexion (celui sur lequel le client se connecte) L'ip de chaque serveur & leur port de connexion (donnés par le realm au client). Pour ne pas compliquer les choses, nous allons gérer qu'un serveur Le port de communication utilisé entre le realm et les games. L'identifiant de chaque game ; c'est avec celui-ci que le realm s'assure qu'il à affaire aux games attendus. (Sinon n'importe quel personne tierce pourrait connecter son propre game modifié) 3 - Configurer Ancestra Remake 54 La partie précédente n'était pas vraiment prévue, mais j'ai trouvé intéressant de parler du fonctionnement de l'émulateur, ça peut aider certains à comprendre certains éléments. Bon, la première étape est de faire connaître au realm notre game. Et une table de notre db realm est prévue pour cela. Une table ??? Kézako !? Voilà une nouvelle notion pour nous, jeunes padawans que nous sommes. Une table n'est rien d'autre qu'une partie d'une base de données, regroupant donc un certains nombre d'informations à propos d'une chose précise, informations organisées comme un tableau. D'où le nom table, qui en anglais signifie tableau. 1 - Base de Données Rendez vous dans ancestra_realm Double clickez sur la table gameservers Une fenêtre s'ouvre alors. Voilà que s'affiche le contenu de notre table. L'unique ligne affichée devrait être celle-ci : Colonnes en italiques id | ServerIP | ServerPort | State | ServerBDD | ServerDBName | ServerUser | ServerPassword | key 1 | 127.0.0.1 | 5555 | 0 | 127.0.0.1 | ancestra_game | root | | server1 L'id correspond à l'id du serveur. Vous pouvez trouver tous les fichiers d’emblème des serveurs dans Dofus/clips/artworks/servers. Leur nom correspond à leur id. Pour ma part je m'en fou un peu donc je laisse 1. IP de la machine qui aura le game. Donc votre ip hamachi/no-ip/dédié ou 127.0.0.1 si vous voulez tester en localhost. On laisse aussi 5555 au ServerPort, c'est ce port ainsi que la serverIP que le realm enverra au client pour qu'il se connecte au game. State, c'est l'état du serveur: 0 pour hors ligne, 1 en ligne, 2 sauvegarde. On laisse 0, le realm s'occupe de le mettre à 1 quand il reçoit la connexion du game. ServerBDD ; l'ip de notre db game. S'il est sur la même machine que le game vous pouvez laisser 127.0.0.1, sinon mettez son ip. ServerDbName ; le nom de la db game correspondante, on laisse ancestra_game (sauf si vous l'avez appelé autrement) ServerUser ; le nom d'utilisateur de la connexion à la db. Si vous ne l'avez pas changé depuis l'installation, c'est toujours root ServerPassword ; le mot de passe de la connexion à la db. Si vous n'en avez pas mit, il y en a pas. key ; c'est la clé qui identifie le game & qu'il devra donner au realm. Je décide de la laisser telle quelle, gardez la en mémoire si vous la changez. 2 - Configuration du realm A présent, direction AR54/Realm/Realm_Config.txt : REALM_PORT : Port de connexion à mettre dans la config.xml, on va prendre 444 REALM_COM_PORT : Port de communication entre le realm & les game. On prend 489 Je vous laisse configurer les identifiants de votre db realm. Dans le cas ou vous avez fait le tutoriel à la lettre ; vous êtes censé mettre : REALM_DB_HOST = 127.0.0.1 REALM_DB_USER = root REALM_DB_PASSWORD = REALM_DB_NAME = ancestra_realm Warning Si vous n'avez pas mis de mot de passe (password) ; n'oubliez pas de laisser un espace après le "=" sinon le serveur ne se lancera pas. 3 - Configuration du game Direction AR54/Game/Game_Config.txt: REALM_IP : l'ip hamachi/no-ip/dédié de la machine hébergeant le realm. Configurez l'accès à la db realm. Comme pour la partie db, mettez 127.0.0.1 si la db est sur la même machine que le game. HOST_IP : Ip hamachi/no-ip/dédié de la machine hébergeant le game. AUTH_KEY : La clé que vous avez indiqué dans la colonne key de la db GAME_PORT: Le port de connexion du game, que vous avez indiqué dans la colonne ServerPort (5555 dans ce tutoriel) COM_PORT : Port de communication entre le game & le realm. Il doit être identique à celui que nous avons mis dans la config realm, soit 489 PLAYER_LMIT : Ne pas laisser -1, il provoque un bug à la connexion au serveur (Merci à @Défense pour l'infos). Mettez donc une autre limite de joueurs, comme 100. Configurez l'accès à la db game de la même façon que pour la realm. Dans le cas ou vous avez fait le tutoriel à la lettre ; vous êtes censé mettre : #Configuration de la base de donnée du serveur de connexion REALM_DB_HOST = 127.0.0.1 REALM_DB_USER = root REALM_DB_PASS = REALM_DB_NAME = ancestra_realm # Configuration de la base de donnée DB_HOST = 127.0.0.1 DB_USER = root DB_PASS = DB_NAME = ancestra_game 4 - Configuration des .bat pour démarrer le realm et le game Ouvrez avec un éditeur de .txt les fichiers "startRealm.bat" du dossier "realm" et "game". Vous devez à présent renseigner la localisation de votre "java.exe". Dans mon cas : @echo off title Ancestra Remake rev 54 :loop "C:\Program Files\Java\jre1.8.0_191\bin\java.exe" -jar -Xmx1024m -Xms1024m Ancestra.jar goto loop PAUSE Petite astuce pour avoir votre chemin rapidement : - Cherchez votre java.exe qui devrait se trouver dans "Programmes". - Créez un raccourci sur le bureau - Clique droit sur le raccourci puis "propriété" - Copier le contenu de "Cible :" La partie "-Xmx1024m -Xms1024m" correspond à la ram que vous allouez à votre serveur. Ici 1024m donc 1G de ram. Normalement, vous avez à présent Ancestra Remake bien installé et configuré. Il ne reste plus qu'à indiquer au client Dofus l'ip et le port de connexion du realm. 5 - Configuration du client DOFUS Ne vous inquiétez pas, c'est beaucoup plus simple que pour l'émulateur. Direction Dofus/config.xml, remplacez tout le contenu par ceci : <config> <delay value="500"/> <rdelay value="3000"/> <rcount value="10"/> <conf name="En ligne"> <connserver ip="Adresse ip du serveur" name="Nom de votre serveur" port="Port du realm"/> <dataserver url="data/" type="local" priority="3" /> <dataserver url="[Contenu Masqué]" priority="1" /> <dataserver url="[Contenu Masqué]" priority="0" /> </conf> <conf name="En ligne (TEST)" type="test"> <dataserver url="data/" type="local" priority="3" /> <dataserver url="[Contenu Masqué]" priority="1" /> <dataserver url="[Contenu Masqué]" priority="0" /> </conf> <cacheasbitmap> <cache element="ExternalContainer/InteractionCell" value="false" /> <cache element="ExternalContainer/Ground" value="false" /> <cache element="ExternalContainer/Object1" value="false" /> <cache element="ExternalContainer/Object2" value="false" /> <cache element="ExternalContainer/Zone" value="false" /> <cache element="ExternalContainer/Select" value="false" /> <cache element="ExternalContainer/Grid" value="false" /> <cache element="ExternalContainer/Pointer" value="false" /> <cache element="GAPI/UI" value="false" /> <cache element="GAPI/UITop" value="false" /> <cache element="GAPI/Popup" value="false" /> <cache element="GAPI/UIUltimate" value="false" /> <cache element="GAPI/Cursor" value="false" /> <cache element="mapHandler/BACKGROUND" value="false" /> <cache element="mapHandler/Cell/Ground" value="false" /> <cache element="mapHandler/Cell/Object1" value="false" /> <cache element="mapHandler/Cell/Object2" value="false" /> <cache element="mapHandler/Cell/ObjectExternal" value="false" /> <cache element="Zone/Zone" value="true" /> <cache element="Zone/Pointers" value="true" /> </cacheasbitmap> </config> Remplacez de la ligne suivante par ce qui est demandé. <connserver ip="Adresse ip du serveur" name="Nom de votre serveur" port="Port du realm"> Exemple : <connserver ip="127.0.0.1" name="Serveur tuto" port="444"/> Si vous avez bien suivi ce tutoriel, vous devriez normalement mettre 444 pour le port du realm. Le nom du serveur ne dépend de rien de ce qu'on à fait avant. A présent que tout est en place, il ne reste qu'à lancer l'émulateur : En premier le Realm en lançant AR54/Realm/startRealm.bat puis le Game en lançant AR54/Game/startRealm.bat. (Vous pouvez renommer celui la en startGame.bat) Et voilà, distribuez la config.xml à vos joueurs, et votre serveur est en place ! Si vous avez des difficultés malgré le tutoriel je vous laisse les 3 configs que nous avons vu réglé pour faire tourner votre serveur en réseau local. Je conseille tout de même d'essayer un minimum pour ne pas être décourager pour la suite ! Game_Config.txt Realm_Config.txt config.xml Je me ferai une joie de répondre à vos questions et d'avoir des suggestions pour améliorer le contenu. Encore une fois, le tutoriel n'est pas de moi, j'ai seulement corrigé quelques parties causants des problèmes à beaucoup et apporter des précisions en accord avec @Calypso. Bonne chance à tous ! --- Download
  7. Yep, Vous connaissez sans doutes les fameuses file 2013, avec les tools qui permettent de générer le côté client grâce au côté serveur. Mais malheureusement, certains n'arrivent plus à dump ces protos car ils sont beaucoup trop récents ... Bah ici, c'est la même chose ! Il suffit de mettre l'exe dans un dossier avec l'item proto et l'item name txt (ou mob), de les faire glisser sur le exe le tour est joué ! De plus, il prend en compte les nouveaux mob proto donc les nouvelles colonnes ! Téléchargement: [Contenu Masqué] --- Download
  8. Bonsoir ! Après une semaine à essayer de compiler le client de metin2, je vous fait un petit tutoriel. Tout d'abord, il vous faut les sources de metin: [Contenu Masqué] Pour compiler le client, je vous conseille la branche novaline mais vous pouvez très bien utiliser la branche mainline. Ensuite, vous conseille Visual Studio 2013, car le 2008 est foireux et vous risquez d'avoir des erreurs dans votre compilation (je parle en connaissance de cause ) Vous pouvez le télécharger ici: [Contenu Masqué] Etape 1, préparez son environnement Une fois les sources et le logiciel téléchargé, ouvrez le. Cliquez sur l'icône ouvrir un fichier et choisissez ce sln: Metin2Client_VC90.sln Il se trouve dans Srcs\Client ----------------------------------------------------------------------- Maintenant, créez un dossier lib et include où vous voulez. Vous pouvez le faire à la racine de votre disque dur, sur le bureau, peu importe. On va dans chaque dossier, mettre les fichiers nécessaire au code source. DOSSIER LIB Srcs\Tools\WorldEditor\extern\lib Mettez le contenu de ce dossier, dans le dossier lib que vous avez créé. Srcs\Extern\lib Mettez le contenu de ce dossier, dans le dossier lib que vous avez créé. DOSSIER INCLUDE Srcs\Tools\WorldEditor\extern\include Mettez le contenu de ce dossier, dans le dossier include que vous avez créé. Srcs\Extern\include Mettez le contenu de ce dossier, dans le dossier include que vous avez créé. !/ N'hésitez surtout pas à remplacer /! ------------------------------------------------------------------------ Avant de lier vos dossier à votre code, je vous conseille de changer le mode de compilation. Personnellement, j'utilise le mod Release qui me permet d'avoir un lanceur d’environ 3200Ko Pour changer le mod de compilation, faites un clic droit sur votre solution (votre .sln) dans visual studio puis cliquez sur propriété. Allez dans Propriétés de configuration ---> Configuration. Cliquez sur Gestionnaire de Configuration et dans configuration de la solution active, vous choisissez Release. Vos projets vont se mettre en Release, il vous reste juste à fermer la fenêtre et cliquer sur OK. ------------------------------------------------------------------------ Maintenant, il faut lier chaque projet de votre solution à vos dossiers. Faites un clic droit sur UserInterface puis cliquez sur Propriété. Allez dans Configuration ---> Vc++ et dans répertoire include, vous choisissez votre dossier include, comme sur le screen. Dans Répertoires de bibliothèques, vous choisissez votre dossier lib. Vous faites exactement la même chose pour les 15 autres projets (EterPack, EterLib, etc ...) ------------------------------------------------------------------------ Maintenant il vous suffit juste d'appuyer sur ces touches pour compiler (en même temps): CTRL + SHIFT + B Pour recompiler le client, faites un clic droit sur la solution puis: Régénérer la solution Malheureusement, la compilation est assez longue. Le .exe final se trouvera dans le dossier /UserInterface/Release Les erreurs fréquentes Impossible d'ouvrir mon sln Votre sln n'utilise juste pas le bonne version. Vous pouvez résoudre ce problème tout simplement. Éditez avec NotePad votre SLN et à la place de: Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 Mettez(si vous utilisez Visual 2008): Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2008 Ca varie en fonction de la version de votre IDE, pensez à bien le retenir 16>.AffectFlagContainer.cpp(68 ) : error C2440: 'initializing' : cannot convert from 'CAffectFlagContainer::Element' to 'char &' 16>.\AffectFlagContainer.cpp(68 ) : error C2440: 'initializing' : cannot convert from 'CAffectFlagContainer::Element' to 'char &' Cliquez deux fois sur CAffectFlagContainer et cela va vous amener à un BYTE. Faites clic droit sur BYTE et cliquez sur Atteindre la définition Il suffit juste de remplacer char par unsigned char. 6>.PythonGraphic.cpp(294) : error C2664: 'CPythonGraphic::SaveJPEG' : cannot convert parameter 2 from 'char *' to 'LPBYTE' 6>.\PythonGraphic.cpp(294) : error C2664: 'CPythonGraphic::SaveJPEG' : cannot convert parameter 2 from 'char *' to 'LPBYTE' Double cliquez sur l'erreur et ça va vous amener sur la ligne de l'erreur. Effacez cette ligne et mettez: bool bSaved = SaveJPEG(c_pszFileName, (LPBYTE)pbyBuffer, uWidth, uHeight); Erreur Python Il arrive parfois, si vous utilisez Python-2.2, vous ayez une erreur. La même chose pour Python2.7. Trouvez donc dans un premier temps, l'erreur qui concerne cette ligne: PyAPI_FUNC(struct symtable *) PySymtable_Build(mod_ty, const char *, PyFutureFeatures *); Et commentez la. (Pour commenter: //commentaire) module' object has no attribute 'EQUIPMENT_RING1 Erreur Sysser 'module' object has no attribute 'EQUIPMENT_RING1' Dans le fichier: Locale_inc.h. Vous supprimez tout et vous mettez: #define LOCALE_SERVICE_SINGAPORE #define ENABLE_COSTUME_SYSTEM #define ENABLE_ENERGY_SYSTEM #define ENABLE_DRAGON_SOUL_SYSTEM #define ENABLE_NEW_EQUIPMENT_SYSTEM 16>cryptlib-5.6.1MTd.lib(iterhash.obj) : error LNK2001: unresolved external symbol \"void __cdecl std::_Xbad_alloc(void)" ([email protected]@@YAXXZ) 16>cryptlib-5.6.1MTd.lib(iterhash.obj) : error LNK2001: unresolved external symbol "void __cdecl std::_Xbad_alloc(void)" ([email protected]@@YAXXZ) Si vous avez des erreurs avec la lib Cryptlib-5.6.1MT, il faut recompiler cette lib. Pour se faire, avec Visual Studio, ouvrez le fichier cryptlib.2008.sln qui se trouve dans le dossier: Srcs\Extern\cryptopp Vous importez la solution, vous compilez avec CTRL + SHIFT + B et une fois terminé, la lib se trouvera dans Srcs\Extern\lib. Sous le nom de: cryptlib-5.6.1MTd.lib Attention ! Il faut compiler la lib en MT et sur le même toolset que le client ! Dans tous les cas, vous pouvez très simplement trouver cette lib avec la date du fichier. 5>mss32.lib(mss32.dll) : error LNK2026: module unsafe pour l'image SAFESEH. 5>mss32.lib(mss32.dll) : error LNK2026: module unsafe pour l'image SAFESEH. Il suffit de désactiver / SAFESEH. Pour cela, clique droit sur UserInterface, propriétés puis cliquez sur éditeur de liens, allez dans avancé puis sur la ligne Image avec gestionnaire d'exceptions sécurisés, vous mettez non. Vous régénérez la solution, et le tour est joué TraceBack - Error: Bad magic number in lib libtraceback.pyc L'erreur dans la fenêtre LOG: TraceBack - Error: Bad magic number in lib lib\traceback.pyc Le soucis vient du fait que votre lanceur est dans une certaine version de python alors que vos libs (Dans client, le dossier lib) utilisent une autre version de Python. En fait, on peut appeler le magic number, une clé pong mais avec un contexte bien différent. Vos libs, quand vous les éditez en HEXA, contiennent le nombre magique correspondant à votre python.dll python27.dll a son propre magic number tout comme python22. C'est une sorte de laison. Pour résoudre ce problème, vous avez deux choix: Passez vos libs client à la version python de votre lanceur ou alors compiler votre lanceur avec la version Python correspondant à votre client. TraceBack Hé oui, vous pouvez aussi avoir une fenêtre d'erreur mais juste avec l'erreur TraceBack. Cela signifie qu'un de votre dossier pack n'est pas apte à prendre en compte ce lanceur compilé (je simplifie, sinon j'écris un topic sur cette erreur). En gros c'est que vos fichiers n'utilisent pas les bonnes fonctions. Dans ce cas, je vous conseille de télécharger ce client: [Contenu Masqué] Vous essayez de prendre les fichiers root et voir si votre client se lance sans cette erreur. (vous faites vos modif après) Si root ne fonctionne pas, essayé locale_* ou alors essayez uiscript. Il y en a bien un qui va résoudre votre soucis. La plus part du temps, c'est root. LoginWindow.__LoadScript.LoadObject - :Python int too large to convert to C long À l'entête du fichier: PythonUtils.cpp, ajoutez: #define PyLong_AsLong PyLong_AsLongLong #define PyLong_AsUnsignedLong PyLong_AsUnsignedLongLong Vous pouvez apprendre à passer de Python 2.2 à Python 2.7 grâce à ce tutoriel : [Contenu Masqué] Source: Moi et en m'aidant de m2d pour la correction de certaines erreurs
  9. Bonjour tout le monde Voici un recensement de modifications mineures pour les sources 40k Bon, commençons 1. Activer les Bonus 6-7. Détails char_item.cpp Recherchez: if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam()) return false; Commentez ou supprimez cela. Il a deux code à éditer. 2. Chance de lier les pierres sur les armes ou armures. Détails char_item.cpp Recherchez: if (number(1, 100) <= 30) Modifiez le chiffre «30» par ce que vous souhaitez. Exemple: if (number(1, 100) <= 65)// 65% chance de lier la pierre 3. Activer pc_change_name : Détails [/b]questlua_pc.cpp Recherchez: if ( LC_IsEurope() ) { lua_pushnumber(L, 5); return 1; } Vous avez qu'à commenter ou supprimer le code. 4. Activer la vente des items 70035 et 70024 dans les pnjs: Détails Allez voir le message de Galet : ici 5. Rendre les items à 0 yangs achetable: Détails shop.cpp Recherchez: if (!m_pkPC) { if (quest::CQuestManager::instance().GetEventFlag("hivalue_item_sell") == 0) { //ĂŕşąŔÇ ±¸˝˝ && ¸¸łâÇŃö ŔĚşĄĆ® if (item->GetVnum() == 70024 || item->GetVnum() == 70035) { return SHOP_SUBHEADER_GC_END; } } } Modifiez par ce code-ci (N'oubliez pas les TABULATIONS): if (!m_pkPC) { if (item->GetVnum() == 70024 || item->GetVnum() == 70035) { return SHOP_SUBHEADER_GC_END; } } Recherchez encore dans shop.cpp: //HIVALUE_ITEM_EVENT if (quest::CQuestManager::instance().GetEventFlag("hivalue_item_sell") == 0) { //ĂŕşąŔÇ ±¸˝˝ && ¸¸łâÇŃö ŔĚşĄĆ® if (item.vnum == 70024 || item.vnum == 70035) { continue; } } //END_HIVALUE_ITEM_EVENT Modifiez par ceci: //HIVALUE_ITEM_EVENT if (item.vnum == 70024 || item.vnum == 70035) { continue; } //END_HIVALUE_ITEM_EVENT 6. Désactivez les bonus 6-7 sur les costumes: Détails char_item.cpp Recherchez: case 71051 : Ajoutez au dessus de ça: if (item2->GetAttributeSetIndex() == -1) Ceci: if (item2->GetType() == ITEM_COSTUME) //6-7 javítás kosztümön { return false; } 7. Modifiez le temps de shutdown: Détails cmd_general.cpp Recherchez: Shutdown(10); Modifiez le 10 par le nombre de secondes que vous souhaitez. 8. Aucun besoin d'utiliser la loupe pour mettre votre item en chat. Détails input_main.cpp Recherchez: int ProcessTextTag(LPCHARACTER ch, const char * c_pszText, size_t len) { //2012.05.17 ±čżëżí //0 : Á¤»óŔűŔ¸·Î »çżë //1 : ±Ý°*°ć şÎÁ· //2 : ±Ý°*°ćŔĚ ŔÖŔ¸łŞ, °łŔλóÁˇżˇĽ* »çżëÁß //3 : ±łČŻÁß //4 : żˇ·Ż int hyperlinks; bool colored; Éditez par ceci: int ProcessTextTag(LPCHARACTER ch, const char * c_pszText, size_t len) { return 0;//BETEKINTÉS ÜVEG NE KELLJEN SOHA //2012.05.17 ±čżëżí //0 : Á¤»óŔűŔ¸·Î »çżë //1 : ±Ý°*°ć şÎÁ· //2 : ±Ý°*°ćŔĚ ŔÖŔ¸łŞ, °łŔλóÁˇżˇĽ* »çżëÁß //3 : ±łČŻÁß //4 : żˇ·Ż int hyperlinks; bool colored; 9. Enlevez la fonction que les joueurs jeter leurs yangs au sol. Détails char_item.cpp Recherchez: bool CHARACTER::DropGold(int gold) Remplacez par ceci: bool CHARACTER::DropGold(int gold) { return false; } 10. Temps de changements de bonus. Détails char_item.cppRecherchez: if (pPC) { DWORD dwNowMin = get_global_time() / 60; DWORD dwLastChangeItemAttrMin = pPC->GetFlag(msc_szLastChangeItemAttrFlag); if (dwLastChangeItemAttrMin + dwChangeItemAttrCycle > dwNowMin) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ĽÓĽşŔ» ąŮ˛ŰÁö %dşĐ ŔĚł»żˇ´Â ´Ů˝Ă şŻ°ćÇŇ Ľö ľř˝Ŕ´Ď´Ů.(%d şĐ ł˛Ŕ˝)"), dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowMin - dwLastChangeItemAttrMin)); return false; } pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowMin); } Modifiez comme ça: if (pPC) { DWORD dwNowMin = get_global_time() / 60; //Comment for 0 switch players start //DWORD dwLastChangeItemAttrMin = pPC->GetFlag(msc_szLastChangeItemAttrFlag); //if (dwLastChangeItemAttrMin + dwChangeItemAttrCycle > dwNowMin) //{ //ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ĽÓĽşŔ» ąŮ˛ŰÁö %dşĐ ŔĚł»żˇ´Â ´Ů˝Ă şŻ°ćÇŇ Ľö ľř˝Ŕ´Ď´Ů.(%d şĐ ł˛Ŕ˝)"), //dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowMin - dwLastChangeItemAttrMin)); //return false; //} //Comment for 0 switch players end pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowMin); } } 11. Temps des items au sol: Détails char_item.cpp Recherchez: ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¶łľîÁř ľĆŔĚĹŰŔş 3şĐ ČÄ »ç¶óÁý´Ď´Ů.")); pkItemToDrop->StartDestroyEvent(); Modifiez comme ça pour 30 secondes: ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¶łľîÁř ľĆŔĚĹŰŔş 3şĐ ČÄ »ç¶óÁý´Ď´Ů.")); pkItemToDrop->StartDestroyEvent(30); 12. Emotion sans masque d'émotions : Détails cmd_emotion.cpp Recherchez: bool CHARACTER_CanEmotion(CHARACTER& rch) { // °áČĄ˝Ä ¸ĘżˇĽ*´Â »çżëÇŇ Ľö ŔÖ´Ů. if (marriage::WeddingManager::instance().IsWeddingMap(rch.GetMapIndex())) return true; // ż*Á¤ŔÇ °ˇ¸é Âřżë˝Ă »çżëÇŇ Ľö ŔÖ´Ů. if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK)) return true; if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK2)) return true; return false; } Modifiez comme ceci: bool CHARACTER_CanEmotion(CHARACTER& rch) { return true; } 13. Fix war crash bug Détails cmd_general.cpp Recherchez: if (*arg2) { str_to_number(type, arg2); if (type >= GUILD_WAR_TYPE_MAX_NUM) type = GUILD_WAR_TYPE_FIELD; } Modifiez comme ceci: if (*arg2) { str_to_number(type, arg2); if (type >= GUILD_WAR_TYPE_MAX_NUM) type = GUILD_WAR_TYPE_FIELD; if(type < 0) //war crash fix return; } 14. Enlevez les potions à chaque up level. Détails char.cpp Recherchez: if (GetLevel() <= 10) AutoGiveItem(27001, 2); else if (GetLevel() <= 30) AutoGiveItem(27002, 2); else { AutoGiveItem(27002, 2); // AutoGiveItem(27003, 2); } Supprimer le tout simplement. 15. Client version check fix: Détails config.cpp Recherchez: if (version > date) Modifiez comme ceci: if (version != date) 16. Debug de l'anti-stun Détails char_resist.cpp Recherchez : int immune_pct = 90; Modifiez comme ceci : int immune_pct = 100; 17. Supprimer la perte d'expérience Détails char_battle.cpp Recherchez : void CHARACTER::DeathPenalty(BYTE bTown) { Modifiez comme ceci : void CHARACTER::DeathPenalty(BYTE bTown) { return; 18.90% de chance d'insérer un diamant Détails char_item.cpp Recherchez : if (number(1, 100) <= 50); Modifiez comme ceci : if (number(1, 100) <= 90); 19. Changer le niveau où le joueur peut perdre son stuff en ayant un grade négatif Détails char_battle.cpp Recherchez : if (GetLevel() < 50) Modifiez comme ceci : if (GetLevel() < 90) 20. Débug de la cape de bravoure Détails char_battle.cpp Recherchez : if (number(1, 100) <= 50); Modifiez comme ceci : if (number(1, 100) <= 100); 21. Parler au niveau 1 sur le général (by Mandrilux) Détails input_main.cpp Recherchez : const int SHOUT_LIMIT_LEVEL = g_iUseLocale ? 15 : 3; if (ch->GetLevel() < SHOUT_LIMIT_LEVEL) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("외치기는 레벨 %d 이상만 사용 가능 합니다."), SHOUT_LIMIT_LEVEL); return (iExtraLen); } Supprimez ou commentez. 22. Skills passent M1 à 17 (by Mandrilux) Détails char_skill.cpp Recherchez : if (number(1, 21 - MIN(20, GetSkillLevel(pkSk->dwVnum))) == 1) Supprimez ou commentez. 23. Lire des manuels de compétence sans expérience (by Mandrilux) Détails char_skill.cpp Recherchez : need_exp = 20000; Modifiez comme ceci : need_exp = 0; 24. Rendre empilable les manuels de compétence (by Calypso) Détails char_item.cpp Recherchez : ITEM_MANAGER::instance().RemoveItem(item); Modifiez comme ceci : item->SetCount(item->GetCount() - 1); N'oubliez pas de rendre les manuels empilables ! (flag 4 ou ITEM_STACKABLE) Merci à tous! :angel: Bon boulot à vous et bonne chance pour vos projets
  10. Niveau requis : Intermédiaire Temps estimé : Entre 5 et 10 minutes Ceci est une modification facultative mais si vous souhaitez avoir de la brillance à vos armures, le mieux est d'avoir un code propre. Je m'explique, quand une armure possède beaucoup de textures, pour que celle-ci possède de la brillance il va falloir faire plusieurs Group, avec la modification C++ vous n'aurez plus ce problème. Avant modification : Après modification : Pré-requis: Vos sources client Tutoriel: Pour commencer ouvrez le fichier RaceDataFile.cpp situé dans gamelib Cherchez ce code : if (TextFileLoader.GetTokenString("sourceskin", &strSourceSkin) && TextFileLoader.GetTokenString("targetskin", &strTargetSkin)) { AppendShapeSkin(dwShapeIndex, 0, (strPathName + strSourceSkin).c_str(), (strPathName + strTargetSkin).c_str()); } if (TextFileLoader.GetTokenString("sourceskin2", &strSourceSkin) && TextFileLoader.GetTokenString("targetskin2", &strTargetSkin)) { AppendShapeSkin(dwShapeIndex, 0, (strPathName + strSourceSkin).c_str(), (strPathName + strTargetSkin).c_str()); } Remplacez le par : if (TextFileLoader.GetTokenString("sourceskin", &strSourceSkin) && TextFileLoader.GetTokenString("targetskin", &strTargetSkin)) { AppendShapeSkin(dwShapeIndex, 0, (strPathName + strSourceSkin).c_str(), (strPathName + strTargetSkin).c_str()); } for (int i = 2; i < 10; i++) { char chrSourceSkin[20]; char chrTargetSkin[20]; sprintf(chrSourceSkin, "sourceskin%i", i); sprintf(chrTargetSkin, "targetskin%i", i); if (TextFileLoader.GetTokenString(chrSourceSkin, &strSourceSkin) && TextFileLoader.GetTokenString(chrTargetSkin, &strTargetSkin)) { AppendShapeSkin(dwShapeIndex, 0, (strPathName + strSourceSkin).c_str(), (strPathName + strTargetSkin).c_str()); } Compilez et remplacez votre nouveau lanceur par l'ancien ! Et maintenant vous pouvez déclarer jusqu'à 9 SourceSkin ! Source: Epvp Xayah,
  11. Salut à tous, comme j'ai pas partagé rien depuis longtemps je me suis dit de partager avec vous un serveur files sympa enfin y'a beaucoup de modifications faites. J'espère qu'il va vous être utile. Ce serveur comporte. Nouvelles textures personnages. -Système pets. (pets 2015) -Système costumes. (nouveau costumes d'été) -Jail system. (en cas de non respect du reglement sera envoyé en prison dans une cellule individuelle pour 15 minutes) Et voici les évolutions possible des items. Téléchargement Files: Cliquez ici pour télécharger Client : Cliquez ici pour télécharger Dans cette liste choisir le client : Aryon 2 Global J'espère que ces files vous seront utiles, ce n'est pas mon serveur, donc je ne suis pas responsable des éventuels bugs. Source Just4Metin
  12. Niveau requis : Débutant Temps estimé d'installation : Entre 1 et 2 minutes Je vous partage une petite correction des balises codes & citations, alors elle n'est pas obligatoire mais par défaut je trouve que ces balises sont imposantes, si l'on cite une personne ou que l'on a un fichier de c++ à copier et bien cela prendra plus d'une page et cela gâche fortement l'esthétique d'un sujet. Voici donc à quoi ressemble les balises par défaut : Et après correction : Rendez-vous sur votre panel Admin Allez dans la Rubrique Personnalisation (Icon Pinceau) puis dans Thèmes Cliquez sur Editer l'HTML/CSS (Icon Crayon) de votre thème Cliquez sur l'onglet CSS et ouvrez le fichier custom.css Copiez ces codes à l’intérieur : .ipsCode{ overflow-y: auto; max-height: 250px; } .ipsQuote_contents{ overflow-y: auto; max-height: 200px; margin: 0px -12px !important; } Cliquez sur Enregistrer et rafraîchissez votre page. Information: A savoir que si certaines modifications ne sont pas prises en compte c'est qu'un code peut passer avant un autre dans ce cas ajouter le code !important avant chaque points virgules. Xayah,
  13. Alors, avant de parler de quoi que ce soit : De nombreux MenuAdmin existent pour AncestraR, seulement, certains sont mal organisés ou pas suffisamment complet. J'espère que celui ci pourra palier ces problèmes. Je pense qu'une petite explication des trois versions n'est pas de trop. La v1 possède deux commandes sur le menu principal : Signaler sa présence au staff et Signaler sa présence aux joueurs. Le premier lance sur le chat : /q viens de se connecter. Ainsi tout les joueurs GM1 ou plus pourront le lire. Le deuxième lance sur la console : nammounce viens de se connecter. Ainsi tout les joueurs ayant le canal vert ouvert pourront lire le message. La v2 possède la deuxième commande sur le menu principal. La première commande se trouve dans le StartUp et sera lancée automatiquement à la connexion du joueur. La v3 possède les deux commandes dans le StartUp et elles seront lancées automatiquement à la connexion du joueur. Ce MenuAdmin sera mis à jour suivant vos critiques et remarques et a chaque nouvelle commandes implantables. Menu Principal => (Version2) Téléchargement : [Contenu Masqué] ___ Voici pour la présentation du MenuAdmin. Je suis disponible pour vos remarques/idées via les messages privé de Funky-Emu ou via [email protected] Merci de respecter mon travail. --- Download
  14. Salut à tous, Dans les codes sources du jeu, vous avez peut-être trouvé quelques fichiers dans un dossier "Tools". Petites explications sur leur utilité, par ordre alphabétique ! Builder Contient des fichiers utiles pour compiler, très peu utilisé, il vaut mieux partir directement sur la commande "gmake" plutôt que de se compliquer la vie avec ça. DumpProto Permet de convertir les item_proto.txt et mob_proto.txt du serveur en item_proto et mob_proto pour le client. Metin2MsaMaker Les .msa sont des petits fichiers que vous avez dû croiser dans les dossiers des mobs, des PNJ, ou des armures : Ces fichiers sont des informations concernant les animations, et permet au jeu de lire certains .gr2 Cet outil permet de les générer automatiquement ! Metin2PackMaker Permet de créer des .eix et .epk, et de les protéger avec toutes les protections du client officiel : Panama, CryptoPP, les deux combinés, stockage simple, compressé, etc ... RAD Game Tools Contient les Source Development Kit (des outils pour faire du codage) du Granny Engine et de Miles. Le Granny Engine est le système 3D utilisé par Metin2 (les .gr2) Miles, c'est tout le son du jeu (musiques, sons, etc ...) Ce dossier est surtout utile pour mettre à jour votre version du Granny Engine et celle de Miles, ou d'ajouter de nouvelles fonctionnalités ! Regen Générateur de regen automatique ! J'ai fais un tutoriel dessus, ici : [Tutoriel] Le Regen Maker TorrentPatch Ancien patcheur torrent officiel d'Ymir. WorldEditor Un des outils les plus importants ! Il permet de modifier, créer les maps de Metin2. Entre autres, vous pouvez modifier les textures de la carte, leur placement, les arbres, les bâtiments, le relief, l'eau, etc... Calypso & Natsuryu ont fait un petit tutoriel là-dessus : [Mapping] Utilisation de Word Editor
  15. Salut à tous, Ici Kaikina . Donc je suis là pour vous présenter mon tutoriel pour rediriger vos swf. Il n'est, certes, pas parfait, mais je vous invite à le critiquer afin que je puisse l'améliorer ; Exposez vos problèmes malgré ce tutoriel, afin que je puisse rajouter comment ne pas les avoir. Le voici: Pour commencer, si cela n'est déjà fait, télécharger vos swf. Lien pack Il faut que vous ayez wamp, téléchargez-le si ce n'est pas le cas. Installez-le et cliquez sur la petite icône en bas à gauche puis "Démarrer les services", et vous avez deux possibilité : - Il devient blanc, tout va bien et on peut continuer. Ou alors vert pour les nouvelles versions. - Il devient jaune, ou orange pour les nouvelles versions, il y a quatre solutions : Fermez Skype, ou soit si vous ne voulez pas, changez le port de Skype. Pour ce faire, Skype=>Outils=>avancé=>connexion=> décochez la case qui dit d'utiliser le port 80. Panneau de configuration --> Outils d'administration--> Services : cherchez Apache 2.2, clique droit dessus, "Arrêter". Cherchez ensuite MySQL, clique droit dessus, "Arrêter". Cherchez wampapache, clique droit dessus "Démarrer", puis cherchez wampmysqld, clique droit dessus "Démarrer". Si vous ne trouvez pas ce répertoire, allez dans votre panneau de configuration et cherchez un peu partout jusqu'à trouver "Services". Fermez le logiciel "Teamwiever". Allez au répertoire suivant: wamp/bin/apache/apache2.xxxx/conf/ et modifiez le fichier "http.conf". Faites ctrl+f et cherchez "80" une fois la recherche faite, remplacez le "80" du texte par "81" et relancez la recherche jusqu'à remplacer tous les "80" en "81". Relancez Wamp. Ensuite wamp devient blanc normalement ou vert. (Attention, si vous avez fait une base de données alors que wamp était jaune ou orange, votre base de données ne sera accessible que quand vos swf ne seront pas redirigés(wamp jaune ou orange), si c'est le cas, dumpez vos databases,puis quand wamp est blanc ou vert, exécutez les sauvegardes.) Avant de continuer le tutoriel assurez-vous bien que wamp est en ligne. Passez la souris par dessus l'icône. S'il est hors ligne, cliquez sur "Passer en ligne". Ensuite il faut placer vos fichiers SWF. Allez au dossier www par une des manières : Clic droit sur l'icône wamp en bas à droite, puis Répertoire www Démarrer=> Poste de travail=> C:\ => wamp=> www Maintenant que vous êtes dans le dossier "www", placez-y le dossier dofus fraîchement téléchargé.. Vous devez donc avoir le chemin suivant: Wamp\www\dofus\lang\swf\ Et là tous vos fichiers SWF Avec hébergement Web Allez dans votre serveur web (là où se trouve vos dossiers hebergés). Allez soit dans "www" ou "public_html" ça ne changera rien. Maintenant que vous êtes dans le dossier "www" ou "public_html", Mettez-y le dossier dofus que je vous ai fait télécharger _______________________________________________________________________________________ Ceci est une config correcte, c'est la config.xml de votre dossier Dofus (le jeu). <config> <delay value="500"/> <rdelay value="3000"/> <rcount value="10"/> <conf name="En ligne"> <dataserver url="[Contenu Masqué]" priority="4" /> <dataserver url="data/" type="local" priority="3" /> <dataserver url="[Contenu Masqué] us/" priority="1" /> <dataserver url="[Contenu Masqué]" priority="0" /> </conf> <conf name="En ligne (TEST)" type="test"> <dataserver url="data/" type="local" priority="3" /> <dataserver url="[Contenu Masqué] ustest/" priority="1" /> <dataserver url="[Contenu Masqué]" priority="0" /> </conf> <cacheasbitmap> <cache element="ExternalContainer/InteractionCell" value="false" /> <cache element="ExternalContainer/Ground" value="false" /> <cache element="ExternalContainer/Object1" value="false" /> <cache element="ExternalContainer/Object2" value="false" /> <cache element="ExternalContainer/Zone" value="false" /> <cache element="ExternalContainer/Select" value="false" /> <cache element="ExternalContainer/Grid" value="false" /> <cache element="ExternalContainer/Pointer" value="false" /> <cache element="GAPI/UI" value="false" /> <cache element="GAPI/UITop" value="false" /> <cache element="GAPI/Popup" value="false" /> <cache element="GAPI/UIUltimate" value="false" /> <cache element="GAPI/Cursor" value="false" /> <cache element="mapHandler/BACKGROUND" value="false" /> <cache element="mapHandler/Cell/Ground" value="false" /> <cache element="mapHandler/Cell/Object1" value="false" /> <cache element="mapHandler/Cell/Object2" value="false" /> <cache element="mapHandler/Cell/ObjectExternal" value="false" /> <cache element="Zone/Zone" value="true" /> <cache element="Zone/Pointers" value="true" /> </cacheasbitmap> </config> lien d'accès aux fichiers = Pour hamachi : adresse IP d'hamachi suivie de /dofus/ (Ex : [Contenu Masqué]) En local : adresse IP locale suivie de /dofus/ (Ex : [Contenu Masqué]) Avec un hébergement web : lien de votre site suivi de /dofus/ (Ex : [Contenu Masqué]) Maintenant, allez chercher votre fichier lang_fr_786.swf et ouvrez-le avec le logiciel "Sothink SWF Quicker". Allez dans l'onglet "Action" et cherchez ces lignes. C.SERVER_NAME = ["213.248.126.11"]; C.SERVER_PORT = [443, 5555]; Remplacez l'IP de C.SERVER_NAME par celle où est herbergé votre serveur : Pour hamachi : Votre IP hamachi (Ex : C.SERVER_NAME = ["5.125.54.542"] En local : Votre IP locale (Ex : C.SERVER_NAME = ["127.0.0.1"]; Sur un dédié : L'IP du dédié (Ex : C.SERVER_NAME = ["128.88.548.21"]; Remplacez les ports de C.SERVER_PORT par vos ports de jeu (GAME_PORT et REALM_PORT). Cliquez sur "Exporter", remplacez l'ancien fichier, et quittez sans sauvegarder. Maintenant essayez de vous connecter en jeu (avec le serveur ON bien sûr), si vous arrivez à vous connecter, votre serveur est bien redirigé. J'espère que ce tutoriel vous a aidé, si vous avez des questions n'hésitez pas, si ça ne marche toujours pas mp moi. Ce tutoriel provient de l'utilisateur "Kaikina". Le partage de ce tutoriel est possible en citant l'auteur.
  16. Bonjour, Aujourd'hui je vous propose les files 2016 de la Team-FE, aussi, repris par Saw, que j'ai modifié de mon côté. Changelog V3.0 (Team-FE) : -Système d'étole (Avec les 4 types d'étoles) -Système de costume d'armes -Système de costume de monture -Système de liaison d'âme -Système des 7è & 8è compétences -Système du pet officiel (Meley, petit singe, Bébé némère, Bébé razador, petite araignée) -Pierres anti-magie disponibles jusque +4 -Interface de création et de sélection de personnages officielle -4 inventaires disponibles -Ajout de nombreux mobs et items (Utilisation des item_proto et mob_proto officiels avec quelques modifications) -Level 255 débloqué mais fixé à 115 dans les CONFIG -Système des targets de couleur -Ajout de nombreux costumes et coiffures -Possibilité d'acheter des items à 0 yangs -Ajout de l'effet officiel quand on drop un item. -Ajout des armures 115. -Certaines interfaces ont été traduites. -FIX du lame enchanté -Mise en place de sécurité afin d'éviter certaines injections SQL -Les games et DB sont optimisés et ont la possibilité d'être stripper pour obtenir des poids de 5.000 Ko et 7.180Ko Liste des modifications apportées sur les files (Saw) : Serveur : drop des yang's sur les moobs réglé Réglage des fichiers CONFIG Amélioration du start.sh Ajout des cshybridcrypt dans packages Correction des data find count etc.... (0 syserr à l'ouverture) Débug de la give_basic_weapon + rangement du locale_list dans l'ordre A-Z Installation MySQL_query Client : Suppression de fichiers inutiles Optimisation des lib's (beaucoup moins lourdes) On obtient un client de 1go5 au lieu de 2go6 Débug des effets d'étoles Possibilité d'appuyer sur "ENTRER" pour choisir son personnage Fix de la texture du Theowahdan Ajout de la texture du Azräel qui était invisible Ajout de la liste des GM dans la liste d'amis Fix de la texture du Seon-Pyeong Réorganisation des Inventaires Débug effets/sons des 6èmes skill's Source serveur : achats d'item à 0 yang les monstres ne contenant pas de race le sysser DB de la monarch election l'erreur de la table des pet's lors de l'ouverture du serveur la suppression des personnages. Réglage de quelques warning de compilations. (Makefile dans l'ordre A-Z) Réglage du chat global et activations sur tous les channels. Réglage du shutdown: tics did not updated (checkpoint). Fix injection sql Fix ban depuis le messenger Fix ouverture db (merci à @Darknessmt2) Fix création de guilde/injection guilde Fix d'accumulation de bonus Fix core dungeon Activation fonction "pc.change_name" fix motion pet (sysser) fix header 100 (syserr) activation 6/7 fix accumulation des bonus des pets via l'échange. Fix du Bug Aura. Fix event kill qui est déclenché deux fois (merci à @A n t 0 k) Fix d'un problème qui empêcher de changer d'item lorsque l'inventaire est plains Fix du BeltInventory Fix bug PV négative lors d'un tp/connexion Source client : Amélioration de la structure des fichiers (plus besoin de spécifié les includes/libs dans les paramètres/beaucoup plus compréhensible) Accélération du défilement des quêtes (0 secondes) Modification des "[Niv. %d" en "Lv %d" Suppression italique sur MP avec un staffien. Passage en Python 2.7 Et maintenant, ce que j'apporte de mon côté aux files : Files : Armures / Armes Kyanites et Zodiaque Biologiste universelle Multi-sélection de shop (à remplir) Bonus 6 et 7 dans l'item-proto Client : Correctif du temps restant dans les magasins Effet Berserk Prix à 0 yangs = Gratuit 999.999.999 yangs échangeables. Lisibilité du nombre de yang en échange (Séparation par ".") Ne plus avoir à consulter 2 fois le même magasin (Blanc = non ouvert / Vert = Ouvert) Détruire un Item (Inventaire) Armures / Armes Kyanites et Zodiaque Afficher le niveau des équipements dans l'inventaire (+0 à +9) Mode graphique HD Source client : Informations sur les entités Anti MobPuller // Waithack Changer la couleur des drops selon le propriétaire (rouge quand l'item ne nous revient pas) Remettre le niveau en temps réel. Détruire un Item (Inventaire) Afficher le niveau des équipements dans l'inventaire (+0 à +9) Mode graphique HD Stop collision Source serveur : Chance de lier les pierres sur les armes ou armures de 30% Chance d'insérer un diamant de 50% bonus 6-7 sur les costumes désactiver Enlevez les potions à chaque up level Cape de bravoure (100% de réussite) Les compétences passent à M1 directement dès 17 points Informations sur les entités Empêcher le buff entre joueur/staffien Remettre le niveau en temps réel Détruire un Item (Inventaire) Protection contre le kick et le Sync Hack Log MP surveillance (MySQL) Log d'échange surveillance (MYSQL) Drop de groupe en instance Bloquer n'importe quel objet, sur n'importe quelle Map sans reboot ! Anti Wall Hack Montrer un item dans le chat sans loupe magique Crash lorsqu'un objet est acheté en même temps en magasin J'espère que ce sera utile pour certains, je vous mets de suite les liens de téléchargement. Quelques images Client : Cliquez ici pour télécharger Files : Cliquez ici pour télécharger MySQL : Cliquez ici pour télécharger Source serveur : Cliquez ici pour télécharger Source client : Cliquez ici pour télécharger VDI (Utilisateur : root / Mot de passe : admin) : Cliquez ici pour télécharger Mise à jour le 04.08.2018 à 13h Cordialement, Saejin --- Download
  17. Niveau requis : Débutant Temps estimé : Entre 5 et 10 minutes Je vous propose un partage d'un séparateur de sujets (différencier les topics épinglés & non épinglés) grâce à un plugin. Ce plugin est compatible sous IPS 4.0 , 4.1 ,4.2 & 4.3. (Testé) Voici à quoi ressemble la bête : Pré-requis: Le plugin en question : Lien médiafire Tutoriel & Modification Pour continuer: Si vous avez un problème, n'hésitez pas à poser votre demande d'aide dans la section AQS Source du plugin : Invision Virus Xayah, Download
  18. Mesdames, Messieurs, Bonjour, Bonsoir, Files Metin2 2016 La Team FE ( Funky Émulation ) vous propose aujourd'hui des Files Metin2 2016 de qualité avec la majorité des systèmes de l'officiel jusqu'à aujourd'hui ( 2016 ). Les Files sont actuellement en version 3.0. Les versions 1.0 et 2.0 ne sont plus disponible au téléchargement. Ces Files sont compatibles avec les serveurs en No-IP / Hamachi / Local. Changelog 3.0 A Savoir Screenshots Téléchargements Machine Virtuelle FreeBSD 9.2 avec VirtualBox - All In One Pour aller plus loin Master Guide - Le Guide de l’Émulation Metin2 Cordialement, Team FE La vente de ces files est strictement interdite, si elles ont été mises en publique ce n'est pas pour les vendre mais pour faire profiter n'importe quelle communauté de ce travail.
  19. Bonjour, Petit tutoriel pour vous aider dans la configuration de votre serveur privé Aion et notamment dans la modification du nombre de joueurs en ligne maximum autorisé et dans la modification des rates. Ouvrez le fichier suivant : "gameserver/config/gameserver.properties" de votre core Aion. Modifier le nombre de joueurs maximum en ligne : Cherchez la ligne suivante et modifiez "100" par le nombre de joueurs en ligne maximum autorisé que vous voulez : # Maximum online players on the server gameserver.network.client.maxplayers=100 Modifier les rates : Cherchez les lignes suivantes : #---------------------------- #Rates config's: #---------------------------- #Experience gain gameserver.rate.xp=1 #Experience gain for group gameserver.rate.groupxp=1 #Item drop chance multiplier gameserver.rate.drop=1 #Quest XP rate gameserver.rate.quest.xp=1 #Quest Kinah rate gameserver.rate.quest.kinah=1 Explications : Quand on modifie les rates de son serveur, cela veux dire que vous changez par rapport à l'officiel (X * l'officiel). gameserver.rate.xp=1 Modifie le gain d'XP. gameserver.rate.groupxp=1 Modifie le gain d'XP pour le groupe. gameserver.rate.drop=1 Modifie la chance de ramasser les objets. gameserver.rate.quest.xp=1 Modifie le gain d'XP des quêtes. gameserver.rate.quest.kinah=1 Modifie le gain de Kinah reçu dans les quêtes. J'espère que ce tutoriel vous aura été utile ! En cas de questions, de problèmes ou autres, merci d'utiliser la section Aide / Questions / Support prévue à cette effet Cordialement, SgT-Fatality
  20. Voila les commandes admin utilisées dans l’émulateur Aion-Engine|Lightning, pour les autres émulateurs, Aion-core, ... c'est les mêmes à quelques commandes près. Note : Il n'y as pas de majuscules dans les commandes ou les paramètres. Une commande c'est : //commande On n’écrit pas les < > Il faut avoir un compte de rang supérieur à 0( 3 pour super admin). Commandes : Un merci c'est gratuit Cordialement,
  21. Bonjour, aujourd'hui je vous partage une API dont j'en suis l'auteur. Cette API sert pour tout ce qui est sur le client de jeu Dofus 1.29, c'est-à-dire : Les news RSS Inscription via le client de jeu Affichage du captcha qui peut-être regénéré Affichage des réponses de "Comment avez-vous connu Dofus ?" Les cadeaux (les Dofus sur la connexion sont des cadeaux d'abonnement à la base) Le statut des serveurs L'API gère aussi les différentes communautés du jeu, j'entends par la la gestion des langues (FR, EN, DE, ES, IT, PT, NL) qui sont présentes dans le client. Les news RSS Inscription via le client de jeu Les cadeaux Le statut des serveurs Pour utiliser cette API il vous faut avoir composer, composer est un gestionnaire de dépendances qui vous servira pour importer les bibliothèques nécessaire au fonctionnement de l'API. Il vous aussi posséder une base de données MySQL ou MariaBD, ces deux systèmes de base de données sont "identiques". Il vous faut activer la ré-écriture d'url sur votre serveur web. Une documentation est disponible sur le dépôt de l'API. L'API ainsi que les sources sont disponibles sur le dépôt github.com. --- Download
  22. Bonjour a tous. Dofus Version 1.17.1 (February 2007) Téléchargement : [Contenu Masqué] Cordialement, Defura. --- Download
  23. Bonjour, Granny Viewer 2.11.8 Granny 2.11.8 Granny Converter 2.11.8 Granny Viewer 2.8.41 Cordialement, History. --- Download
  24. Bonjour, Me voilà sur ce nouveau tutoriel pour vous apprendre à installer Ancestra Remake 54. Étant multi-serveur (peut gérer plusieurs serveurs), il est en effet plus compliqué à configurer que les précédents. Sans plus tarder, go go go 1 - Pré-Requis Disposer d'Ancestra Remake 54 Disposer d'une IP de connexion (Hamachi, No-Ip, dédié ...). Vous avez des tutoriels pour cela, je ferais comme si vous la connaissez Disposer de WampServer et de Navicat sauf si vous savez vous débrouiller avec PhpMyAdmin Disposer de Dofus 1.29 2 - Installer les base de données En premier lieu, l'émulateur a, pour fonctionner, besoin de deux bases de données. Je vais expliquer la procédure via Navicat, si vous utilisez PhpMyAdmin je pense que vous saurez vous débrouiller tout seul. Si ce n'est pas déjà fait, commencez par installer Wamp & Navicat. Lancez Wamp puis Navicat en attendant que Wamp passe au vert dans votre barre des tâches. Si Wamp ne passe pas vert (vous pouvez passer cette étape si c'est le cas), le problème vient probablement d'une interférence avec skype. Dans skype: Outils -> Options -> Avancées -> Connexion -> Décocher "Utiliser les ports 80 et 443 comme alternative". Redémarrez Skype & Wamp [*]Ouvrez Navicat, cliquez sur Connection -> MySQL [*]Mettez seulement localhost à Connection Name et un mot de passe de votre choix à Password. Ne touchez pas à ce qui est déjà rempli, faites Ok [*]Double cliquez sur localhost normalement apparu dans la colonne de gauche de Navicat. (Afin d'ouvrir la connection) [*]Click droit sur localhost (votre connection), puis clickez sur New Database [*]Ecrivez ancestra_realm dans Enter database name puis clickez sur OK. [*]Répétez la même opération pour une bdd du nom de ancestra_game [*]Comme pour la connection, double clickez sur vos deux bases de données afin de les "ouvrir" [*]On va maintenant importer des données dans nos deux bdd à partir de fichiers .sql: Click droit sur ancestra_realm, puis Execute Batch File et ciblez AncestraR_Realm.sql contenu dans le dossier AR54/BDD, puis faites Start [*]Répétez la même opération pour remplir ancestra_game à partir du fichier AncestraR_Game.sql, toujours situé dans le même dossier. Vous voilà maintenant avec vos deux bases de données crées, remplies, prêtes mais ... non à jours J'vous jure, j'vous ai pas fait faire de la *****, juste que les développeurs d'AR ont dû rectifier des choses sur les bases de données, et au lieu de mettre à jour les deux gros patchs qu'on vient d'exécuter, ont mis chaque rectification dans un fichier .sql à part. Tous ces fichiers .sql, vous pouvez les trouver dans le sous dossier BDD/Patchs. Attention ! Vous ne devez pas les exécuter n'importe comment. Vous pouvez observer que le nom de chaque fichier suit cette logique: AncestraR_Realm/Game - Patch revN°Patch - Infos sur contenu.sql Realm/Game correspond à la bdd sur laquelle doit être appliqué le patch. N°Patch correspond au numéro du patch (ils sont tous numérotés) Infos sur contenu correspond à quelques infos sur le contenu du patch. Vous devez exécuter tous ces patchs en faisant attention à le faire sur la bonne base de données, et dans l'ordre croissant des numéros. Exemple pour la db game: AncestraR_Game - Patch rev2 - Pets.sql en premier AncestraR_Game - Patch rev3 - Defenders of resources.sql en deuxième ... Au boulot ! Une fois ceci fait, vous aurez vos deux bases de données enfin prêtes et complètes. Nous pourrons alors passer à la configuration de l'émulateur en lui même 2 - Survol du fonctionnement d'un Emulateur La particularité d'AR54 qui m'a poussé à faire un tuto sur son installation (alors qu'il y a déjà des tutos pour d'autres versions d'AR), c'est que la différence de fonctionnement entre cette version et celles antérieures complique sa configuration. Voilà comment fonctionne normalement un émulateur, dissocié en deux parties realm et game : Le client se connecte sur la partie realm. Il choisit son serveur, et le realm lui renvoi l'ip et le port du game gérant le serveur demandé. Le client coupe alors la connection avec le realm pour se connecter au game Le game gère tout le reste du jeux. Il doit néanmoins communiquer avec le realm pour avoir certaine données. Dans les versions précédentes, le multi-serveur n'était pas géré: on ne pouvait alors avoir qu'un serveur, et il n'était plus utile d'avoir cette organisation avec une application realm et une autre pour chaque serveur. Les développeurs ont donc fusionné ces deux applications en une seule. De cette façon, le client restait tout le temps connecté sur la même application (pas tout à fait en réalité, mais on entrerait dans les détails techniques). Au niveau de la configuration; on n'avait qu'une config pour une application, avec une ip & un port à renseigner pour l'unique application. Avec le multi-serveur, les développeurs ont du dissocier le realm et le game : Un seul realm (serveur de connection), et un game par serveur. Il faut donc à présent une config par appli' (deux pour un seul serveur), et des ips & ports en plus. En résumé, il nous faut: L'ip du realm et son port de connection (celui sur lequel le client se connecte) L'ip de chaque serveur & leur port de connection (donnés par le realm au client). Pour ne pas compliquer les choses, nous allons gérer qu'un serveur Le port de communication utilisé entre le realm et les games. L'identifiant de chaque game ; c'est avec celui-ci que le realm s'assure qu'il à affaire aux games attendus. (Sinon n'importe quel personne tierce pourrait connecter son propre game modifié) 3 - Configurer Ancestra Remake 54 La partie précédente n'était pas vraiment prévue, mais j'ai trouvé intéressant de parler du fonctionnement de l'émulateur, ça peut aider certains à comprendre certains éléments. Bon, la première étape est de faire connaître au realm notre game. Et une table de notre db realm est prévue pour cela. Une table ??? Kézako !? Voilà une nouvelle notion pour nous, jeunes padawans que nous sommes. Une table n'est rien d'autre qu'une partie d'une base de données, regroupant donc un certains nombre d'informations à propos d'une chose précise, informations organisées comme un tableau. D'où le nom table, qui en anglais signifie tableau. 1 - Base de Données Rendez vous dans ancestra_realm Double clickez sur la table gameservers Une fenêtre s'ouvre alors. Voilà que s'affiche le contenu de notre table. L'unique ligne affichée devrait être celle-ci : Colonnes en italiques id | ServerIP | ServerPort | State | ServerBDD | ServerDBName | ServerUser | ServerPassword | key 1 | 127.0.0.1 | 5555 | 0 | 127.0.0.1 | ancestra_game | root | | server1 L'id correspond à l'id du serveur. Vous pouvez trouver tous les fichiers d’emblème des serveurs dans Dofus/clips/artworks/servers. Leur nom correspond à leur id. Pour ma part je m'en fou un peu donc je laisse 1. IP de la machine qui aura le game. Donc votre ip hamachi/no-ip/dédié ou 127.0.0.1 si vous voulez tester en localhost. On laisse aussi 5555 au ServerPort, c'est ce port ainsi que la serverIP que le realm enverra au client pour qu'il se connecte au game. State, c'est l'état du serveur: 0 pour hors ligne, 1 en ligne, 2 sauvegarde. On laisse 0, le realm s'occupe de le mettre à 1 quand il reçoit la connection du game. ServerBDD ; l'ip de notre db game. S'il est sur la même machine que le game vous pouvez laisser 127.0.0.1, sinon mettez son ip. ServerDbName ; le nom de la db game correspondante, on laisse ancestra_game (sauf si vous l'avez appelé autrement) ServerUser ; le nom d'utilisateur de la connection à la db. Si vous ne l'avez pas changé depuis l'installation, c'est toujours root ServerPassword ; le mot de passe de la connection à la db. Si vous n'en avez pas mit, il y en a pas. key ; c'est la clé qui identifie le game & qu'il devra donner au realm. Je décide de la laisser telle quelle, gardez la en mémoire si vous la changez. 2 - Configuration du realm A présent, direction AR54/Realm/Realm_Config.txt : REALM_PORT : Port de connection à mettre dans la config.xml, on va prendre 444 REALM_COM_PORT : Port de communication entre le realm & les game. On prend 489 Je vous laisse configurer les identifiants de votre db realm 3 - Configuration du game Direction AR54/Game/Game_Config.txt: REALM_IP : l'ip hamachi/no-ip/dédié de la machine hébergeant le realm. Configurez l'accès à la db realm. Comme pour la partie db, mettez 127.0.0.1 si la db est sur la même machine que le game. HOST_IP : Ip hamachi/no-ip/dédié de la machine hébergeant le game. AUTH_KEY : La clé que vous avez indiqué dans la colonne key de la db GAME_PORT: Le port de connexion du game, que vous avez indiqué dans la colonne ServerPort COM_PORT : Port de communication entre le game & le realm. Il doit être identique à celui que nous avons mis dans la config realm, soit 489 PLAYER_LMIT : Ne pas laisser -1, il provoque un bug à la connexion au serveur (Merci à Defense pour l'infos). Mettez donc une autre limite de joueurs, comme 100. Configurez l'accès à la db game de la même façon que pour la realm. Normalement, vous avez à présent Ancestra Remake bien installé et configuré. Il ne reste plus qu'à indiquer au client Dofus l'ip et le port de connexion du realm. 4 - Configuration du client DOFUS Ne vous inquiétez pas, c'est beaucoup plus simple que pour l'émulateur. Direction Dofus/config.xml, remplacez tout le contenu par ceci : <config> <delay value="500"/> <rdelay value="3000"/> <rcount value="10"/> <conf name="En ligne"> <connserver ip="Adresse ip du serveur" name="Nom de votre serveur" port="Port du realm"> <dataserver url="data/" type="local" priority="3" /> <dataserver url="[Contenu Masqué]" priority="1" /> <dataserver url="[Contenu Masqué]" priority="0" /> </conf> <conf name="En ligne (TEST)" type="test"> <dataserver url="data/" type="local" priority="3" /> <dataserver url="[Contenu Masqué]" priority="1" /> <dataserver url="[Contenu Masqué]" priority="0" /> </conf> <cacheasbitmap> <cache element="ExternalContainer/InteractionCell" value="false" /> <cache element="ExternalContainer/Ground" value="false" /> <cache element="ExternalContainer/Object1" value="false" /> <cache element="ExternalContainer/Object2" value="false" /> <cache element="ExternalContainer/Zone" value="false" /> <cache element="ExternalContainer/Select" value="false" /> <cache element="ExternalContainer/Grid" value="false" /> <cache element="ExternalContainer/Pointer" value="false" /> <cache element="GAPI/UI" value="false" /> <cache element="GAPI/UITop" value="false" /> <cache element="GAPI/Popup" value="false" /> <cache element="GAPI/UIUltimate" value="false" /> <cache element="GAPI/Cursor" value="false" /> <cache element="mapHandler/BACKGROUND" value="false" /> <cache element="mapHandler/Cell/Ground" value="false" /> <cache element="mapHandler/Cell/Object1" value="false" /> <cache element="mapHandler/Cell/Object2" value="false" /> <cache element="mapHandler/Cell/ObjectExternal" value="false" /> <cache element="Zone/Zone" value="true" /> <cache element="Zone/Pointers" value="true" /> </cacheasbitmap> </config> Remplacez de la ligne suivante par ce qui est demandé. <connserver ip="Adresse ip du serveur" name="Nom de votre serveur" port="Port du realm"> Si vous avez bien suivi ce tutoriel, vous devriez normalement mettre 444 pour le port du realm. A présent que tout est en place, il ne reste qu'à lancer l'émulateur : En premier le Realm en lançant AR54/Realm/start.bat puis le Game en lançant AR54/Game/start.bat. Et voilà, distribuez la config à vos joueurs, et votre serveur est en place ! Merci de respecter ce tutoriel qui m'a prit beaucoup de temps. Ainsi, je vous demanderai de ne pas le copier autre part et d'utiliser la section Aide / Question / Support si vous rencontrez des problèmes avec l'émulateur
×

Information importante

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