Jump to content
×
×
  • Create New...

Takuma

Membre
  • Posts

    20
  • Joined

  • Last visited

About Takuma

  • Birthday June 8

Profil

  • Discord
    Takuma#2725

Recent Profile Visitors

569 profile views

Takuma's Achievements

  1. 2528164391053440000
  2. 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".
  3. 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 !
  4. 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.
  5. 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.
  6. Il faut faire varier la position de l'affichage en fonction des deux constantes : SCREEN_WIDTH et SCREEN_HEIGHT.
  7. 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...
  8. 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.
  9. Trop hâte ! Un projet sérieux, plus qu'une semaine à attendre !
  10. J'aime Google, j'adore Bjarne Stroustrup, et je tue Microsoft. HTML CSS PHP
  11. 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
  12. J'aime Python, j'adopte Discord et je tue GitHub (Si on parle bien de juste github et pas git en général !) funky-emu.net metin2.dev Metin2 Bon courage
  13. J'aime Takuma, j'adopte Bounjak et je tue Among US MSI Corsair Apple
  14. Essaye de passer ta MICRO_VERSION de 15 à 6 du coup, ça doit être celle-ci de base.. Tu perds rien si tu essayes de toutes façons.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.