Jump to content

Forums

  1. Metin2 Dev

    1. Announcements

      Community updates and announcements...

      473
      posts
    2. Community Rules Marketplace Rules Ranks Top Metin2 Github Docs Pillory Discord
  2. Community

    1. Member Representations

      Here is the area where you can talk about yourself...

      252
      posts
    2. Off Topic

      Is there life beyond Metin2?

      2.4k
      posts
  3. Miscellaneous

    1. Metin2

      Everything about Metin2...

      1.5k
      posts
    2. Showcase

      Showcase allows you to post your latest works in this forum.
      This isn't the Marketplace / Third Party - Providers Directory.
      No sales attempt or your contact details are tolerated!

      1.9k
      posts
    3. File Requests

      Looking for files?
      Tell us your request in this forum...

      587
      posts
    4. Community Support - Questions & Answers

      You need help? Post your problems in this forum.
      Help is offered for free by members of the community.
      No paid service and you must explain how your problem was resolved!

      81.4k
      posts
    5. Paid Support / Searching / Recruiting

      Post your problems or searches in this forum, only if you want to pay.
      Are you looking for a collaborator in your team? Tell us your request in this forum.
      Also, consult our sellers within the Marketplace to search for a third-party service.
      Search for paid services and search for collaborators only!

      4.8k
      posts
    6. Marketplace - Sales & Services Community Rules Marketplace Rules Pillory Marketplace Dashboard
  4. Metin2 Development

    1. Basic Tutorials / Beginners

      Basic Tutorials for Beginners on Metin2!

      242
      posts
    2. Guides & HowTo

      Guides on Metin2!

      3.1k
      posts
    3. Binaries

      Binaries, Source Files, Client Files, Server Files...

      3.9k
      posts
    4. 15.5k
      posts
    5. Web Development & Scripts / Systems

      Share your scripts here: PHP, JS, CMS, Websites... All about the World Wide Web

      434
      posts
    6. Tools & Programs

      You created a tool that could be usefull for others? Share it to them to improve their experience with Metin2!

      2.1k
      posts
    7. Maps

      1 Map, 2 Maps, 3 Maps...
      You have enough maps to dress up your server!

      580
      posts
    8. Quests

      The quest that will make all the difference?
      She is here!

      711
      posts
    9. 1.7k
      posts
    10. 2D Graphics

      A facelift, what do you think?

      778
      posts
    11. Operating Systems

      FreeBSD, Windows...

      282
      posts
    12. Miscellaneous

      Resources & Stuff

      81
      posts
  5. Private Servers

    1. Private Servers

      Introduce us to your Metin2 p-server!
      You can also register your Metin2 private server on our top list → Top Metin2!

      300
      posts
    2. 513
      votes
    3. 513
      votes
    4. 40
      votes
  6. Uncategorized

    1. Drafts

      This forum allows you to create draft topics without being visible to other members of the community.

      • No posts here yet
    2. Trash

      Topics are visible only to team members and if you are the author.
      Deletion requests will therefore be ignored.

      • No posts here yet
    3. Archive

      Topics are visible only to team members and if you are the author.
      Deletion requests will therefore be ignored.

    4. Temporary

      This forum will be used to temporarily move unusable releases... Dead links...

      4.8k
      posts
    5. Metin2 Download

      This forum is dedicated to the automatic publication of @Metin2 Download.

      • No posts here yet

