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

skulldeath

Membre
  • Compteur de contenus

    128
  • Inscription

  • Dernière visite

Messages posté(e)s par skulldeath

  1. 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.

  2. 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.

  3. 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

  4. 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.

  5. 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.

  6. 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.

  7. 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 :/

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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

  13. 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.

  14. 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.

  15. 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.

  16. 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

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.