Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'a corriger'.



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
  • Corbeille & Archives
    • Archives (FR...)
    • Archives (INT...)
  • 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

344 résultats trouvés

  1. 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,
  2. 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
  3. 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
  4. 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
  5. Comme j'ai dis sur ma dernière Poste que je vais essayer d'ajouter ou de correcter des trucs / bugs sur les files 2016 Donc le premier bug que j'ai eu c'est un bug concernant les Bonus 6&7 Que tu ne peux pas bouger les bénir avec liberté dans l'inventaire et ça ce fait car les bénirs ne sont pas marqués dans les protos ou un truc comme ça je ne sais pas moi mdr Anyway je viens de correcter les protos vous devez juste faire du copier coller ^^' Installation : Connectez-vous sur votre client FTP Rédigez-vous vers usr/metin2/db Remplacez vos item_proto.txt et l'item_names.txt par les miens dépackez votre local_fr dans le pack du client remplacez votre itemèproto par le mien repackez le fichier local_fr et rebootez votre serveur ^^ Téléchargement => [Contenu Masqué]
  6. 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
  7. 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.
  8. 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
  9. 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,
  10. 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
  11. Bonjour a tous. Dofus Version 1.17.1 (February 2007) Téléchargement : [Contenu Masqué] Cordialement, Defura. --- Download
  12. Bonjour, Granny Viewer 2.11.8 Granny 2.11.8 Granny Converter 2.11.8 Granny Viewer 2.8.41 Cordialement, History. --- Download
  13. 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
  14. Bonjour, Je viens vous partager un CMS développer en Laravel 5.1 par Synthx sous un design réaliser par Nicow. Fonctionnalité : Pages classiques (CGU, Règlement, Staff, News, etc...) Gestion de compte Ladder Mises à jours Achat de points (Starpass) Mode VIP (désactivable) Loterie Vote par IP Confirmation du vote avec vérification de la valeur OUT Boutique avec stock Téléchargement : GitHub --- Download
  15. Bonjour, Avant toute chose, je précise que ce partage m'a été demandé par Zano directement (on me pourra pas me dire "wesh dou ta l'droit d'partage comme ça?") Voici le partage officiel de Zano, via GitHub, d'Astria Map Editor V2, avec les sources et aussi une version compilée, en mode totalement offline (pas besoin de wamp). Voici directement le copié/collé de son partage sur un autre forum (aucun Hide en place car ceci n'est pas de moi mais de Zano, merci quand même de poster un remerciement à son égard) Je pense qu'il serait judicieux, pour ceux ayant les compétences, de travailler directement sur GitHub afin de continuer son travail. Encore merci à lui pour ce cadeau --- Download
  16. Bonjour, bonsoir, Aujourd'hui, je vais vous présenter une fonction qui peut avoir plus ou moins d’intérêt pour tout un chacun ! En effet, cette fonction permet au jeu de savoir quand est-ce que la fenêtre d'entrepôt s'ouvre ou se ferme. À première vue, il y a peu d'utilité, mais dès lors que vous savez quoi en faire, cette fonction peut sévère immensément utile ! (Voir vidéo ci-bas) Avant de commencer, quelques précisions : Je ne suis pas l'auteur de cette fonction ! VegaS en est l'auteur et le code que je vous présente est le même code que celui qu'il a partagé, il est tel-quel ! Je ne fais que traduire le tutoriel. Effectuez une sauvegarde préventive de vos fichiers ! Si jamais vous faites une erreur, toujours garder des fichiers antérieurs à la modification. Cette fonction peut rendre vos scripts voire des scripts déjà existants plus spécifiques ! L'utilisation que vous ferez de cette fonction peut varier d'une personne à l'autre selon ses idées et ses compétences. C'est parti ! Voilà pour le tutoriel ! Pour les curieux, voici une vidéo tournée ce soir même pour vous montrer un des usages possible de cette fonction ! Merci de votre lecture et bonne journée / soirée !
  17. Bonjour, Voici donc quatre maps après une très soudaine absence. Du faite que ces dernière sont très petite, elle ne sont pas très adaptés au combats, et devrons donc faire office de map de départ ou de map shop. Les triggers n'ont pas été fait, je suis navré. Téléchargement : ICI Cordialement, --- Download
  18. Salut Salut !! J'ai hésité à mettre ce mini-tuto dans la partie programmation, mais vu que celui pour .shop est dans cette partie, alors je fait pareil ! Donc, comme le dit le titre, je vais vous expliquer dans mon deuxième tuto comment créer une commande .vote, permettant d'afficher un lien pour vote. Le truc parfait pour les flemmards quoi ! Et vu qu'il y en as pas mal, ça peut être bien pour inciter à voter ~ Pré-Requis ~ • Eclipse • Vos Sources ~ Étapes ~ 1 • Ouvrez Eclipse • Ouvrez le dossier "Sources => src => game => GameThread" • Faites Ctrl + F, collez : if(msg.length() => Recherchez 2 Vous devrez tomber sur : if(msg.length() > 7 && msg.substring(1, 8).equalsIgnoreCase("command")) { SocketManager.GAME_SEND_MESSAGE(_perso, "Commandes Disponibles : \n.start\n.infos \n.save\n.shop\n.vote", Ancestra.CONFIG_MOTD_COLOR); return; } Ne faites pas attention si j'ai des commandes en plus. Bref je n'ai jamais vraiment étudié le java sur des tutos [Mais je compte le faire] donc je ne vais pas pouvoir vous dire à quoi tout correspond. Prenons cette ligne: if(msg.length() > 7 && msg.substring(1, 8).equalsIgnoreCase("command")) "7" = Nombre de lettres composant la commande sans le "." "1" = Toujours 1 : le petit "." "8" = Nombre de lettres composant la commande avec le "." "command" = Nom de la commande En résumé: Si ("if" en début de ligne) un mot comprenant un point suivit d'un mot "command" composé de 7 lettres, et donc si le tout fait 8 lettres, est tapé, alors ... "Alors" représente la suite encadrée de "{ - }" : { SocketManager.GAME_SEND_MESSAGE(_perso, "Commandes Disponibles : \n.start\n.infos \n.save\n.shop\n.vote", Ancestra.CONFIG_MOTD_COLOR); return; } Tout ce qui part de "SocketManager.GAME,etc..." sont (on va dire) les instructions à exécuter. Elles sont TOUJOURS entre les "{ - }" ===================================== Si vous voulez en savoir plus, -Walaka- explique beaucoup mieux que moi ici. Bref, a la suite de la commande .command par exemple, collez: if(msg.length() > 4 && msg.substring(1, 5).equalsIgnoreCase("vote")) { } Pas la peine de ré-expliquer, vous avez compris je pense. Maintenant, il faut mettre les "instructions" ! Où ça ? Donc, on veux afficher un lien.Les codes pour cela sont (vous l'aurez compris si vous avez examiné la commande .command) : SocketManager.GAME_SEND_MESSAGE(_perso, " Texte à afficher", Ancestra.CONFIG_MOTD_COLOR); Sachant que Ancestra.CONFIG_MOTD_COLOR Correspond à la couleur avec laquelle le message doit être écrit (couleur changeable dans la config.txt à la ligne "MOTD_COLOR" ; les codes de couleurs sont dispos sur le net ), trouvable dans la config d'Ancestra (Ancestra.CONFIG) 3 En résumé: if(msg.length() > 4 && msg.substring(1, 5).equalsIgnoreCase("vote")) { SocketManager.GAME_SEND_MESSAGE(_perso, " Vive Funky'Emu ! ", Ancestra.CONFIG_MOTD_COLOR); return; } Maintenant, le lien ! Une fois encore, c'est un code qu'il faut pour afficher le lien, et non les simples : [url]adresse[/url] Mais plutôt: texte Ce qui nous donne : if(msg.length() > 4 && msg.substring(1, 5).equalsIgnoreCase("vote")) { SocketManager.GAME_SEND_MESSAGE(_perso, "Votez pour nous ! => ICI ", Ancestra.CONFIG_MOTD_COLOR); return; } Voilà Voilà ! Si vous voulez vous pouvez rajouter à la suite du texte de la commande .command "\n.vote"; de cette façon la commande sera affichée lors de l'exécution de l'autre commande ".command". Un peux compliqué ? C'est bien ça vous fait réfléchir Petit Bonus Pour personnaliser un poil l'écriture: Met en gras \n : saute une ligne Pour tout problème MP moi, n'hésitez pas a critiquer du moment que c'est fondé Je vous laisse distribuer ce petit tutoriel explicatif du moment que vous mettez mon nom ...
  19. Bonjour Je vous fais un cours tutoriel sur l'extraction des SWF de Dofus l'officiel, ce tutoriel va surtout servir à compléter le tutoriel que je vais réaliser prochainement qui s'intitulera "Tutoriel SWF, Adapter les SWF de Dofus l'officiel pour 1.29" et donc avant de réaliser un tel tutoriel il faut bien que je vous apprenne comment extraire les fichiers D2P de Dofus l'officiel pour les adapter ensuite sur 1.29 donc pour votre serveur ! Je précise que le tutoriel est entièrement de moi. À l'heure où j'écris ces lignes je le commence tout juste, j'autorise le partage partout je suis POUR essayer de faire avancer la communauté et ne rien garder dans mon coin surtout que je quitte l'émulation Dofus ce sont en quelque sorte mes derniers cadeaux ! On va commencer ce mini-tutoriel ! Étape 1 : Télécharger le décompilateur D2P Ici, puis une fois téléchargé je vous invite à extraire le contenue du décompilateur sur votre bureau avec Winrar pour s'y retrouver plus facilement. C'est quoi un décompilateur ? un décompilateur sert à convertir un format dans un autre, par exemple avec les SWF de Dofus l'officiel a comme format de base D2P comme je vous le disais juste avant, grâce au décompilateur on va convertir les fichiers D2P en format SWL et ensuite en SWF ! Ah mais c'est quoi un format , un format et une extension de fichier, par exemple regardez une image et regardez la fin, en général c'est mon_image.png le .png est le format, il y a bien sûr énormément d'extensions mais c'est pas le but de ce tutoriel de vous les apprendre ! Et pourquoi aussi on convertit le fichier D2P en SWL puis en SWF ? Il y a trop de questions à se poser mais c'est sûrement la meilleur solution. Étape 2 : Rendez-vous dans votre dossier Dofus 2 (dofus l'officiel), et si vous ne l'avez pas, installez le Dofus officiel. Étape 3 : Une fois dans le dossier de Dofus 2 rendez-vous à ce chemin on va prendre pour exemple un D2P bien précis : C:\Program Files (x86)\Dofus2\app\content\gfx\sprites\bones0.d2p Étape 4 : Copiez/collez bones0.d2p sur votre bureau. Étape 5 : Rendez-vous sur votre décompilateur et ouvrez : TenkUnpacker.exe Étape 6 : Cliquez sur Parcourir et trouvez le fichier bones0.d2p qui est normalement sur votre bureau si vous m'avez écouté, cliquez sur Ouvrir et pour finir Extraire ! Maintenant si vous regardez dans votre dossier du décompilateur un dossier appelé "data" s'est créé. C'est très intéressant car il contient tous les fichiers extraits du fichier D2P en format SWL vous suivez toujours ? Étape 7 : Donc on a ce fameux dossier avec pleins de fichiers au format SWL, on ne les touche surtout pas, et maintenant ont va simplement ouvrir le logiciel TenkSwl.exe qui va enfin convertir tout seul les fichiers SWL en SWF ! Étape 8 : Il n'y a pas d'étape 8 si vous avez suivi le tutoriel, maintenant il vous reste plus qu'à vous rendre dans le dossier de votre décompilateur et de regarder le deuxième dossier qui s'est créé ! Appelé "data2" et tous les fichiers SWF se trouvent tout simplement dedans. Le tutoriel est terminé, vous avez extrait les fichiers de Dofus l'officiel en format D2P en SWF ! Une question ? Je suis la. Un merci je vous en remercie, un message sur le sujet et encore mieux. [Tutoriel SWF] Adapter les fichiers SWF de Dofus l'officiel pour Dofus 1.29 : À venir
  20. Bonjour à tous ! Je vais vous expliquer comment changer les rates des mobs et du forgeron ainsi que les caractéristiques des mobs. Pour changer les rates des mobs(monstres) il faut aller dans votre bd puis ouvrir la base de donnée player et ouvrir mob_proto. Dans mob_proto vous pouvez changer les drop de yang,d'xp et et probabilité de drop d'objets en changeant les valeurs dans les colonnes comme sur ce screenshot qui montre comment changer le drop (exp,drop yangs plus bas): ASTUCE pour ne pas modifier n'importe quel monstre allez dans la colonne folder et tout les monstres son classé de haut en bas /!\ Si vous voulez modifier le rates X de tout les monstre vous serez obligé de changer toute la colonne! Ici le drop d'argent au minimum est au maximun avec l'exp. Attention: mettre 99999999 d'exp ne vous en donnera pas forcément 99999999 mais vous en donnera plus que si vous mettez 44444444 cela vous en donnera environs 15% d'exp je dirais (j'ai pas vérifié) le maximun est de 4294967295. Le drop de yang se fait pour tout un groupe de mobs. Exemple: vous avez mis 9999999 et vous avez de tas de pieces ces de tas auront une valeur de 3333333 yangs .Voici le screen qui vous permettra de mieux vous reperez dans la table de modification: Pour modifier les rates du forgeron (selon Legolas) allez dans votre db/player/refine_proto, mettez 100 pour avoir 100% de chance de réussite et 9999 fais la meme chose mais c'est le chiffre maximum que l'on peut mettre, voici le screen: [Rajouté parce-que vous le valez bien ] Pour changer ou enlever des items du forgeron, tout ce passe ici, ici ,ici et ici pendant que moi j'attaquerais par l'..... euh :blush: Tout ce passe dans les première colonne c'est à dire VnumX countX (X représentant un chiffre) Vnum sert à mettre l'objet nécessaire à l'up et count le nombre d'unités. Exemple: Vnum0 count0 19 10 =il faut 10 épée lvl +9 pour up l'objet. Pour enlever les objets vous mettez zéro dans les colonnes (qui sont par couples comme vous avez remarqué ... certainement...) donc vous mettez zéro dans toutes (ou certaines si vous voulez juste en enlever quelques un) VnumX et countX. Pour en rajouter vous changez le nombre dans count et si il reste de la place dans certaines colonne Vnum et count vous mettez un Vnum de l'objet que vous voulez dans la colonne Vnum et dans sa soeur count le nombre. Pour changer le ou les objets... Vous allez voir dans la colonne Vnum seulement et vous changez le vnum. Ze screen Je vous conseille de cliquer sur l'image pour aller la voir de plus prêt avec une bonne qualité largement supérieure à celle-ci (je ne m'attendais pas à un si mauvais résultats... pardonnez ma pauvre âme damnée) Revenons en au mobs.Je vais maintenant vous dire comment modifier leurs stats comme: 0 de défense, 1 pv sensible/insensible/résistance a l'épée à deux mains/épée à une main probabilité de stunt (assomement) ,etc,... Pour ce qui et de la résistance si vous voulez que le mob ai pour faiblesse l'épée mettez dans la colonne correspondante -X pour qu'il résiste ne mettez pas le "-" devant (bien entendu "X" représente le chiffre que vous allez mettre:)) voila le premier screen (il y en a 5 en tout): ET n'oubliez pas de rebooter votre serveur quand vous avez fini vos modifications grâce à la commande reboot et de sauvegarder vos modifications dans Navicat grâce à la commande Export registry file... En espérant avoir aidé ! Voila! Pour toutes questions, rendez-vous dans la catégorie Aide/Questions/Support Source : zebigboss512
  21. Salut , je vous partage emulateur symbioz 2.30 de skinz Lien : ICI l'emulateur est codé en C#, le site d'origine du partgae c'est DoE emulateur code par Skinz PS : Certaines parties sont a refaire: (les tools sont assez sale :3 et le fonctionnement de parser d'effet de sorts et d'item) Il est loin d'être terminé, et il y a beaucoup de travail a faire, fonctionne avec le client dofus 2.30 --- Download
  22. Bonjour à tous ! Pack contient : SWF de la map Position de combat Tutoriel d'insertion de la map. (C'est pas trop un tuto'. Enfin... Un tuto' très vite fais !) [Contenu Masqué] Screenshot : --- Download
  23. Cadeau 2016 ! Émulateur : Source + Exécutable + Bdd (V1) : Télécharger Changelogs : --- Download
  24. Bonsoir Voilà CyonEmu 0.2.1 que j'ai un peu modifié / amélioré: Codé en Java par iamnothing et basé sur Ancestra Remake, il est d'après les avis des utilisateurs assez bien débug & sans trop de bugs. Personnellement, je n'ai pas encore trop pu le tester mais il me semble pas mauvais. Avant de commencer, je tiens à dire que seul la rev2 peut être partagée sur d'autres forums. ~ Changelog officiel ~ ~ Mes modifs ~ ~ Téléchargement ~ Sources comprises. Seul la rév2 peut être partagée sur d'autres forums - Lien LocalHostr Rev3 - - Lien LocalHostr Rev2 - ~ Screens ~ Pour les sceptiques, j'ai préparé quelques screens sur les quêtes : Je précise qu'il est normal que les récompenses ne sont pas en accord avec celles inscrites sur la quête, c'est moi qui ai mis n'importe quoi dans la db --- Download
  25. Citation de Azendar. [glow=red]Lien remplacé et fonctionnel, merci Ebrius.[/glow] ---------------------------------------------------------------------- Je vous partage le célèbre crack.exe de Ygg pour éviter de mettre la licence. Je ne me souviens plus qui a fait ce magnifique crack, m'enfin, je souhaite vous le partager quand même. crack.exe à mettre dans votre dossier d'Ygg. *Modification* Lien : clique ici (MegaU) VirusScan : clique ici (VirusTotal) Cordialement, Spyrow. --- Download
×

Information importante

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