-
Compteur de contenus
22 -
Inscription
-
Dernière visite
À propos de Takuma
- Date de naissance 8 juin
Réseaux Sociaux
-
Discord
Takuma#2725
Visiteurs récents du profil
801 visualisations du profil
Takuma's Achievements
-
Dans tous les cas je fusille mon taf... Je bosse sur du Python avec PyCharm et c'est clairement de l'argent facile On va dire : J'aime l'argent facile, j'adopte Python et je tue PyCharm (désolé mon vieil IDE ) Marseille Free Metin2 (donc tuer metin2dev et funk emu forcément)
-
J'aime le Saucisson, j'adopte la fondue (bourguignonne) et je tue la raclette. (Chauvin pour toujours.) Funky-Emu Metin2dev Top-metin2
-
20225315128427520000
-
2528164391053440000
-
Créer un serveur privé Metin2 avec Legacy of Metin2 Project
Takuma a répondu à un(e) sujet de ASIKOO dans Création & Gestion de Serveur
Alors là c'est l'utilisation même d'un ordinateur qui est à revoir... "Il est en bloc note" -> ça c'est juste ton programme par défaut pour ouvrir les .sql. Rien ne t'empêche de l'exécuter sur ta base de données. Même chose pour ton fichier "M2 Vm". -
Salut. J'espère avoir compris ce que tu demandes... Oui il faudra que tu touches aux sources. Cependant la méthode va dépendre de comment est codé ton système de prestige. Si ton prestige est un attribut propre d'un joueur (char.h), alors tu pourras très certainement suivre exactement la même structure que pour ce qui existe avec le niveau (regarde le fichier questlua_pc.cpp). Si c'est fait moins proprement... Comme une requête SQL qui actualise en tant réel et le prestige et qu'il n'est pas directement intégré au personnage : tu devras faire de même et faire une requête SQL à chaque utilisation de la fonction pour l'obtenir. Pour te donner quelques indications, la fonction classique pour récupéré le niveau est : int pc_get_level(lua_State* L) { lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->GetLevel()); return 1; } Pour la requête en direct c'est un peu plus compliqué... Tu devras sûrement faire quelque chose du genre : int pc_get_prestige(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); char szQuery[1024]; snprintf(szQuery, sizeof(szQuery), "SELECT prestige FROM player%s WHERE name='%s'", get_table_postfix(), ch->GetName()); std::unique_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery(szQuery)); if (pmsg->Get()->uiNumRows > 0) { MYSQL_ROW row = mysql_fetch_row(pmsg->Get()->pSQLResult); int prestige = 0; str_to_number(prestige, row[0]); lua_pushnumber(L, prestige); return 1; } lua_pushnumber(L, -1); return 1; } (C'est du nom testé, ça va dépendre de tes files, ta base de données etc...) Et pour ajouter la fonction : oui tu devras l'ajouter dans ta liste de fonction, mais aussi à la fin de ton fichier questlua_pc.cpp tu trouveras une liste avec les fonctions déjà bien remplie (luaL_reg pc_functions[]). Bon courage !
-
Salut. Alors en réalité, il y a plein de raison pour laquelle ça ne peut pas marcher : Tu n'as pas de fichier CONFIG au même niveau que tes game (ou liens symboliques); Ce même fichier ne peux pas être lu par le biais de l'expression régulière utilisée dans ta fonction; La commande mysql ne fonctionne pas; etc... Il semblerait que la commande varie entre MySQL5.1 et MySQL5.5... Tu peux vérifier la version que tu as avec la commande : mysql -V. D'ailleurs je trouve ça assez perturbant qu'il n'y ait pas d'espace après le -e dans l'appel système. Je suis pas assez renseigné pour savoir ce que le LUA va donner avec cette méthode... Ca peut par contre être intéressant de voir ce que l'appel donne en l'écrivant dans un fichier par exemple : file = io.open("output.txt", "a") file:write('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) file:close() (A ajouter après le os.execute()). Désolé de pas pouvoir te donner de réponse concrètement, mais je n'ai jamais utilisé cette fonction... Cependant ça peut-être intéressant de savoir ce qu'il écrit dans ton fichier output.txt avec le code plus haut afin de voir si tu obtiens quelque chose d'intéressant en l'exécutant à la main... ça te permettra peut-être de situé l'erreur. En l'exécutant, le résultat devrait apparaitre dans un fichier dont le nom est un suite de chiffres du coup (fi). Ce que tu peux en revanche faire, c'est essayer d'utiliser d'autres méthodes qui sont très régulièrement présentes dans les sources : mysql_direct_query mysql_espace_string NB : Si tu ne les as pas, tu pourras les trouver ici sur elitepvpers, en plus d'un mini tutoriel pour t'en servir. La différence est que ces méthodes passent directement par le game, et n'est pas un bricolage avec des commandes systèmes par le lua... Bon courage.
-
Salut. Alors du coup non modifier le proto prendrait en soit pas beaucoup de temps, il suffit d'éditer une colonne... Avec un tableau c'est vraiment l'histoire de quelques secondes. Et c'est clairement le plus simple. Ensuite selon tes sources la méthode de Veltor ne marchera pas... Je m'explique : en fait, avant les jeux en Chine étaient obligés de mettre une limite d'heure pour éviter l'intoxication aux jeux vidéos, donc cette méthode étaient utilisée pour que les joueurs ne puissent plus EXP après une certain temps. Sauf que (et là ça devient problématique pour toi), beaucoup de files ont viré ce système, et sur beaucoup (comme celles que j'ai sous les yeux), le taux que tu précises avec cette commande n'est pris en compte que s'il est supérieur à 100. (En gros, ça ne marche que pour donner un bonus d'exp) : rateFactor = std::max<rate_t>(100.0L, rate); Tu as en réalité deux choix : Soit tu vides tes protos avec un tableur comme excel et ça prend 10 secondes, et tu n'affectes par le jeu en lui même; Soit tu modifies directement tes sources, au niveau de la méthode GiveEXP(). Cependant, si tu fais ça, tu vas affecter tout ce qui touche l'expérience du jeu. Dans les deux cas, fais attention, les joueurs auront toujours moyens de gagner l'expérience avec certains trucs comme les quêtes (qui par défaut en donne). Bon courage.
-
[Metin2]Problème d'affichage
Takuma a répondu à un(e) question de Sangokay dans Questions & Réponses
Il faut faire varier la position de l'affichage en fonction des deux constantes : SCREEN_WIDTH et SCREEN_HEIGHT. -
[Metin2]Question sur l'écriture tchat
Takuma a répondu à un(e) question de Sangokay dans Questions & Réponses
Normalement tu as des IsArabic() partout dans ton client... Si ce qui est implémenté à l'origine est pas pété, il faut juste changer le locale pour que tout s'adapte... -
Forcé de constater que la date indiquée n'a pas été respectée, je suis vraiment déçu. J'en attendais plus de ce projet. La note va pas être haute sur tripadvisor.
-
Trop hâte ! Un projet sérieux, plus qu'une semaine à attendre !
-
J'aime Google, j'adore Bjarne Stroustrup, et je tue Microsoft. HTML CSS PHP
-
316020548881680000
-
J'aime StackOverflow, j'adore Guido van Rossum, je tue Python Minette Kijaru Stump Si jamais tu veux jouer en mettant des êtres humains(/vivants) de dans... @ASIKOO