Jump to content

Search the Community

Showing results for tags 'lua'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Community
    • M2Dev
    • Offtopic
    • Games Talk
    • Music / Videos / Art
    • Member Representations
    • Services & Sales
  • Metin2
    • General
    • Questions and Answers
    • Frequently Asked Questions
    • Private Servers
    • Videos
  • Suggest a Tutorial / Release
    • Suggest a Tutorial / Release
    • Temporary forum
  • Releases
    • General
    • Guides & HowTo
    • Tools
    • Programming & Scripts / Systems
    • Maps
    • Quests
    • Binaries & Clients / ServerFiles
    • 3D Models
    • 2D Graphics
    • Operating Systems


There are no results to display.

There are no results to display.

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start







Steam ID













Found 47 results

  1. Version of Files : 40k Hello Devs I'm doing an event where I need to invoke the npc. Example: regen_in_map(41, "data/events/fimdeano/npc3.txt") regen_in_map(21, "data/events/fimdeano/npc2.txt") regen_in_map(1, "data/events/fimdeano/npc1.txt") Invokes npc normally The problem is that the npc disappears after a few seconds. My regen npc1.txt m 682 596 0 0 0 6 5184000s 100 1 20031 Thanks
  2. Hi, I am Syreldar, in other Metin2 Communities i'm known as Darisil. I'm a 22 y/o boy who is currently studying software development, I've started to code for Metin2 in 2010. What I offer: What are the prices: Before reading further, please also read this, because to work with me, you must meet those requisites: How do I code: What can I do?: What kind of support do i offer to my customers: Do you also offer C++ works?: Do you have any Ready-To-Sell works? Contact methods: - Skype: aresyournightmare - Metin2Downloads: Darisil - Discord: 𝓝𝔂'𝓪𝓵𝓸𝓽𝓱𝓪#0001 - PM here! Languages: ITA/ENG Payment methods: PayPal, IBAN Transfer. Thank you.
  3. Automatic event system, start the event and set the end time. (You will never forget to finish the event again.) https://github.com/Alerinos/M2-Quest-Automatic-event Do you need a quest, system or www? Write to me, I can create everything. (Full STACK, Web (PHP, JS, SQL, HTML, CSS), Server (C ++, Python, Lua)) Discord Alerin#5559
  4. Hello, I have many services for sale WWW Panel A tool to combine two databases into one Quest Launcher My github, I will often upload cool systems for free. You can watch me. https://github.com/Alerinos Discrod: Alerin#5559 I also work as a programmer for hours, I can create everything you need. Main stack: PHP, JS (node, react etc.), SQL I can use in: C ++, Python, LUA, IOS Applications, Android If you pay, I can learn even assembler
  5. Mission on marble polymorphism. Just approach the NPC, choose a mob and kill the required number of pieces. Marble will automatically go to EQ Github: https://github.com/Alerinos/M2-Quest-Poly [1] = {101, 100}, [2] = {502, 100}, [3] = {2001, 100}, [4] = {636, 150} [id mission, 1,2,3 etc...] = {mob_id, count_kill}, Do you need a quest? Write to me, I can create everything. (Full STACK, Web (PHP, JS, SQL, HTML, CSS), Server (C ++, Python, Lua)) Discord Alerin#5559
  6. Hi, my first publication in this forum. Quest with daily limit and level interval for drop cor draconis in alchemi. I think it will be useful to someone. I also write commissioned quests https://github.com/Alerinos/M2-Quest-Alchemy Quest is compatible with Marty files.
  7. Hi there Devs, I would like to share my "little" system. If you aren't interested in the introduction/preview etc. and you just want to download it and put in to your server, just scroll down until the "[How-To] Set up" subtitle. The story Firstly let me tell this system's story. I've got an idea one year before, that it would be good if the players would be able to put their items into a "global" system where they could see the other player's items, and they could buy it for DC or gold (that time I worked with the latest vanilla core (not with the source)). Then in the following 8 days I made it (it took about 80-90 working hours). Originally the system was created for one of my friend's server. but this server has never started, and nobody used this system. After some mounts I've decided to publish it on the Hungarian forum, because it won't worth to work on it for long hours if nobody uses it and its just collecting dust on my computer. Then I've published it on the 2nd of December, 2014. After some time I've decided to translate it into English and I've got a new idea for a new feature. This feature was: the trade system (I will explain its working later). This idea inspired by one of the players (from a server where this system was able to use). He told me that it would be better if they could set the gold price via an item (what's value is very high). Then with more than 180 working hours (totally) behind my back I'm here. Overview [How-To] Set up Customizing the tradehouse Questions and Answers Notes changelog: 19th of August, 2015: I publicated the tradehouse here. my toDo list: add logging for the system (the released version don't log the actions in the tradehouse) Thanks for reading the topic, if you have any problem/remark feel free to ask it here or write me a PM. Have a good day!
  8. hello, its possible to give player a exp percent not exp in value? like pc.give_exp(50%)
  9. Hey! I have added 1 new function in c++ to put an object into mysql. But game.core is created. Someone can help me? I tested the function, I tried the feature manually. int pc_give_au_item(lua_State* L) { if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2)) { sys_err("QUEST give au_item call error : wrong argument"); lua_pushnumber(L, 0); return 1; } LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); //int icount = (int)lua_tonumber(L, 2); DWORD dwVnum = (int)lua_tonumber(L, 1); LPITEM item = ITEM_MANAGER::instance().CreateItem(dwVnum); int iPrice = (int)lua_tonumber(L, 2); sys_log(0, "QUEST [au_item] itemVnum: %d to PlayerID %s", dwVnum, ch->GetPlayerID()); DBManager::instance().Query("INSERT INTO player.au_item (owner_id, vnum, count, socket0, socket1, socket2, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, au_put_date, price) VALUES( %s, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, now(), %d, );", ch->GetPlayerID(), dwVnum, item->GetCount(), item->GetSocket(0), item->GetSocket(1), item->GetSocket(2), item->GetAttribute(0), item->GetAttribute(1), item->GetAttribute(2), item->GetAttribute(3), item->GetAttribute(4), item->GetAttribute(5), item->GetAttribute(6), iPrice); lua_pushnumber(L, 0); return 1; } pc.give_au_item(19, 200)
  10. * [LUA] * - Service Info Service: - I offer services in LUA for any type of server and / or any type of requirement. - Anything bought from me wouldn't be sold further just if the person who bought it doesen't have any problem with that. - The customers who buy any already written "system" from me will grant acces to every update i release for that specified "system". - Almost all my quests are made based on a LIB. ------------------------ Common questions: - How much does it cost? Prices differ depending on the weight of the request. - Do i need source? Some of my works require a source but this happends rarely. - Is support free? Yes, i'm willing to help you with any kind of problem that has anything to do with my quests. (WARNING: I'm not willing to offer support for others work.) - Am i trustworthy? I want to let those who know me to comment. ------------------------ Current Projects: - New Dojang (90% done, in testing stage) ------------------------ ~ Selling: ~ - Quest Pack - Battle Pass UPDATE - 10/27/2018 ** INFO ** - Due to some issues i couldn't get my hands on writing anything new, fortunately i have some free time to write so i've write this fully costumizable biolog. Biolog System: Code Info: - The code is structured in two files, the main file and a second file where are stored the settings and functions. (The LIB files allows the user to edit and change any info about biolog and actually to add new missions.) - Changes have been made to the questlib.lua file to recreate apply array. - The code allows users to reset the progress. Game Info: - The biolog has the same text structure for each mission, the difference is obviously the required items and the time if the function is activated. - After completing a mission the player doesn't have to reconnect to show new missions, the missions are taken automatly. Price and other Info: - The price is 40 Euro. - Support for any type demand related to the system. - The system will be sold for only 4 persons. (4 Persons remain) - ID Contact : Skype: facetoface1212 / Private Message Video Biolog System: ------------------------ Contact: Skype: facetoface1212 ------------------------ Accepted Payment Methods: PaysafeCard, Card, Paypal
  11. This is a list of 680 functions you can use in your quests. And you can create your own if you have knowledge of C++ and the sourcecode. addimage addmapsignal add_bgm_info add_goto_info add_ox_quiz affecr.remove_all_collect affect.add affect.add_collect affect.add_collect_point affect.add_hair affect.remove affect.remove_bad affect.remove_collect affect.remove_good affect.remove_hair arena.add_map arena.add_observer arena.get_duel_list arena.is_in_arena arena.start_duel ba.start block_chat bool_to_str building.get_land_id building.get_land_info building.has_land building.reconstruct building.set_land_owner BuildSkillList CancelTimerEvent char_log chat clearmapsignal cleartimer clear_letter clear_named_timer clear_server_timer cmdchat color command complete_quest complete_quest_state confirm d.check_eliminated d.clear_regen d.count_monster d.exit d.exit_all d.exit_all_to_start_position d.getf d.get_kill_mob_count d.get_kill_stone_count d.get_map_index d.is_unique_dead d.is_use_potion d.join d.jump_all d.jump_all_local d.kill_all d.kill_unique d.new_jump d.new_jump_all d.notice d.purge d.purge_unique d.regen_file d.revived d.select d.setf d.setqf d.set_dest d.set_exit_all_at_eliminate d.set_regen_file d.set_unique d.set_warp_at_eliminate d.spawn d.spawn_goto_mob d.spawn_group d.spawn_mob d.spawn_move_group d.spawn_move_unique d.spawn_name_mob d.spawn_stone_door d.spawn_unique d.spawn_wooden_door d.unique_get_hp_perc d.unique_set_def_grade d.unique_set_hp d.unique_set_maxhp dance.event_go_home delay dl.startRaid dragonlair.startRaid dungeon-set_quest_flag dungeon.all_near_to dungeon.check_eliminated dungeon.clear_regen dungeon.count_monster dungeon.exit dungeon.exit_all dungeon.get_flag dungeon.get_kill_mob_count dungeon.get_kill_stone_count dungeon.get_map_index dungeon.is_unique_dead dungeon.is_use_potion dungeon.join dungeon.jump_all dungeon.kill_all dungeon.kill_unique dungeon.new_jump dungeon.new_jump_all dungeon.notice dungeon.purge dungeon.purge_unique dungeon.regen_file dungeon.revived dungeon.select dungeon.set_dest dungeon.set_exit_all_at_eliminate dungeon.set_flag dungeon.set_regen_file dungeon.set_unique dungeon.set_warp_at_eliminate dungeon.spawn dungeon.spawn_goto_mob dungeon.spawn_group dungeon.spawn_mob dungeon.spawn_move_group dungeon.spawn_move_unique dungeon.spawn_stone_door dungeon.spawn_unique dungeon.spawn_wooden_door dungeon.unique_get_hp_perc dungeon.unique_set_def_grade dungeon.unique_set_hp dungeon.unique_set_maxhp empire.info enable_over9refine end.oxevent find_npc_by_vnum find_pc find_pc_by_name find_pc_cond fish_real_refine_rod forked.getbosskillcount forked.getdeadcount forked.getlevellimit forked.getpassmapindex forked.getpassmapindexbyempire forked.getpasspath forked.getpasspathbyempire forked.getpassstartposx forked.getpassstartposy forked.getsungzimapindex forked.getsungziposx forked.getsungziposy forked.get_dead_count forked.get_pass_path_by_empire forked.get_pass_start_pos forked.get_sungzi_start_pos forked.incbosskillcount forked.init forked.initforked forked.initkillcount forked.initmobkillcount forked.init_kill_count_per_empire forked.isforkedmapindex forked.issungzimapindex forked.is_forked_mapindex forked.is_registered_user forked.is_sungzi_mapindex forked.pass_mapindex_by_empire forked.pass_mapindex_by_empire forked.purge_all_monsters forked.register_user forked.setdeadcount forked.set_dead_count forked.sungzi_mapindex forked.sungzi_start_pos forked.warp_all_in_map frog.to_empire_money game.drop_item game.drop_item_with_ownership game.get_event_flag game.get_guild_name game.get_safebox_level game.get_warp_guild_war_list game.open_mall game.open_safebox game.request_make_guild game.set_event_flag game.set_safebox_level game.web_mall getnpcid get_empire_privilege get_empire_privilege_string get_global_time get_guildid_byname get_guild_privilege get_guild_privilege_string get_locale get_locale_base_path get_quest_state get_server_timer_arg get_time give_char_privilege give_empire_privilege give_guild_privilege goldbar.quest guild.around_ranking_string guild.change_master guild.change_master_with_limit guild.get_any_war guild.get_ladder_point guild.get_member_count guild.get_name guild.get_rank guild.get_reserve_war_table guild.get_warp_war_list guild.high_ranking_string guild.is_bet guild.is_war guild.level guild.name guild.war_bet guild.war_enter highscore.register highscore.show horse.advance horse.feed horse.get_grade horse.get_health horse.get_health_pct horse.get_hp horse.get_level horse.get_name horse.get_stamina horse.get_stamina_pct horse.is_dead horse.is_mine horse.is_riding horse.revive horse.ride horse.set_level horse.set_name horse.summon horse.unride horse.unsummon input is_test_server item.can_over9refine item.change_to_over9 item.get_cell item.get_count item.get_id item.get_level item.get_name item.get_over9_material_vnum item.get_refine_vnum item.get_size item.get_socket item.get_sub_type item.get_type item.get_value item.get_vnum item.has_flag item.next_refine_vnum item.over9refine item.remove item.select item.select_cell item.set_socket item_log item_name kill_all_in_map left_image loop_timer makequestbutton marriage.divorce_time_check marriage.end_wedding marriage.engage_to marriage.find_married_vid marriage.get_married_time marriage.get_wedding_list marriage.in_my_wedding marriage.join_wedding marriage.marry_to marriage.remove marriage.set_to_marriage marriage.warp_to_my_marriage_map marriage.wedding_client_command marriage.wedding_dark marriage.wedding_is_playing_music marriage.wedding_music marriage.wedding_snow math.ceil math.floor math.max math.min math.mod math.random member.chat member.clear_ready member.set_ready mgmt.monarch_change_lord mgmt.monarch_state mob.spawn mob.spawn_group mob_name mob_vnum monarch.bless monarch.defenseup monarch.defenseup_event monarch.notice monarch.powerup monarch.powerup_event monarch.transfer monarch.transfer2 monarch.transfer2_event monarch.warp next_time_is_now next_time_set notice notice_all notice_in_map npc.dec_remain_hairdye_count npc.dec_remain_skill_book_count npc.getrace npc.get_empire npc.get_guild npc.get_race npc.get_remain_hairdye_count npc.get_remain_skill_book_count npc.is_near npc.is_near_vid npc.is_pc npc.is_quest npc.kill npc.lock npc.open_shop npc.purge npc.unlock npc_get_job npc_is_same_empire npc_is_same_job number oh.candidacy oh.candidacycount oh.candidacy_list oh.candidacy_name oh.election oh.frog_to_empire_money oh.isguildmaster oh.ismonarch oh.monarchbless oh.monarchdefenseup oh.monarchpowerup oh.notice oh.spawnguard oh.spawnmob oh.takemonarchmoney os.date os.execute os.time oxevent.close oxevent.end_event oxevent.end_event_force oxevent.get_attender oxevent.get_status oxevent.give_item oxevent.open oxevent.quiz party.chat party.clear_ready party.getf party.get_flag party.get_max_level party.get_near_count party.is_leader party.is_party party.run_cinematic party.setf party.setqf party.set_flag party.set_quest_flag party.show_cinematic party.syschat pc.aggregate_monster pc.can_warp pc.changealignment pc.changegold pc.changemoney pc.change_alignment pc.change_empire pc.change_gold pc.change_money pc.change_name pc.change_sex pc.change_sp pc.clear_one_skill pc.clear_skill pc.clear_sub_skill pc.countitem pc.count_item pc.dec_skill_point pc.delqf pc.del_quest_flag pc.destroy_guild pc.diamond_refine pc.enough_inventory pc.forget_my_attacker pc.getarmor pc.getcurrentmapindex pc.getempire pc.getf pc.getgold pc.getguild pc.gethp pc.getleadership pc.getmaxhp pc.getmaxsp pc.getmoney pc.getname pc.getplaytime pc.getqf pc.getsp pc.getweapon pc.getx pc.gety pc.get_account pc.get_account_id pc.get_alignment pc.get_another_quest_flag pc.get_armor pc.get_change_empire_count pc.get_channel_id pc.get_dx pc.get_empire pc.get_empty_inventory_count pc.get_equip_refine_level pc.get_exp pc.get_flag pc.get_gm_level pc.get_gold pc.get_guild pc.get_horse_hp pc.get_horse_level pc.get_horse_stamina pc.get_hp pc.get_ht pc.get_iq pc.get_job pc.get_leadership pc.get_level pc.get_local_x pc.get_local_y pc.get_logoff_interval pc.get_map_index pc.get_max_hp pc.get_max_sp pc.get_money pc.get_name pc.get_next_exp pc.get_part pc.get_player_id pc.get_playtime pc.get_premium_remain_sec pc.get_quest_flag pc.get_race pc.get_real_alignment pc.get_sex pc.get_skill_group pc.get_skill_level pc.get_skill_point pc.get_socket_items pc.get_sp pc.get_special_ride_vnum pc.get_st pc.get_start_location pc.get_vid pc.get_war_map pc.get_weapon pc.get_x pc.get_y pc.give_exp pc.give_exp2 pc.give_exp_perc pc.give_gold pc.give_item pc.give_item2 pc.give_item_from_special_item_group pc.give_lotto pc.give_or_drop_item pc.give_polymorph_book pc.give_poly_marble pc.hasguild pc.has_guild pc.has_master_skill pc.have_map_scroll pc.have_pos_scroll pc.in_dungeon pc.isguildmaster pc.is_clear_skill_group pc.is_dead pc.is_engaged pc.is_engaged_or_married pc.is_gm pc.is_guild_master pc.is_horse_alive pc.is_married pc.is_monarch pc.is_mount pc.is_near_vid pc.is_polymorphed pc.is_riding pc.is_skill_book_no_delay pc.learn_grand_master_skill pc.mining pc.mount pc.mount_bonus pc.ore_refine pc.pc_attract_ranger pc.polymorph pc.refine_equip pc.removeitem pc.remove_from_guild pc.remove_item pc.remove_polymorph pc.remove_skill_book_no_delay pc.reset_point pc.reset_status pc.revive_horse pc.save_exit_location pc.select pc.select_pid pc.select_vid pc.send_block_mode pc.set.skill_level pc.setf pc.setqf pc.set_another_quest_flag pc.set_change_empire_count pc.set_flag pc.set_part pc.set_quest_flag pc.set_skillgroup pc.set_skill_group pc.set_skill_level pc.set_warp_location pc.set_warp_location_local pc.teleport pc.unmount pc.upgrade_polymorph_book pc.warp pc.warp_exit pc.warp_local pc.warp_to_guild_war_observer_position pc_find_skill_teacher_vid pc_find_square_guard_vid pc_get_exp_bonus pc_get_village_map_index pc_is_novice purge_area q.done q.getcurrentquestindex q.no_send q.setstate q.set_clock q.set_clock_name q.set_clock_value q.set_counter q.set_counter_name q.set_counter_value q.set_icon q.set_quest_state q.set_state q.set_title q.set_title2 q.start q.yield quest.done quest.no_send quest.setstate quest.set_another_title quest.set_clock_name quest.set_clock_value quest.set_counter_name quest.set_counter_value quest.set_icon_file quest.set_title quest.start quest_create_server_timer_event quest_create_timer_event quest_server_timer_event quest_timer_event raw_script refine_pick regen_in_map RegisterMonarchFunctionTable resetdelay restart_quest say ScriptToString select select_item select_table send_letter send_letter_ex server_loop_timer server_timer setbgimage setcolor say_color setdelay setleftimage setmapcenterposition say_size setskin setstate set_named_loop_timer set_named_timer set_quest_state set_server_loop_timer set_server_timer set_skin set_state set_timer show_horse_menu skill_group_dialog spawn.guard spawn.mob spawn_mob string.format string.len syschat syserr syslog sys_log table.foreach table.foreachi table.getn table.insert table.remove table_get_random_item takemonarchmoney target.clear target.delete target.id target.npc target.pc target.pos target.vid test_chat timer time_hour_to_sec time_min_to_sec time_to_str tonumber top_image tostring type under_han wait warp_all_in_area_to_area warp_all_in_map warp_all_to_map_event warp_all_to_map_my_empire_event warp_all_to_village warp_all_to_village_event warp_all_to_village_except_my_empire warp_to_village __fish_real_refine_rod __get_empire_priv_string __get_guildid_byname __get_guild_priv_string __give_char_priv __give_empire_priv __give_guild_priv __refine_pick
  12. I've noticed this one since the beginning but for some reason I've been waiting until now to ask. Let's say I'm writing a dialog with NPC X and when I click on it I want it to say: Hi, how are you today; So I'm writing the classic when XXXXXX.chat."Hi, how are you today;" and I'm compiling but when I click in the game the ; is missing! So it just says: Hi, how are you today I haven't yet find what filters the character so I'm asking you. I've looked in questlua.cpp and questlua_global.cpp but didn't find anything. If anyone knows I'm also trying to find a way to increase the dialog width (after a line ends, there is just soooo much right padding!)
  13. I was never too familliar with LUA even if it seems easy. So I wanted to ask the experts a few questions. I have this function: game.drop_item_with_ownership(item_vnum) In the system the dropped item stays on the ground for 3 minuets, while character ownership ends after the first minute. Therefore the item stays on the ground without an owner for 2 minutes and then it dissapears. How do I make the ownership for this item only last forever (until it dissapears)? Another question I have is about the chance for the item to drop. Let's say I need the item to have 20% chance of drop at: when kill begin I did a little digging and found this: when kill begin chance = 20 if math.random(1, 100) < chance then game.drop_item_with_ownership(item_vnum) end end Would something like this work? Or am I wrong?
  14. The most strange thing is happening. The function npc.get_level returns NOTHING!!! It exists in the source, it exists in quest_functions file, but when I call it, I get nothing. I used it as: when kill begin ... say(npc.get_level) ... end and in source I tried the default: int npc_get_level(lua_State* L) { lua_pushnumber(L, CQuestManager::instance().GetCurrentNPCCharacterPtr()->GetLevel()); return 1; } and Ken way: int npc_get_level(lua_State * L) { LPCHARACTER npc = CQuestManager::instance().GetCurrentNPCCharacterPtr(); lua_pushnumber(L, npc ? npc->GetLevel() : 0); return 0; } It just doesn't work!!! What can I do here?
  15. I decided to sell my systems. Auto Hunt system: Price: 200 Euro Contact Skype:ali_yunak42@outlook.com
  16. In 17.5 GF update with Talismans GF also introduce new type of bonuses - strong against weapons So here's it! I'm not 100% sure about bonuses numbers cuz in my revision i have also other new bonuses. Server Side open service.h and add: #define ENABLE_BONUS_STRONG_AGAINST_WEAPON open length.h, find APPLY_ANTI_PENETRATE_PCT, (or last of urs bonuses) add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON APPLY_ATTBONUS_SWORD, // 92 APPLY_ATTBONUS_TWOHANDED, // 93 APPLY_ATTBONUS_DAGGER, // 94 APPLY_ATTBONUS_BELL, // 95 APPLY_ATTBONUS_FAN, // 96 APPLY_ATTBONUS_BOW, // 97 #endif open ProtoReader.cpp and find "APPLY_ANTI_PENETRATE_PCT", (or last of urs bonuses) add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON , "APPLY_ATTBONUS_SWORD" "APPLY_ATTBONUS_TWOHANDED", "APPLY_ATTBONUS_DAGGER", "APPLY_ATTBONUS_BELL", "APPLY_ATTBONUS_FAN", "APPLY_ATTBONUS_BOW" #endif open Battle.cpp and inf int CalcAttBonus find: if (pkAttacker->IsNPC() && pkVictim->IsPC()) { iAtk = (iAtk * CHARACTER_MANAGER::instance().GetMobDamageRate(pkAttacker)) / 100; } add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON if (pkVictim->IsPC()) { LPITEM pkWeapon = pkVictim->GetWear(WEAR_WEAPON); if (pkWeapon) { switch (pkWeapon->GetSubType()) { case WEAPON_SWORD: iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_SWORD)) / 100; break; case WEAPON_TWO_HANDED: iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_TWOHANDED)) / 100; break; case WEAPON_DAGGER: iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_DAGGER)) / 100; break; case WEAPON_BELL: iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_BELL)) / 100; break; case WEAPON_FAN: iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_FAN)) / 100; break; case WEAPON_BOW: iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_BOW)) / 100; break; } } } #endif in char.cpp find: case POINT_ATTBONUS_DEVIL: // 47 add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON case POINT_ATTBONUS_SWORD: case POINT_ATTBONUS_TWOHANDED: case POINT_ATTBONUS_DAGGER: case POINT_ATTBONUS_BELL: case POINT_ATTBONUS_FAN: case POINT_ATTBONUS_BOW: #endif find(in CHARACTER::ApplyPoint): case APPLY_ATTBONUS_MONSTER: // 63 add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON case APPLY_ATTBONUS_SWORD: case APPLY_ATTBONUS_TWOHANDED: case APPLY_ATTBONUS_DAGGER: case APPLY_ATTBONUS_BELL: case APPLY_ATTBONUS_FAN: case APPLY_ATTBONUS_BOW: #endif in char.h find: POINT_RESIST_PENETRATE = 137, add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON POINT_ATTBONUS_SWORD = 138, POINT_ATTBONUS_TWOHANDED = 139, POINT_ATTBONUS_DAGGER = 140, POINT_ATTBONUS_BELL = 141, POINT_ATTBONUS_FAN = 142, POINT_ATTBONUS_BOW = 143, #endif in cmd_general.cpp find: case POINT_RESIST_SHAMAN: return LC_TEXT("ą«´ç°ř°Ýżˇ %d%% ŔúÇ×"); add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON case POINT_ATTBONUS_SWORD: return LC_TEXT("Sword resistance: %d%%"); case POINT_ATTBONUS_TWOHANDED: return LC_TEXT("Two Hand resistance: %d%%"); case POINT_ATTBONUS_DAGGER: return LC_TEXT("Dagger resistance: %d%%"); case POINT_ATTBONUS_BELL: return LC_TEXT("Bell resistance: %d%%"); case POINT_ATTBONUS_FAN: return LC_TEXT("Fan resistance: %d%%"); case POINT_ATTBONUS_BOW: return LC_TEXT("Bow resistance: %d%%"); #endif in constants.cpp find: { POINT_RESIST_PENETRATE, }, // APPLY_ANTI_PENETRATE_PCT, 91 add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON { POINT_ATTBONUS_SWORD, }, { POINT_ATTBONUS_TWOHANDED, }, { POINT_ATTBONUS_DAGGER, }, { POINT_ATTBONUS_BELL, }, { POINT_ATTBONUS_FAN, }, { POINT_ATTBONUS_BOW, }, #endif find: { "MELEE_MAGIC_ATTBONUS_PER", APPLY_MELEE_MAGIC_ATTBONUS_PER }, add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON { "ATT_BONUS_TO_SWORD", APPLY_ATTBONUS_SWORD }, { "ATT_BONUS_TO_TWOHAND", APPLY_ATTBONUS_TWOHANDED }, { "ATT_BONUS_TO_DAGGER", APPLY_ATTBONUS_DAGGER }, { "ATT_BONUS_TO_BELL", APPLY_ATTBONUS_BELL }, { "ATT_BONUS_TO_FAN", APPLY_ATTBONUS_FAN }, { "ATT_BONUS_TO_BOW", APPLY_ATTBONUS_BOW }, #endif let's go into client source side: open Locale_inc.h and add where you want: #define ENABLE_BONUS_STRONG_AGAINST_WEAPON open packet.h and find: POINT_RESIST_PENETRATE = 137, add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON POINT_ATTBONUS_SWORD = 138, POINT_ATTBONUS_TWOHANDED = 139, POINT_ATTBONUS_DAGGER = 140, POINT_ATTBONUS_BELL = 141, POINT_ATTBONUS_FAN = 142, POINT_ATTBONUS_BOW = 143, #endif open Itemdata.h and find: APPLY_ANTI_PENETRATE_PCT, //91 add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON APPLY_ATTBONUS_SWORD, // 92 APPLY_ATTBONUS_TWOHANDED, // 93 APPLY_ATTBONUS_DAGGER, // 94 APPLY_ATTBONUS_BELL, // 95 APPLY_ATTBONUS_FAN, // 96 APPLY_ATTBONUS_BOW, // 97 #endif open PythonItemModule.cpp and find: PyModule_AddIntConstant(poModule, "APPLY_ANTI_PENETRATE_PCT", CItemData::APPLY_ANTI_PENETRATE_PCT); add bellow: #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_SWORD", CItemData::APPLY_ATTBONUS_SWORD); PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_TWOHANDED", CItemData::APPLY_ATTBONUS_TWOHANDED); PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_DAGGER", CItemData::APPLY_ATTBONUS_DAGGER); PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_BELL", CItemData::APPLY_ATTBONUS_BELL); PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_FAN", CItemData::APPLY_ATTBONUS_FAN); PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_BOW", CItemData::APPLY_ATTBONUS_BOW); #endif let's go into Dump Proto source: open ItemCSVReader.cpp and find(in string arApplyType[]): "APPLY_ANTI_PENETRATE_PCT", add after: "APPLY_ATTBONUS_SWORD","APPLY_ATTBONUS_TWOHANDED","APPLY_ATTBONUS_DAGGER","APPLY_ATTBONUS_BELL","APPLY_ATTBONUS_FAN","APPLY_ATTBONUS_BOW", let's go into Client root/locale part: open uiToolTip.py and find: item.APPLY_ANTI_PENETRATE_PCT : locale.TOOLTIP_ANTI_PENETRATE_PCT, add bellow: item.APPLY_ATTBONUS_SWORD : locale.TOOLTIP_ATTBONUS_SWORD, item.APPLY_ATTBONUS_TWOHANDED : locale.TOOLTIP_ATTBONUS_TWOHANDED, item.APPLY_ATTBONUS_DAGGER : locale.TOOLTIP_ATTBONUS_DAGGER, item.APPLY_ATTBONUS_BELL : locale.TOOLTIP_ATTBONUS_BELL, item.APPLY_ATTBONUS_FAN : locale.TOOLTIP_ATTBONUS_FAN, item.APPLY_ATTBONUS_BOW : locale.TOOLTIP_ATTBONUS_BOW, inside locale folder, open locale_game.txt, add in the end: TOOLTIP_ATTBONUS_SWORD Strong Against Sword +%d%% SA TOOLTIP_ATTBONUS_TWOHANDED Strong Against Two-Handed Weapon +%d%% SA TOOLTIP_ATTBONUS_DAGGER Strong Against Dagger +%d%% SA TOOLTIP_ATTBONUS_BELL Strong Against Bell +%d%% SA TOOLTIP_ATTBONUS_FAN Strong Against Fan +%d%% SA TOOLTIP_ATTBONUS_BOW Strong Against Bow +%d%% SA To use new bonuses please use in you item_proto.txt: APPLY_ATTBONUS_SWORD APPLY_ATTBONUS_TWOHANDED APPLY_ATTBONUS_DAGGER APPLY_ATTBONUS_BELL APPLY_ATTBONUS_FAN APPLY_ATTBONUS_BOW
  17. Hi there devs! I am trying to copy the teleporter quest from the official servers. My only issue is, the yang required to teleport based on player's level. Any ideas? Best regards, Cara
  18. WoM2 is looking for a quest programmer with a good knowledge of both Lua/Aargscript and English language to write quests and to develop events together with our game design team and the source developers. You must be over 18 years of age, be familiar with the game, have a reasonably free schedule, and above all creativity. Extensive programming skills are not necessary, but having some degree of fluency writing English texts is more relevant; therefore, custom functions can be developed at your request by the source developers. We offer a competitive pay and a professional, efficient work environment together with some of the biggest talent in the scene For inquiries write to shogun@wom2.org. Also do not forget to state your experience in the email.
  19. Hello. I need help. I need to open the quest window after a certain time in the game. How can i do this? For example, I stood for 5 minutes in the game, and I have a quest window with the words "Hello"
  20. hey, i need a new Function to load from account.account field: some_text can someone help? and use on quest like local get_text = pc.get_some_text if get_text = "koxmen" then else end
  21. Search developer python + lua + C++ contact me here or skype: xxdarkwindxx
  22. Hi all! I followed the guide at that link about the connection between client and quest: https://metin2dev.org/board/index.php?/topic/1698-howtooldquest-client-communicationfor-any-version/ But when I press the button in game, nothing happens in the quest! If I do it only on a graphical point of view, the button reacts to the click, but it doesn't get the anti exp active. This is my code added for the quest: game.py: def OnClickBlockExp(self): event.QuestButtonClick(int(constInfo.BLOCK_EXP)) ---------------------------------------------------------------------------------------------------------------- def __ServerCommand_Build(self): serverCommandList={ "blocco_exp" : self.blocco_exp, ---------------------------------------------------------------------------------------------------------------- def blocco_exp(self,value): constInfo.BLOCK_EXP = int(value) quest: quest anti_exp begin state start begin when login begin cmdchat("blocco_exp "..q.getcurrentquestindex()) if pc.getqf("blocco_exp") == 1 then pc.setqf("exp_pc",pc.get_exp()) chat("[Blocco Esperienza] - Attivato!") elseif pc.getqf("blocco_exp") == 0 then chat("[Blocco Esperienza] - Disattivato!") end end when button or info begin if pc.getqf("blocco_exp") == 0 then pc.setqf("blocco_exp", 1) pc.setqf("exp_pc",pc.get_exp()) chat("[Blocco Esperienza] - Attivato!") elseif pc.getqf("blocco_exp") == 1 then pc.setqf("blocco_exp", 0) chat("[Blocco Esperienza] - Disattivato!") end end when kill with not npc.is_pc() begin if pc.getqf("blocco_exp") == 1 then pc.give_exp2(pc.getqf("exp_pc")-pc.get_exp()) end end end end Could someone tell me why it doesn't work please?
  23. Hi all! I saw a post on the forum about "[C++]Reload map regens ingame" and I want to ask you a question: can i do that in lua too? I have to reload the regen ingame when I start, for example, the Halloween Event and so to spawn Jack Pumpkin. If I use regen_in_map, when I restart the machine, that NPC will disappears, so I need to have your /reload_regen in lua funcion after a changing on the regen of the village from WinSCP. Thanks in advance!
  24. Hey! Anyone can you send me, metin2 Deutsch quests, with normale say? I need: Thanks!!
  25. Hello, I have this problem in this quest. SYSERR: Oct 21 16:30:06 :: HandleEvent: QUEST There's suspended quest state, can't run new quest state (quest: main_quest_lv2_2 pc: Ario) Can somebody help me? quest main_quest_lv2_2 begin state start begin end state run begin when login or levelup or enter with pc.get_level() >= 2 begin set_state ( gotoinfomation ) end end state gotoinfomation begin when letter begin if (pc.get_empire()==2) then local v=find_npc_by_vnum(20355) if (v==0) then else target.vid("__TARGET__", v, "") end elseif pc.get_empire()==1 then local v=find_npc_by_vnum(20355) if (v==0) then else target.vid("__TARGET__", v, "") end elseif pc.get_empire()==3 then local v=find_npc_by_vnum(20355) if (v==0) then else target.vid("__TARGET__", v, "") end end end when __TARGET__.target.click begin target.delete("__TARGET__") say_green("Capitán:") say_white("Hola, ¿quien eres?") say_white("¿No serás un salvaje?, ultimamente han invadido la ciudad.") say_white("") say_gold("Yo:") say_white("No, acabo de llegar a la ciudad, y estoy hablando con") say_white("algunos aldeanos, a sí, el Vendedor de Armaduras me ha.") say_white("dicho que tiene las armaduras terminadas.") say_white("") wait() say_green("Capitán:") say_white("Vale, pues ahora mismo estoy ocupado, ya iré por ellas.") say_white("Bueno pues veo que aun no tienes un arma, ni habilidades.") say_white("ve a visitar a el Vendedor de Armas, el te dará una espada.") say_white("") say_white("Tras eso, dirigete hacia el maestro de habilidades, podrás") say_white("empezar a aprender tus habilidades.") say_white("") pc.give_exp2( 900 ) clear_letter() set_state (__COMPLETE__) set_quest_state("find_squareguard","find") end end state __COMPLETE__ begin end end main_quest_lv2_2.quest
  • 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.