Forums

  1. Community

    1. Announcements

      General announcements about the board

      121
      posts
    2. Feedback

      Suggestions, Praises, Complaints and Bug Reports.

      343
      posts
  2. Metin2

    1. 1,995
      posts
    2. Questions and Answers

      Stuck? Ask the experts

      46,763
      posts
    3. 5,030
      posts
    4. Design

      Everything about drawing and modelling

      898
      posts
    5. Private Servers

      Advertise your server here

      335
      posts
    6. Services

      Offer your services here

      6,031
      posts
    7. Videos

      Let's plays, trailers and any video related to the game

      830
      posts
  3. Releases

    1. Quests

      You got a quest you want to share? No problem. Here's the right section for this

      823
      posts
    2. Binaries & Clients/Serverfiles

      Client and server executables and complete server / client packages

      4,433
      posts
    3. Maps

      If you got a map to release, feel free to do that here!

      252
      posts
    4. 3D Models

      Weapons, Armors, Hairstyles, Costumes, Objects...

      1,432
      posts
    5. 2D Graphics

      Interfaces, icons and design elements such as renders, brushes or textures, related to Metin2

      475
      posts
    6. Tools

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

      1,187
      posts
    7. Scripts

      You got some scripts like Python? Here is the right place to share it

      222
      posts
  4. Safe Zone

    1. Offtopic

      Is there life beyond Metin2?

      1,046
      posts
    2. Games Talk

      Talk about other games here

      191
      posts
    3. Music/Videos/Art

      All the Music/videos and art not relating to Metin2 go in here!

      611
      posts
  • Rules

    • Hello Developers, because we want to be the best possible experience we have to setup some rules. Please re-read the rules - we've made some changes!   Rules §1 Language (1.1) Language The language in this board is english. If you want to post something in your own language always add an english translation. The only exception for this rule is this section: Private Servers   (1.2) Behaviour Don't flame at other users. We want this board to be the best possible experience. You maybe want help and everybody started with no or little knowledge. So help and don't flame! Also we don't want to see any racism or sexism.   (1.3) Spamming Do not spam in this board. Posting a topic or a question once is enough. If you don't get an answer maybe your question needs more description. Or nobody is able to help you there. Double post aswell as double threads will be punished with an infraction.   §2 Topics (2.1) Titles For titles there are the same rules as §1.    (2.2) Bumping Allowed bumping times: Services area - 24 hours Q&A - 48 hours Any other bumping will result in an infraction!   (2.3) Close/Move/Rename request To make a close/move or rename request please report the topic with the thing you want us to do. Rename request are only allowed by the thread owners   (2.4) Content Don't post stuff other made and/or sell stuff others made. No Links to other boards with the same sense as metin2dev allowed. (This include file names and image content also!) No posting (whether to sell or give away for free) anything that involves cheating or stealing from people's clients or servers.  It's not allowed to give your/our own skypes in public topics/posts nor signatures, only via pm. The only exception is for people that are trying to sell their services.   (2.5) Questions & Answers specific rules Don't modify your thread (or reply to it) to mark it solved, and not explain the solution to the issue.    (2.6) Services section specific rules You are not allowed to post more than one thread per section inside the services section (which are max. 4). Please post anything you want to sell in the correct section and just edit your posts. Please also mark your offer via tags inside your thread title and with the tag function of this board so possible customers can find what they're searching. Additionally to this you are not allowed to post any thread (and/or offer any content on m2dev) until you've reached 50 posts.   (2.7) Tech section specific rules You are not allowed to post your services or releases in here. We have a release/service section for this. You're free to start any discussion or ask general questions connected to the sections name. Anything which especially is connected to metin2 (questions) goes into Q&A.   §3 Account (3.1) Names Names have the same rule as §1.2   (3.2) Multi-Account You are not allowed to create more than one Account. Also if you got a temporary ban.   (3.3) VIP You are not able to become a VIP for now. Please don't ask us about this. If this changes we will inform you just in time.   §4 Others (4.1) Contacting Team Members Contacting moderators and/or administrators personal (e.g via skype) for anything related to this board (questions, reports, etc) can be punished with an infraction.
      For reporting we have a report button in every post and for discussion about actions taken contact an administrator via a private message about the problem. Also don't contact any team member because your report wasn't solved in a specific time. We will do our best to solve it as fast as possible so there is no need to spam reports or write a pm within 24 hours the report got submit.   (4.2) Scamming Scamming is a bad thing. If you do so on this board you will be banned permanently. Please keep in mind that you are not allowed to report a scam without trustworthy proofs.   Sanctions We have some pre-defined sanctions and the possibility to create a custom one. Every action which is taken by us will have its correctness. But if you think your case was handled in a wrong way you have the possibility to contact an admin via pm. And because we have these pre-defined sanctions with infraction points i want to inform you about the actions taken by our system. < 3 points - no penalty >= 3 Points - suspended from accessing the site for 5 days >= 5 Points - suspended from accessing the site for 7 days >= 7 Points - suspended from accessing the site for 10 days >= 10 Points - suspended from accessing the site for 14 days 12 Points - suspended from accessing the site indefinitly Please note, that you are not allowed to create any other account while you are temporarily banned (as described in §3.2). If you are banned indefinitly you may create one more account (as a second chance) - but not more.   Sincerly, .PolluX and the metin2dev team
  • News

  • Topics

  • Posts

    • For armor and weapons, I don't want to download something. I just want to know how to change color of effect to black, I tried it, but effect always disappear
    • what you need effect ? for what   
    • I changed with 3 quests.. same problem. Initial quest: quest training_grandmaster_skill begin state start begin when 50513.use begin if pc.get_skill_group() == 0 then say_title(gameforge.training_grandmaster_skill._10_sayTitle) say(gameforge.training_grandmaster_skill._20_say) return end if get_time() < pc.getqf("next_time") then if pc.is_skill_book_no_delay() then say_title(gameforge.training_grandmaster_skill._10_sayTitle) say(gameforge.training_grandmaster_skill._30_say) wait() else say_title(gameforge.training_grandmaster_skill._10_sayTitle) say(gameforge.training_grandmaster_skill._40_say) return end end local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group()) local vnum_list = result[1] local name_list = result[2] if table.getn(vnum_list) == 0 then say_title(gameforge.training_grandmaster_skill._10_sayTitle) say(gameforge.training_grandmaster_skill._50_say) return end say_title(gameforge.training_grandmaster_skill._10_sayTitle) say(gameforge.training_grandmaster_skill._60_say) local menu_list = {} table.foreach(name_list, function(i, name) table.insert(menu_list, name) end) table.insert(menu_list, gameforge.locale.cancel) local s=select_table(menu_list) if table.getn(menu_list) == s then return end local skill_name=name_list[s] local skill_vnum=vnum_list[s] local skill_level = pc.get_skill_level(skill_vnum) local cur_alignment = pc.get_real_alignment() local need_alignment = 1000+500*(skill_level-30) test_chat(string.format(gameforge.training_grandmaster_skill._70_chat, cur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment)) local title=string.format(gameforge.training_grandmaster_skill._80_stringFormat, skill_name, skill_level-30+1) say_title(gameforge.training_grandmaster_skill._10_sayTitle) say(gameforge.training_grandmaster_skill._90_say) if cur_alignment<-19000+need_alignment then say_reward(gameforge.training_grandmaster_skill._100_sayReward) return end if cur_alignment<0 then say_reward(string.format(gameforge.training_grandmaster_skill._110_sayReward, need_alignment, need_alignment*2)) say_reward(gameforge.training_grandmaster_skill._120_sayReward) need_alignment=need_alignment*2 elseif cur_alignment<need_alignment then say_reward(string.format(gameforge.training_grandmaster_skill._130_sayReward, need_alignment)) say_reward(gameforge.training_grandmaster_skill._140_sayReward) else say_reward(string.format(gameforge.training_grandmaster_skill._130_sayReward, need_alignment)) end local s= select(gameforge.locale.levelup.prev_quest_go, gameforge.locale.cancel) if s==2 then return end if cur_alignment>=0 and cur_alignment<need_alignment then say_title(title) say_reward(gameforge.training_grandmaster_skill._150_sayReward) say(gameforge.training_grandmaster_skill._160_say) say_reward(gameforge.training_grandmaster_skill._170_sayReward) say(gameforge.training_grandmaster_skill._180_say) local s=input() s = string.gsub(s, "(%a*)%s*", "%1") s = string.lower(string.gsub(s, "(%a*)%s*", "%1")) local t = string.gsub(gameforge.training_grandmaster_skill._10_answer, "(%a*)%s*", "%1") t = string.lower(string.gsub(gameforge.training_grandmaster_skill._10_answer, "(%a*)%s*", "%1")) if s!=t then return end end if get_time() < pc.getqf("next_time") then if pc.is_skill_book_no_delay() then pc.remove_skill_book_no_delay() else say_title(gameforge.training_grandmaster_skill._10_sayTitle) return end end pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12))) if need_alignment>0 then if pc.count_item(50513) > 0 then if pc.learn_grand_master_skill(skill_vnum) then pc.change_alignment(-need_alignment) say_title(title) say_reward(gameforge.training_grandmaster_skill._190_sayReward) if 40 == pc.get_skill_level(skill_vnum) then say(gameforge.training_grandmaster_skill._200_say) say(string.format(gameforge.training_grandmaster_skill._210_say, skill_name)) say(gameforge.training_grandmaster_skill._220_say) else say(gameforge.training_grandmaster_skill._230_say) say(string.format(gameforge.training_grandmaster_skill._240_say, skill_name, skill_level-30+1+1)) end say_reward(gameforge.training_grandmaster_skill._250_sayReward) say_reward(string.format(gameforge.training_grandmaster_skill._260_sayReward, need_alignment)) else say_title(title) say_reward(gameforge.training_grandmaster_skill._270_sayReward) say(gameforge.training_grandmaster_skill._280_say) say_reward(gameforge.training_grandmaster_skill._290_sayReward) pc.change_alignment(-number(need_alignment/3, need_alignment/2)) end pc.remove_item(50513) else char_log(0, "HACK 50513", pc.getname()) end end end function BuildGrandMasterSkillList(job, group) GRAND_MASTER_SKILL_LEVEL = 30 PERFECT_MASTER_SKILL_LEVEL = 40 local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {} table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum) if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then table.insert(ret_vnum_list, skill_vnum) local name=locale.GM_SKILL_NAME_DICT[skill_vnum] if name == nil then name=skill_vnum end table.insert(ret_name_list, name) end end) return {ret_vnum_list, ret_name_list} end end end And a new quest, this working for me and some players, but some players can't open it. No error, no nothing.. quest training_grandmaster_skill begin state start begin when 50513.use begin say_title("Piatra spiritului") say("") local seelicount = pc.count_item(50513) if pc.get_skill_group() == 0 then say("Nu aveþi abilitãþi care pot fi antrenate.") say("") return end if get_time() < pc.getqf("next_time") then -- and not is_test_server() then if pc.is_skill_book_no_delay() then say("Ai folosit pergamentul exorcizãrii. Acum poþi") say("citi o piatrã a spritiului.") say("") wait() say_title("Piatra spiritului") else say("Trebuie sã aºtepþi o zi pentru a putea citi") say("o piatrã a spiritului sau foloseºte") say("pergamentul exorcizãrii.") say("") return end end local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group()) local vnum_list = result[1] local name_list = result[2] if table.getn(vnum_list) == 0 then say("Nu aveþi abilitãþi care pot fi antrenate.") say("") return end say("Selectaþi abilitatea care doriþi sã fie antrenatã.") say("") local menu_list = {} table.foreach(name_list, function(i, name) table.insert(menu_list, name) end) table.insert(menu_list, "Renunþã ") local s=select_table(menu_list) if table.getn(menu_list) == s then return end local skill_name=name_list[s] local skill_vnum=vnum_list[s] local skill_level = pc.get_skill_level(skill_vnum) local cur_alignment = pc.get_real_alignment() local need_alignment = 1000+500*(skill_level-30) local title=string.format("Antreneazã %s", skill_name) if pc.count_item(50513) != seelicount then say("Nu ai piatra spiritului!") return end say_title(title) say("") say("Pentru a citi o piatra a spritiului ai nevoie") say("de puncte de grad.") say("") if cur_alignment<-19000+need_alignment then say_reward("Ai prea puþine puncte de grad.") say("") return end if cur_alignment<0 then say_reward("Punctele tale de grad vor scãdea dupã ") say_reward("dupã citirea pietrei. Vei pierde") say_reward(string.format( "între %d ºi %d puncte de grad.", need_alignment, need_alignment*2)) need_alignment=need_alignment*2 elseif cur_alignment<need_alignment then say(string.format("Puncte de grad necesare: %d", need_alignment)) say_reward("Este posibil ca rangul tãu sã fie negativ") say_reward("dupã citirea pietrei.") else say_orange(string.format("Puncte de grad necesare: %d", need_alignment)) end say("") local s = select ("Învaþã ","Renunþã ") if s == 2 then return end if cur_alignment>=0 and cur_alignment<need_alignment then say_title(string.format("%s ", title)) say("") say("Pentru a citi piatra spiritului trebuie sã ") say("introduci în caseta de mai jos cuvântul") say_reward("Antrenament") say("") say_reward("Este posibil ca dupã citirea pietrei, rangul") say_reward("tãu sã fie negativ.") local s=input() if s!="Antrenament" then return end end if get_time() < pc.getqf("next_time") then -- and not is_test_server() then if pc.is_skill_book_no_delay() then pc.remove_skill_book_no_delay() end end pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12))) if need_alignment>0 then if pc.learn_grand_master_skill(skill_vnum) then pc.change_alignment(-need_alignment) say_title(string.format("%s", title)) say("") if 40 == pc.get_skill_level(skill_vnum) then say(string.format("%s este perfect antrenat.", skill_name)) say("") pc.remove_item(50513, 1) else say(string.format ( "Antrenamentul a reuºit.", skill_name, skill_level-30+1+1)) pc.remove_item(50513, 1) end say_reward (string.format("Punctele de grad au scãzut cu: %d ", need_alignment)) say("") else say_title(string.format("%s", title)) say("") say_reward("Antrenamentul a eºuat.") say("") pc.change_alignment(-number(need_alignment/3, need_alignment/2)) pc.remove_item(50513, 1) end end end function BuildGrandMasterSkillList(job, group) GRAND_MASTER_SKILL_LEVEL = 30 PERFECT_MASTER_SKILL_LEVEL = 40 local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {} table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum) if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then table.insert(ret_vnum_list, skill_vnum) local name=locale.GM_SKILL_NAME_DICT[skill_vnum] if name == nil then name=skill_vnum end table.insert(ret_name_list, name) end end) return {ret_vnum_list, ret_name_list} end end end So what was wrong in first? What means this condition: else char_log(0, "HACK 50513", pc.getname()) end This was on first and initial quest.
    • He don't miss the link, its just above put your cursor at G, in granny. Btw, this owl is owl..some thanks for it, looks like really nice work!
    • Hey, in which file can i find the ATTR Index ? Like 8 for movingspeed or 15? for critt or 1 for HP and so on..   Thanks