Beiträge von Syreldar

    If what you're looking for is something like


    Code
    1. say("Wild Dog, Wolf, Alpha Wolf, Blue Wolf, Alpha Blue Wolf.")


    then:



    or:


    LUA
    1. -- This version concats the table to make the string, easier to write, but with a dirtier-looking table.
    2. local mob_name_table = {mob_name(101), mob_name(102), mob_name(103), mob_name(104), mob_name(105)};
    3. local str = string.format("%s.", table.concat(mob_name_table, ", "))
    4. say(str)
    5. > returns say("Wild Dog, Wolf, Alpha Wolf, Blue Wolf, Alpha Blue Wolf.")

    If you doublechecked all your implementation and find no flaws then either the sashes aren't implemented in the client or you're missing the playersettingmodule part.

    Hello.


    I've ran this system on my server for over 2 years. And it was using files from marty.


    Could you translate in english what the problem is? You can't see all the sashes or only some sashes? Or is there another issue?

    You just answered your own question. With horses (default metin2 mount) it's fine. Horses also remount after teleport, but it still works fine with them. Which means this change has no bugs.


    The bug lies inside your costume_mount system.

    You know that you don't need any .cpp part to do this, right? It can be easily done by adding 8 lines in the quest, and without any bugs whatsoever.


    This is for the default YMIR quest.


    Add this trigger:

    LUA
    1. when login with pc.getqf("pet_vnum") ~= 0 and item.select(pc.getqf("pet_item_id")) begin -- If you had a summoned pet before teleporting yourself and you still have the seal..
    2. local mob_vnum = pc.getqf("pet_vnum");
    3. pet.summon(mob_vnum, string.format(" - %s", mob_name(mob_vnum))); -- ..summon the pet. (it takes the name the pet has in the database, so make sure to set it up properly in the mob_proto)
    4. end -- when


    Now, add the flag reset before pet.unsummon calls, like this:


    LUA
    1. pc.setqf("pet_vnum", 0);
    2. pc.setqf("pet_item_id", 0);
    3. -- pet.unsummon() calls here.


    And set them up before pet.summon calls, like this:

    LUA
    1. pc.setqf("pet_vnum", mobVnum); -- Register the pet's NPC vnum.
    2. pc.setqf("pet_item_id", item.get_id()); -- Register the item_id of the used seal.
    3. -- pet.summon() calls here.


    That's it, you're done.


    I don't understand why would he just copypaste other people's code without using his brain and not even checking the code itself, I mean..the answer is simple: gaining free likes, but is it even possible to not notice the gigantic falls in the things he wrote?


    He is setting up pet_item_id in the quest like this


    LUA
    1. pc.setqf("pet_item_id", item.get_id());


    He's using setqf, which means the qf takes the quest's name as the main flag. So the full name to call that qf is now pet_system.pet_item_id (pet_system being the quest's name).


    It's the same as:

    LUA
    1. pc.setf("pet_system", "pet_item_id", item.get_id());


    But then he tries to call it in the source like this..?

    C
    1. m_pkOwner->SetQuestFlag("pet_item_id.pet_vnum", 0);


    How does this even make any sense? How is this even supposed to remotely work?


    What he tried to do here is what I did via quest, resetting the flags. But this is wrong, it should've been written like this:

    C
    1. m_pkOwner->SetQuestFlag("pet_system.pet_item_id", 0);


    Which doesn't make it right still, because the whole .cpp modification he did is completely pointless.


    Guys please stop copypasting nonsense, use your brain or seek professional help.


    Cheers.

    No, those are different characters for sure.


    Bitte melden Sie sich an, um dieses Bild zu sehen.     Bitte melden Sie sich an, um dieses Bild zu sehen.


    Or they may be the same type but written in bold.

    So basically after destroying the right one or even all the lv50 Metin you don't get teleported to the next floor? Please write in English if I didn't understand the issue correctly.


    Could you show me the quest?


    Wrote it in a hurry at 6 AM, i doubt it will work properly but that is meant to show you how a properly written quest should look like.

    I'm happy I could help you.

    Hello, some guy told me about this post.


    Unfortunately, there is no default function that allows you to get the coordinates of a determined monster.


    By using your method (player position instead of monster position), you will get coordinates a slightly wrong in case the killer is a Bow Ninja. (Not much anyway since unless you modified the damage scaling based on distance they would still have to be pretty near the monster to do decent damage).


    Anyway, I would like you to explain what you wanted to accomplish: Maybe there's some other way to do it instead of using coordinates.


    If you really need coordinates, these source functions I wrote on the spot should do the trick (They're untested, don't lynch me if they don't work):

    Code
    1. local count2 = pc.getqf("state2") + 1

    ?? What are you doing here? You're inside a dungeon, why do you use a local questflag to count kills? you have to use a generic flag for that dungeon instance.


    You're also missing the dungeon check for the kill, it'll bug out if you kill the monster outside the dungeon without that, for now i'll help you fix the error you've got, but i'd suggest you to look for a competent developer capable of making a decent dungeon quest so you don't run into further trouble with the dungeon.


    I also have no idea why are you using states and random functions like pc.aggregate_monster(), all the monsters are always aggressive inside dungeons, if you need them to aggro from further range, you can just increase their sight radius in the mob_proto's field, or increase it via source if they're inside dungeons.


    Fixed snippet: