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

Kuroro

Membre
  • Compteur de contenus

    442
  • Inscription

  • Dernière visite

  • Jours gagnés

    9

Tout ce qui a été posté par Kuroro

  1. Kuroro

    Création level guilde

    J'ai pas compris ta requête mais si tu veux changer le level pour créer une guilde je te joins les informations ci-dessous: guild_manager.quest level_limit = 40
  2. Centre de Téléchargement Télécharger ( Interne ) Bonjour à tous, Un petit aperçus du contenu des fichiers: [Hidden Content] Voici donc les sources + file + client pour vous : Miroir Source : FLIEGE
  3. Kuroro

    Bonus 100% de liaison

    char_item.cpp case USE_ADD_ATTRIBUTE : Tu as en dessous: if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()] Tu édites par: if (number(1, 100) <= g_iAddBonusChance) // Si tu veux relier ça aux config mais ça implique d'autre modification. if (number(1, 100) <= 100) // Si tu veux modifier ça en brute. Pour les orbes, case USE_ADD_ATTRIBUTE2 : Pareil, en dessous: if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()]) Tu édites par: if (number(1, 100) <= g_iAddBonusChance5) // Si tu veux relier ça aux config mais ça implique d'autre modification. if (number(1, 100) <= 100) // Si tu veux modifier ça en brute.
  4. /* minIni - Multi-Platform INI file parser, suitable for embedded systems * * Copyright (c) CompuPhase, 2008-2012 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * [Hidden Content] * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * * Version: $Id: minIni.h 44 2012-01-04 15:52:56Z [email protected] $ */ #ifndef MININI_H #define MININI_H #include "minGlue.h" #if (defined _UNICODE || defined __UNICODE__ || defined UNICODE) && !defined MININI_ANSI #include <tchar.h> #define mTCHAR TCHAR #else /* force TCHAR to be "char", but only for minIni */ #define mTCHAR char #endif #if !defined INI_BUFFERSIZE #define INI_BUFFERSIZE 512 #endif #if defined __cplusplus extern "C" { #endif int ini_getbool(const mTCHAR *Section, const mTCHAR *Key, int DefValue, const mTCHAR *Filename); long ini_getl(const mTCHAR *Section, const mTCHAR *Key, long DefValue, const mTCHAR *Filename); int ini_gets(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *DefValue, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename); int ini_getsection(int idx, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename); int ini_getkey(const mTCHAR *Section, int idx, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename); #if defined INI_REAL INI_REAL ini_getf(const mTCHAR *Section, const mTCHAR *Key, INI_REAL DefValue, const mTCHAR *Filename); #endif #if !defined INI_READONLY int ini_putl(const mTCHAR *Section, const mTCHAR *Key, long Value, const mTCHAR *Filename); int ini_puts(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *Value, const mTCHAR *Filename); #if defined INI_REAL int ini_putf(const mTCHAR *Section, const mTCHAR *Key, INI_REAL Value, const mTCHAR *Filename); #endif #endif /* INI_READONLY */ #if !defined INI_NOBROWSE typedef int (*INI_CALLBACK)(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *Value, const void *UserData); int ini_browse(INI_CALLBACK Callback, const void *UserData, const mTCHAR *Filename); #endif /* INI_NOBROWSE */ #if defined __cplusplus } #endif #if defined __cplusplus #if defined __WXWINDOWS__ #include "wxMinIni.h" #else #include <string> /* The C++ class in minIni.h was contributed by Steven Van Ingelgem. */ class minIni { public: minIni(const std::string& filename) : iniFilename(filename) { } bool getbool(const std::string& Section, const std::string& Key, bool DefValue=false) const { return ini_getbool(Section.c_str(), Key.c_str(), int(DefValue), iniFilename.c_str()) != 0; } long getl(const std::string& Section, const std::string& Key, long DefValue=0) const { return ini_getl(Section.c_str(), Key.c_str(), DefValue, iniFilename.c_str()); } int geti(const std::string& Section, const std::string& Key, int DefValue=0) const { return static_cast<int>(this->getl(Section, Key, long(DefValue))); } std::string gets(const std::string& Section, const std::string& Key, const std::string& DefValue="") const { char buffer[INI_BUFFERSIZE]; ini_gets(Section.c_str(), Key.c_str(), DefValue.c_str(), buffer, INI_BUFFERSIZE, iniFilename.c_str()); return buffer; } std::string getsection(int idx) const { char buffer[INI_BUFFERSIZE]; ini_getsection(idx, buffer, INI_BUFFERSIZE, iniFilename.c_str()); return buffer; } std::string getkey(const std::string& Section, int idx) const { char buffer[INI_BUFFERSIZE]; ini_getkey(Section.c_str(), idx, buffer, INI_BUFFERSIZE, iniFilename.c_str()); return buffer; } #if defined INI_REAL INI_REAL getf(const std::string& Section, const std::string& Key, INI_REAL DefValue=0) const { return ini_getf(Section.c_str(), Key.c_str(), DefValue, iniFilename.c_str()); } #endif #if ! defined INI_READONLY bool put(const std::string& Section, const std::string& Key, long Value) const { return ini_putl(Section.c_str(), Key.c_str(), Value, iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, int Value) const { return ini_putl(Section.c_str(), Key.c_str(), (long)Value, iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, bool Value) const { return ini_putl(Section.c_str(), Key.c_str(), (long)Value, iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, const std::string& Value) const { return ini_puts(Section.c_str(), Key.c_str(), Value.c_str(), iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, const char* Value) const { return ini_puts(Section.c_str(), Key.c_str(), Value, iniFilename.c_str()) != 0; } #if defined INI_REAL bool put(const std::string& Section, const std::string& Key, INI_REAL Value) const { return ini_putf(Section.c_str(), Key.c_str(), Value, iniFilename.c_str()) != 0; } #endif bool del(const std::string& Section, const std::string& Key) const { return ini_puts(Section.c_str(), Key.c_str(), 0, iniFilename.c_str()) != 0; } bool del(const std::string& Section) const { return ini_puts(Section.c_str(), 0, 0, iniFilename.c_str()) != 0; } #endif private: std::string iniFilename; }; #endif /* __WXWINDOWS__ */ #endif /* __cplusplus */ #endif /* MININI_H */
  5. Kuroro

    Probleme table

    T'es sur du mysql 5.6?
  6. I do not have this problem, give me your InstanceBase and InstanceBaseEffect.cpp
  7. Centre de Téléchargement Télécharger ( Interne ) Bonjour à tous, Je viens vous partagez un système que j'ai conçus il y a environs 3 mois Il vous permettra de cacher n'importe quel type de costume (coiffure, costume, étoles, costume arme) tout ça dans l'option de jeu. Lisez bien l'information .txt que j'ai fais dans le tutoriel. Aperçus du système: [Hidden Content] Avant de commencer : Pré-requis : Vos sources serveur Module CFG Source: Kuroro
  8. Centre de Téléchargement Télécharger ( Interne ) Salut à la communauté, Je viens vous partagez un module du nom de "CFG" qui vous servira pour beaucoup de chose, notamment la sauvegarde ou la génération de fichier .cfg, ça peut servir pour énormément de chose. Un petit exemple du principe, imaginons que vous ayez ajouté une option vous permettant de basculer entre le jour et la nuit, grâce au module "cfg", vous aurez alors la possibilité d'enregistrer l'environnement (jour / nuit ) en cour d'utilisation via un fichier cfg Pré-requis : Source client, et un client. Source de la création du module : LegendOfMetin - SRC
  9. Pour les personnes ayant achetée cette version, merci de me contacter en message privé sur discord afin que je puisse vous transmettre la v2 (gratuitement). [Hidden Content]
  10. Centre de Téléchargement Télécharger ( Interne ) Bonjour, Je viens vous partager mon savoir sur ce que j'ai découvert récemment sur l’encryption des packets. Certains risquent de me dire, mais cela a déjà été partagé par MartySama. En réalité, celui-ci n'est pas complet, il a oublié un facteur très important que je vous présenterai par la suite. Mais du coup, vous devez vous demander ce qu'il ce passe si on désactive l'encryption des packets, par la manière dont il l'a partagé ? Et bien, on risque d'avoir une surcharge au niveau des buffers, ce qui risque d'entraîner des crashs game sans erreur ou encore des bugs assez étranges. J'ai pu apercevoir différents bugs étranges. Le plus fréquent, c'était le fait qu'on ne puisse plus exécuter une action qui nécessite un accord avec le game. Exemple, au bout de 15 minutes de jeu avec quelques joueurs connectés, certains ne pourront plus cliquer sur un item, ou d'autres ne pourront plus parler, etc ... Il y a eu beaucoup de débats sur ça, j'ai pris des avis à gauche et à droite et j'en ai tiré une problématique. Pré-requis: Vos sources serveur Vos sources client I. Explication II. Modifications côté Serveur III. Modifications côté Client Pour continuer: Si vous avez un problème n'hésitez pas à poster vos questions dans l'AQS. Si vous ne savez pas comment compiler votre Game & Db voici un tutoriel : Compiler le game & DB metin2 Si vous ne savez pas compiler votre lanceur voici donc un tutoriel : Compiler le client Binary
  11. Tout dépend ce que ton uiinventory charge dans la class InventoryWindows, fonction DefLoad De base c'est le locale
  12. Excellent tutoriel, il en faut plus de ce genre.
  13. InventoryWindows.py, à remplacer par ceci: { "name" : "Inventory_Tab_01", "type" : "radio_button", "x" : 10, "y" : 33 + 191, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1, "children" : ( { "name" : "Inventory_Tab_01_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "I", }, ), }, { "name" : "Inventory_Tab_02", "type" : "radio_button", #"x" : 10 + 78, "x" : 10 + 39, "y" : 33 + 191, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2, "children" : ( { "name" : "Inventory_Tab_02_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "II", }, ), }, { "name" : "Inventory_Tab_03", "type" : "radio_button", "x" : 10 + 39 + 39, "y" : 33 + 191, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3, "children" : ( { "name" : "Inventory_Tab_03_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "III", }, ), }, { "name" : "Inventory_Tab_04", "type" : "radio_button", "x" : 10 + 39 + 39 + 39, "y" : 33 + 191, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_half_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4, "children" : ( { "name" : "Inventory_Tab_04_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "IV", }, ), },
  14. Lien: Clique ici Le tutoriel se trouve dans le .rar
  15. Niveau requis : Intermédiaire Temps estimé : Entre 5 et 10 minutes Réécriture by Xayah Bonjour, ce fix vous permet de régler un léger soucis d'invisibilité et il est indispensable pour le système Hide, petit aperçu : Pré-requis: Vos sources client I. Tutoriel Pour continuer: Si vous ne savez pas comment compiler votre lanceur, je vous invite à lire ce tutoriel : Compiler le client Binary Si vous avez un soucis n'hésitez pas à poster votre demande dans la section A/Q/S
  16. Ta oublié d'ajouter ça dans ton lanceur ( source client )
  17. Vérifie que tu as bien suivis la partie de l'introloading, c'est elle qui initialise la fonction playerSettingModule.LoadGameData("WOLFMAN")
  18. Kuroro

    Système PVP

    Tu PvP avec un joueur? Car sur les GM il y a une protection pvp ( sauf en mode libre ) Mais en théorie, si c'est le cas, tu ne devrais pas avoir de miss en cac.
  19. game/src: questlua_mysql.cpp, à remplacer. // mysql_query(string) - 'returns a lua mysql table' int _mysql_query(lua_State* L) { string query = lua_tostring(L,1); SQLMsg* run = DBManager::instance().DirectQuery(query.c_str()); MYSQL_RES* res = run->Get()->pSQLResult; //Error in the query if (!run) { sys_err("MySQL query failed!"); lua_pushnil(L); return 0; } if(!res) { lua_newtable(L); return 1; } lua_newtable(L); //Fetch field list unsigned long rowcount = 1; set<MYSQL_FIELD*> fieldList; while(MYSQL_FIELD *f = mysql_fetch_field(res)) { fieldList.insert(f); } MYSQL_ROW row; while (row = mysql_fetch_row(res)) { lua_newtable(L); int i = 0; set<MYSQL_FIELD*>::iterator iter; for(iter = fieldList.begin(); iter != fieldList.end(); ++iter) { MYSQL_FIELD *f = *iter; lua_pushstring(L, f->name); lua_pushstring(L, row[i]); lua_settable(L, -3); //stack: [arg] table table2 i++; } lua_pushnumber(L, rowcount); lua_insert(L, -2); //stack: [arg] table rowcount table2 lua_settable(L, -3); rowcount++; } M2_DELETE(run); return 1; }
  20. Yo, Autant rentrer dans le bain directement avec les 2014, les 2012, c'est une perte de temps Je te conseil également de configurer ça en local, c'est tjr moins compliqué que du no-ip et puis t'en même pas pour 30 secondes Les file 2014 fonctionnent en no-ip / locale et hamachi sauf si tu veux que quelqu'un te rejoigne, il sera renvoyé à la sélection des channel il me semble Good-luck pour la suite
  21. Centre de Téléchargement Télécharger ( Interne ) Salut à tous, J'ai eu plusieurs requête par rapport à mes systèmes dont celui qui permet de cacher n'importe quel gr2 à cause des lags. J'ai appris que celui-ci avait fuité, donc j'ai décidé de faire une nouvelle version. C'est la raison pour la qu'elle je viens vous partager celle-ci. Pour ceux qui me l'ont acheté directement, veuillez me contacter en MP, je vous ferai une v2. Elle inclura le hide des étoles & costumes. Quelques informations avant tout : AFFECT_INVISIBILITY est bugé de base (essayez de vous inv avec un logo GM, une fois réapparu vous ne le verrez plus) J'avais trouvé un fix par hasard sur metin2dev il y a quelques mois, je vous le partagerais dans les commentaires si je le retrouve. Ce système est dynamique et le code est léger. Il possède également des define côté C++ mais j'ai pas pensé à le faire côté python. Merci de ne pas vendre ce système. Le tutoriel se trouve dans le .rar Une petite vidéo concernant le fonctionnement : Lien de téléchargement : Cliquez-ici !
  22. Re, Ouaip, pour les cheats c'est une autre histoire, si tu fais rien pour, c'est sûr que ça laissera une ouverture. Après, y a pas que le temps de connexion & de chargement qui diminue, tu as moins de déconnexion en jeu pour rien et le jeu est un peu fluide ( remarque personnel ) Ré-écrire le système de séquence de metin n'est pas une mauvaise idée également à condition de bien faire le travail et de ne pas bâcler & négliger ça comme ymir l'a fait ... Merci pour ton avis

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.