![](https://fr.metin2.dev/uploads/set_resources_42/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://fr.metin2.dev/uploads/set_resources_42/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
skulldeath
-
Compteur de contenus
128 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Boutique
Calendrier
Messages posté(e)s par skulldeath
-
-
Version des files : 2012
Domaine (Base de données, Core, etc.) : Compilation
Votre niveau (débutant, intermédiaire, avancé) : débutant
Bonjour, j'ai suivi le tuto de Calypso: https://fr.metin2.dev/topic/15983-c-compiler-le-client-binary/
mais au moment de la compilation sept erreurs surviennent :
17>cryptlib-5.6.1MT.lib(cryptlib.obj) : error LNK2001: symbole externe non rÚsolu "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ) 17>cryptlib-5.6.1MT.lib(cryptlib.obj) : error LNK2001: symbole externe non rÚsolu "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ) 17>cryptlib-5.6.1MT.lib(gf2n.obj) : error LNK2001: symbole externe non rÚsolu "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) 17>cryptlib-5.6.1MT.lib(gf2n.obj) : error LNK2001: symbole externe non rÚsolu "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) 17>cryptlib-5.6.1MT.lib(integer.obj) : error LNK2001: symbole externe non rÚsolu "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z) 17>cryptlib-5.6.1MT.lib(integer.obj) : error LNK2001: symbole externe non rÚsolu "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,class std::basic_string,class std::allocator > const &)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z)
j'ai bien essayer de résoudre le problème grâce à cette solution proposer ci dessous même si celle-ci n'est pas exactement identique mais sans réussite.
16>cryptlib-5.6.1MTd.lib(iterhash.obj) : error LNK2001: unresolved external symbol "void __cdecl std::_Xbad_alloc(void)" (?_Xbad_alloc@std@@YAXXZ)
Je me demande donc si j'ai bien réussi la manipulation ou si d'autre paramètre entre en compte.
En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.
-
exactement galet l'erreur était autre part =)
-
up !
edit: c'est bon je viens de résoudre et de debug a 100% le systeme de costume pour file 2012 sujet a lock merci.
-
Bonjour tout le monde,
Je suis sous file 2012 et je test de rendre le System de costume fonctionnel malheureusement j'ai une erreur assez surprenante qui est survenu sur putty
ni mon client ni mes log serveur n'ont d'erreur juste putty qui me dit
syntax error; "(" unexpected
quest costume_system_equip begin state start begin function get_real_hair_id(vnum) Query = mysql_query("SELECT item_proto.value3 FROM player.item_proto WHERE item_proto.vnum = '"..vnum.."'") return Query.value3[1] end when 41003.use begin local vnum = item.get_vnum() local hair_vnum = costume_system_equip.get_real_hair_id(vnum) end end end
la fonction split et mysql sont des fonctions qui on été partager dans diverse partage
-- MySQL function split(str, delim, maxNb) if str == nil then return str end if string.find(str, delim) == nil then return { str } end if maxNb == nil or maxNb < 1 then maxNb = 0 end local result = {} local pat = "(.-)" .. delim .. "()" local nb = 0 local lastPos for part, pos in string.gfind(str, pat) do nb = nb + 1 result[nb] = part lastPos = pos if nb == maxNb then break end end if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end return result end mysql_query = function(query) if not pre then local rt = io.open('CONFIG','r'):read('*all') pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4') end math.randomseed(os.time()) local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{} os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- pour MySQL51 -- os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- pour MySQL55 for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi); for i = 2, table.getn(t) do table.foreach(t[i],function(a,b) out[i-1] = out[i-1] or {} out[i-1][a] = tonumber(b) or b or 'NULL' out[t[1][a]] = out[t[1][a]] or {} out[t[1][a]][i-1] = tonumber(b) or b or 'NULL' end) end return out end -- End_Of_MySQl
Merci d'avance.
edit:
l'erreur est a cette instruction
Query = mysql_query("SELECT item_proto.value3 FROM player.item_proto WHERE item_proto.vnum = '"..vnum.."'")
si on lui met
query = mysql_query(select) ok pas de soucis ( la requette ne se fera jamais tout a fait normal )
en revanche si on met
query = mysql_query("select") la le problem syntax error; "(" unexpected revient donc ok sa viens des double cote " " avec des simple cote ' ' même soucis
donc si quelqu’un vois comment résoudre le problème
-
j'ai réussi a debug intégralement mon moob merci a tous.
-
oui c'est la première chose que j'ai regarde mais malheureusement je l'avais mis en AGGR.
si tu veux plus de précision kijaru si je fait spaw mon moob sans animation il spaw en regardant vers la gauche et j'ai essayer de lui mettre une rotation sa ne change rien je comprends pas pourquoi et je pense que c'est ce qui est a l'origine de mon problème mais je vois pas du tout comment le résoudre.
-
je peu te contacter pour que tu m'explique ?
mais pour faire simple j'ai mis une rotation sur la droite pour changer l'axe de déplacement et quand je regarde sous granny viewer le moob de déplace bien dans le même sens que les autre moob mais IG même soucis le moob va toujours a gauche.
-
oui il avançait vers la droite suivant l'axe x je lui est mis une rotation vers la droite de 90° ( vu qu'il allais a 90° vers la gauche de la direction sélectionner) du coup j'ai mis une rotation aussi sur l'animation du coup il se déplace suivant -y quand je lance sous 3ds max ou granny viewer le moob se déplace bien dans le même sens que les autres mais IG il continue d'aller vers la gauche.
-
Modifie les axes, ils ne sont pas bon.
je vois pas bien se que tu veut dire par modifie les axes
sinon ok pour la vitesse
-
merci Kijaru sa fonctionne parfaitement bon il se déplace comme une tortue mais il se déplace c'est déjà sa =) par contre il se déplace toujours a 90° vers la gauche de la direction sélectionner du coup si je clic devant il va a gauche si je clique a gauche il va derrière etc et je sais pas pourquoi
-
Bonjour tout le monde.
J'ai crée un moob sous 3dsmax 7 jusque la aucun soucis je lui est crée des animation la encore pas de soucis je vois le moob IG les animation fonctionne IG sauf que mon moob ne fait aucun déplacement l'animation run et walk fonction on vois le moob la faire mais il reste sur place et il regarde sur sa gauche au lieu d'en face.
Donc j'aurais aimer savoir si le run et le walk se faisait ou s'exportai de façon différente ou si au niveau de la création une option ou un réglage supplémentairement doit être fait.
Merci d'avance.
-
oui avec when party_kill sa pourrai être fait éventuellement je viens de pense a sa aussi mais du coup on ne passera pas directement par
pc.give_exp2() ou pc.give_exp()
mais l’idée va être de faire un compteur dégressif
quest name begin state start begin when login with pc.get_map_index() == IDMAP pc.setqf("exp", 1) end when party_kill with npc.get_race() == IDMOOB begin pc.setqf("exp", pc.getqf("exp")-1) if pc.getqf("exp") == 0 then pc.give_exp2(30000) pc.setqf("exp", pc.getqf("exp")+1) end end end end
bon c'est fait vite fait mais sa devrais passer je testerai et j’éditerai si sa ne fonctionne pas et je la laisserai pour ceux que sa intéresse.
-
when IDDUMOB.kill est très bien néanmoins quand tu l'utilise plusieurs fois il y a des bugs je l'avais même lu dans un tuto et effectivement quand par exemple tu mettais
when 691.kill dans un system de succès par exemple et que tu avais une quette qui affiche en général lorsque tu tue moob 691 avec cette même syntaxe et bien au moins une des deux quettes ne se valide pas du coup maintenant j'utilise when kill with npc.get_race() == IDDUMOOB comme le tuto le demandais et j'ai plus aucun soucis,
et oui guii59 "une quête qui permet de tuer un boss et de recevoir de l'exp, ainsi qu'au groupe, tout est facile à faire à part pour le groupe, faut juste connaître les codes"
c'est se que je veux faire mais je ne connais pas les codes
c'est justement se que je cherche a savoir.
-
up up
-
Bonjour tout le monde
Je sais que l'on peu donner de l'exp a un joueur si il kill un certain moob
comme ici
when kill with npc.get_race() == 4008 begin
pc.give_exp2(30000)
maintenant ma question est la suivant comment fait-on lorsqu'on est en groupe pour que la personne qui ne le kill pas est de l'exp quand même
je vous remercie.
-
super quette, je verrais si à l’occasion si le temps me le permet de coder la décrémentation c'est a dire que pour chaque mort que l'on subit on perd un point de grade de guerre car sinon on fini tous général et en instaurant aussi une sécurité de bloque le grade a 3500 pour éviter que certain se monte leur grade a +1 million et par se fait qu'il ne puisse jamais redescendre
-
ok merci je vais quand meme continuer a essayer de trouver des solutions
pour faire un game.get_event_flag( ) sans pnj
-
j'aimerai garder se projet pour moi j'utilise des idées que je n'est pas encore vu je voudrais pas que un meilleur codeur me prenne l’idée pour la coder et s'approprier la quette
-
Il ne me semble pas que ça soit possible d'empêcher un empire de frapper un autre en utilisant une quête. Par contre, tu peux faire un système de "contournement de problème" : quand le joueur tue un autre joueur d'un empire qu'il doit pas attaquer, il se fait téléporter je ne sais où... ou il perd des items enfin des trucs comme ça...
je vois un system de if qui dit que si l'empire 1 kill l'empire 3 sa tp je vois bien penser ^^mais sa risque de poser des soucis avec l'idee de ma quette peut-on allier 2 empire avec une quette ou y a t-il un moyen de faire une alliance autrement que avec une quette ?
Je ne suis pas sur d'avoir bien compris. D'après ce que j'ai compris, tu souhaites en gros qu'un perso GM puisse "lancer" une quête, un event j'imagine pour tous les autres joueurs du serveur ?parfaitement oui
Si c'est le cas, en effet, c'est via un event_flag qu'il faut procéder. Le problème est qu'il faudra un élément déclencheur pour tous les joueurs.Je m'explique : pour que le GM puisse lancer la quête, il faut par exemple qu'il actionne un item ou parle à un PNJ, pour lancer un état de quête qui va s'occuper de passer l'event_flag à 1 par exemple.
Mais ça ne suffit pas. Il faut ensuite que les joueurs, les autres personnages, fassent une action pour qu'on puisse faire leur quête, car sans déclencheur rien ne se passera.
ok ma quette en faite je l'ait mis en letter comme une quette de chasse donc elle se déclenche si je clique dessus et que je fait lancer l'event par contre je ne suis pas passer par l'event flag j'ai mis une condition set_state apres avoir lancer l'event sa envoie dans cette state qui elle envoie une letter au joueur pour qu'il puisse aller a l'event je voudrais éviter le pnj si possible.
-
up up
-
bonjour marvinouom,
écoute les suggestion et met 4 chiffre lorsque tu utilise des ID trop grand comme toi les items deviennent invisible j'ai eu le même problème avec des armure ou mon id était de 90000 et plus donc j’imagine que si les armure deviennent invisible a se niveau d'ID les arme sa doit être pareil redescend a des valeur a 4 chiffres.
Cordialement.
-
bonjour a toi mandrilux oui effectivement c bien la collum 'flag' dans mysql à modifier il te suffi juste de retirer 4 a la valeur de ton flag
un /reload in game
et voila.
Cordialement.
-
Bonjour tout le monde,
je voudrais savoir si il est possible avec la commande de quête pc.get_empire () de bloquer le pvp entre 2 empire sur une map bien précise mais pas avec le 3eme un system de 2 vs 1 et si oui comment le codé.
et 2eme question je voudrais que la quette soit reserver GM donc avec pc.is_gm() mais que sa envoie une quette au perso joueur comme une confirmation pour participer a un event j'aimerais des indication sur comment coder cette parti aussi car j'ai un problème les joueur ne reçoivent pas la quette je suis passer par la commande set_state aurait-il fallu la commande de flag ?
je voudrais éviter de passer par un pnj ou par un tiem.
Je vous remercie par avance.
-
up...problème identifier sa viens des dif pour avoir des caractéristiques a 127
0002E252: 5A FA
00031F6C: 5A FA
0007D600: 59 7E
0008B4AF: 5A 7F
0008B4C8: 5A 7F
0008B4F9: 5A 7F
0008B661: 5A 7F
0008B67E: 5A 7F
0008B6A5: 5A 7F
0008B6C2: 5A 7F
0008B6F3: 5A 7F
donc si quelqu'un sais quel ligne fait bug sa serai sympa
ou si quelqu'un si connais en quette pour faire une quette qui donne des points de caractéristiques
merci d'avance.
édit: résolu
Bug compilation client
dans Questions & Réponses
Posté(e)
Salut Asius,
toujours les même erreurs.
Edit: sujet résolu.
Solution: compiler cryptlib2008.sln en MTD pour avoir la lib cryptlib-5.6.1MTd.lib le recompiler en MT pour avoir la lib cryptlib-5.6.1MT.lib et le compiler en debug pour avoir la lib classique cryptlib.lib et remplacer les lib dans le dossier lib créé auparavant dans le tuto et faire une copie de ces lib dans le dossier novaline\Srcs\Client\UserInterface.