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

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'metin2'.

  • Rechercher par étiquettes

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

Type du contenu


Forums

  • Metin2 Dev
    • Annonces
  • Communauté
    • Taverne d'Octavio
    • Vie des Royaumes
    • Présentations
    • Metin2
  • Serveurs Privés
    • Serveurs Privés
  • Assistance
    • Questions & Réponses
    • Demandes de fichiers
  • Tutoriels & Ressources
    • Création & Gestion de Serveur
    • Guides
    • Binaires
    • Programmation & Développement / Codes
    • Développement Web & Scripts
    • Outils
    • Cartes
    • Quêtes
    • Modèles 3D
    • Graphismes 2D
    • Files - 2012
    • Inclassable
  • Commerce
    • Ventes & Services
    • Recherches
  • Spécial
    • Corbeille
    • Archives
    • Metin2 Download

Groupes du produit

  • Advertisements
  • Advertisements - Pack

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


Pilori


Commerce


Serveur Privé


Genre


Pays


Nationalité


Github


Gitlab


Discord


Skype


Site Internet

  1. Bien le bonjour jeunes gens de l'émulation. Je viens vers vous car j'ai l'envie de reprendre un peu l'univers de metin, mais des soucis se présentent à moi. Tout d'abord, j'ai téléchargé ces files : J'ai fait un serveur local avec le vdi, tout fonctionne à merveille, mais ... pour l'installation sur le dédié c'est une autre paire de manche.. Quand je démarre le serveur, j'ai ce message qui apparait : [Hidden Content] J'ai essayé de piquer le game et db du serveur local mais rien ne change j'ai toujours cette erreur. J'ai essayé aussi de changer les permissions mais j'ai tjrs la même erreur. Ensuite, j'ai peut-être fait une erreur en voulant aller trop vite au début, j'ai récupéré les tables de la base de données du local pour balancer sur celle du dédié mais j'ai eu pas mal d'erreurs. Suite à ça j'ai réfléchis et j'ai vu qu'il y avait l'archive mysql. J'ai tout mis (sans rien remplacer) là où il faut (normalement) et pourtant je n'ai toujours pas les tables manquantes, après moultes reboot. Dites-moi si vous avez besoin d'autres infos, si j'ai fait des bêtises ne me tapez pas dessus, je vous en prie ! Merci d'avance pour votre aide qui me sera précieuse, j'en suis sûr !
  2. Main Website : https://devilcore.eu/ Game: https://game.devilcore.eu/ Gallery: https://game.devilcore.eu/gallery/ Facebook: https://www.facebook.com/DevilCorEnh/ YouTube: https://www.youtube.com/channel/UCo7Xh6eS4tVcSqrpBEV7Gsw
  3. Bien le bonjour communauté francophone de l'émulation Metin2! Je viens aujourd'hui vous présenter mon projet (Version 1.1) commencé en 2018, laissé à l'abandon pour raison personnel, j'ai repris très activement l'émulation il y quelques mois maintenant et je viens donc vous montrer mon projet. Tout d'abord commençons par l'histoire de WoM2 (Je vous interdit de juger le nom c'était un délire puis après flemme de modifier) Maintenant, passons au déroulement du jeu : Voici quelques screen : Avancement du projet : Comme je l'ai dis dans un autre poste, je suis seul à travailler sur le projet, je suis ouvert à toutes demandes, questions ou autre! donc n'hésitez pas si vous souhaitez participer à un projet qui à du sens voici mon discord : Vinky#2587 La présentation n'est pas du tout, mais du tout finalisé. J'ai écris ça comme ça ce soir car j'avais envie de vous montrer. Mais ne vous inquiétez pas, je me répète mais je suis seul à travailler dessus et j'ai une vie à côté donc je prends mon temps mais ne vous inquiétez pas le projet avance FORT! Merci pour la lecture! Lien utile pour en savoir plus sur la création :
  4. Bonjour tous le monde! Pour commencer je vous présente : XXXXXXX --- NOM DE KEKE QUE LES GENS AIME ---- XXXXXXX (Désolé j'ai pas trouvé le nom encore). Bien que je sois re-nouveau de l'émulation j'ai de grand projet pour mon serveur! J'ai repris d'ancienne files que j'avais au préalable préparé il y a quelques années... Puis *moment ou je raconte ma vie* j'ai eu un enfant, ma vie à légèrement été modifié puis il y a quelques temps maintenant j'ai voulu reprendre l'émulation (après le changement de mon pc pour être précis) et me voilà pour de nouvelle aventure! J'ai absolument tout perdu sauf mes files coup de chance! J'ai perdu mon discord, mes accès sur les forums, bref tout ce refais dans la vie. Maintenant j'ai pas mal modifié mes files d'origine et le rendu me plaît donc ma motivation pour l'ouverture de mon projet est Fou! Petite présentation du serveur : Le serveur est du style Semi-Fun , en therme de d'expérience et de drop d'objets et de yang! Lors d'une bêta fermé organisé avec des amis et quelques heures de recherche j'ai trouvéla solution au problème rencontré : on arrive vite haut level et après des conversations une fois que tous le monde à finis 200 fois toutes les instances il faut leurs trouver quelques chose de nouveau, j'ai donc regardé les solutions possible et j'ai remarqué qu'aucun serveur francophone ne proposait le système de Renaissance. J'ai alors ajouté à mon Game Play le système de renaissance, une fois que vous êtes arrivé au level maximum vous avez la possibilité de recommencer l'aventure depuis le début. en vous offrant des bonus à temps illimité et l'accès à plus de contenue (à chaque renaissance de nouveau bonus & de contenue sera débloqué). Les Lycans on été ré-implanté, après plusieurs testes effectués j'ai fixé le problème du combo ainsi que réglé les compétences qui les rends maintenant jouable et équilibré! Suppression du Bonus Griffes et association avec le Bonus Dague. Bonus Saignement et Résistance Saignement ajusté et maintenant équilibré. Compétences en amélioration rapide, vous pourrez choisir, améliorer vos compétences via une interface visuel. Système du serveur : Le serveur dispose de plusieurs système pour vous simplifier le jeu. Certain système son amené à une amélioration donc les changements entre l'écriture et les images de ce poste et le jour ou vous allez jouer sera sûrement différent. Voici un exemple de système à votre disposition : Pour commencer, nous avons le shop à distance, depuis un raccourci de votre inventaire vous pouvez accéder à différents shop selon vos besoins, la marchand d'armure, d'arme, marchande... Il y a également le système de titre, pour vous imposez et vous différenciez des autres en fonction du temps que vous passer In-Game chaque titre est unique et représente le joueur que vous êtes. Système d'effet, depuis le l'interface "Panel de l'utilisateur" vous pouvez accéder à l'interface des effets, pour choisir la brillance de votre corps ou même retiré celle que vous avez. Plusieurs couleurs d'effet sont disponible et même cumulable. Alors personnalisé au maximum votre apparence! Magasin, J'ai également revu le commerce intégral du serveur! J'ai remarqué que beaucoup de joueurs vendent des objets pour pouvoir acheter d'autres objets, j'ai alors ajouté au système magasin une seconde devise pour vendre vos objets avec des objets que vous souhaitez. Par exemple, vous souhaitez vendre votre LP+9 contre 10 Won et 50 Capes de bravoure? Et bien c'est possible. De plus pour rendre l'information pratique et plus rapide, j'ai rajouté un raccourci dans le "panel de l'utilisateur" pour vous permettre d'accéder à la banque de votre magasin et de récupérer vos biens et votre or depuis n'importe quel position dans le jeu. Système de renaissance, Lors de ma bêta fermé j'ai remarqué que les joueurs upais plutôt rapidement et que le jeux prendrais extinction plus rapidement que je le pensais. Vous avez maintenant la possibilité de renaître vous donnant l'accès à du contenue inédit en fonction de votre niveau de renaissance, chaque niveau est représenté devant votre Pseudo RI, RII, RIII (Ex. : RII Lv 84 Amical Joueur1 ) vous avez la possibilité de cacher votre niveau de renaissance aux autres joueurs. A Chaque niveau renaissance vous débloquez de stuff inédit (équipable par tous les niveaux de renaissance même 0) mais dropable que si vous êtes RI, RII ou RIII. De plus vous avez l'accès à des donjons plus "difficile" à chaque niveau (Ex. : Labyrithe des Orcs RI) avec le donjons "Labyrithe des Orcs" mais avec des monstres et des drops pour des joueurs de RI (accessible que pour les RI et plus et en respectant la tranche de level). Pour le reste des systèmes je vous laisse venir nous rejoindre les découvrir par vous même et laissé un petit commentaire pour me dire ce que t'en pense. Pour ce qui est des maps, chaque map principal de chaque royaume est représenté par des bâtiments des couleurs de l'empire. (Ex. : Vous êtes map 1 jaune, les bâtiments sont donc jaune). Lors de votre première connexion, vous aurez tout un équipement offert pour débuter l'aventure, avec un coffre de débutant qui vous suivra sur plusieurs level, et surprise à chaque renaissance, un PNJ vous donnera un coffre de débutant? pour le niveau de renaissance que vous êtes! En plus de ses équipements vous vous verrez choisir un costume à durée limité pour modifier votre apparence dès vos premiers pas sur le serveur! Ainsi qu'une Monture et un animal de compagnie vous apportant un bonus complémentaire. Les quêtes vous accompagnerons tous le long de l'aventure, les récompenses, l'histoire est modifié n'hésitez pas à lire et me dire quoi modifier, ajouter pour rendre l'histoire de serveur encore plus accrochant! Chaque renaissance vous apporte une Histoire supplémentaire? Pourrait-on faire une série? L'équipe, je dispose d'une équipe plus grande que l'entreprise Apple! Non plus être plus sérieux, je n'es pas d'équipe et justement j'en suis à la recherche, j'ai besoin de personnes volontaire à participer à un grand projet , personne simple pas de prise de tête avec des bonnes connaissances sur les serveurs si possible. Je suis prêt à partager mon assiette donc mettez y du votre et faites les choses correctement! Donc si vous avez des compétences particulière n'hésitez pas à m'envoyer un message (design, codeur, gm, modérateur, etc..) je suis tout seul dans mon projet et la compagnie est toujours bonne à prendre, comme on dit 2 cerveaux valent mieux qu'un! Pour me contacter c'est simple je suis disponible par message privé sur le forum, sur discord en ajoutant : Vinky#2587 ou tout simplement en rejoignant mon discord : https://discord.gg/dgqycHUx Je peux vous présenter des screen ou même vous montrer si vous êtes intéressé via partage d'écran le projet mais je préfère ne mettre aucune image ici pour le moment, gardon encore un peu de mystère! Merci de m'avoir lu et j'espère que mon projet à du sens! A bientôt sur MON serveur
  5. Polikof

    VirtualBox

    Quand je fait ifconfig sa me donne pas l'ip 192.168 sa me met au nvieau de inet 0.0.0.0 et broadcast : 255.255.255.255 Dans réseau j'ai mis accée par pont à ma carte réseau " wifi " comment avoir son ipv4 pour finaliser la création de mon serveur local metin2 merci
  6. Sangokay

    Sephasia

    Pouvez-vous supprimer le post svp, le serveur et toujours d'actualité mais je voudrai faire une nouvelle présentation le moment venu.
  7. A propos d'Asiria : Après 2 ans d'absence, je suis heureux d'annoncer qu'External PvP sera bientôt rouvert sous le nom d'Asiria 2 ! Le serveur contient de nouveaux systèmes, événements, divertissements et il n'y a pas de Pay2Win! Qu'est-ce que tu attends ? Rejoignez-nous ! Gameplay : Une fois que vous avez rejoint le serveur, vous passerez au niveau 90 et vous recevrez une armure PvP de niveau 90 et une arme PvP 90. Vous devriez PvE afin de dropper les items nécessaires pour améliorer vos stuff PvP ..Le serveur est principalement basé sur le PvP. Vous devrez faire du PvP et tuer des joueurs pour Level up. Le niveau max est actuellement de 150. Le serveur contient tellement d'événements tels que des concours OX quotidiens, des événements 1v1 mensuels, des événements 4v4 hebdomadaires, des événements PvE tous les week-ends... Systèmes : Notre serveur contient certains des systèmes les plus étonnants qui vous offrent la meilleure expérience Metin : I)Étoles II)Magasins Hors-Ligne III)Magasin à distance IV)Inventaire Spécial V)Fast Equipe Avec 4 Slots VI)Système de Fortune VII)7éme Skill VIII)Cacher Son Costume / Étole / Coiffure... IX)Système [VIP]/[Miss] et [Mister] pour les top PvP en 1v1 X)Système de Monture cheval XI)Système de pet XII)Système de projection d'armes / Armures / Montures.. Et Encore à découvrir... Aperçu : https://metin2.download/picture/9m6ud8GF4hMujUkapB4dMHLzeY89xmzf/.png https://metin2.download/picture/i28A87B9EUGT2xmG955T1hXv4It4nFd4/.png https://metin2.download/picture/SpjBmd18knte3lLBEycCOrfH1HOj77fg/.png https://metin2.download/picture/4A0tK8dbIO9M5E4IF5XVCgCa5v68j6yZ/.png https://metin2.download/picture/khLrtOG6cOR9nKXA3b0v30omVW79WG0P/.png https://metin2.download/picture/5RxvluJlQ6LfWTKiOOkAqP9nX5nT3YIP/.png https://metin2.download/picture/dPkVCk63QqvFP5Nw8lrHB2L19D2LemUf/.png Liens : Discord : http://discord.asiria2.eu/ Site : http://asiria2.eu/ Bienvenue ! ♥
  8. Bonjour, je suis sur le projet d'un petit serveur Ultra-Fun PvP, je suis à la recherche de volontaire pour m'aider au niveau du Gameplay IG (bonus, etc) Si tu es intéressé par la chose, n'hésite pas à me contacter sur discord : Barflyy#3629 C'est un projet, donc je prendrais le temps qu'il faut pour la mise en place du serveur. Merci!
  9. La communauté Nethara ouvre notre deuxième serveur de style Middleschool ! 70% PvM 30% PvP Ouverture du serveur : 13.06.2021 - 20:00 heure espagnole. Enregistrez votre compte en ligne sur le site Web Télécharger sur le site Web. Website Original Discord
  10. Boinsoir La Commu J'ai un problème sur mon serveur Qu'à chaque fois que j'applique une modification aux quêtes biolo après avoir compilé le code se réinitialise j'ai aussi enregistré une vidéo: [Hidden Content]
  11. Bonjour, J'ai recherché mais sans trouver de réponse. J'ai pris un serveur dédié Google Cloud pour me remettre dans le jus, mais apparemment ça date trop pour mes compétences J'ai suivi le tutoriel ci : Créer un serveur privé Metin2 Project en dédié - Création & Gestion de Serveur - Funky Emulation (funky-emu.net) Lorsque j'en suis à la compilation de QC (303 sur le shell manager) la console me renvoie ceci [ M2 PROJECT ] [ QC REQUEST ] [ COMPILING ] qc.cc qc.cc:304:6: error: use of undeclared identifier 'assert' assert(nested == 0); ^ qc.cc:313:6: error: use of undeclared identifier 'assert' assert(nested == 0); ^ qc.cc:325:5: error: use of undeclared identifier 'assert' assert(nested == 0); ^ qc.cc:328:6: error: use of undeclared identifier 'assert' assert(nested==0); ^ qc.cc:359:6: error: use of undeclared identifier 'assert' assert(nested==1); ^ qc.cc:377:6: error: use of undeclared identifier 'assert' assert(nested==1); ^ qc.cc:394:6: error: use of undeclared identifier 'assert' assert(nested==1); ^ qc.cc:410:6: error: use of undeclared identifier 'assert' assert(nested==2); ^ qc.cc:436:6: error: use of undeclared identifier 'assert' assert(nested==2); ^ qc.cc:517:6: error: use of undeclared identifier 'assert' assert(nested==2); ^ qc.cc:553:6: error: use of undeclared identifier 'assert' assert(nested==3); ^ qc.cc:663:6: error: use of undeclared identifier 'assert' assert(t.token == '('); ^ qc.cc:693:6: error: use of undeclared identifier 'assert' assert(nested == 3); ^ qc.cc:758:2: error: use of undeclared identifier 'assert' assert(nested==0); ^ 14 errors generated. gmake: *** [Makefile:39: qc.o] Error 1 [ QC ] [ QC REQUEST FAILED ] [ M2 PROJECT ] [ COMPLETED ] Et voici donc mon fichier qc.cc que je n'ai pas modifié #if !defined(_MSC_VER) && defined(__cplusplus) extern "C" { #endif #include <lua.h> #include <lauxlib.h> #include <lualib.h> #include "lzio.h" #include "llex.h" #include "lstring.h" #if !defined(_MSC_VER) && defined(__cplusplus) } #endif #include <algorithm> #include <iostream> #include <set> #include <map> #include <fstream> #include <string> #include <sstream> #include <utility> #include <vector> #ifndef __WIN32__ #include <unistd.h> #else #include <boost/__typeof/__typeof.hpp> #define __typeof(t) BOOST___typeof(t) #include <direct.h> #define mkdir(path, mode) _mkdir(path) #endif #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include "crc32.h" #define OUTPUT_FOLDER "object" using namespace std; lua_State* L; typedef struct LoadF { FILE *f; char buff[LUAL_BUFFERSIZE]; } LoadF; char * g_filename; unsigned int get_string_crc(const std::string & str) { const unsigned char * s = (const unsigned char*) str.c_str(); const unsigned char * end = s + str.size(); unsigned int h = 0; while (s < end) { h *= 16777619; h ^= (unsigned char) *(unsigned char *) (s++); } return h; } static const char *getF (lua_State *L, void *ud, size_t *size) { LoadF *lf = (LoadF *)ud; if (feof(lf->f)) return NULL; *size = fread(lf->buff, 1, LUAL_BUFFERSIZE, lf->f); return (*size > 0) ? lf->buff : NULL; } static void next (LexState * ls) { ls->lastline = ls->linenumber; if (ls->lookahead.token != TK_EOS) { /* is there a look-ahead token? */ ls->t = ls->lookahead; /* use this one */ ls->lookahead.token = TK_EOS; /* and discharge it */ } else ls->t.token = luaX_lex(ls, &ls->t.seminfo); /* read next token */ } static bool testnext (LexState * ls, int c) { if (ls->t.token == c) { next(ls); return true; } else return false; } static void lookahead (LexState * ls) { lua_assert(ls->lookahead.token == TK_EOS); ls->lookahead.token = luaX_lex(ls, &ls->lookahead.seminfo); } enum parse_state { ST_START, ST_QUEST, ST_QUEST_WITH_OR_BEGIN, ST_STATELIST, ST_STATE_NAME, ST_STATE_BEGIN, ST_WHENLIST_OR_FUNCTION, ST_WHEN_NAME, ST_WHEN_WITH_OR_BEGIN, ST_WHEN_BODY, ST_FUNCTION_NAME, ST_FUNCTION_ARG, ST_FUNCTION_BODY, }; struct LexState * pls = 0; void errorline(int line , const char * str) { cout.flush(); if (g_filename) cerr << g_filename <<":"; cerr << line<< ':'; cerr << str << endl; abort(); } void error(const char * str) { cout.flush(); if (g_filename) cout << g_filename <<":"; if (pls) { cout << pls->linenumber << ':'; } cerr << str << endl; abort(); } #define assert_msg(exp,msg) if (!(exp)) error(msg " : " #exp) ostream & operator << (ostream & ostr, const Token& tok) { if (tok.token == TK_NAME) ostr << getstr(tok.seminfo.ts); else if (tok.token == TK_NUMBER) ostr << tok.seminfo.r; else if (tok.token == TK_STRING) ostr << '"' << getstr(tok.seminfo.ts) <<'"'; else ostr << luaX_token2str(pls,tok.token); return ostr; } bool check_syntax(const string& str, const string& module) { int ret = luaL_loadbuffer(L, str.c_str(), str.size(), module.c_str()); if (ret) { cerr << str << endl; error((string("syntax error : ")+lua_tostring(L,-1) ).c_str()); return false; } lua_pop(L,1); return true; } int none_c_function(lua_State* L) { return 0; } set<string> function_defs; set<string> function_calls; void RegisterDefFunction(const string& fname) { function_defs.insert(fname); } void RegisterUsedFunction(const string& fname) { function_calls.insert(fname); } void CheckUsedFunction() { bool hasError = false; set<string> error_func; for (__typeof(function_calls.begin()) it = function_calls.begin(); it != function_calls.end(); ++it) { if (function_defs.find(*it) == function_defs.end()) { hasError = true; error_func.insert(*it); } } if (hasError) { cout << "Calls undeclared function! : " << endl; for (__typeof(error_func.begin()) it = error_func.begin(); it != error_func.end(); ++it) { cout << *it << endl; } abort(); } } void load_quest_function_list(const char* filename) { ifstream inf(filename); string s; while (!inf.eof()) { inf >> s; if (inf.fail()) break; RegisterDefFunction(s); } } struct AScript { string when_condition; string when_argument; string script; AScript(string a, string b, string c) : when_condition(a), when_argument(b), script(c) {} AScript() {} }; void parse(char * filename) { ifstream inf(filename); LoadF lf; lf.f = fopen(filename,"r"); ZIO z; luaZ_init(&z, getF,&lf,"quest"); Mbuffer b; struct LexState lexstate; pls = &lexstate; luaZ_initbuffer(L,&b); lexstate.buff = &b; luaX_setinput(L, &lexstate, &z, luaS_new(L, zname(&z))); parse_state ps = ST_START; int nested = 0; string quest_name; string start_condition; string current_state_name; string current_when_name; string current_when_condition; string current_when_argument; set<string> define_state_name_set; map<int,string> used_state_name_map; map<string, map<string, string> > state_script_map; map<string, map<string, vector<AScript> > > state_arg_script_map; vector<pair<string, string> > when_name_arg_vector; string current_function_name; string current_function_arg; string all_functions; load_quest_function_list("quest_functions"); while (1) { next(&lexstate); if (lexstate.t.token == TK_EOS) break; Token& t= lexstate.t; switch(ps) { case ST_START: { assert(nested==0); if (t.token == TK_QUEST) ps = ST_QUEST; else error("must start with 'quest'"); } break; case ST_QUEST: { assert(nested==0); if (t.token == TK_NAME || t.token == TK_STRING) { quest_name = getstr(lexstate.t.seminfo.ts); cout << "QUEST : " << quest_name << endl; ps = ST_QUEST_WITH_OR_BEGIN; } else error("quest name must be given"); } break; case ST_QUEST_WITH_OR_BEGIN: assert(nested==0); if (t.token == TK_WITH) { assert(nested==0); next(&lexstate); ostringstream os; os << (lexstate.t); next(&lexstate); while (lexstate.t.token!=TK_DO) { os << " " <<(lexstate.t); next(&lexstate); } start_condition = os.str(); check_syntax("if "+start_condition+" then end", quest_name); cout << "\twith "; cout << start_condition; cout << endl; t = lexstate.t; } if (t.token == TK_DO) { ps = ST_STATELIST; nested++; } else { ostringstream os; os << "quest doesn't have begin-end clause. (" << t << ")"; error(os.str().c_str()); } break; case ST_STATELIST: { assert(nested==1); if (t.token == TK_STATE) { ps = ST_STATE_NAME; } else if (t.token == TK_END) { nested --; ps = ST_START; } else { error("expecting 'state'"); } } break; case ST_STATE_NAME: { assert(nested==1); if (t.token == TK_NAME || t.token == TK_STRING) { current_state_name = getstr(t.seminfo.ts); define_state_name_set.insert(current_state_name); cout << "STATE : " << current_state_name << endl; ps = ST_STATE_BEGIN; } else { error("state name must be given"); } } break; case ST_STATE_BEGIN: { assert(nested==1); if (t.token == TK_DO) { nested ++; ps = ST_WHENLIST_OR_FUNCTION; } else { error("state doesn't have begin-end clause."); } } break; case ST_WHENLIST_OR_FUNCTION: { assert(nested==2); if (t.token == TK_WHEN) { ps = ST_WHEN_NAME; when_name_arg_vector.clear(); } else if (t.token == TK_END) { nested--; ps = ST_STATELIST; } else if (t.token == TK_FUNCTION) { ps = ST_FUNCTION_NAME; } else { error("expecting 'when' or 'function'"); } } break; case ST_WHEN_NAME: { assert(nested==2); if (t.token == TK_NAME || t.token == TK_STRING || t.token == TK_NUMBER) { if (t.token == TK_NUMBER) { ostringstream os; os << (unsigned int)t.seminfo.r; current_when_name = os.str(); lexstate.lookahead.token = '.'; } else { current_when_name = getstr(t.seminfo.ts); lookahead(&lexstate); } ps = ST_WHEN_WITH_OR_BEGIN; current_when_argument = ""; if (lexstate.lookahead.token == '.') { next(&lexstate); current_when_name += '.'; next(&lexstate); ostringstream os; t = lexstate.t; os << t; if (os.str() == "target") { current_when_argument = "." + current_when_name; current_when_argument.resize(current_when_argument.size()-1); current_when_name = "target"; } else { current_when_name += os.str(); } lookahead(&lexstate); } { // make when argument ostringstream os; while (lexstate.lookahead.token == '.') { next(&lexstate); os << '.'; next(&lexstate); t = lexstate.t; os << t; lookahead(&lexstate); } current_when_argument += os.str(); } cout << "WHEN : " << current_when_name ; if (!current_when_argument.empty()) { cout << " ("; cout << current_when_argument.substr(1); cout << ")"; } } else { error("when name must be given"); } if (lexstate.lookahead.token == TK_OR) { ps = ST_WHEN_NAME; when_name_arg_vector.push_back(make_pair(current_when_name, current_when_argument)); next(&lexstate); cout << " or" << endl; } else { cout <<endl; } } break; case ST_WHEN_WITH_OR_BEGIN: { assert(nested==2); current_when_condition = ""; if (t.token == TK_WITH) { next(&lexstate); ostringstream os; os << (lexstate.t); next(&lexstate); while (lexstate.t.token!=TK_DO) { os << " " <<(lexstate.t); next(&lexstate); } current_when_condition = os.str(); check_syntax("if "+current_when_condition+" then end", current_state_name+current_when_condition); cout << "\twith "; cout << current_when_condition; cout << endl; t = lexstate.t; } if (t.token == TK_DO) { ps = ST_WHEN_BODY; nested++; } else { ostringstream os; os << "when doesn't have begin-end clause. (" << t << ")"; error(os.str().c_str()); } } break; case ST_WHEN_BODY: { assert(nested==3); ostringstream os; int state_check = 0; __typeof(lexstate) prev = lexstate; string callname; bool registered = false; if (prev.t.token == '.') prev.t.token == TK_DO; while (1) { if (lexstate.t.token == TK_DO || lexstate.t.token == TK_IF || lexstate.t.token == TK_BEGIN || lexstate.t.token == TK_FUNCTION) { nested++; } else if (lexstate.t.token == TK_END) { nested--; } if (!callname.empty()) { lookahead(&lexstate); if (lexstate.lookahead.token == '(') { RegisterUsedFunction(callname); registered = true; } callname.clear(); } else if (lexstate.t.token == '(') { if (!registered && prev.t.token == TK_NAME) RegisterUsedFunction(getstr(prev.t.seminfo.ts)); registered = false; } if (lexstate.t.token == '.') { ostringstream fname; lookahead(&lexstate); fname << prev.t << '.' << lexstate.lookahead; callname = fname.str(); } if (state_check) { state_check--; if (!state_check) { if (lexstate.t.token == TK_NAME || lexstate.t.token == TK_STRING) { used_state_name_map[lexstate.linenumber] = (getstr(lexstate.t.seminfo.ts)); lexstate.t.token = TK_STRING; } } } if (lexstate.t.token == TK_NAME && ((strcmp(getstr(lexstate.t.seminfo.ts),"set_state")==0) || (strcmp(getstr(lexstate.t.seminfo.ts),"newstate")==0) || (strcmp(getstr(lexstate.t.seminfo.ts),"setstate")==0))) { state_check = 2; } if (nested==2) break; os << lexstate.t << ' '; prev = lexstate; next(&lexstate); if (lexstate.linenumber != lexstate.lastline) os << endl; } check_syntax(os.str(), current_state_name+current_when_condition); reverse(when_name_arg_vector.begin(), when_name_arg_vector.end()); while (1) { if (current_when_argument.empty()) { if (current_when_condition.empty()) state_script_map[current_when_name][current_state_name]+=os.str(); else state_script_map[current_when_name][current_state_name]+="if "+current_when_condition+" then "+os.str()+" return end "; } else { state_arg_script_map[current_when_name][current_state_name].push_back(AScript(current_when_condition, current_when_argument, os.str())); } if (!when_name_arg_vector.empty()) { current_when_name = when_name_arg_vector.back().first; current_when_argument = when_name_arg_vector.back().second; when_name_arg_vector.pop_back(); } else break; } ps = ST_WHENLIST_OR_FUNCTION; } break; case ST_FUNCTION_NAME: if (t.token == TK_NAME) { current_function_name = getstr(t.seminfo.ts); RegisterDefFunction(quest_name+"."+current_function_name); ps = ST_FUNCTION_ARG; } break; case ST_FUNCTION_ARG: { assert(t.token == '('); next(&lexstate); current_function_arg = '('; if (t.token != ')') { do { if (t.token == TK_NAME) { current_function_arg += getstr(t.seminfo.ts); next(&lexstate); if (t.token != ')') current_function_arg += ','; } else { ostringstream os; os << "invalud argument name " << getstr(t.seminfo.ts) << " for function " << current_function_name; error(os.str().c_str()); } } while (testnext(&lexstate, ',')); } current_function_arg += ')'; ps = ST_FUNCTION_BODY; nested ++; } break; case ST_FUNCTION_BODY: { assert(nested == 3); ostringstream os; __typeof(lexstate) prev = lexstate; bool registered = false; if (prev.t.token == '.') prev.t.token = TK_DO; string callname; while (nested >= 3) { if (lexstate.t.token == TK_DO || lexstate.t.token == TK_IF || lexstate.t.token == TK_BEGIN || lexstate.t.token == TK_FUNCTION) { nested++; } else if (lexstate.t.token == TK_END) { nested--; } if (!callname.empty()) { lookahead(&lexstate); if (lexstate.lookahead.token == '(') { RegisterUsedFunction(callname); registered = true; } callname.clear(); } else if (lexstate.t.token == '(') { if (!registered && prev.t.token == TK_NAME) RegisterUsedFunction(getstr(prev.t.seminfo.ts)); registered = false; } if (lexstate.t.token == '.') { ostringstream fname; lookahead(&lexstate); fname << prev.t << '.' << lexstate.lookahead; callname = fname.str(); } os << lexstate.t << ' '; if (nested == 2) break; prev = lexstate; next(&lexstate); if (lexstate.linenumber != lexstate.lastline) os << endl; } ps = ST_WHENLIST_OR_FUNCTION; all_functions += ','; all_functions += current_function_name; all_functions += "= function "; all_functions += current_function_arg; all_functions += os.str(); cout << "FUNCTION " << current_function_name << current_function_arg << endl; } break; } } assert(nested==0); for (map<int,string>::iterator it = used_state_name_map.begin();it!=used_state_name_map.end();++it) { if (define_state_name_set.find(it->second)==define_state_name_set.end()) { errorline(it->first,("state name not found : "+it->second).c_str()); } } if (!define_state_name_set.empty()) { if (0 != mkdir(OUTPUT_FOLDER "/state", S_IRWXU)) { if (errno != EEXIST) { perror("cannot create directory"); exit(1); } } ofstream ouf((string(OUTPUT_FOLDER "/state/")+quest_name).c_str()); ouf << quest_name << "={[\"start\"]=0"; set<string> :: iterator it; map<string, int> state_crc; set<int> crc_set; state_crc["start"] = 0; for (it = define_state_name_set.begin(); it != define_state_name_set.end(); ++it) { int crc = (int) CRC32((*it).c_str()); if (crc_set.find(crc) == crc_set.end()) { crc_set.insert(crc); } else { ++crc; while (crc_set.find(crc) != crc_set.end()) ++crc; printf("WARN: state CRC conflict occur! state index may differ in next compile time.\n"); crc_set.insert(crc); } state_crc.insert(make_pair(*it, crc)); } int idx = 1; for (it = define_state_name_set.begin(); it!=define_state_name_set.end(); ++it) { if (*it != "start") { ouf << ",[\"" << *it << "\"]=" <<state_crc[*it]; ++idx; } } ouf << all_functions; ouf << "}"; } if (!start_condition.empty()) { if (0 != mkdir(OUTPUT_FOLDER "/begin_condition", S_IRWXU)) { if (errno != EEXIST) { perror("cannot create directory"); exit(1); } } ofstream ouf((string(OUTPUT_FOLDER "/begin_condition/")+quest_name).c_str()); ouf << "return " <<start_condition; ouf.close(); } { map<string, map<string, vector<AScript> > >::iterator it; for (it = state_arg_script_map.begin(); it != state_arg_script_map.end(); ++it) { string second_name; string path; if (it->first.find('.')==it->first.npos) { string s(it->first); transform(s.begin(),s.end(),s.begin(),::tolower); mkdir(OUTPUT_FOLDER "/notarget",0755); mkdir((OUTPUT_FOLDER "/notarget/"+s).c_str(),0755); path = OUTPUT_FOLDER "/notarget/"+s+"/"; second_name = s; } else { string s = it->first; transform(s.begin(),s.end(),s.begin(),::tolower); int i = s.find('.'); mkdir((OUTPUT_FOLDER "/"+it->first.substr(0,i)).c_str(),0755); mkdir((OUTPUT_FOLDER "/"+it->first.substr(0,i)+"/"+s.substr(i+1,s.npos)).c_str(),0755); path = OUTPUT_FOLDER "/" + it->first.substr(0,i) + "/"+s.substr(i+1,s.npos)+"/"; second_name = s.substr(i+1,s.npos); } map<string,vector<AScript> >::iterator it2; for (it2 = it->second.begin(); it2 != it->second.end(); ++it2) { for (int i = 0; i < it2->second.size(); ++i) { ostringstream os; os << i; { ofstream ouf((path+quest_name+"."+it2->first+"."+os.str()+"."+"script").c_str()); copy(it2->second[i].script.begin(),it2->second[i].script.end(), ostreambuf_iterator<char>(ouf)); } { ofstream ouf((path+quest_name+"."+it2->first+"."+os.str()+"."+"when").c_str()); if (!it2->second[i].when_condition.empty()) { ouf << "return "; copy(it2->second[i].when_condition.begin(),it2->second[i].when_condition.end(), ostreambuf_iterator<char>(ouf)); } } { ofstream ouf((path+quest_name+"."+it2->first+"."+os.str()+"."+"arg").c_str()); copy(it2->second[i].when_argument.begin()+1,it2->second[i].when_argument.end(), ostreambuf_iterator<char>(ouf)); } } } } } { map<string,map<string,string> >::iterator it; for (it = state_script_map.begin();it!=state_script_map.end();++it) { string path; if (it->first.find('.')==it->first.npos) { // one string s = it->first; transform(s.begin(),s.end(),s.begin(),::tolower); mkdir(OUTPUT_FOLDER "/notarget",0755); mkdir((OUTPUT_FOLDER "/notarget/"+s).c_str(),0755); path = OUTPUT_FOLDER "/notarget/"+s+"/"; } else { string s = it->first; transform(s.begin(),s.end(),s.begin(),::tolower); int i = s.find('.'); mkdir((OUTPUT_FOLDER "/"+it->first.substr(0,i)).c_str(),0755); mkdir((OUTPUT_FOLDER "/"+it->first.substr(0,i)+"/"+s.substr(i+1,s.npos)).c_str(),0755); path = OUTPUT_FOLDER "/" + it->first.substr(0,i) + "/"+s.substr(i+1,s.npos)+"/"; } map<string,string>::iterator it2; for (it2 = it->second.begin();it2!=it->second.end();++it2) { ofstream ouf((path+quest_name+"."+it2->first).c_str()); copy(it2->second.begin(),it2->second.end(), ostreambuf_iterator<char>(ouf)); } } } CheckUsedFunction(); } int main(int argc, char* argv[]) { mkdir(OUTPUT_FOLDER, 0700); L = lua_open(); luaX_init(L); if (argc > 1) { for (int i = 1; i < argc; ++i) { g_filename = argv[i]; parse(argv[i]); } } lua_close(L); return 0; } Quelqu'un aurait une idée du problème ? Merci d'avance
  12. Bonjour j'aimerais énormement suivre ce tutoriel de Calypso " mais des que je veut cliquer sur un lien sa me dit : Hidden Link You must react to this topic by clicking on the little heart at the bottom right of this message while being connected to unlock the link. Pourtant je suis bien connécter
  13. Y'a t-il une methode pour desactivé l'exp sans toucher les protos? car ca va prendre plein de temp ^^'
  14. Après des mois de travail acharné, l’équipe Razen2 est fière de pouvoir vous présenter le serveur de manière officielle. Razen2 est un serveur New-School ayant de tout nouveaux systèmes afin d’améliorer votre expérience de jeu. L’ouverture se fera le 09 Avril 2021, rejoignez la bataille et graver votre nom dans l’histoire de Razen2. Toute l’équipe vous souhaite d’ores et déjà une bonne lecture en espérant vous voir très vite sur notre serveur ! Razen2
  15. Spanish: Hola a todos los invito a unirse a una nueva aventura en el servidor Metin2 Restart un servidor estilo Old School, acabando de abrir, un servidor único que no imaginaste, ven acompáñanos a divertirte en esta nueva aventura en Metin2 Restart. Redes Sociales. English: Hello everyone, I invite you to join a new adventure on the Metin2Restart server, a new Old School style server just opened where new challenges are waiting for worthy players, there is a great team on staff with the only mission is guide them, help them and motivate them through this path, constant events and challenging challengers are what awaits you at the doors of this server, what are you waiting for? We? We are waiting for you. REDES SOCIALES // SOCIAL NETWORKS Discord http://bit.ly/36gbFng Instagram http://bit.ly/3iZ069d Youtube http://bit.ly/3poB5a3 Twitter https://bit.ly/2MvKMEK Facebook http://bit.ly/3cdirOB CARACTERISTICAS Registros activos servidor Metin2 Restart. Actualizaciones Cada Semana Características: ~50% PvM & 50% PvP. ~Lvl maximo 120. ~Inicio Lvl. 1 con equipo +9 ~Habis Perfect con libros en City y piedras alma de Metines o jefes ~Armas & Armaduras- Old School. ~Si Lycan. ~Estolas. ~Piedras+4. ~Mazmorras Todas Parecidas al Oficial. ~Alquimia ~Crafteos. ~Biologo Básico. ~3Channel disponibles. ~Mapas de Leveo Igual Que En El Oficial ~Mascotas, Monturas y atuendos oficiales, Nuevos y antiguos. ~Torneo PvP (Budokan). ~Super Balance PVP ~Super Balance en PvM Los esperamos en Metin2 Restart y los espereramos. Atte: Todos los miembros del staff y jugadores ON del Server Restart FEATURES Active logs Metin2 Restart server. Updates Every Week Characteristics: ~50% PvM & 50% PvP. ~Lvl maximum 120. ~Home Lvl. 1 with equipment +9 ~Perfect with books in City and Metines soul stones or bosses ~Weapons & Armor- Old School. ~Yes Lycan. ~Stoles. ~Stones + 4. ~Dungeons All Similar to the Officer. ~Alchemy ~Crafting. ~Basic Biologist. ~3Channel available. ~Leveo Maps Same As The Official ~Pets, Mounts and official outfits, New and old. ~PvP Tournament (Budokan). ~Super Balance PVP ~Super Balance in PvM We are waiting for you at Metin2 Restart and we will wait for you. Atte: All staff members and ON players of the Server Restart https://www.youtube.com/watch?v=UlQuUpXtHsU&t=9s
  16. apres avoir rentrer le root je sais plus la manip pour pouvoir lancer le serveur je sais que c'est ./sh start mais avant et pour les libs je trouve plus le tuto non plus merci de m'aider
  17. voila je m'explique en gros quand je déco de mon serveur tout les item sur mon personnage disparaisse
  18. Lien discord : https://discord.gg/yxytUJr Bonne lecture
  19. Bonjour à tous, je voulais exporter un modèle en GR2 via 3DS max mais problème. 3DS Max 2007 galère avec les dds, je peux appliquer la texture mais je ne la vois pas ! J'exporte quand même le modèle mais le modèle est tout noir sur granny viewer. Que faire ? Je suis au courant que Max à toujours un problème avec les fichiers DDS, si quelqu'un à la solution à mon problème ? PS: oui j'ai installé les plugins DDS pour Max. Merci d'avance !
  20. Bonjour, Après avoir modifier mes fichiers config dans les Files 2018 et après avoir réussis a connecter le serveur à la Base de données (Youpi!) j'ai un soucis de lancement de channels. J'ai beau avoir modifier mon fichier index.sh mais au lancement le serveur me signale qu'il ne trouve pas le core1_ch1 par le biais de auth.sh alors que le dossier y est bien... Une capture d'écran : Si quelqu'un pouvait m'indiquer une solution pour m'aider ? Il me le fait à chaque lancement, et là, je sèche malheureusement. Merci !
  21. Website: https://rop2.global/ Board: https://board.rop2.global/ Discord: https://rop2.global/discord/ The server were in mentenance the past few weeks for a total change of the game. I'm so happy to announce you that the server will be oppened on 14 November. What time?: Spain/Hungary/Czech/Italy/France/Poland/Germany - 19:00 Romania - 20:00 Turkey - 21:00 Portugal - 18:00 SERVER PRESENTATION: CLICK
  22. Hi, I have implemented the Target Info System, everything is fine, I have only this annoying visual bug. If I open the info with a monster with no drop, it is all okay, but if I open a monster with 5/6 items that has the "scroll down thing" and then i click again on a monster with no drop I have this visual bug. Anyone know how I can fix it? Thank you [Hidden Content] Sysser: 0827 11:38:19693 :: File "ui.py", line 1506, in OnMove 0827 11:38:19693 :: File "ui.py", line 88, in __call__ 0827 11:38:19693 :: File "ui.py", line 70, in __call__ 0827 11:38:19693 :: File "ui.py", line 2495, in OnMove 0827 11:38:19693 :: File "ui.py", line 88, in __call__ 0827 11:38:19693 :: File "ui.py", line 70, in __call__ 0827 11:38:19693 :: File "ui.py", line 720, in __OnScroll 0827 11:38:19693 :: ReferenceError 0827 11:38:19693 :: : 0827 11:38:19693 :: weakly-referenced object no longer exists 0827 11:38:19693 :: I compare with another clients with that system and i cant see where is the error at.. please help

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.