Announcements



  • Discord Widget
  • Current Donation Goals

  • News

  • Releases

  • Activity

    1. 0

      Metin2 effect script files (MSE and MSA file) how can convert

    2. 10

      Multi Language System

    3. 0

      We are looking for a C++ and Python programmer

    4. 0

      [Quest Scheduler Request] Is there a way to make a quest run independet of player events? Lets say start quest automatically at server startup?

  • Questions & Answers

    • Metin2 effect script files (MSE and MSA file) How can I convert a Unity particle system or 3ds Max animation file?
    • The idea is, i want this quest to run regardless of player actions, at the moment it seems to start at player login ideally the quest would start at day Y(could have daily flag) hour X so basically a scheduler, so it won't be dependent on any player events   quest test_npcmove begin state start begin when letter begin chat("Started") set_state("spawn_monster_in_map_boss_1") end end -- State to check for/spawn boss 1 state spawn_monster_in_map_boss_1 begin when letter begin chat("Spawning first boss") local mob_vnum = 102 -- Adjust VNUM for boss 1 local map_index = 352 local mobs = find_mobs_in_map(mob_vnum, map_index) local vid_boss1 = 0 local mobs_str = "BOSS 1 VIDs: {" .. table.concat(mobs, ", ") .. "}" chat(mobs_str) chat("Player X: " .. 339 .. " Y: " .. 363) if table.getn(mobs) > 0 then vid_boss1 = mobs[1] chat("Boss 1 found, using existing with VID: " .. tostring(vid_boss1)) else local vids = spawn_monster_in_map(mob_vnum, 1, false, map_index, 339, 363 + 10, true) vid_boss1 = vids[1] if vids[1] ~= nil then vid_boss1 = vids[1] chat("Boss 1 spawned with VID: " .. tostring(vid_boss1)) else vids = find_mobs_in_map(mob_vnum, map_index) vid_boss1 = vids[1] chat("Boss 2 fetched vid for spwaned mob: " .. tostring(vid_boss1)) end end pc.setqf("vid_boss1", vid_boss1) set_state("spawn_monster_in_map_boss_2") end end -- State to check for/spawn boss 2 state spawn_monster_in_map_boss_2 begin when letter begin local mob_vnum = 101 -- Adjust VNUM for boss 2 local map_index = 352 local mobs = find_mobs_in_map(mob_vnum, map_index) local vid_boss2 = 0 local mobs_str = "BOSS 2 VIDs: {" .. table.concat(mobs, ", ") .. "}" chat(mobs_str) if table.getn(mobs) > 0 then vid_boss2 = mobs[1] chat("Boss 2 found, using existing with VID: " .. tostring(vid_boss2)) else local vids = spawn_monster_in_map(mob_vnum, 1, false, map_index, 339, 363 - 10, true) vid_boss2 = vids[1] if vids[1] ~= nil then vid_boss2 = vids[1] chat("Boss 1 spawned with VID: " .. tostring(vid_boss2)) else vids = find_mobs_in_map(mob_vnum, map_index) vid_boss2 = vids[1] chat("Boss 2 fetched vid for spwaned mob: " .. tostring(vid_boss2)) end end pc.setqf("vid_boss2", vid_boss2) set_state("move_bosses") end end -- State to move both bosses state move_bosses begin when letter begin local vid_boss1 = pc.getqf("vid_boss1") local vid_boss2 = pc.getqf("vid_boss2") local target_x = 339 local target_y = 363 mob_move(vid_boss1, target_x, target_y) mob_move(vid_boss2, target_x, target_y) chat("Both bosses moved to player's position.") set_state("bosses_fight") end end -- State where bosses fight state bosses_fight begin when letter begin local vid_boss1 = pc.getqf("vid_boss1") local vid_boss2 = pc.getqf("vid_boss2") local map_index = 352 chat("Boss 1 VID: " .. tostring(vid_boss1)) chat("Boss 2 VID: " .. tostring(vid_boss2)) local success2, message2 = set_pc_can_attack_monster(vid_boss1, false, map_index) local success3, message3 = set_pc_can_attack_monster(vid_boss2, false, map_index) chat("Attempt to make boss 1 invinciple " .. tostring(success2) .. " - " .. message2) chat("Attempt to make boss 2 invinciple " .. tostring(success3) .. " - " .. message3) -- Attempt to make boss 1 attack boss 2 local success1, message1 = attack_mob(vid_boss1, vid_boss2, map_index) if success1 ~= nil and message1 ~= nil then chat("Attack attempt from Boss 1 to Boss 2: " .. tostring(success1) .. " - " .. message1) else chat("Attack attempt from Boss 1 to Boss 2: success or message is nil") end -- Attempt to make boss 2 attack boss 1 local success2, message2 = attack_mob(vid_boss2, vid_boss1, map_index) if success2 ~= nil and message2 ~= nil then chat("Attack attempt from Boss 2 to Boss 1: " .. tostring(success2) .. " - " .. message2) else chat("Attack attempt from Boss 2 to Boss 1: success or message is nil") end chat("Bosses are now set to fight each other.") chat("---------------------------------END------------------------------------") set_state("bosses_alive") end end state bosses_alive begin when letter begin chat("Checking if boss died") local vid_boss1 = pc.getqf("vid_boss1") local vid_boss2 = pc.getqf("vid_boss2") local map_index = 352 -- Check if Boss 1 is alive local is_boss1_alive, boss1_msg = is_mob_alive_in_map(vid_boss1, map_index) chat("Boss 1 alive check: " .. tostring(is_boss1_alive) .. " - " .. boss1_msg) -- Check if Boss 2 is alive local is_boss2_alive, boss2_msg = is_mob_alive_in_map(vid_boss2, map_index) chat("Boss 2 alive check: " .. tostring(is_boss2_alive) .. " - " .. boss2_msg) -- Determine the next state based on the bosses' statuses if not is_boss1_alive or not is_boss2_alive then if is_mob_alive_in_map(vid_boss1, map_index) then local success2, message2 = set_pc_can_attack_monster(vid_boss1, true, map_index) chat("Resetting invicibility for boss1 " .. tostring(success2) .. " - " .. message2) end if is_mob_alive_in_map(vid_boss2, map_index) then local success3, message3 = set_pc_can_attack_monster(vid_boss2, true, map_index) chat("Resetting invicibility for boss2 " .. tostring(success3) .. " - " .. message3) end chat("One of the bosses is dead. Resetting quest.") set_state("start") else chat("Both bosses are alive. Continuing the fight.") set_state("bosses_alive") end end end end And the last state, called bosses_alive seems to also reexecute only at player relog (login) Is there a way to make it so the states are independent of player events and just execute as soon as sv starts?
    • Hello, So I m trying to find where this vnum.kill function is defined on serverside, seems quite tricky, if anybody knows where it is defined and what name it has, please lmk 😄 Thanks, Gabi might be this guy void CQuestManager::Kill(unsigned int pc, unsigned int npc) { //m_CurrentNPCRace = npc; PC * pPC; sys_log(0, "CQuestManager::Kill QUEST_KILL_EVENT (pc=%d, npc=%d)", pc, npc); if ((pPC = GetPC(pc))) { if (!CheckQuestLoaded(pPC)) return; // kill call script if (npc >= MAIN_RACE_MAX_NUM) //@fixme109 m_mapNPC[npc].OnKill(*pPC); //@warme004 m_mapNPC[QUEST_NO_NPC].OnKill(*pPC); #ifdef ENABLE_PARTYKILL // party_kill call script LPCHARACTER ch = GetCurrentCharacterPtr(); LPPARTY pParty = ch->GetParty(); LPCHARACTER leader = pParty ? pParty->GetLeaderCharacter() : ch; if (leader) { m_pCurrentPartyMember = ch; if (npc >= MAIN_RACE_MAX_NUM) //@fixme109 m_mapNPC[npc].OnPartyKill(*GetPC(leader->GetPlayerID())); //@warme004 m_mapNPC[QUEST_NO_NPC].OnPartyKill(*GetPC(leader->GetPlayerID())); pPC = GetPC(pc); } #endif } else sys_err("QUEST: no such pc id : %d", pc); }  
    • Hello all, It's my own created bug. I made many changes(implenting of systems) and I didn't noticed until now, so I'm not sure what invoke the below bug.   If anyone could help me. The below there is a description of bug, feel free to ask parts of code etc...   This text is CHAT_TYPE_SHOUT --> Call.   But when add the Chatlogs Window above, the result of color is correct.   The same happends with all kinds of chat.(Guild,party etc..) I'm not sure for reason but I can see the correct color in chat, when the screen/background/frontground is darker. (E.g. I tried to take a screenshot of bug with Lightshot  the screen became darker and then the color of text was correct(green in this case).
    • Hey, I want to know what is the most important thing to know, when you want to be a DEV in Metin2? What skills do you need, which software do you need (if you maybe want to host it online too)   Thank you for your answers! :)
  • Popular Contributors

×
×
  • Create New...

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.