From 6cff3e59800a8e871979e4391fddf37dc6a2a454 Mon Sep 17 00:00:00 2001 From: Lead0b110010100 Date: Fri, 22 May 2020 00:08:14 +0200 Subject: [PATCH] Select horse appearence for any seal of horse quest --- .../share/locale/germany/common_drop_item.txt | 73 +- main/srv1/share/locale/germany/cube.txt | 35 + .../LIB/GameForge_BlueDragon.lua} | 0 .../GameForge_QuestLib.lua} | 0 .../GameForge_QuestLib_2.lua} | 0 .../{questing.lua => LIB/Mijago_QuestLib.lua} | 0 .../germany/quest/LIB/horse_appearence.lua | 18 + .../locale/germany/quest/adminpannel.quest | 96 + main/srv1/share/locale/germany/quest/bio.lua | 2005 -------------- .../locale/germany/quest/horse_summon.lua | 14 - .../share/locale/germany/quest/oxquiz.lua | 90 + .../chest_beginer.lua | 0 .../{ => quest_announcements}/first_login.lua | 0 .../level_100_notice.lua} | 0 .../refine_item_lv9_notice.lua} | 0 .../locale/germany/quest/quest_functions | 3 + .../backup}/Gilden_Npcs.quest | 0 .../backup}/Gilden_Rangliste.quest | 0 .../backup}/Gilden_Verwaltung.quest | 0 .../backup}/Gildenaltarbau.quest | 0 .../backup/Gildenerstellung_bk.quest} | 0 .../backup}/Gildenkrieg_beitreten.quest | 0 .../backup}/Gildenkriegsliste.quest | 0 .../backup}/Gildenlandkauf.quest | 0 .../backup}/Gildenleaderwechsel.quest | 0 .../backup}/Gildenschmiede.quest | 0 .../quest/quest_guild/guild_building.quest | 65 + .../guild_building_alter_of_power.quest | 98 + .../quest_guild/guild_building_melt.quest | 417 +++ .../quest_guild/guild_building_npc.quest | 33 + .../quest/quest_guild/guild_create.quest | 32 + .../quest/quest_guild/guild_manage.quest | 145 + .../quest/quest_guild/guild_ranking.quest | 19 + .../quest/quest_guild/guild_war_bet.quest | 77 + .../quest/quest_guild/guild_war_join.quest | 33 + .../quest_guild/guild_war_observer.quest | 70 + .../quest_horse/horse_examination_01.lua | 223 ++ .../quest_horse/horse_examination_25.lua | 241 ++ .../quest_horse/horse_examination_50.lua | 256 ++ .../quest_horse/horse_examination_75.lua | 244 ++ .../quest/quest_horse/horse_medaille.lua | 48 + .../quest/{ => quest_horse}/horse_menu.lua | 26 +- .../quest/quest_horse/horse_summon.lua | 227 ++ .../quest/quest_item/item_change_empire.quest | 127 + .../quest_item/item_change_guild_master.quest | 53 + .../item_change_name.lua} | 0 .../quest/quest_item/item_change_sex.quest | 78 + .../quest/quest_item/item_dr_voucher.lua | 29 + .../item_goldbars.lua} | 0 .../quest/quest_item/item_questscrolls.lua | 705 +++++ .../item_rainbowstone.lua} | 10 +- .../quest/quest_item/item_reset_skill.quest | 88 + .../quest/quest_item/item_reset_status.quest | 38 + .../item_soulstone.lua} | 60 +- .../item_warpring.lua} | 2 +- .../share/locale/germany/quest/quest_list | 94 +- .../quest/quest_npc/npc_arena_manager.lua | 149 + .../quest_npc/npc_fisher_buy_fishrod.lua | 202 ++ .../quest_npc/npc_fisher_refine_fishrod.lua | 57 + .../quest/quest_npc/npc_fortune_telling.lua | 131 + .../germany/quest/quest_npc/npc_hair_shop.lua | 55 + .../quest/quest_npc/npc_information.lua | 56 + .../npc_learn_skill.lua} | 0 .../quest/quest_npc/npc_marriage_manage.quest | 497 ++++ .../quest/quest_npc/npc_skill_reset.lua | 79 + .../quest/quest_npc/npc_smith_crafting.lua | 8 + .../npc_warehouse_item_destroyer.lua} | 0 .../npc_warehouse_shop.lua} | 0 .../quest_npc/npc_warp_spiderdungeon_2.lua | 31 + .../germany/quest/quest_playerquests/bio.lua | 2402 +++++++++++++++++ .../mining_bergbau.lua} | 0 .../germany/quest/quest_system/oxevent.lua | 119 + .../quest/{ => quest_system}/pet_system.quest | 0 .../powermount_system.quest} | 0 .../share/locale/germany/quest/questlib.lua | 41 +- .../germany/quest/sample__guild_make.quest | 46 - .../germany/quest/sample__mob_drop_item.quest | 275 -- main/srv1/share/locale/germany/quest/test.lua | 12 - main/srv1/share/locale/germany/settings.lua | 6 +- .../locale/germany/special_item_group.txt | 33 + main/srv1/share/locale/germany/translate.lua | 88 +- 81 files changed, 7648 insertions(+), 2511 deletions(-) rename main/srv1/share/locale/germany/{BlueDragon.lua => quest/LIB/GameForge_BlueDragon.lua} (100%) rename main/srv1/share/locale/germany/quest/{GFquestlib.lua => LIB/GameForge_QuestLib.lua} (100%) rename main/srv1/share/locale/germany/quest/{questlib_extra.lua => LIB/GameForge_QuestLib_2.lua} (100%) rename main/srv1/share/locale/germany/quest/{questing.lua => LIB/Mijago_QuestLib.lua} (100%) create mode 100644 main/srv1/share/locale/germany/quest/LIB/horse_appearence.lua create mode 100644 main/srv1/share/locale/germany/quest/adminpannel.quest delete mode 100644 main/srv1/share/locale/germany/quest/bio.lua delete mode 100644 main/srv1/share/locale/germany/quest/horse_summon.lua create mode 100644 main/srv1/share/locale/germany/quest/oxquiz.lua rename main/srv1/share/locale/germany/quest/{ => quest_announcements}/chest_beginer.lua (100%) rename main/srv1/share/locale/germany/quest/{ => quest_announcements}/first_login.lua (100%) rename main/srv1/share/locale/germany/quest/{level_info.lua => quest_announcements/level_100_notice.lua} (100%) rename main/srv1/share/locale/germany/quest/{refine_item_information.lua => quest_announcements/refine_item_lv9_notice.lua} (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gilden_Npcs.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gilden_Rangliste.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gilden_Verwaltung.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gildenaltarbau.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE/Gildenerstellung.quest => quest_guild/backup/Gildenerstellung_bk.quest} (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gildenkrieg_beitreten.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gildenkriegsliste.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gildenlandkauf.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gildenleaderwechsel.quest (100%) rename main/srv1/share/locale/germany/quest/{GILDE => quest_guild/backup}/Gildenschmiede.quest (100%) create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_building.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_building_alter_of_power.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_building_melt.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_building_npc.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_create.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_manage.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_ranking.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_war_bet.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_war_join.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_guild/guild_war_observer.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_horse/horse_examination_01.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_horse/horse_examination_25.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_horse/horse_examination_50.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_horse/horse_examination_75.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_horse/horse_medaille.lua rename main/srv1/share/locale/germany/quest/{ => quest_horse}/horse_menu.lua (82%) create mode 100644 main/srv1/share/locale/germany/quest/quest_horse/horse_summon.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_change_empire.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_change_guild_master.quest rename main/srv1/share/locale/germany/quest/{change_name_item.lua => quest_item/item_change_name.lua} (100%) create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_change_sex.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_dr_voucher.lua rename main/srv1/share/locale/germany/quest/{goldbars.lua => quest_item/item_goldbars.lua} (100%) create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_questscrolls.lua rename main/srv1/share/locale/germany/quest/{rainbowstone.lua => quest_item/item_rainbowstone.lua} (85%) create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_reset_skill.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_item/item_reset_status.quest rename main/srv1/share/locale/germany/quest/{soulstone.lua => quest_item/item_soulstone.lua} (69%) rename main/srv1/share/locale/germany/quest/{warpring.lua => quest_item/item_warpring.lua} (99%) create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_arena_manager.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_buy_fishrod.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_refine_fishrod.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_fortune_telling.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_hair_shop.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_information.lua rename main/srv1/share/locale/germany/quest/{skill_group.lua => quest_npc/npc_learn_skill.lua} (100%) create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_marriage_manage.quest create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_skill_reset.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_smith_crafting.lua rename main/srv1/share/locale/germany/quest/{warehouse_item_destroyer.lua => quest_npc/npc_warehouse_item_destroyer.lua} (100%) rename main/srv1/share/locale/germany/quest/{warehouse_shop.lua => quest_npc/npc_warehouse_shop.lua} (100%) create mode 100644 main/srv1/share/locale/germany/quest/quest_npc/npc_warp_spiderdungeon_2.lua create mode 100644 main/srv1/share/locale/germany/quest/quest_playerquests/bio.lua rename main/srv1/share/locale/germany/quest/{mining.lua => quest_system/mining_bergbau.lua} (100%) create mode 100644 main/srv1/share/locale/germany/quest/quest_system/oxevent.lua rename main/srv1/share/locale/germany/quest/{ => quest_system}/pet_system.quest (100%) rename main/srv1/share/locale/germany/quest/{ride.quest => quest_system/powermount_system.quest} (100%) delete mode 100755 main/srv1/share/locale/germany/quest/sample__guild_make.quest delete mode 100755 main/srv1/share/locale/germany/quest/sample__mob_drop_item.quest delete mode 100644 main/srv1/share/locale/germany/quest/test.lua diff --git a/main/srv1/share/locale/germany/common_drop_item.txt b/main/srv1/share/locale/germany/common_drop_item.txt index 7a27f9c8..6730dbd1 100755 --- a/main/srv1/share/locale/germany/common_drop_item.txt +++ b/main/srv1/share/locale/germany/common_drop_item.txt @@ -1,46 +1,47 @@ - PAWN S_PAWN KNIGHT S_KNIGHT - 1 110 0.15 25040 10000 1 110 0.15 25040 10000 1 110 0.15 25040 10000 1 110 0.15 25040 10000 --Segi - 70 110 0.04 27987 10000 70 110 0.04 27987 10000 70 110 0.04 27987 10000 70 110 0.04 27987 10000 --Muschel - 1 110 0.10 70102 10000 1 110 0.10 70102 10000 1 110 0.10 70102 10000 1 110 0.10 70102 10000 --Zen-Bohne - 50 110 0.1 50060 10000 50 110 0.1 50060 10000 50 110 0.1 50060 10000 50 110 0.1 50060 10000 --BuchDerReitkunst + PAWN S_PAWN KNIGHT S_KNIGHT +--MinLv|MaxLv|Chance|Item| K.P. MinLv|MaxLv|Chance|Item| K.P. MinLv|MaxLv|Chance|Item| K.P. MinLv|MaxLv|Chance|Item| K.P. + 50 130 0.11 25040 10000 50 130 0.12 25040 10000 50 130 0.13 25040 10000 50 130 0.15 25040 10000 --Segensschriftrolle + 30 130 0.11 27987 10000 30 130 0.12 27987 10000 30 130 0.13 27987 10000 30 130 0.15 27987 10000 --Muschel + 50 100 0.11 70102 10000 50 100 0.12 70102 10000 50 100 0.13 70102 10000 50 100 0.15 70102 10000 --Zen-Bohne + 50 75 0.11 50060 10000 50 75 0.12 50060 10000 50 75 0.13 50060 10000 50 75 0.15 50060 10000 --Buch-Der-Reitkunst + 1 75 0.11 50060 10000 1 75 0.12 50060 10000 1 75 0.13 50060 10000 1 75 0.15 50061 10000 --Handbuch-Pferdezeahmen - 1 50 0.09 50301 10000 1 50 0.09 50301 10000 1 50 0.09 50301 10000 1 50 0.09 50301 10000 --SunZi - 1 75 0.07 50302 10000 1 75 0.07 50302 10000 1 75 0.07 50302 10000 1 75 0.07 50302 10000 --Wuzi - 1 95 0.05 50303 10000 1 95 0.05 50303 10000 1 95 0.05 50303 10000 1 95 0.05 50303 10000 --WeiLiaoZi + 1 25 0.09 50301 10000 1 25 0.10 50301 10000 1 25 0.11 50301 10000 1 25 0.14 50301 10000 --Sun-Zi + 1 50 0.07 50302 10000 1 50 0.08 50302 10000 1 50 0.09 50302 10000 1 50 0.12 50302 10000 --Wuzi + 1 75 0.05 50303 10000 1 75 0.06 50303 10000 1 75 0.07 50303 10000 1 75 0.10 50303 10000 --Wei-Liao-Zi - 1 50 0.09 50314 10000 1 50 0.09 50314 10000 1 50 0.09 50314 10000 1 50 0.09 50314 10000 --BuchderVerwandlung - 1 70 0.07 50315 10000 1 70 0.07 50315 10000 1 70 0.07 50315 10000 1 70 0.07 50315 10000 --BuchfortVerwandlung - 1 90 0.05 50316 10000 1 90 0.05 50316 10000 1 90 0.05 50316 10000 1 90 0.05 50316 10000 --BuchexpVerwandlung + 1 25 0.09 50314 10000 1 25 0.10 50314 10000 1 25 0.11 50314 10000 1 25 0.14 50314 10000 --Buch-der-Verwandlung + 1 50 0.07 50315 10000 1 50 0.08 50315 10000 1 50 0.09 50315 10000 1 50 0.12 50315 10000 --Buch-fort-Verwandlung + 1 75 0.05 50316 10000 1 75 0.06 50316 10000 1 75 0.07 50316 10000 1 75 0.10 50316 10000 --Buch-exp-Verwandlung - 1 30 0.12 50318 10000 1 30 0.12 50318 10000 1 30 0.12 50318 10000 1 30 0.12 50318 10000 --Missionsbuch(leicht) - 20 50 0.12 50319 10000 20 50 0.12 50319 10000 20 50 0.12 50319 10000 20 50 0.12 50319 10000 --Missionsbuch(mittel) - 40 70 0.12 50320 10000 40 70 0.12 50320 10000 40 70 0.12 50320 10000 40 70 0.12 50320 10000 --Missionsbuch(schwer) - 60 95 0.12 50321 10000 60 95 0.12 50321 10000 60 95 0.12 50321 10000 60 95 0.12 50321 10000 --Missionsbuch(experte) + 1 25 0.12 50318 10000 1 25 0.13 50318 10000 1 25 0.14 50318 10000 1 25 0.17 50318 10000 --Missionsbuch(leicht) + 25 50 0.12 50319 10000 25 50 0.13 50319 10000 25 50 0.14 50319 10000 25 50 0.17 50319 10000 --Missionsbuch(mittel) + 50 75 0.12 50320 10000 50 75 0.13 50320 10000 50 75 0.14 50320 10000 50 75 0.17 50320 10000 --Missionsbuch(schwer) + 75 100 0.12 50321 10000 75 100 0.13 50321 10000 75 100 0.14 50321 10000 75 100 0.17 50321 10000 --Missionsbuch(experte) - 10 75 0.04 50304 10000 10 75 0.04 50304 10000 10 75 0.05 50304 10000 10 75 0.05 50304 10000 --Combobeherrschung - 30 90 0.04 50304 10000 30 90 0.04 50304 10000 30 90 0.05 50304 10000 30 90 0.05 50305 10000 --Combomeisterbuch + 30 50 0.04 50304 10000 30 50 0.05 50304 10000 30 50 0.06 50304 10000 30 50 0.09 50304 10000 --Combobeherrschung + 30 50 0.04 50304 10000 30 50 0.05 50304 10000 30 50 0.06 50304 10000 30 50 0.09 50305 10000 --Combomeisterbuch + 30 50 0.04 50304 10000 30 50 0.05 50304 10000 30 50 0.06 50304 10000 30 50 0.09 50306 10000 --Hohe-Combokunst - 1 75 0.09 50600 10000 1 75 0.09 50600 10000 1 75 0.09 50600 10000 1 75 0.09 50600 10000 --Bergbau-Buch + 30 130 0.09 50600 10000 30 130 0.09 50600 10000 30 130 0.09 50600 10000 30 130 0.09 50600 10000 --Bergbau-Buch - 10 110 0.4 70104 10000 10 110 0.4 70104 10000 10 110 0.4 70104 10000 10 110 0.4 70104 10000 --Verwandlungskugel - 1 110 0.02 50134 10000 1 110 0.02 50134 10000 1 110 0.02 50134 10000 1 110 0.02 50134 10000 --TruhedesEwigenWinters - 1 110 0.05 50006 10000 1 110 0.05 50006 10000 1 110 0.05 50006 10000 1 110 0.05 50006 10000 --GoldeneSchatztruhe - 25 34 0.1 50054 10000 25 34 0.1 50054 10000 25 34 0.1 50054 10000 25 34 0.1 50054 10000 --Heu - 35 49 0.1 50055 10000 35 49 0.1 50055 10000 35 49 0.1 50055 10000 35 49 0.1 50055 10000 --Karotte - 50 110 0.1 50056 10000 50 110 0.1 50056 10000 50 110 0.1 50056 10000 50 110 0.1 50056 10000 --Ginseng - 40 110 0.08 70035 10000 40 110 0.08 70035 10000 40 110 0.08 70035 10000 40 110 0.08 70035 10000 --MagischesKupfererz + 1 130 0.4 70104 10000 1 130 0.5 70104 10000 1 130 0.6 70104 10000 1 130 0.9 70104 10000 --Verwandlungskugel + 1 130 0.02 50134 10000 1 130 0.03 50134 10000 1 130 0.04 50134 10000 1 130 0.07 50134 10000 --TruhedesEwigenWinters + 1 24 0.1 50054 10000 1 24 0.2 50054 10000 1 24 0.3 50054 10000 1 24 0.5 50054 10000 --Heu + 25 49 0.1 50055 10000 25 49 0.2 50055 10000 25 49 0.3 50055 10000 25 49 0.5 50055 10000 --Karotte + 50 74 0.1 50056 10000 50 74 0.2 50056 10000 50 74 0.3 50056 10000 50 74 0.5 50056 10000 --Ginseng + 75 100 0.1 50056 10000 75 100 0.2 50056 10000 75 100 0.3 50056 10000 75 100 0.5 38100 10000 --Kraftfutter --------------------- --ALLEBLUETEN(0.4%)-- --------------------- - 40 110 0.4 50721 10000 40 110 0.4 50721 10000 40 110 0.4 50721 10000 40 110 0.4 50721 10000 --Pfirsichblute - 40 110 0.4 50722 10000 40 110 0.4 50722 10000 40 110 0.4 50722 10000 40 110 0.4 50722 10000 --Glockenblume - 40 110 0.4 50723 10000 40 110 0.4 50723 10000 40 110 0.4 50723 10000 40 110 0.4 50723 10000 --Kakiblute - 40 110 0.4 50724 10000 40 110 0.4 50724 10000 40 110 0.4 50724 10000 40 110 0.4 50724 10000 --GanGoWurzel - 40 110 0.4 50725 10000 40 110 0.4 50725 10000 40 110 0.4 50725 10000 40 110 0.4 50725 10000 --Flieder - 40 110 0.4 50726 10000 40 110 0.4 50726 10000 40 110 0.4 50726 10000 40 110 0.4 50726 10000 --Tue-Pilz - 40 110 0.4 50727 10000 40 110 0.4 50727 10000 40 110 0.4 50727 10000 40 110 0.4 50727 10000 --Alpenrose - 40 110 0.4 50728 10000 40 110 0.4 50728 10000 40 110 0.4 50728 10000 40 110 0.4 50728 10000 --Maulbeeren - 40 110 0.4 50729 10000 40 110 0.4 50729 10000 40 110 0.4 50729 10000 40 110 0.4 50729 10000 --Lowenzahn - 40 110 0.4 50730 10000 40 110 0.4 50730 10000 40 110 0.4 50730 10000 40 110 0.4 50730 10000 --Distel + 130 130 0.4 50721 10000 130 130 0.5 50721 10000 130 130 0.6 50721 10000 130 130 0.9 50721 10000 --Pfirsichblute + 130 130 0.4 50722 10000 130 130 0.5 50722 10000 130 130 0.6 50722 10000 130 130 0.9 50722 10000 --Glockenblume + 130 130 0.4 50723 10000 130 130 0.5 50723 10000 130 130 0.6 50723 10000 130 130 0.9 50723 10000 --Kakiblute + 130 130 0.4 50724 10000 130 130 0.5 50724 10000 130 130 0.6 50724 10000 130 130 0.9 50724 10000 --GanGoWurzel + 130 130 0.4 50725 10000 130 130 0.5 50725 10000 130 130 0.6 50725 10000 130 130 0.9 50725 10000 --Flieder + 130 130 0.4 50726 10000 130 130 0.5 50726 10000 130 130 0.6 50726 10000 130 130 0.9 50726 10000 --Tue-Pilz + 130 130 0.4 50727 10000 130 130 0.5 50727 10000 130 130 0.6 50727 10000 130 130 0.9 50727 10000 --Alpenrose + 130 130 0.4 50728 10000 130 130 0.5 50728 10000 130 130 0.6 50728 10000 130 130 0.9 50728 10000 --Maulbeeren + 130 130 0.4 50729 10000 130 130 0.5 50729 10000 130 130 0.6 50729 10000 130 130 0.9 50729 10000 --Lowenzahn + 130 130 0.4 50730 10000 130 130 0.5 50730 10000 130 130 0.6 50730 10000 130 130 0.9 50730 10000 --Distel - \ No newline at end of file diff --git a/main/srv1/share/locale/germany/cube.txt b/main/srv1/share/locale/germany/cube.txt index 2db881cb..a11e4507 100755 --- a/main/srv1/share/locale/germany/cube.txt +++ b/main/srv1/share/locale/germany/cube.txt @@ -1080,4 +1080,39 @@ gold 50000 percent 10 end + +################### +###Schriftrollen### +################### + +#Schriftrolle des Krieges +section +npc 20016 +item 25040 1 +item 70035 1 +reward 71021 1 +gold 200000 +percent 100 +end + +#Schriftrolle des Drachen +section +npc 20016 +item 25040 1 +item 71026 1 +reward 71032 1 +gold 500000 +percent 100 +end + +#Schmiede Handbuch +section +npc 20016 +item 25040 1 +item 71025 1 +reward 70039 1 +gold 1000000 +percent 100 +end + diff --git a/main/srv1/share/locale/germany/BlueDragon.lua b/main/srv1/share/locale/germany/quest/LIB/GameForge_BlueDragon.lua similarity index 100% rename from main/srv1/share/locale/germany/BlueDragon.lua rename to main/srv1/share/locale/germany/quest/LIB/GameForge_BlueDragon.lua diff --git a/main/srv1/share/locale/germany/quest/GFquestlib.lua b/main/srv1/share/locale/germany/quest/LIB/GameForge_QuestLib.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/GFquestlib.lua rename to main/srv1/share/locale/germany/quest/LIB/GameForge_QuestLib.lua diff --git a/main/srv1/share/locale/germany/quest/questlib_extra.lua b/main/srv1/share/locale/germany/quest/LIB/GameForge_QuestLib_2.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/questlib_extra.lua rename to main/srv1/share/locale/germany/quest/LIB/GameForge_QuestLib_2.lua diff --git a/main/srv1/share/locale/germany/quest/questing.lua b/main/srv1/share/locale/germany/quest/LIB/Mijago_QuestLib.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/questing.lua rename to main/srv1/share/locale/germany/quest/LIB/Mijago_QuestLib.lua diff --git a/main/srv1/share/locale/germany/quest/LIB/horse_appearence.lua b/main/srv1/share/locale/germany/quest/LIB/horse_appearence.lua new file mode 100644 index 00000000..c5f729c1 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/LIB/horse_appearence.lua @@ -0,0 +1,18 @@ +function selectHorseAppearence(itemVnum) + say_title("Stallbursche") + say() + say("Wähle das Aussehen deines Pferdes:") + say() + local sel = select("Weißes Pferd", "Braunes Pferd", "Schwarzes Pferd", "Abbrechen") + if sel == 4 then return false end + + giveHorseItem(itemVnum, sel) + return true +end + +function giveHorseItem(itemVnum, idx) -- 0 to 2 for ex. 20101/20102/20103 + pc.give_item2_select(itemVnum) + + local horseVnum = item.get_value(3) + (idx - 1) + item.set_socket(0, horseVnum) +end diff --git a/main/srv1/share/locale/germany/quest/adminpannel.quest b/main/srv1/share/locale/germany/quest/adminpannel.quest new file mode 100644 index 00000000..63631a14 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/adminpannel.quest @@ -0,0 +1,96 @@ +------------------------------------- +-- GM Panel Quest by [SA]Goku +------------------------------------- +quest gm_panel begin + state start begin + when login with pc.is_gm() begin + if pc.get_name() == "[SA]Goku" then + command("cannot_dead") + end + end + when letter with pc.is_gm() begin + send_letter("GM Panel") + end + when button or info begin + say_title("Willkommen "..pc.get_name()) + say("") + say2("Metin2 - Black Edition") + say("") + say_reward("Bitte wähle deine Option:") + local head = select("Online Meldung", "Event Panel", "Abbrechen") + + if head == 1 then + say_title("Online Meldung") + say("") + say("Hier kannst du eine Meldung auswählen.") + say("") + say_reward("Bitte wähle deine Option:") + local on = select("... ist online", "... ist noch erreichbar", "... verabschiedet sich", "Abbrechen") + + if on == 1 then + notice_all("".. pc.get_name() .." ist online und steht für eure Fragen zur Verfügung!") + send_letter("GM Panel") + + elseif on == 2 then + notice_all("".. pc.get_name() .." steht euch immer noch zur Verfügung!") + send_letter("GM Panel") + + elseif on == 3 then + notice_all("".. pc.get_name() .." verabschiedet sich und wünscht euch noch viel Spaß auf Metin2 - Black Edition!") + send_letter("GM Panel") + + elseif on == 4 then + send_letter("GM Panel") + return + end + + elseif head == 2 then + say_title("Event Panel") + say("") + say2("Metin2 - Black Edition") + say("") + say_reward("Bitte wähle deine Option:") + local event = select("Tag/Nacht", "Schnee an/aus", "Abbrechen") + if event == 1 then + say_title("Tag/Nacht") + say("") + say("Hier kannst du Tag und Nacht einstellen.") + say("") + say_reward("Bitte wähle was du machen möchtest:") + local zeit = select("Tag", "Nacht", "Abbrechen") + if zeit == 1 then + command("eclipse 0") + send_letter("GM Panel") + elseif zeit == 2 then + command("eclipse 1") + send_letter("GM Panel") + elseif zeit == 3 then + return + end + elseif event == 2 then + local st = game.get_event_flag("xmas_snow") + 1 + local stateEvent = + { + {"Ausgeschaltet", "Eingeschaltet"}, + {"Einschalten", "Ausschalten"}, + { 1 , 0 }, + }, + say_title("Schnee an/aus") + say("") + say("Das Event ist: " ..stateEvent[1][st]) + say("Möchtest du es " ..stateEvent[2][st]) + say("") + local s = select(stateEvent[2][st], "Abbrechen") + if s == 2 then return end + + game.set_event_flag("xmas_snow", stateEvent[3][st]) + elseif event == 3 then + send_letter("GM Panel") + return + end + elseif head == 3 then + return + end + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/bio.lua b/main/srv1/share/locale/germany/quest/bio.lua deleted file mode 100644 index eba773ba..00000000 --- a/main/srv1/share/locale/germany/quest/bio.lua +++ /dev/null @@ -1,2005 +0,0 @@ - ---------------------------------- - -- LvL 30 / Orkzähne - ---------------------------------- -quest bio begin - state start begin - when login or levelup with pc.level>29 begin - set_state(talk_to_disciple_lv30) - end - end - state talk_to_disciple_lv30 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Die Forschung des Biologen") - end - when button or info begin - say_title("Die Forschung des Biologen") - say("") - say("Der Biologe benötigt deine Hilfe.") - say("Sprich mit ihm.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Orkzähne" begin - target.delete("__TARGET__") - say("Biologe:") - say("") - say("Oh, du hilfst mir?") - say("Gut ...") - say("Ich bin übrigens der Biologe") - say("und studiere zahlreiches aus der Pflanzenwelt.") - say("Wenn du mir bei meinen Forschungen hilfst,") - say("werde ich dich reich belohnen.") - say("") - wait() - say("Biologe:") - say("Ich habe vor kurzem wieder angefangen ...") - say("Ich Forsche an einer Legende ...") - say("Doch habe ich derzeit viel zu tun,") - say("es währe also nett, wenn du mir hilfst ...") - say("") - wait() - say("Biologe:") - say("Ich benötige zehn Orkzähne für meine Forschungen.") - say("Diese sind jedoch sehr zerbrechlich,") - say("es kann also sein, dass einige bei") - say("meinen Untersuchungen kaputt gehen.") - say("Ich benötige alle zehn,") - say("um meine Forschungen vollenden zu können.") - say("") - set_state(collect_orcteeth) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_orcteeth begin - when letter begin - send_letter("Die Forschung des Biologen") - end - when button or info begin - say_title("Orkzähne") - say("") - say("Der Biologe gab euch den Auftrag,") - say("zehn Orkzähne zu sammeln.") - say("Sammelt und bringt sie dem Biologen.") - say("") - say_item_vnum(30006) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 20084.chat."Orkzähne" with pc.count_item(30006)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieser Zahn in Ordnung ist ...") - say("") - pc.remove_item("30006", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<10 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend, dieser Zahn ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 10 Stück gebracht...") - say("Nun bitte ich dich noch, mir den") - say("Jinunggyis Seelenstein zu bringen.") - say("Du bekommst ihn von Stolzen Orks ...") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_jinunggyis) - end - else - say("Biologe:") - say("Es tut mir leid, aber der Zahn ist bei") - say("den Untersuchungen zerbrochen.") - say("Bitte hol mir einen neuen Orkzahn!") - say("") - end - end - end - state collect_jinunggyis begin - when letter begin - send_letter("Jinunggyis Seelenstein") - end - when button or info begin - say_title("Jinunggyis Seelenstein") - say("") - say("Ihr habt alle zehn Orkzähne gesammelt.") - say("Nun müsst ihr Jinunggyis Seelenstein erbeuten.") - say("") - say_item_vnum(30220) - say("Ob dieser Stein tatsächlich eine Seele enthält?") - say("") - end - when 635.kill or 636.kill or 637.kill begin - if pc.count_item(30220)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30220, 1) - end - end - end - when 20084.chat."Jinunggyis Seelenstein" begin - if pc.count_item(30220)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um Jinunggyis Seelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30220,1) - set_state(jinunggyis_reward) - else - say("Biologe:") - say("Du hast mir die 10 Stück gebracht...") - say("Nun bitte ich dich noch, mir den") - say("Jinunggyis Seelenstein zu bringen.") - say("Du bekommst ihn von Stolzen Orks ...") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state jinunggyis_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say("Um die Belohnung des Biologen zu erhalten") - say("suche mit den Informationen der") - say("Orkzähne und des Seelensteins Baek-Go auf.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Roter Ebenholzkasten") - say_reward("Bewegungsgeschwindigkeit +10% (Dauerhaft)") - say("") - affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) - pc.give_item2("50109") - set_state(collect_quest_lv40) - end - end - - ---------------------------------- - -- LvL 40 / Fluchsammlung - ---------------------------------- - state collect_quest_lv40 begin - when login or levelup with pc.level>39 begin - set_state(talk_to_disciple_lv40) - end - - when login or levelup with pc.level<40 begin - send_letter("Forschung des Biologen 2") - end - when button or info begin - say_title("Forschung des Biologen 2") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 40 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 40 erreichen!") - say("") - end - end - - state talk_to_disciple_lv40 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 2") - end - when button or info begin - say_title("Forschung des Biologen 2") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Fluchbücher" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Orkzähne") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte die Fluchbücher untersuchen.") - say("Davon benötige ich 15 Stück.") - say("Die Bücher sind jedoch ziemlich alt,") - say("manchmal zerfallen sie einfach!") - say("") - set_state(collect_cursebook) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_cursebook begin - when letter begin - send_letter("Forschung des Biologen 2") - end - when button or info begin - say_title("Fluchsammlungen") - say("") - say("Der Biologe gab euch den Auftrag,") - say("15 Fluchsammlungen zu besorgen.") - say("Diese kannst du bei den Dunklen- und") - say("Hohen Peinigern erbeuten.") - say("") - say_item_vnum(30047) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 20084.chat."Fluchsammlungen" with pc.count_item(30047)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieser Zahn in Ordnung ist ...") - say("") - pc.remove_item("30047", 1) - wait() - - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<15 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend, diese Fluchsammlung ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 15 Sammlungen gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige den Tempelseelenstein,") - say("den du von Stolzen dunklen Fanatikern,") - say("Kämpfern, sowie Obersten erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_templekey) - end - else - say("Biologe:") - say("Es tut mir leid, die Fluchsammlung") - say("ist bei den Untersuchungen zerfallen.") - say("Bitte hol mir eine neue Fluchsammlung.") - end - end - end - state collect_templekey begin - when letter begin - send_letter("Tempelseelenstein") - end - when button or info begin - say_title("Tempelseelenstein") - say("") - say("Ihr habt alle 15 Fluchsammlungen abgegeben.") - say("Nun müsst ihr den Tempelseelenstein erbeuten.") - say("") - say_item_vnum(30221) - say("Ob dieser Stein tatsächlich Seelen") - say("der Tempelanhänger enthält?") - say("") - end - when 731.kill or 733.kill or 734.kill begin - if pc.count_item(30221)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30221, 1) - end - end - end - when 20084.chat."Tempelseelenstein" begin - if pc.count_item(30221)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um den Tempelseelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30221,1) - set_state(templekey_reward) - else - say("Biologe:") - say("Du hast mir die 15 Sammlungen gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige den Tempelseelenstein,") - say("den du von Stolzen dunklen Fanatikern,") - say("Kämpfern, sowie Obersten erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state templekey_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Fluchsammlungen und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Prunk Ebenholzkasten") - say_reward("Angriffsgeschwindigkeit +5% (Dauerhaft)") - say("") - affect.add_collect(apply.ATT_SPEED, 5, 60*60*24*365*60) - pc.give_item2("50110") - set_state(collect_quest_lv50) - end - end - - ---------------------------------- - -- LvL 50 / Dämonenandenken - ---------------------------------- - state collect_quest_lv50 begin - when login or levelup with pc.level>49 begin - set_state(talk_to_disciple_lv50) - end - - when login or levelup with pc.level<50 begin - send_letter("Forschung des Biologen 3") - end - when button or info begin - say_title("Forschung des Biologen 3") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 50 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 50 erreichen!") - say("") - end - end - - state talk_to_disciple_lv50 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 3") - end - when button or info begin - say_title("Forschung des Biologen 3") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Dämonenandenken" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Fluchsammlungen") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte die Dämonenandenken untersuchen.") - say("Davon benötige ich 15 Stück.") - say("Diese sind jedoch ziemlich zerbrechlich,") - say("es kann also sein, dass einige bei") - say("meinen Untersuchungen kaputt gehen.") - say("") - set_state(collect_deamonitem) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_deamonitem begin - when letter begin - send_letter("Forschung des Biologen 3") - end - when button or info begin - say_title("Dämonenandenken") - say("") - say("Der Biologe gab euch den Auftrag,") - say("15 Dämonenandenken zu besorgen.") - say("Diese kannst du bei den Monstern im") - say("Dämonenturm erbeuten.") - say("") - say_item_vnum(30015) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 20084.chat."Dämonenandenken" with pc.count_item(30015)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieser Zahn in Ordnung ist ...") - say("") - pc.remove_item("30015", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<15 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend,") - say("dieses Dämonenandenken ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 15 Andenken gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Sagyis Seelenstein,") - say("den du von den Monstern im Dämonenturm,") - say("erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_sagyis) - end - else - say("Biologe:") - say("Es tut mir leid, das Andenken") - say("ist bei den Untersuchungen zerbrochen.") - say("Bitte hol mir ein Neues.") - end - end - end - state collect_sagyis begin - when letter begin - send_letter("Sagyis Seelenstein") - end - when button or info begin - say_title("Sagyis Seelenstein") - say("") - say("Ihr habt alle 15 Dämonenandenken abgegeben.") - say("Nun müsst ihr Sagyis Seelenstein erbeuten.") - say("") - say_item_vnum(30222) - say("Ob dieser Stein tatsächlich Seelen") - say("von Sagyis Adligen enthält?") - say("") - end - when 1001.kill or 1002.kill or 1003.kill or 1004.kill begin - if pc.count_item(30222)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30222, 1) - end - end - end - when 20084.chat."Sagyis Seelenstein" begin - target.delete("__TARGET__") - if pc.count_item(30222)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um Sagyis Seelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30222,1) - set_state(sagyis_reward) - else - say("Biologe:") - say("Du hast mir die 15 Andenken gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Sagyis Seelenstein,") - say("den du von den Monstern im Dämonenturm,") - say("erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state sagyis_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Dämonenandenken und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Gelber Ebenholzkasten") - say_reward("Verteidigung +60 (Dauerhaft)") - say("") - affect.add_collect(apply.DEF_GRADE_BONUS,60,60*60*24*365*60) - pc.give_item2("50111") - set_state(collect_quest_lv60) - end - end - - ---------------------------------- - -- LvL 60 / Eiskugeln - ---------------------------------- - state collect_quest_lv60 begin - when login or levelup with pc.level>59 begin - set_state(talk_to_disciple_lv60) - end - - when login or levelup with pc.level<60 begin - send_letter("Forschung des Biologen 4") - end - when button or info begin - say_title("Forschung des Biologen 4") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 60 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 60 erreichen!") - say("") - end - end - state talk_to_disciple_lv60 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 4") - end - when button or info begin - say_title("Forschung des Biologen 4") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Eiskugeln" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Dämonenandenken") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte die Eiskugeln untersuchen.") - say("Davon benötige ich 20 Stück.") - say("Diese sind jedoch ziemlich zerbrechlich,") - say("es kann also sein, dass einige bei") - say("meinen Untersuchungen kaputt gehen.") - say("") - set_state(collect_scoops) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_scoops begin - when letter begin - send_letter("Forschung des Biologen 4") - end - when button or info begin - say_title("Eiskugeln") - say("") - say("Der Biologe gab euch den Auftrag,") - say("20 Eiskugeln zu besorgen.") - say("Diese kannst du bei den Eisgolems auf") - say("dem Berg Sohan erbeuten.") - say("") - say_item_vnum(30050) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 20084.chat."Eiskugel" with pc.count_item(30050)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieser Zahn in Ordnung ist ...") - say("") - pc.remove_item("30050", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<20 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend,") - say("diese Eiskugel ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 20 Eiskugeln gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Aurtumryus Seelenstein,") - say("den du von den Eismonstern auf dem Berg Sohan,") - say("erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_aurtumryus) - end - else - say("Biologe:") - say("Es tut mir leid, die Eiskugel") - say("ist bei den Untersuchungen zerbrochen.") - say("Bitte hol mir eine Neue.") - end - end - end - state collect_aurtumryus begin - when letter begin - send_letter("Aurtumryus Seelenstein") - end - when button or info begin - say_title("Aurtumryus Seelenstein") - say("") - say("Ihr habt alle 20 Eiskugeln abgegeben.") - say("Nun müsst ihr Aurtumryus Seelenstein erbeuten.") - say("") - say_item_vnum(30223) - say("Ob dieser Stein tatsächlich Seelen") - say("von Aurtumryus Adligen enthält?") - say("") - end - when 1102.kill or 1104.kill or 1105.kill begin - if pc.count_item(30223)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30223, 1) - end - end - end - when 20084.chat."Aurtumryus Seelenstein" begin - if pc.count_item(30223)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um Aurtumryus Seelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30223,1) - set_state(aurtumryus_reward) - else - say("Biologe:") - say("Du hast mir die 20 Eiskugeln gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Aurtumryus Seelenstein,") - say("den du von den Eismonstern auf dem Berg Sohan,") - say("erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state aurtumryus_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Eiskugeln und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Hellgrüner Ebenholzkasten") - say_reward("Angriffswert +50 (Dauerhaft)") - say("") - affect.add_collect(apply.ATT_GRADE_BONUS,50,60*60*24*365*60) - pc.give_item2("50112") - set_state(collect_quest_lv70) - end - end - - ---------------------------------- - -- LvL 70 / Zelkovas Holzäste - ---------------------------------- - state collect_quest_lv70 begin - when login or levelup with pc.level>69 begin - set_state(talk_to_disciple_lv70) - end - - when login or levelup with pc.level<70 begin - send_letter("Forschung des Biologen 5") - end - when button or info begin - say_title("Forschung des Biologen 5") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 70 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 70 erreichen!") - say("") - end - end - - state talk_to_disciple_lv70 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 5") - end - when button or info begin - say_title("Forschung des Biologen 5") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Zelkovas Holzäste" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Eiskugeln") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte Zelkovas Holzäste untersuchen.") - say("Davon benötige ich 25 Stück.") - say("Diese welken jedoch ziemlich schnell,") - say("es kann also sein, dass einige für") - say("meine Untersuchungen unbrauchbar sind.") - say("") - set_state(collect_branches) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_branches begin - when letter begin - send_letter("Forschung des Biologen 5") - end - when button or info begin - say_title("Zelkovas Holzäste") - say("") - say("Der Biologe gab euch den Auftrag,") - say("25 von Zelkovas Holzästen zu besorgen.") - say("Diese kannst du bei den Monstern") - say("im Geisterwald erbeuten.") - say("") - say_item_vnum(30165) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 20084.chat."Zelkovas Holzäste" with pc.count_item(30165)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieser Holzast in Ordnung ist ...") - say("") - pc.remove_item("30165", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<25 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend,") - say("dieser Holzast ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 25 Holzäste gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Gyimoks Seelenstein,") - say("den du ebenfalls von den Monstern") - say("im Geisterwald erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_gyimoks) - end - else - say("Biologe:") - say("Es tut mir leid, der Holzast") - say("ist während des Transports verwelkt.") - say("Bitte hol mir einen Neuen.") - end - end - end - state collect_gyimoks begin - when letter begin - send_letter("Gyimoks Seelenstein") - end - when button or info begin - say_title("Gyimoks Seelenstein") - say("") - say("Ihr habt alle 25 Äste abgegeben.") - say("Nun müsst ihr Gyimoks Seelenstein erbeuten.") - say("") - say_item_vnum(30224) - say("Ob dieser Stein tatsächlich Seelen") - say("von Gyimoks Adligen enthält?") - say("") - end - when 2301.kill or 2302.kill or 2303.kill or 2304.kill or 2305.kill or 2311.kill or - 2312.kill or 2313.kill or 2314.kill or 2315.kill or 2306.kill or 2307.kill begin - if pc.count_item(30224)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30224, 1) - end - end - end - when 20084.chat."Gyimoks Seelenstein" begin - target.delete("__TARGET__") - if pc.count_item(30224)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um Gyimoks Seelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30224,1) - set_state(gyimoks_reward) - else - say("Biologe:") - say("Du hast mir die 25 Holzäste gebracht.") - say("Nun...ich habe noch eine Bitte.") - say("Ich benötige Gyimoks Seelenstein,") - say("den du ebenfalls von den Monstern") - say("im Geisterwald erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state gyimoks_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Zelkova Holzäste und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Grüner Ebenholzkasten") - say_reward("Bewegungsgeschwindigkeit +10% (Dauerhaft)") - say_reward("Schadensreduzierung +10% (Dauerhaft)") - say("") - affect.add_collect(apply.MOV_SPEED,10,60*60*24*365*60) - affect.add_collect(apply.POINT_DEF_BONUS,10,60*60*24*365*60) - pc.give_item2("50113") - set_state(collect_quest_lv80) - end - end - - ---------------------------------- - -- LvL 80 / Tugyis Tafeln - ---------------------------------- - state collect_quest_lv80 begin - when login or levelup with pc.level>79 begin - set_state(talk_to_disciple_lv80) - end - - when login or levelup with pc.level<80 begin - send_letter("Forschung des Biologen 6") - end - when button or info begin - say_title("Forschung des Biologen 6") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 80 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 80 erreichen!") - say("") - end - end - - state talk_to_disciple_lv80 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 6") - end - when button or info begin - say_title("Forschung des Biologen 6") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Tugyis Tafeln" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Zelkova Holzäste") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte Tugyis Tafeln untersuchen.") - say("Davon benötige ich 30 Stück.") - say("Diese sind jedoch ziemlich zerbrechlich,") - say("es kann also sein, dass einige bei") - say("meinen Untersuchungen kaputt gehen.") - say("") - set_state(collect_plates) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_plates begin - when letter begin - send_letter("Forschung des Biologen 6") - end - when button or info begin - say_title("Tugyis Tafeln") - say("") - say("Der Biologe gab euch den Auftrag,") - say("30 von Tugyis Tafeln zu besorgen.") - say("Diese kannst du bei den Monstern") - say("im Land der Riesen erbeuten.") - say("") - say_item_vnum(30166) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 1401.kill or 1402.kill or 1403.kill or 1601.kill or 1602.kill or 1603.kill begin - local rand = number(1,1) -------- Dropchance der Tafeln hier 100% - if rand<5 then pc.give_item2(30166, 1) - end - end - when 20084.chat."Tugyis Tafeln" with pc.count_item(30166)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob diese Tafel in Ordnung ist ...") - say("") - pc.remove_item("30166", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<30 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend,") - say("diese Tafel ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 30 Tafeln gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Tugyis Seelenstein,") - say("den du ebenfalls von den Monstern") - say("im Land der Riesen erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_tugyis) - end - else - say("Biologe:") - say("Es tut mir leid, die Tafel") - say("ist während der Untersuchung zerbrochen.") - say("Bitte hol mir eine Neue.") - end - end - end - state collect_tugyis begin - when letter begin - send_letter("Tugyis Seelenstein") - end - when button or info begin - say_title("Tugyis Seelenstein") - say("") - say("Ihr habt alle 30 Tafeln abgegeben.") - say("Nun müsst ihr Tugyis Seelenstein erbeuten.") - say("") - say_item_vnum(30225) - say("Ob dieser Stein tatsächlich Seelen") - say("von Tugyis Adligen enthält?") - say("") - end - when 1401.kill or 1402.kill or 1403.kill or 1601.kill or 1602.kill or 1603.kill begin - if pc.count_item(30225)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30225, 1) - end - end - end - when 20084.chat."Tugyis Seelenstein" begin - if pc.count_item(30225)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um Tugyis Seelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30225,1) - set_state(tugyis_reward) - else - say("Biologe:") - say("Du hast mir die 30 Tafeln gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Tugyis Seelenstein,") - say("den du ebenfalls von den Monstern") - say("im Land der Riesen erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state tugyis_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Tugyis Tafeln und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Blauer Ebenholzkasten") - say_reward("Angriffsgeschwindigkeit +5% (Dauerhaft)") - say_reward("Schadenserhöhung +10% (Dauerhaft)") - say("") - affect.add_collect(apply.ATT_SPEED,5,60*60*24*365*60) - affect.add_collect_point(apply.POINT_ATT_BONUS,10,60*60*24*365*60) - pc.give_item2("50114") - set_state(collect_quest_lv85) - end - end - - ---------------------------------- - -- LvL 85 / Geisterbaum Äste - ---------------------------------- - state collect_quest_lv85 begin - when login or levelup with pc.level>84 begin - set_state(talk_to_disciple_lv85) - end - - when login or levelup with pc.level<85 begin - send_letter("Forschung des Biologen 7") - end - when button or info begin - say_title("Forschung des Biologen 7") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 85 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 85 erreichen!") - say("") - end - end - - state talk_to_disciple_lv85 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 7") - end - when button or info begin - say_title("Forschung des Biologen 7") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Rote Geisterbaumäste" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Tugyis Tafeln") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte Rote Geisterbaumäste untersuchen.") - say("Davon benötige ich 40 Stück.") - say("Diese sind jedoch ziemlich verwelkt,") - say("es kann also sein, dass einige bei") - say("meinen Untersuchungen kaputt gehen.") - say("") - set_state(collect_ast) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_ast begin - when letter begin - send_letter("Forschung des Biologen 7") - end - when button or info begin - say_title("Rote Geisterbaumäste") - say("") - say("Der Biologe gab euch den Auftrag,") - say("40 von Rote Geisterbaumäste zu besorgen.") - say("Diese kannst du bei den Monstern") - say("im Roten Wald erbeuten.") - say("") - say_item_vnum(30166) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 2311.kill or 2312.kill or 2313.kill or 2314.kill or 2315.kill begin - local rand = number(1,20) -------- Dropchance eines Geisterbaum Astes hier 5% - if rand<5 then pc.give_item2(30167, 1) - end - end - when 20084.chat."Rote Geisterbaumäste" with pc.count_item(30167)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob diesr Ast in Ordnung ist ...") - say("") - pc.remove_item("30167", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<30 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend,") - say("dieser Ast ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 40 Äste gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Waldgeist-Seelenstein,") - say("den du ebenfalls von den Monstern") - say("im Roten Wald erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_waldseeli) - end - else - say("Biologe:") - say("Es tut mir leid, der Ast") - say("ist während der Untersuchung verwelkt.") - say("Bitte hol mir einen Neuen.") - end - end - end - state collect_waldseeli begin - when letter begin - send_letter("Waldgeist-Seelenstein") - end - when button or info begin - say_title("Waldgeist-Seelenstein") - say("") - say("Ihr habt alle 40 Äste abgegeben.") - say("Nun müsst ihr den Waldgeist-Seelenstein erbeuten.") - say("") - say_item_vnum(30226) - say("Ob dieser Stein tatsächlich Seelen") - say("von Tugyis Adligen enthält?") - say("") - end - when 2311.kill or 2312.kill or 2313.kill or 2314.kill or 2315.kill begin - if pc.count_item(30226)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30226, 1) - end - end - end - when 20084.chat."Waldgeist-Seelenstein" begin - if pc.count_item(30226)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um den Waldgeist-Seelenstein.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30226,1) - set_state(waldgeist_reward) - else - say("Biologe:") - say("Du hast mir die 40 Äste gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige Waldgeist-Seelenstein,") - say("den du ebenfalls von den Monstern") - say("im Roten Wald erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state waldgeist_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Geisterbaum Äste und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Purpur Ebenholzkasten") - say_reward("PvP Schadensreduzierung +10% (Dauerhaft)") - say("") - affect.add_collect(apply.RESIST_ASSASSIN,10,60*60*24*365*60) - affect.add_collect(apply.RESIST_SURA,10,60*60*24*365*60) - affect.add_collect(apply.RESIST_SHAMAN,10,60*60*24*365*60) - affect.add_collect(apply.RESIST_WARRIOR,10,60*60*24*365*60) - pc.give_item2("50115") - set_state(collect_quest_lv90) - end - end - - ---------------------------------- - -- LvL 90 / Notiz der Anführer - ---------------------------------- - state collect_quest_lv90 begin - when login or levelup with pc.level>79 begin - set_state(talk_to_disciple_lv90) - end - - when login or levelup with pc.level<90 begin - send_letter("Forschung des Biologen 8") - end - when button or info begin - say_title("Forschung des Biologen 8") - say("") - say("Um die nächste Biologen Quest zu starten") - say("musst du mindestens Lv 90 erreicht haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 90 erreichen!") - say("") - end - end - - state talk_to_disciple_lv90 begin - when letter begin - local v = find_npc_by_vnum(20084) - if v != 0 then target.vid("__TARGET__", v, "Biologe") - end - send_letter("Forschung des Biologen 8") - end - when button or info begin - say_title("Forschung des Biologen 8") - say("") - say("Der Biologe benötigt ein weiteres Mal Hilfe.") - say("Er meinte, er bräuchte Hilfe auf der Suche") - say("nach speziellen Gegenständen.") - say("Sprich mit ihm,") - say("um eine genauere Beschreibung zu erhalten.") - say("") - say_reward("Sprich mit dem Biologen") - say("") - end - when __TARGET__.target.click or 20084.chat."Notiz der Anführer" begin - target.delete("__TARGET__") - say("Biologe:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Tugyis Tafeln") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Biologe:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Biologe:") - say("Ich möchte Notizen der Anführer untersuchen.") - say("Davon benötige ich 50 Stück.") - say("Es kann jedoch sein, dass sich einige") - say("Notizen als alt und unlesbar herausstellen.") - say("") - set_state(collect_notices) - pc.setqf("duration",0) - pc.setqf("collect_count",0) - end - end - state collect_notices begin - when letter begin - send_letter("Forschung des Biologen 8") - end - when button or info begin - say_title("Notiz der Anführer") - say("") - say("Der Biologe gab euch den Auftrag,") - say("50 Notizen der Anführer zu besorgen.") - say("Diese kannst du von den Bossen") - say("wie z.B. Oberork, Königsspinne,") - say("Neunschwanz, etc. erbeuten.") - say("") - say_item_vnum(30168) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1304.kill or - 1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5001.kill or 5004.kill or - 5161.kill or 5162.kill or 5163.kill begin - local rand = number(1,1) -------- Dropchance einer Notiz hier 100% - if rand<5 then pc.give_item2(30168, 1) - end - end - when 20084.chat."Notiz der Anführer" with pc.count_item(30168)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob diese Notiz lesbar ist ...") - say("") - pc.remove_item("30168", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<50 then - pc.setqf("collect_count", count) - say("Biologe:") - say("Hervorragend,") - say("diese Notiz ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Biologe:") - say("Du hast mir die 50 Notizen gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige den Seelenstein der Anführer,") - say("den du ebenfalls von den Bossen") - say("erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_bossKey) - end - else - say("Biologe:") - say("Es tut mir leid, die Notiz") - say("hat sich als unlesbar herausgestellt.") - say("Bitte hol mir eine Neue.") - end - end - end - state collect_bossKey begin - when letter begin - send_letter("Seelenstein der Anführer") - end - when button or info begin - say_title("Seelenstein der Anführer") - say("") - say("Ihr habt alle 50 Notizen abgegeben.") - say("Nun müsst ihr den Seelenstein der Anführer") - say("erbeuten.") - say("") - say_item_vnum(30227) - say("Ob dieser Stein tatsächlich Seelen") - say("der Anführer enthält?") - say("") - end - when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1304.kill or - 1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5001.kill or 5004.kill or - 5161.kill or 5162.kill or 5163.kill begin - if pc.count_item(30227)<1 then - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30227, 1) - end - end - end - when 20084.chat."Seelenstein der Anführer" begin - if pc.count_item(30227)>0 then - say("Biologe:") - say("Dank deiner Hilfe verstehe ich nun") - say("die Legende um den Seelenstein der Anführer.") - say("Du hast hart gekämpft.") - say("Sprich mit Baek-Go, er wird dir helfen,") - say("deine inneren Kräfte zu steigern.") - say("") - pc.remove_item(30227,1) - set_state(bossKey_reward) - else - say("Biologe:") - say("Du hast mir die 50 Notizen gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige den Seelenstein der Anführer,") - say("den du ebenfalls von den Bossen") - say("erbeuten kannst.") - say("Ich denke, dafür bist du stark genug.") - say("") - end - end - end - state bossKey_reward begin - when letter begin - send_letter("Sprich mit Baek-Go") - local v = find_npc_by_vnum(20018) - if v != 0 then target.vid("__TARGET__", v, "Doktor") - end - end - when button or info begin - say_title("Sprich mit Baek-Go") - say("Um die Belohnung des Biologen zu erhalten,") - say("suche mit den Informationen der") - say("Notizen und des Seelensteins") - say("Baek-Go auf. Er befindet sich in der Stadt.") - say("") - end - when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin - target.delete("__TARGET__") - say_title("Baek-Go:") - say("Ich sehe ...") - say("Der Biologe hat dich zu mir geschickt.") - say("Hier ist deine Belohnung:") - say("") - say_reward("Du erhälst:") - say_reward("Blauer Ebenholzkasten") - say_reward("PvP Schadenswert +10% (Dauerhaft)") - say("") - affect.add_collect(apply.ATT_BONUS_TO_WARRIOR,10,60*60*24*365*60) - affect.add_collect(apply.ATT_BONUS_TO_ASSASSIN,10,60*60*24*365*60) - affect.add_collect(apply.ATT_BONUS_TO_SURA,10,60*60*24*365*60) - affect.add_collect(apply.ATT_BONUS_TO_SHAMAN,10,60*60*24*365*60) - pc.give_item2("50114") - set_state(collect_quest_lv92) - end - end - - ---------------------------------- - -- LvL 92 / Juwel der Missgunst - ---------------------------------- - - state collect_quest_lv92 begin - when login or levelup with pc.level>91 begin - set_state(talk_to_disciple_lv92) - end - - when login or levelup with pc.level<92 begin - send_letter("Seon-Pyeongs Forschung") - end - when button or info begin - say_title("Seon-Pyeongs Forschung") - say("") - say("Um die erste Forschung des Seon-Pyeongs") - say("zu starten musst du mindestens Lv 92 erreicht") - say("haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 92 erreichen!") - say("") - end - end - - state talk_to_disciple_lv92 begin - when letter begin - local v = find_npc_by_vnum(20091) - if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") - end - send_letter("Seon-Pyeongs Forschung") - end - when button or info begin - say_title("Seon-Pyeongs Forschung") - say("") - say("Seon-Pyeong benötigt deine Hilfe.") - say("Sprich mit ihm.") - say("") - say_reward("Sprich mit Seon-Pyeong") - say("") - end - when __TARGET__.target.click or 20091.chat."Seon-Pyeongs Forschung" begin - target.delete("__TARGET__") - say("Seon-Pyeong:") - say("") - say("Oh, du hilfst mir?") - say("Gut ...") - say("Ich bin übrigens Seon-Pyeong") - say("und studiere zahlreiches aus der Unterwelt.") - say("Wenn du mir bei meinen Forschungen hilfst,") - say("werde ich dich reich belohnen.") - say("") - wait() - say("Seon-Pyeong:") - say("Ich habe vor kurzem wieder angefangen ...") - say("Ich Forsche an einer Legende ...") - say("Doch habe ich derzeit viel zu tun,") - say("es wäre also nett, wenn du mir hilfst ...") - say("") - wait() - say("Seon-Pyeong:") - say("Ich benötige zehn Juwele der Missgunst für meine") - say("Forschung") - say("Diese sind jedoch sehr zerbrechlich,") - say("es kann also sein, dass einige bei") - say("meinen Untersuchungen kaputt gehen.") - say("Ich benötige alle zehn,") - say("um meine Forschungen vollenden zu können.") - say("") - set_state(collect_9) - end - end - - state collect_9 begin - when letter begin - send_letter("Seon-Pyeongs Forschung") - end - when button or info begin - say_title("Juwel der Missgunst") - say("") - say("Seon-Pyeong gab euch den Auftrag,") - say("10 Juwele der Missgunst zu besorgen.") - say("Diese kannst du von den Monstern") - say("Unterwelt Eismann, und Unterwelt Eisgolem") - say("erbeuten, diese leben jedoch in der") - say("gefährlichen Grotte der Verbannung.") - say("") - say_item_vnum(30251) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 1135.kill or 1137.kill begin - local rand = number(1,10) -------- Dropchance eines Juwels hier 10% - if rand<5 then pc.give_item2(30251, 1) - end - end - when 20091.chat."Juwel der Missgunst" with pc.count_item(30251)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieses Juwel brauchbar ist ...") - say("") - pc.remove_item("30251", 1) - wait() - local rand = number(0,99) - if rand>50 then - say("Seon-Pyeong:") - say("Es tut mir leid, das Juwel") - say("hat sich als unbrauchbar herausgestellt,") - say("Bitte hol mir ein Neues.") - else - local count = pc.getqf("collect_count")+1 - if count<10 then - pc.setqf("collect_count", count) - say("Seon-Pyeong:") - say("Hervorragend,") - say("dieses Juwel ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Seon-Pyeong:") - say("Du hast mir die 10 Juwele gebracht.") - say("ich bin beeindruckt,") - say("sammle noch mehr Erfahrung in der") - say("Grotte der Verbannung dann werde") - say("ich dir die nächste Aufgabe zu kommen") - say("lassen.") - say("") - say("Doch nun zu deiner Belohnung") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - wait() - say("Welche Belohnung möchtest du?") - local s = select ("1000 TP", "120 Verteidigung", "51 Angriffswert") - - if s == 3 then - say_reward("Du erhälst 51 Angriffswert.") - affect.add_collect(apply.ATT_GRADE_BONUS,51,60*60*24*365*60) - set_state(collect_quest_lv94) - end - if s == 2 then - say_reward("Du erhälst 120 Verteidigung.") - affect.add_collect(apply.DEF_GRADE_BONUS,120,60*60*24*365*60) - set_state(collect_quest_lv94) - end - if s == 1 then - say_reward("Du erhälst 1000 TP.") - affect.add_collect(apply.TP_GRADE_BONUS,1000,60*60*24*365*60) - set_state(collect_quest_lv94) - end - end - end - end - end - - ---------------------------------- - -- LvL 94 / Juwel der Weisheit - ---------------------------------- - -state collect_quest_lv94 begin - when login or levelup with pc.level>93 begin - set_state(talk_to_disciple_lv94) - end - - when login or levelup with pc.level<94 begin - send_letter("Seon-Pyeongs Forschung 2") - end - when button or info begin - say_title("Seon-Pyeongs Forschung 2") - say("") - say("Um die nächste Forschung des Seon-Pyeongs") - say("zu starten musst du mindestens Lv 94 erreicht") - say("haben.") - say("") - say_reward("Deine Erfahrung reicht im Moment nicht aus") - say_reward("Du musst mindestens Lv 94 erreichen!") - say("") - end - end - - state talk_to_disciple_lv94 begin - when letter begin - local v = find_npc_by_vnum(20091) - if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") - end - send_letter("Seon-Pyeongs Forschung 2") - end - when button or info begin - say_title("Seon-Pyeongs Forschung 2") - say("") - say("Seon-Pyeong benötigt deine Hilfe.") - say("Sprich mit ihm.") - say("") - say_reward("Sprich mit Seon-Pyeong") - say("") - end - when __TARGET__.target.click or 20091.chat."Seon-Pyeongs Forschung 2" begin - target.delete("__TARGET__") - say("Seon-Pyeong:") - say("Gut, dass du gekommen bist...") - say("Die Untersuchung der Missgunst Juwelen") - say("habe ich abgeschlossen.") - say("Nun habe ich neue Objekte gefunden,") - say("die ich gerne untersuchen würde.") - wait() - say("Seon-Pyeong:") - say("Ich würde sie ja selber sammeln,") - say("aber ich habe zuviel zu tun...") - say("Es wäre sehr nett, wenn du dies") - say("für mich erledigen könntest.") - wait() - say("Seon-Pyeong:") - say("Ich möchte Juwelen der Weisheit untersuchen.") - say("Davon benötige ich 20 Stück.") - say("Es kann jedoch sein, dass sich einige") - say("Juwele als unbrauchbar herausstellen.") - say("") - set_state(collect_10) - end - end - - state collect_10 begin - when letter begin - send_letter("Seon-Pyeongs Forschung 2") - end - when button or info begin - say_title("Juwel der Weisheit") - say("") - say("Seon-Pyeong gab euch den Auftrag,") - say("20 Juwelen der Weisheit zu besorgen.") - say("Diese kannst du von den Monstern") - say("Setaou Bogenschütze und Setaou") - say("Kommandant erbeuten, diese leben") - say("jedoch im den hintersten Kammern") - say("der Grotte 2.") - say("") - say_item_vnum(30252) - say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - end - when 2412.kill or 2414.kill begin - local rand = number(1,25) -------- Dropchance des Juwels hier 4% - if rand<5 then pc.give_item2(30252, 1) - end - end - when 20091.chat."Juwel der Weisheit" with pc.count_item(30252)>0 begin - say("Einen Moment ...") - say("Vielen Dank,") - say("lasst mich schnell überprüfen") - say("ob dieses Juwel brauchbar ist ...") - say("") - pc.remove_item("30252", 1) - wait() - local rand = number(0,99) - if rand<50 then - local count = pc.getqf("collect_count")+1 - if count<20 then - pc.setqf("collect_count", count) - say("Seon-Pyeong:") - say("Hervorragend,") - say("dieses Juwel ist in Ordnung.") - say("Bringt mir noch welche, damit ich meine") - say("Forschungen abschließen kann.") - say("") - say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!") - say("") - else - say("Seon-Pyeong:") - say("Du hast mir die 20 Juwele gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige den Beran-Setaou Seelenstein,") - say("den du nur vom Herrscher der Grotte") - say("Beran-Setaou erhälst, es ist eine") - say("schwere Aufgabe aber ich denke") - say("das du es schaffen wirst!") - say("") - pc.setqf("collect_count",0) - pc.setqf("duration",0) - set_state(collect_setaouseeli) - end - else - say("Seon-Pyeong:") - say("Es tut mir leid, das Juwel") - say("hat sich als unbrauchbar herausgestellt.") - say("Bitte hol mir ein Neues.") - end - end - end - state collect_setaouseeli begin - when letter begin - send_letter("Beran-Setaou Seelenstein") - end - when button or info begin - say_title("Beran-Setaou Seelenstein") - say("") - say("Ihr habt alle 20 Juwele der Weisheit abgegeben.") - say("Nun müsst ihr den Beran-Setaou Seelenstein") - say("erbeuten.") - say("") - say_item_vnum(30228) - say("Ob dieser Stein tatsächlich Seelen") - say("der Grotte enthält?") - say("") - end - when 2493.kill begin - local rand = number(1,1) -------- Dropchance des Seelensteins hier 100% - if rand<5 then pc.give_item2(30228, 1) - end - end - - when 20091.chat."Beran-Setaou Seelenstein" begin - if pc.count_item(30228)<1 then - say("Seon-Pyeong:") - say("Du hast mir die 20 Juwele gebracht.") - say("Nun, ich habe noch eine Bitte.") - say("Ich benötige den Beran-Setaou Seelenstein,") - say("den du nur vom Herrscher der Grotte") - say("Beran-Setaou erhälst, es ist eine") - say("schwere Aufgabe aber ich denke") - say("das du es schaffen wirst!") - say("") - else - say("Seon-Pyeong:") - say("Unglaublich! Du hast es tatsächlich geschafft") - say("mir den Beran-Setaou Seelenstein zu besorgen") - say("Du hast hart gekämpft.") - say("") - say("Nun zu deiner Belohnung") - say("") - pc.remove_item(30228,1) - wait() - say("Welche Belohnung möchtest du?") - local s = select ("1100 TP", "140 Verteidigung", "60 Angriffswert") - - if s == 3 then - say_reward("Du erhälst 60 Angriffswert.") - affect.add_collect(apply.ATT_GRADE_BONUS,60,60*60*24*365*60) - set_state(collect_end) - end - if s == 2 then - say_reward("Du erhälst 140 Verteidigung.") - affect.add_collect(apply.DEF_GRADE_BONUS,140,60*60*24*365*60) - set_state(collect_end) - end - if s == 1 then - say_reward("Du erhälst 1100 TP.") - affect.add_collect(apply.TP_GRADE_BONUS,1100,60*60*24*365*60) - set_state(collect_end) - end - end - end - end - - state collect_end begin - end - end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/horse_summon.lua b/main/srv1/share/locale/germany/quest/horse_summon.lua deleted file mode 100644 index 511024f1..00000000 --- a/main/srv1/share/locale/germany/quest/horse_summon.lua +++ /dev/null @@ -1,14 +0,0 @@ -quest horse_summon begin - state start begin - when 50053.use or 50083.use or 50069.use begin - if horse.is_riding() then - horse.unride() - elseif horse.is_summon() then - horse.unsummon() - else - notice("Dein Pferd wurde erfolgreich gerufen.") - horse.summon(false, item.get_value(5)) - end - end - end -end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/oxquiz.lua b/main/srv1/share/locale/germany/quest/oxquiz.lua new file mode 100644 index 00000000..8d2992ca --- /dev/null +++ b/main/srv1/share/locale/germany/quest/oxquiz.lua @@ -0,0 +1,90 @@ +add_ox_quiz(1, "Steht ein Wächter vor dem Dämonenturm?", true) +add_ox_quiz(1, "Kann man ein Haustier halten?", false) +add_ox_quiz(1, "Kann man Spieler aus einem anderen Reich in die Gruppe nehmen?", false) +add_ox_quiz(1, "Gibt es einen Zwergenpanzer?", false) +add_ox_quiz(1, "Gibt es in Metin2 mehrere Sprachen?", true) +add_ox_quiz(1, "Bringt der Pfirsichblütensaft mehr Zaubergeschwindigkeit?", false) +add_ox_quiz(1, "Gibt der Wächter des Dorfplatzes meistens Tipps?", true) +add_ox_quiz(1, "Können Krieger Speere tragen?", true) +add_ox_quiz(1, "Verkauft die Gemischtwarenhändlerin grüne Tränke?", false) +add_ox_quiz(1, "Hat der Dämonenturm maximal sieben Ebenen?", false) +add_ox_quiz(1, "Stehen beim Stallburschen vier Pferde?", false) +add_ox_quiz(1, "Gibt es Zwerge in Metin2?", false) +add_ox_quiz(1, "Kann ein Pferd sterben?", true) +add_ox_quiz(1, "Kann man sich bei der alten Frau von seinem Ehepartner scheiden lassen?", false) +add_ox_quiz(1, "Kann man mit Affenkraut sein Pferd wiederbeleben?", true) +add_ox_quiz(1, "Macht die gegrillte Schmerle unsichtbar?", true) +add_ox_quiz(1, "Hat man am Anfang Fertigkeiten?", false) +add_ox_quiz(1, "Kann man aus Wolfskrallen eine Kette machen?", false) +add_ox_quiz(1, "Macht die gegrillte Schmerle unsichtbar?", true) +add_ox_quiz(1, "Kann man den Metin der Schwärze auf Map1 finden?", true) +add_ox_quiz(1, "Gibt es eine Dämonenklinge?", true) +add_ox_quiz(1, "Regnet es in Metin2?", false) +add_ox_quiz(1, "Kann man Spieler aus einem anderen Reich heiraten?", false) +add_ox_quiz(1, "Hat das Sichelschwert eine Angriffsgeschwindigeit von 24%?", true) +add_ox_quiz(1, "Kann man beim Fischer Lagerfeuer kaufen?", true) +add_ox_quiz(1, "Kann auch das Pferd Fertigkeiten erlernen?", true) +add_ox_quiz(1, "Braucht man eine Emotionsmaske zum tanzen?", true) +add_ox_quiz(1, "Trifft man im leichten Affendungeon einen Steinaffen?", true) +add_ox_quiz(1, "Muss man sein Pferd mit Möhren füttern?", false) +add_ox_quiz(1, "Kann man über Level 30 noch seine Lehre wechseln?", true) +add_ox_quiz(1, "Kann man bei Huan-So Tränke kaufen?", false) +add_ox_quiz(1, "Kann man schon ab dem Level 25 heiraten?", true) +add_ox_quiz(1, "Lebt die Schildkröte im Feuerland?", false) +add_ox_quiz(1, "Kann man alle Waffen tragen?", false) +add_ox_quiz(1, "Kann man mit Level 1 schon einen negativen Rang haben?", true) +add_ox_quiz(1, "Droppt der hohe Scharfrichter eine Verwandlungskugel?", false) +add_ox_quiz(1, "Kann man das Armband der Harmonie handeln?", false) +add_ox_quiz(1, "Greift der Li-An von selbst an?", true) +add_ox_quiz(1, "Kann man Ebenholz auf eine Rüstung anbringen?", false) +add_ox_quiz(1, "Befindet sich das Mok-Denkmal in der Wüste?", false) +add_ox_quiz(1, "Gibt es im roten Wald Metinsteine?", true) +add_ox_quiz(1, "Trifft man das Eisinsekt nur auf dem Berg Sohan an?", false) +add_ox_quiz(1, "Droppt man die Goldohrringe im Spinnendungeon 2?", true) +add_ox_quiz(1, "Fängt man die Regenbogenforelle mit einer Angel+3?", true) +add_ox_quiz(1, "Kann man die Tempellehre lesen?", false) +add_ox_quiz(1, "Bekommt man aus einer Diamantenader, Diamanten?", false) +add_ox_quiz(1, "Kann der Waffenschmied manchmal auch Rüstungen schmieden?", false) +add_ox_quiz(1, "Findet man den Affenwerfer im Jungsun Dong?", true) +add_ox_quiz(1, "Kann man die Soldatengiftspinne in der Wüste antreffen?", false) +add_ox_quiz(1, "Lagert der Lagerverwalter umsonst Items?", false) +add_ox_quiz(1, "Kann ein bestimmter Metinstein, eine Schildkröte spawnen?", true) +add_ox_quiz(1, "Droppt man vom stolzen dunkl. Kämpfer einen Seelenstein?", true) +add_ox_quiz(1, "Braucht ein Alchemist einen Ofen?", true) +add_ox_quiz(1, "Steht im Orktal ein Denkmal?", true) +add_ox_quiz(1, "Ist der brutale Besessener ein Bossmonster?", false) +add_ox_quiz(1, "Kann der Schlangenschwertkaempfer jemanden vergiften?", true) +add_ox_quiz(1, "Braucht man zur Herstellung eines Diamanten einen Geiststein?", false) +add_ox_quiz(1, "Gibt es in Metin einen Geist des Chaos?", true) +add_ox_quiz(1, "Kann sich der Geisterbaumstumpf teleportieren?", true) +add_ox_quiz(1, "Kann man mit Level 50 bei Huahn-So Tränke herstellen?", true) +add_ox_quiz(1, "Erhöht das Hwal-Wasser die Angriffsgeschwindigkeit um 3?", true) +add_ox_quiz(1, "Ist Ayu ein Fisch?", true) +add_ox_quiz(1, "Können Schamanen Kupferohrringe tragen?", true) +add_ox_quiz(1, "Haben die Namenlosen Blumen eine Funktion?", true) +add_ox_quiz(1, "Kann man Heu mit Level 1 droppen?", false) +add_ox_quiz(1, "Ist der Tigris eine Tiergottheit?", true) +add_ox_quiz(1, "Hat der Schuppenplattenpanzer ingesamt drei Sockel?", true) +add_ox_quiz(1, "Droppt der brutale Arahan eine Verwandlunkskugel?", true) +add_ox_quiz(1, "Kann man durch töten eines Fisches ein kleinen Fisch erhalten?", true) +add_ox_quiz(1, "Kann man in einem Laden, ingesamt 15 Speere verkaufen?", false) +add_ox_quiz(1, "Kann man eine Reitkarte droppen?", false) +add_ox_quiz(1, "Trifft man im Orktal brutale Bogenschützen an?", true) +add_ox_quiz(1, "Droppen manche Metins, manche Items auf einem Status von +6?", true) +add_ox_quiz(1, "Droppt der starke Affengeneral eine Pferdemedallie?", true) +add_ox_quiz(1, "Kann man aus einem Golderz, Goldklumpen herstellen?", false) +add_ox_quiz(1, "Können Schamanen Löwentoeter tragen?", false) +add_ox_quiz(1, "Droppen Metinsteine Meisterbuecher?", false) +add_ox_quiz(1, "Sucht Mirine ihren Ehemann?", false) +add_ox_quiz(1, "Trifft man den Stolze dunkl. Schützen im Dämonenturm?", false) +add_ox_quiz(1, "Regeneriert der Lachs, die Gesundheit?", false) +add_ox_quiz(1, "Besitzen Phoenixschuhe einen EXP-Bonus?", false) +add_ox_quiz(1, "Besitzt das Chakram einen Durschnittsschaden?", false) +add_ox_quiz(1, "Droppt der Metin Ma-An Fertigkeitsbücher?", false) +add_ox_quiz(1, "Ist das Löwenschwert eine Kriegerwaffe?", false) +add_ox_quiz(1, "Benötigt man den Schwarzbären für einen Jagtauftrag?", false) +add_ox_quiz(1, "Greift die böse Babygiftspinne von alleine an?", false) +add_ox_quiz(1, "Kann Yu-Hwan Zinnwasser herstellen?", false) +add_ox_quiz(1, "Findet man Mu-Rangs in der Gildenzone?", false) +add_ox_quiz(1, "Kann man mit einem Brautkleid kämpfen?", false) +add_ox_quiz(1, "Gibt es eine Truhe des brutalen Hauptmanns?", false) \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/chest_beginer.lua b/main/srv1/share/locale/germany/quest/quest_announcements/chest_beginer.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/chest_beginer.lua rename to main/srv1/share/locale/germany/quest/quest_announcements/chest_beginer.lua diff --git a/main/srv1/share/locale/germany/quest/first_login.lua b/main/srv1/share/locale/germany/quest/quest_announcements/first_login.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/first_login.lua rename to main/srv1/share/locale/germany/quest/quest_announcements/first_login.lua diff --git a/main/srv1/share/locale/germany/quest/level_info.lua b/main/srv1/share/locale/germany/quest/quest_announcements/level_100_notice.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/level_info.lua rename to main/srv1/share/locale/germany/quest/quest_announcements/level_100_notice.lua diff --git a/main/srv1/share/locale/germany/quest/refine_item_information.lua b/main/srv1/share/locale/germany/quest/quest_announcements/refine_item_lv9_notice.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/refine_item_information.lua rename to main/srv1/share/locale/germany/quest/quest_announcements/refine_item_lv9_notice.lua diff --git a/main/srv1/share/locale/germany/quest/quest_functions b/main/srv1/share/locale/germany/quest/quest_functions index 2b35ecf6..41b2d7e7 100755 --- a/main/srv1/share/locale/germany/quest/quest_functions +++ b/main/srv1/share/locale/germany/quest/quest_functions @@ -869,6 +869,7 @@ restart_quest return_charname_by_id ride.Ride say +say2 say_alen say_important say_important_title @@ -988,3 +989,5 @@ pc.is_dev say_mob pc.give_dr pc.give_dm +selectHorseAppearence +giveHorseItem diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gilden_Npcs.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gilden_Npcs.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gilden_Npcs.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gilden_Npcs.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gilden_Rangliste.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gilden_Rangliste.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gilden_Rangliste.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gilden_Rangliste.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gilden_Verwaltung.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gilden_Verwaltung.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gilden_Verwaltung.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gilden_Verwaltung.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenaltarbau.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenaltarbau.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenaltarbau.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenaltarbau.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenerstellung.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenerstellung_bk.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenerstellung.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenerstellung_bk.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenkrieg_beitreten.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenkrieg_beitreten.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenkrieg_beitreten.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenkrieg_beitreten.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenkriegsliste.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenkriegsliste.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenkriegsliste.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenkriegsliste.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenlandkauf.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenlandkauf.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenlandkauf.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenlandkauf.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenleaderwechsel.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenleaderwechsel.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenleaderwechsel.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenleaderwechsel.quest diff --git a/main/srv1/share/locale/germany/quest/GILDE/Gildenschmiede.quest b/main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenschmiede.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/GILDE/Gildenschmiede.quest rename to main/srv1/share/locale/germany/quest/quest_guild/backup/Gildenschmiede.quest diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_building.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_building.quest new file mode 100644 index 00000000..10b6bd22 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_building.quest @@ -0,0 +1,65 @@ +quest guild_building begin + state start begin + when 20040.click begin + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._20_say) + + local s = select(locale.yes, locale.no) + + if s == 1 then + if not pc.is_guild_master() then + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._30_say) + elseif building.has_land(pc.get_guild()) then + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._40_say) + else + local land_id = building.get_land_id(pc.get_map_index(), pc.get_x()*100, pc.get_y()*100) + + if land_id == 0 then + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._50_say) + else + local price, owner, guild_level_limit = building.get_land_info(land_id) + say_title(gameforge.guild_building._10_sayTitle) + say(string.format(gameforge.guild_building._60_say, guild_level_limit, price..locale.gold)) + + if guild.level(pc.get_guild()) < guild_level_limit then + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._70_say) + else + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._80_say) + + s = select(locale.yes, locale.no) + + if s == 1 then + local price, owner, guild_level_limit = building.get_land_info(land_id) + + if owner!= 0 then + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._90_say) + elseif pc.gold < price then + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._100_say) + else + pc.changegold(-price) + building.set_land_owner(land_id, pc.get_guild()) + notice_multiline(string.format(gameforge.guild_building._105_say, guild.name(pc.get_guild())),notice) + end + else + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._110_say) + end + end + end + end + else + say_title(gameforge.guild_building._10_sayTitle) + say(gameforge.guild_building._110_say) + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_building_alter_of_power.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_building_alter_of_power.quest new file mode 100644 index 00000000..ffa75fe1 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_building_alter_of_power.quest @@ -0,0 +1,98 @@ +quest alter_of_power begin + state start begin + when 20077.click with npc.get_guild() == pc.get_guild() and pc.is_guild_master() begin + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._20_say) + + if pc.getqf("build_level") == 0 then + pc.setqf("build_level", guild.level(pc.get_guild())) + end + + wait() + + say(gameforge.guild_building_alter_of_power._30_say) + + if pc.getqf("build_level") < guild.level(pc.get_guild()) or guild.level(pc.get_guild()) >= 20 then + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._40_say) + say_reward(gameforge.guild_building_alter_of_power._50_sayReward) + + local s = select(gameforge.guild_building_alter_of_power._60_select, gameforge.guild_building_alter_of_power._70_select) + + if s == 1 then + if pc.count_item(90010) >= 10 and pc.count_item(90012) >= 15 and pc.count_item(90011) >= 10 and pc.get_gold() >= 25000000 then + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._80_say) + building.reconstruct(14132) + pc.setqf("build_level", guild.level(pc.get_guild())) + char_log(0, "GUILD_BUILDING", "alter_of_power 14132 constructed") + + pc.change_gold(-25000000) + pc.remove_item("90010", 10) + pc.remove_item("90011", 10) + pc.remove_item("90012", 15) + else + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._90_say) + end + elseif s == 2 then + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._100_say) + end + else + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._110_say) + end + end + + when 20078.click with npc.get_guild() == pc.get_guild() and pc.is_guild_master() begin + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._120_say) + + wait() + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._130_say) + + if pc.getqf("build_level") < guild.level(pc.get_guild()) or guild.level(pc.get_guild()) >= 20 then + say(gameforge.guild_building_alter_of_power._140_say) + say_reward(gameforge.guild_building_alter_of_power._150_sayReward) + + local s = select(gameforge.guild_building_alter_of_power._60_select, gameforge.guild_building_alter_of_power._70_select) + + if s == 1 then + if pc.count_item(90010) >= 15 and pc.count_item(90012) >= 20 and pc.count_item(90011) >= 15 and pc.get_gold() >= 30000000 then + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._160_say) + building.reconstruct(14133) + pc.setqf("build_level", guild.level(pc.get_guild())) + char_log(0, "GUILD_BUILDING", "alter_of_power 14133 constructed") + + pc.change_gold(-30000000) + pc.remove_item("90010", 15) + pc.remove_item("90011", 20) + pc.remove_item("90012", 20) + else + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._90_say) + end + elseif s == 2 then + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._100_say) + end + end + end + + when 20079.click with npc.get_guild() == pc.get_guild() and pc.is_guild_master() begin + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._170_say) + end + + when 20077.click or 20078.click or 20079.click with npc.get_guild() == pc.get_guild() and pc.is_guild_master()!= true begin + say_title(gameforge.guild_building_alter_of_power._10_sayTitle) + say(gameforge.guild_building_alter_of_power._180_say) + end + end +end + + + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_building_melt.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_building_melt.quest new file mode 100644 index 00000000..4aa82e7b --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_building_melt.quest @@ -0,0 +1,417 @@ +quest guild_building_melt begin + state start begin + function GetOreRefineCost(cost) + if pc.empire != npc.empire then + return 3 * cost + end + if pc.get_guild() == npc.get_guild() then + return cost * 0.8 + end + return cost + end + function GetMyRefineNum(race) + return race - 20060 + 50601 or + race - 20061 + 50602 or + race - 20062 + 50603 or + race - 20063 + 50604 or + race - 20064 + 50605 or + race - 20065 + 50606 or + race - 20066 + 50607 or + race - 20067 + 50608 or + race - 20068 + 50609 or + race - 20069 + 50610 or + race - 20070 + 50611 or + race - 20071 + 50612 or + race - 20072 + 50613 or + race - 25410 + 50614 or + race - 25411 + 50615 or + race - 25412 + 50616 or + race - 25413 + 50617 or + race - 25414 + 50618 + end + function GetOreRefineGoodPct() + return 75 + end + function GetOreRefineBadPct() + return 35 + end + --function GetOreRefineJuwelesPct() + -- return 65 + --end + function IsRefinableRawOre(vnum) + return vnum >= 50601 and vnum <= 50618 + end + -- all another Ores + function DoRefine(pct) + local from_postfix + local from_name = item_name(item.vnum) + local to_vnum = item.vnum + 20 + local to_name = item_name(to_vnum) + local to_postfix + local price = guild_building_melt.GetOreRefineCost(1000000) + if under_han(from_name) then + from_postfix = "" + else + from_postfix = "" + end + if under_han(to_name) then + to_postfix = "" + else + to_postfix = "" + end + say_title(""..mob_name(20001)..".:") + say("") + say("Ich bin ein Meister im veredeln von") + say("verschiedensten Erzen.") + say("Bringe mir 100 Stk. ".. from_name .." und ich") + say("versuche es in ".. to_name .." zu veredeln.") + say("Außerdem benötigen wir noch einen Geiststein") + say("von der Stufe +0, +1, +2 oder +3 zum veredeln.") + say("") + if item.count >= 100 then + say("Die Wahrscheinlichkeit beträgt "..pct.."%.") + say("Eine veredelung kostet "..price.." ¥ang") + say("") + say_reward("Wollen wir es versuchen?") + local s = select("Versuchen", "Nein,danke") + if s == 1 then + if pc.get_gold() < price then + say_title(""..mob_name(20001)..".:") + say("") + say("Du hast nicht genug ¥ang.") + say("komm wieder wenn du genug ¥ang") + say("bei dir hast.Schönen Tag noch!") + return + end + local selected_item_cell = select_item() + if selected_item_cell == 0 then + say_title(""..mob_name(20001)..".:") + say("") + say("Ohne Geiststein kann ich es nicht herstellen.") + say("Bringe bitte ein Geiststein mit.") + say("") + return + end + local old_item = item.get_id() + if not item.select_cell(selected_item_cell) then + say("³o*Óª««~¨Ã¤£¥¿½T.") + return + end + if item.vnum < 28030 or item.vnum >= 28443 then + say_title(""..mob_name(20001)..".:") + say("") + say("Was ist den das, dass ist doch garkein") + say("Geiststein auf +0, +1, +2 oder +3. Nein so") + say("kann ich nicht arbeiten,bitte gib mir") + say("einen richtigen Geiststein.") + return + end + local stone_item = item.vnum + item.select(old_item) + local chance = number(1, 100) + local chance_max = pct + if chance <= chance_max then + say_title(""..mob_name(20001)..".:") + say("") + say("Die Herstellung war erfolgreich. Du erhälst") + say_item(to_name, to_vnum, "") + say("Saubere Arbeit nicht? Komm gerne wieder.") + say("") + pc.give_item2(to_vnum,1) + pc.changemoney(-price) + pc.removeitem(""..from_name.."",100) + pc.removeitem(""..stone_item.."",1) + else + say_title(""..mob_name(20001)..".:") + say("") + say("Die Herstellung ist fehlgeschlagen.") + say("Tut mir Leid für dich da waren wohl") + say("zuviele Verunreinigungen im Erz.") + pc.changemoney(-price) + pc.removeitem(""..from_name.."",100) + pc.removeitem(""..stone_item.."",1) + end + end + else + say("") + say("Zur veredelung brauche ich mindestens") + say("100 Stk. " .. from_name .. " um es in") + say("" .. to_name .. " zuverdeln.Komm wieder") + say("wenn du soviele bei dir hast!") + say("") + end + end + --Only Diamond + function DoRefineDiamond(pct) + local from_postfix + local from_name = item_name(item.vnum) + local to_vnum = item.vnum + 20 + local to_name = item_name(to_vnum) + local to_postfix + local price = guild_building_melt.GetOreRefineCost(2000000) + if under_han(from_name) then + from_postfix = "" + else + from_postfix = "" + end + if under_han(to_name) then + to_postfix = "" + else + to_postfix = "" + end + say_title(""..mob_name(20001)..".:") + say("") + say("Ich bin ein Meister im veredeln von") + say("verschiedensten Erzen.") + say("Bringe mir 100 ".. from_name .." Stk. dieses") + say("Erzes und ich versuche in ".. to_name .." zu veredeln.") + if item.count >= 100 then + say("Die Wahrscheinlichkeit beträgt "..pct.."%.") + say("Eine veredelung kostet "..price.." ¥ang") + say("") + say_reward("Wollen wir es versuchen?") + local s = select("Versuchen", "Nein,danke") + if s == 1 then + if pc.get_gold() < price then + say_title(""..mob_name(20001)..".:") + say("") + say("Du hast nicht genug ¥ang.") + say("komm wieder wenn du genug ¥ang") + say("bei dir hast.Schönen Tag noch!") + return + end + local chance = number(1, 100) + local chance_max = pct + if chance <= chance_max then + say_title(""..mob_name(20001)..".:") + say("") + say("Die Herstellung war erfolgreich. Du erhälst") + say_item(to_name, to_vnum, "") + say("Saubere Arbeit nicht? Komm gerne wieder.") + say("") + pc.give_item2(to_vnum,1) + pc.changemoney(-price) + pc.removeitem(""..from_name.."",100) + else + say_title(""..mob_name(20001)..".:") + say("") + say("Die Herstellung ist fehlgeschlagen.") + say("Tut mir Leid für dich da waren wohl") + say("zuviele Verunreinigungen im Erz.") + pc.changemoney(-price) + pc.removeitem(""..from_name.."",100) + end + end + else + say("") + say("Zur veredelung brauche ich mindestens") + say("100 Stk. " .. from_name .. " um es in") + say("" .. to_name .. " zuverdeln.Komm wieder") + say("wenn du soviele bei dir hast!") + say("") + end + end + --New Mines + function DoRefineNew(pct) + local from_postfix + local from_name = item_name(item.vnum) + local to_vnum = item.vnum + 41621 + local to_name = item_name(to_vnum) + local to_postfix + local price = guild_building_melt.GetOreRefineCost(15000) + if under_han(from_name) then + from_postfix = "" + else + from_postfix = "" + end + if under_han(to_name) then + to_postfix = "" + else + to_postfix = "" + end + say_title(""..mob_name(20001)..".:") + say("") + say("Ich bin ein Meister im veredeln von") + say("verschiedensten Erzen.") + say("Bringe mir 100 Stk. ".. from_name .." und ich") + say("versuche es in ".. to_name .." zu veredeln.") + say("Außerdem benötigen wir noch einen Geiststein") + say("von der Stufe +0 , +1 oder +2 zum veredeln.") + say("") + if item.count >= 100 then + say("Die Wahrscheinlichkeit beträgt "..pct.."%.") + say("Eine veredelung kostet "..price.." ¥ang") + say("") + say_reward("Wollen wir es versuchen?") + local s = select("Versuchen", "Nein,danke") + if s == 1 then + if pc.get_gold() < price then + say_title(""..mob_name(20001)..".:") + say("") + say("Du hast nicht genug ¥ang.") + say("komm wieder wenn du genug ¥ang") + say("bei dir hast.Schönen Tag noch!") + return + end + local selected_item_cell = select_item() + if selected_item_cell == 0 then + say_title(""..mob_name(20001)..".:") + say("") + say("Ohne Geiststein kann ich es nicht herstellen.") + say("Bringe bitte ein Geiststein mit.") + say("") + return + end + local old_item = item.get_id() + if not item.select_cell(selected_item_cell) then + say("³o*Óª««~¨Ã¤£¥¿½T.") + return + end + if item.vnum < 28000 or item.vnum >= 28300 then + say_title(""..mob_name(20001)..".:") + say("") + say("Was ist den das,dass ist doch garkein") + say("Geiststein auf +0,+1 od. +2, nein so") + say("kann ich nicht arbeiten,bitte gib mir") + say("einen richtigen Geiststein.") + return + end + local stone_item = item.vnum + item.select(old_item) + local chance = number(1, 100) + local chance_max = pct + if chance <= chance_max then + say_title(""..mob_name(20001)..".:") + say("") + say("Die Herstellung war erfolgreich. Du erhälst") + say_item(to_name, to_vnum, "") + say("Saubere Arbeit nicht?Komm gerne wieder.") + say("") + pc.give_item2(to_vnum,1) + pc.changemoney(-price) + pc.removeitem(""..from_name.."",100) + pc.removeitem(""..stone_item.."",1) + else + say_title(""..mob_name(20001)..".:") + say("") + say("Die Herstellung ist fehlgeschlagen.") + say("Tut mir Leid für dich da waren wohl") + say("zuviele Verunreinigungen im Erz.") + pc.changemoney(-price) + pc.removeitem(""..from_name.."",100) + pc.removeitem(""..stone_item.."",1) + end + end + else + say("") + say("Zur veredelung brauche ich mindestens") + say("100 Stk. " .. from_name .. " um es in") + say("" .. to_name .. " zuverdeln.Komm wieder") + say("wenn du soviele bei dir hast!") + say("") + end + end + when 20060.take or 20061.take or 20062.take or 20063.take or 20064.take or 20065.take or 20066.take or + 20067.take or 20068.take or 20069.take or 20070.take or 20071.take or 20072.take or 25410.take or 25411.take or 25412.take or 25413.take or 25414.take with guild_building_melt.GetMyRefineNum(npc.race) == item.vnum begin + if item.vnum == 50601 then + guild_building_melt.DoRefineDiamond(guild_building_melt.GetOreRefineGoodPct()) + else + guild_building_melt.DoRefine(guild_building_melt.GetOreRefineGoodPct()) + end + end + --BAD + when 20060.take or 20061.take or 20062.take or 20063.take or 20064.take or 20065.take or 20066.take or + 20067.take or 20068.take or 20069.take or 20070.take or 20071.take or + 20072.take or 25410.take or 25411.take or 25412.take or 25413.take or 25414.take with guild_building_melt.IsRefinableRawOre(item.vnum) and guild_building_melt.GetMyRefineNum(npc.race) != item.vnum begin + if item.vnum == 50601 then + guild_building_melt.DoRefineDiamond(guild_building_melt.GetOreRefineBadPct()) + else + guild_building_melt.DoRefine(guild_building_melt.GetOreRefineBadPct()) + end + end + --New Mines Take + when 9017.take with item.vnum == 9013 or item.vnum == 9014 or item.vnum == 9015 or item.vnum == 9016 begin + if game.get_event_flag("nacht") < 1 then + guild_building_melt.DoRefineNew(guild_building_melt.GetOreRefineGoodPct()) + else + guild_building_melt.DoRefineNew(guild_building_melt.GetOreRefineBadPct()) + end + end + --Making Juweles + --when 9017.take with item.vnum == 50634 or item.vnum == 50635 or item.vnum ==50636 or item.vnum ==50637 or item.vnum ==50638 or item.vnum ==50639 begin + -- guild_building_melt.DoRefineNewtojuwels(guild_building_melt.GetOreRefineJuwelesPct()) + --end + --Change Spezial + when 20060.click or 20061.click or 20062.click or 20063.click or 20064.click or + 20065.click or 20066.click or 20067.click or 20068.click or 20069.click or + 20070.click or 20071.click or 20072.click or 25410.click or 25411.click or 25412.click or 25413.click or 25414.click with npc.get_guild() == pc.get_guild() and pc.isguildmaster() begin + say_title(""..mob_name(20001)..".:") + say("") + say("Für 3.000.000 Yang können Sie mich zu einer") + say("Fortbildung schicken,damit kann ich mich auf") + say("die Veredelung eines anderen Erzes") + say("spezialisieren.") + say("") + wait() + if get_time()<=pc.getqf("1day_time") then + local wait_time = math.floor(((pc.getqf("1day_time") - get_time()) / 60 / 60)+0.5) + say_title(""..mob_name(20001)..".:") + say("") + say("Du kannst mich jetzt nich Fortbilden.") + say("Du kannst mich nur alle 24h zu einer Fortbildung") + say("schicken.") + say("") + say_green("Du musst noch "..wait_time.." Stunde(n) warten!") + return + end + if pc.get_gold() < 3000000 then + say_title(""..mob_name(20001)..".:") + say("") + say_reward("Du brauchst 3.000.000 Yang damit ich") + say_reward("auf die Fortbildung kann.") + else + say_yellow("Welche Spezialisierung wollen sie?") + local sel = 0 + local timetable_01 = {'Diamanten', 'Fossilholz', 'Kupfer', 'Silber', 'Gold', 'Jade', 'Weiter'} + local valuetable_01 = {14111, 14112, 14113, 14114, 14115, 14116, 1, 3} + local timetable_02 = {'Ebenholz', 'Perle', 'Weissgold', 'Kristall', 'Amethyst', 'Himmelsträne', 'Zurück', 'Weiter'} + local valuetable_02 = {140117, 14118, 14119, 14120, 14121, 14122, 0, 2, 3} + local timetable_03 = {'Seelenkristall', 'Zurück', 'Keine Änderung'} + local valuetable_03 = {14123, 1, 3} + + repeat + if sel == 0 then + local s = select_table(timetable_01) + sel = valuetable_01[s] + elseif sel == 1 then + local s = select_table(timetable_02) + sel = valuetable_02[s] + elseif sel == 2 then + local s = select_table(timetable_03) + sel = valuetable_03[s] + end + until sel > 2 + + if sel != 3 then + npc_num = sel + 20060 - 14111 + if npc_num == npc.get_race() then + say_title(""..mob_name(20001)..".:") + say("") + say("Das bin ich doch bereits.") + else + pc.changegold(-3000000) + building.reconstruct(sel) + pc.setqf("1day_time", get_time()+24*60*60) + end + else + say_title(""..mob_name(20001)..".:") + say("") + say("Okay dann mache ich meinen Job so weiter,") + say("Bedenken Sie aber das die Seminarkosten") + say("in naher Zukunft auch steigen könnten.") + say("") + end + end + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_building_npc.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_building_npc.quest new file mode 100644 index 00000000..3ab987d0 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_building_npc.quest @@ -0,0 +1,33 @@ +quest guild_building_npc begin + state start begin + when 20044.click begin + if npc.get_guild() == pc.get_guild() then + say_title(gameforge.guild_building_npc._10_sayTitle) + say(gameforge.guild_building_npc._20_say) + else + say_title(gameforge.guild_building_npc._10_sayTitle) + say(gameforge.guild_building_npc._30_say) + end + end + when 20045.click begin + if npc.get_guild() == pc.get_guild() then + say_title(gameforge.guild_building_npc._40_sayTitle) + say(gameforge.guild_building_npc._50_say) + else + say_title(gameforge.guild_building_npc._40_sayTitle) + say(gameforge.guild_building_npc._60_say) + end + end + when 20046.click begin + if npc.get_guild() == pc.get_guild() then + say_title(gameforge.guild_building_npc._70_sayTitle) + say(gameforge.guild_building_npc._80_say) + else + say_title(gameforge.guild_building_npc._70_sayTitle) + say(gameforge.guild_building_npc._90_say) + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_create.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_create.quest new file mode 100644 index 00000000..3a8b1ff1 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_create.quest @@ -0,0 +1,32 @@ +quest guild_create begin + state start begin + end + state run begin + when letter begin + send_letter(gameforge.guild_create._10_sendLetter) + end + when button or info begin + say_title(gameforge.guild_create._10_sendLetter) + say_reward(gameforge.guild_create._20_sayReward) + say_item_vnum(70101) + say_reward(gameforge.guild_create._30_sayReward) + end + when 691.party_kill begin + set_state(reward) + end + end + state reward begin + when letter begin + send_letter(gameforge.guild_create._40_sendLetter) + end + when button or info begin + say_title(gameforge.guild_create._50_sayTitle) + say_reward(gameforge.guild_create._60_sayReward) + say_item_vnum(70101) + say_reward(gameforge.guild_create._70_sayReward) + set_state(start) + pc.give_item2(70101) + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_manage.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_manage.quest new file mode 100644 index 00000000..c5cdeec6 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_manage.quest @@ -0,0 +1,145 @@ +quest guild_building begin + state start begin + when 11000.chat.gameforge.guild_manage._10_npcChat or 11002.chat.gameforge.guild_manage._10_npcChat or 11004.chat.gameforge.guild_manage._10_npcChat with pc.is_gm() begin + + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._20_say) + local u_name = input() + local u_vid=find_pc_by_name(u_name) + + if u_vid==0 then + say_title(gameforge.guild_manage._30_sayTitle) + say(u_name) + return + end + + local old_vid = pc. select(u_vid , u_vid ) + u_withdrawTime=pc.getqf("new_withdraw_time") + u_withdrawTime=pc.getqf("new_withdraw_time") + pc. select(old_vid , old_vid ) + + withdrawDelay=game.get_event_flag("guild_withdraw_delay") + disbandDelay=game.get_event_flag("guild_disband_delay") + + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._40_say) + + if u_withdrawTime>0 then + say(string.format(gameforge.guild_manage._50_say, time_to_str(u_withdrawTime)..gameforge.guild_manage._55_say.. withdrawDelay)) + end + + if u_disbandTime>0 then + say(string.format(gameforge.guild_manage._60_say, time_to_str(u_disbandTime)..gameforge.guild_manage._65_say.. disbandDelay)) + end + + local retryTime1 = u_withdrawTime + withdrawDelay*86400 + local retryTime2 = u_withdrawTime + disbandDelay*86400 + + local retryTime = 0 + if retryTime1 > retryTime2 then + retryTime = retryTime1 + else + retryTime = retryTime2 + end + + local curTime = get_time() + if curTime < retryTime then + say(string.format(gameforge.guild_manage._70_say, time_to_str(retryTime)..gameforge.guild_manage._75_say..((retryTime-curTime)/3600))) + + if is_test_server() then + local s= select(gameforge.guild_manage._80_select, gameforge.arena_manager._200_tableInsert) + if s==1 then + local old_vid = pc. select(u_vid , u_vid ) + local curTime=get_time() + pc.setqf("new_withdraw_time", curTime-withdrawDelay*86400) + pc.setqf("new_withdraw_time", curTime-disbandDelay*86400) + pc. select(old_vid , old_vid ) + end + end + else + say(gameforge.guild_manage._90_say) + end + end + when 11000.chat.gameforge.guild_manage._100_npcChat or 11002.chat.gameforge.guild_manage._100_npcChat or 11004.chat.gameforge.guild_manage._100_npcChat with pc.is_gm() begin + + test_chat(string.format(gameforge.guild_manage._110_chat, bool_to_str(pc.has_guild()).." [ENTER]pc.is_guildmaster: "..bool_to_str(pc.isguildmaster()).." [ENTER]pc.empire: "..pc.empire.." [ENTER]npc.empire: "..npc.empire)) + end + when 11000.chat.gameforge.locale.guild.withdraw or 11002.chat.gameforge.locale.guild.withdraw or 11004.chat.gameforge.locale.guild.withdraw or 60003.chat.gameforge.locale.guild.withdraw with pc.hasguild() and not pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin + + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._120_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if s==1 then + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._130_say) + pc.remove_from_guild() + pc.setqf("new_withdraw_time",get_global_time()) + end + end + + when 11000.chat.gameforge.locale.guild.disband or + 11002.chat.gameforge.locale.guild.disband or + 11004.chat.gameforge.locale.guild.disband or + 60003.chat.gameforge.locale.guild.disband with pc.hasguild() and pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._140_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if s==1 then + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._150_say) + pc.destroy_guild() + pc.setqf("new_disband_time", get_global_time()) + pc.setqf("new_withdraw_time", get_global_time()) + end + end + + when 11000.chat.gameforge.guild_manage._160_npcChat or 11002.chat.gameforge.guild_manage._170_npcChat or 11004.chat.gameforge.guild_manage._170_npcChat begin + local level_limit; + local guild_create_item + + level_limit = 40 + guild_create_item = false + if pc.hasguild() then + return + end + if game.get_event_flag("guild_withdraw_delay")*86400 > get_global_time() - pc.getqf("new_withdraw_time") then + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._180_say) + -- say(string.format(gameforge.guild_manage._190_say, game.get_event_flag("guild_withdraw_delay"))) + return + end + + if game.get_event_flag("guild_disband_delay")*86400 > get_global_time() - pc.getqf("new_withdraw_time") then + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._200_say) + -- say(string.format(gameforge.guild_manage._190_say, game.get_event_flag("guild_disband_delay"))) + return + end + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._210_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if s == 2 then + return + end + + if pc.level >= 40 then + if pc.gold >= 200000 then + + if not guild_create_item or pc.countitem(guild_create_item)>0 then + game.request_make_guild() + end + + else + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._220_say) + return + end + else + say_title(gameforge.find_squareguard._10_targetVid) + say(gameforge.guild_manage._230_say) + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_ranking.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_ranking.quest new file mode 100644 index 00000000..283900fc --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_ranking.quest @@ -0,0 +1,19 @@ +quest guild_ranking begin + state start begin + when guild_man1.chat.gameforge.locale.show_guild_ranking_around or guild_man2.chat.gameforge.locale.show_guild_ranking_around or guild_man3.chat.gameforge.locale.show_guild_ranking_around or 60003.chat.gameforge.locale.show_guild_ranking_around with pc.hasguild() begin + say_title(gameforge.find_squareguard._30_sayTitle) + say(string.format(gameforge.guild_ranking._10_say, guild.around_ranking_string())) + end + when guild_man1.chat.gameforge.locale.show_guild_ranking_top or guild_man2.chat.gameforge.locale.show_guild_ranking_top or guild_man3.chat.gameforge.locale.show_guild_ranking_top or 60003.chat.gameforge.locale.show_guild_ranking_top with pc.hasguild() begin + say_title(gameforge.find_squareguard._30_sayTitle) + say(string.format(gameforge.guild_ranking._20_say, guild.high_ranking_string())) + end + when guild_man1.chat.gameforge.locale.show_guild_cur_score or guild_man2.chat.gameforge.locale.show_guild_cur_score or guild_man3.chat.gameforge.locale.show_guild_cur_score or 60003.chat.gameforge.locale.show_guild_cur_score with pc.hasguild() begin + say_title(gameforge.find_squareguard._30_sayTitle) + say(string.format(gameforge.guild_ranking._30_say, guild.get_rank())) + say(string.format(gameforge.guild_ranking._35_say, guild.get_ladder_point())) + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_war_bet.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_war_bet.quest new file mode 100644 index 00000000..d47213e0 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_war_bet.quest @@ -0,0 +1,77 @@ +quest guild_war_bet begin + state start begin + when guild_war_observer1.chat.gameforge.guild_war_bet._10_npcChat or guild_war_observer2.chat.gameforge.guild_war_bet._10_npcChat or guild_war_observer3.chat.gameforge.guild_war_bet._10_npcChat begin + local info_counter = pc.getqf("info") + + if info_counter < 3 then + say_title(gameforge.guild_war_bet._20_sayTitle) + say(gameforge.guild_war_bet._30_say) + wait() + end + + local g = guild.get_reserve_war_table() + local gname_table = {} + + table.foreachi(g, + function(n, p) + gname_table[n] = guild.get_name(p[2])..gameforge.guild_war_bet._35_table..guild.get_name(p[3]) + end) + + if table.getn(g) == 0 then + say_title(gameforge.guild_war_bet._40_sayTitle) + say(gameforge.guild_war_bet._50_say) + else + gname_table[table.getn(g)+1] = gameforge.locale.cancel + say_title(gameforge.guild_war_bet._40_sayTitle) + say(gameforge.guild_war_bet._60_say) + + local s = select_table(gname_table) + + if s != table.getn(gname_table) then + if guild.is_bet(g[s][1]) then + say_title(gameforge.guild_war_bet._40_sayTitle) + say(gameforge.guild_war_bet._70_say) + else + local name1 = guild.get_name(g[s][2]) + local name2 = guild.get_name(g[s][3]) + + say_title(gameforge.guild_war_bet._40_sayTitle) + say(string.format(gameforge.guild_war_bet._80_say, name1.." "..name2..gameforge.guild_war_bet._45_say..g[s][4])) + local guild_s = select(name1, name1) + + if guild_s != 3 then + local bet_guild = g[s][guild_s+1] + + say_title(gameforge.guild_war_bet._90_sayTitle) + say(gameforge.locale.guild.war_bet_price) + + local price_button_table = {} + + table.foreachi(guild_war_bet_price_table, + function(n, p) + price_button_table[n] = p..gameforge.locale.gold + end) + + price_button_table[table.getn(price_button_table)+1] = gameforge.locale.cancel + + local price_idx = select_table(price_button_table) + + if price_idx != table.getn(price_button_table) then -- ? ??? ?? ??? ??? + if pc.gold < guild_war_bet_price_table[price_idx] then + say_title(gameforge.guild_war_bet._40_sayTitle) + say(gameforge.guild_war_bet._100_say) + else + say_title(gameforge.guild_war_bet._40_sayTitle) + pc.changegold(-guild_war_bet_price_table[price_idx]) + guild.war_bet(g[s][1], bet_guild, guild_war_bet_price_table[price_idx]) + say(gameforge.guild_war_bet._110_say) + end + end + end -- if guild_s != 3 + end -- if guild.is_bet(g[s][1]) + end -- if s != table.getn(gname_table) + end + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_war_join.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_war_join.quest new file mode 100644 index 00000000..6b6dd2d0 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_war_join.quest @@ -0,0 +1,33 @@ +quest guild_war_join begin + state start begin + when letter with ( pc.get_map_index() != 71 and pc.get_map_index() != 104 and pc.get_map_index() != 72 and pc.get_map_index() != 73 and pc.get_map_index() != 208) and pc.get_map_index() <= 200 begin + local e = guild.get_any_war() + + if e != 0 and pc.get_war_map() == 0 then + setskin(NOWINDOW) + makequestbutton(gameforge.locale.guild.war_join_request) + end + end + + when button with ( pc.get_map_index() != 71 and pc.get_map_index() != 104 and pc.get_map_index() != 72 and pc.get_map_index() != 73 and pc.get_map_index() != 208) and pc.get_map_index() <= 200 begin + local e = guild.get_any_war() + + if e == 0 then + say(gameforge.locale.guild.war_over) + else + say(string.format(gameforge.guild_war_join._10_say, guild.name(e))) + + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + + if s == 1 then + guild.war_enter(e) + else + setskin(NOWINDOW) + makequestbutton(gameforge.locale.guild.war_join_request) + end + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_guild/guild_war_observer.quest b/main/srv1/share/locale/germany/quest/quest_guild/guild_war_observer.quest new file mode 100644 index 00000000..37fb16e8 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_guild/guild_war_observer.quest @@ -0,0 +1,70 @@ +quest guild_war_observer begin + state start begin + when guild_war_observer1.chat.locale.guild.war_list_button begin + local g = guild.get_warp_war_list() -- return format {{1,2}, {3,4}} + local gname_table = {} + + table.foreachi(g, + function(n, p) + gname_table[n] = guild.get_name(p[1]).." vs "..guild.get_name(p[2]) + end) + + if table.getn(g) == 0 then + say(locale.guild.war_list_none) + else + gname_table[table.getn(g)+1] = locale.confirm + say(locale.guild.war_list_choose) + + local s = select_table(gname_table) + + if s != table.getn(gname_table) then + pc.warp_to_guild_war_observer_position(g[s][1], g[s][2]) + end + end + end + when guild_war_observer2.chat.locale.guild.war_list_button begin + local g = guild.get_warp_war_list() -- return format {{1,2}, {3,4}} + local gname_table = {} + + table.foreachi(g, + function(n, p) + gname_table[n] = guild.get_name(p[1]).." vs "..guild.get_name(p[2]) + end) + + if table.getn(g) == 0 then + say(locale.guild.war_list_none) + else + gname_table[table.getn(g)+1] = locale.confirm + say(locale.guild.war_list_choose) + + local s = select_table(gname_table) + + if s != table.getn(gname_table) then + pc.warp_to_guild_war_observer_position(g[s][1], g[s][2]) + end + end + end + when guild_war_observer3.chat.locale.guild.war_list_button begin + local g = guild.get_warp_war_list() -- return format {{1,2}, {3,4}} + local gname_table = {} + + table.foreachi(g, + function(n, p) + gname_table[n] = guild.get_name(p[1]).." vs "..guild.get_name(p[2]) + end) + + if table.getn(g) == 0 then + say(locale.guild.war_list_none) + else + gname_table[table.getn(g)+1] = locale.confirm + say(locale.guild.war_list_choose) + + local s = select_table(gname_table) + + if s != table.getn(gname_table) then + pc.warp_to_guild_war_observer_position(g[s][1], g[s][2]) + end + end + end + end +end diff --git a/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_01.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_01.lua new file mode 100644 index 00000000..5de4e983 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_01.lua @@ -0,0 +1,223 @@ +quest horse_examination_01 begin + state start begin + when login or levelup with pc.get_level() >= 2 begin + send_letter("Das Pferd") + end + + when button or info begin + say_title("Das Pferd") + say("") + say("Du kannst deine Prüfung für dein") + say("Pferd absolvieren!") + say("Bringe dazu eine Pferdemedaillen mit!") + say("") + clear_letter() + set_state(horse_mission1_begin) + end + end + + state horse_mission1_begin begin + when 20349.chat."Das Pferd" begin + say("Stallbursche:") + say("") + say("Hallo "..pc.get_name().."") + say("Du willst also das Pferd?") + say("Dann musst du erstmal beweisen") + say("das du würdig bist das Kampf-Pferd zu führen") + say("Töte bitte 30 Weißer-Eid Bogenschützen innerhalb 10 Minuten!") + say("Dann werde ich dir das Pferd geben.") + say("Du kannst dir auch eine Gruppe leiten und") + say("mit ihr dann die Mission erfüllen!") + say("") + say("Möchtest du die Prüfung jetzt beginnen?") + local v = select ("Ja, ich möchte!", "Nein, Später.") + if v == 1 then + if pc.count_item(50050) >= 1 then + say("Stallbursche:") + say("") + say("Ok, ziehe jetzt los. Die 10 Minuten laufen ab jetzt!") + say("Viel Glück.") + pc.remove_item(50050, 1) + pc.setqf("limit_time2", get_time()+10*60) + pc.setqf("bogie_mobs2", 30) + q.set_clock("Zeit", pc.getqf("limit_time2")-get_time()) + set_state(kill_bogie_mobs2) + else + say("Stallbursche:") + say("") + say("Du hast keine Pferdemedaille dabei!") + say("Komme wieder wenn du eine bei dir") + say("trägst.") + return + end + elseif v == 2 then + return + end + end + end + + state kill_bogie_mobs2 begin + when letter begin + send_letter("Die Pferdeprüfung") + q.set_counter("W.Eid-Bogensch.:", pc.getqf("bogie_mobs2")) + q.set_clock("Zeit", pc.getqf("limit_time2")-get_time()) + end + + when info or button begin + say_title("Die Pferdeprüfung") + say("") + say("Um die Pferdeprüfung abzuschließen musst du") + say("innerhalb 10 Minuten 30 Wilde Bogenschützen") + say("töten. Sie sind in Map2 zu finden!") + say("") + say_reward("Du musst noch "..pc.getqf("bogie_mobs2").."") + say_reward("von 30 Wilde Bogenschützen töten!") + end + + when 302.party_kill begin + pc.setqf("bogie_mobs2", pc.getqf("bogie_mobs2")-1) + local kill_count = pc.getqf("bogie_mobs2") + q.set_counter("W.Eid Bogensch.:", kill_count) + if kill_count == 0 then + clear_letter() + pc.setqf("bogie_mobs2", 0) + set_state(finish_kills2) + end + if get_time()>=pc.getqf("limit_time2") then + clear_letter() + pc.setqf("bogie_mobs2", 0) + set_state(failure_quest2) + end + end + end + + state finish_kills2 begin + when letter begin + cleartimer("limit_time2") + clear_letter() + send_letter("Prüfung Erfolgreich!") + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 30 Bogenschützen innerhalb 20 Minuten") + say("getötet.") + say("") + say_reward("Auf zum Stallburschen") + say("") + end + + when __TARGET__.target.click or 20349.chat."Das Kampfpferd" begin + target.delete(__TARGET__) + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Kampf-Pferd beherrschen kannst.") + say("Nun brauchst du noch das Waffen-Pferdebuch") + say("") + say("Für die herstellung benötige ich 250.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=250000 then + if not selectHorseAppearence(50051) then return end + + say_title("Stallbursche:") + say("") + say("Du erhälst das Pferdebild!") + say_item_vnum(50051) + say("") + wait() + + horse.set_level(1) + pc.changemoney(-250000) + set_quest_state("horse_mission3", "run") + set_state(__complete) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Waffen-Pferdebuch kaufen!") + say("") + end + elseif v == 2 then + clear_letter() + set_quest_state("horse_mission2", "run") + set_state(buy_horse_book) + end + end + end + + state buy_horse_book begin + when 20349.chat."Waffen-Pferdebuch" begin + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Kampf-Pferd beherrschen kannst.") + say("Nun brauchst du noch das Waffen-Pferdebuch") + say("") + say("Für die herstellung benötige ich 250.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=250000 then + if not selectHorseAppearence(50051) then return end + + say_title("Stallbursche:") + say("") + say("Du erhälst das Pferdebild!") + say_item_vnum(50051) + say("") + wait() + + horse.set_level(1) + pc.changemoney(-250000) + + set_quest_state("horse_mission2", "run") + set_state(__complete) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Waffen-Pferdebuch kaufen!") + say("") + end + elseif v == 2 then + return + end + end + end + + state failure_quest2 begin + when letter begin + send_letter("Die Pferdeprüfung") + pc.setqf("bogie_mobs2", 0) + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 30 Bogenschützen innerhalb von 20") + say("Minuten nicht töten können. Geh zum") + say("Stallburschen und versuche es erneut!") + say("") + clear_letter() + set_state(start) + end + end + + state __complete begin + when enter begin + q.done() + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_25.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_25.lua new file mode 100644 index 00000000..dc309f4b --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_25.lua @@ -0,0 +1,241 @@ +quest horse_mission2 begin + state start begin + end + + state run begin + when login or levelup with pc.get_level() >= 25 begin + send_letter("Das Kampf-Pferd") + end + + when button or info begin + say_title("Das Kampf-Pferd") + say("") + say("Du bist Level 25 und kannst") + say("nun deine Prüfung für dein Kampf") + say("Pferd absolvieren!") + say("Bringe dazu eine Pferdemedaillen mit!") + say("") + clear_letter() + set_state(horse_mission2_begin) + end + end + + state horse_mission2_begin begin + when 20349.chat."Das Kampf-Pferd" begin + say("Stallbursche:") + say("") + say("Hallo "..pc.get_name().."") + say("Du willst also das Kampf-Pferd?") + say("Dann musst du erstmal beweisen") + say("das du würdig bist das Kampf-Pferd zu führen") + say("Töte bitte 100 Skorpionbogenschützen oder") + say("Schlangenbogenschützen innerhalb 30 Minuten!") + say("Dann werde ich dir das Kampfpferd geben.") + say("Du kannst dir auch eine Gruppe leiten und") + say("mit ihr dann die Mission erfüllen!") + say("") + say("Möchtest du die Prüfung jetzt beginnen?") + local v = select ("Ja, ich möchte!", "Nein, Später.") + if v == 1 then + if horse.get_level() == 10 then + if pc.count_item(50050) >= 1 then + say("Stallbursche:") + say("") + say("Ok, ziehe jetzt los. Die 30 Minuten laufen ab jetzt!") + say("Viel Glück.") + pc.remove_item(50050, 1) + pc.setqf("limit_time2", get_time()+30*60) + pc.setqf("bogie_mobs2", 100) + q.set_clock("Zeit", pc.getqf("limit_time2")-get_time()) + set_state(kill_bogie_mobs2) + else + say("Stallbursche:") + say("") + say("Du hast keine Pferdemedaille dabei!") + say("Komme wieder wenn du eine bei dir") + say("trägst.") + return + end + else + say("Stallbursche:") + say("") + say("Dein Pferdelevel ist nicht hoch genug!") + say("Komme wieder wenn dein Pferd level 10") + say("erreicht hat.") + return + end + elseif v == 2 then + return + end + end + end + + state kill_bogie_mobs2 begin + when letter begin + send_letter("Die Pferdeprüfung") + q.set_counter("Bogenschützen.:", pc.getqf("bogie_mobs2")) + q.set_clock("Zeit", pc.getqf("limit_time2")-get_time()) + end + + when info or button begin + say_title("Die Pferdeprüfung") + say("") + say("Um die Pferdeprüfung abzuschließen musst du") + say("100 Skorpionbogenschützen oder") + say("Schlangenbogenschützen innerhalb 30 Minuten") + say("töten. Sie sind in der Yongbi-Wüste zu finden!") + say("") + say_reward("Du musst noch "..pc.getqf("bogie_mobs2").."") + say_reward("von 100 Bogenschützen töten!") + end + + when 2105.party_kill or 2107.party_kill begin + pc.setqf("bogie_mobs2", pc.getqf("bogie_mobs2")-1) + local kill_count = pc.getqf("bogie_mobs2") + q.set_counter("Bogenschützen.:", kill_count) + if kill_count == 0 then + clear_letter() + pc.setqf("bogie_mobs2", 0) + set_state(finish_kills2) + end + if get_time()>=pc.getqf("limit_time2") then + clear_letter() + pc.setqf("bogie_mobs2", 0) + set_state(failure_quest2) + end + end + end + + state finish_kills2 begin + when letter begin + cleartimer("limit_time2") + clear_letter() + send_letter("Prüfung Erfolgreich!") + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast 100 Bogenschützen innerhalb 30 Minuten") + say("erledigt. Gehe zum Stallburschen und berichte ihm") + say("davon.") + say("") + say_reward("Auf zum Stallburschen") + say("") + end + + when __TARGET__.target.click or 20349.chat."Das Kampfpferd" begin + target.delete(__TARGET__) + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Kampf-Pferd beherrschen kannst.") + say("Nun brauchst du noch das Waffen-Pferdebuch") + say("") + say("Für die herstellung benötige ich 500.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=500000 then + if not selectHorseAppearence(50052) then return end + + say_title("Stallbursche:") + say("") + say("Du erhälst das Waffen-Pferdebuch!") + say_item_vnum(50052) + say("") + wait() + + horse.set_level("11") + pc.changemoney(-500000) + + pc.remove_item(50051, 1) + set_quest_state("horse_mission3", "run") + set_state(__complete) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Waffen-Pferdebuch kaufen!") + say("") + end + elseif v == 2 then + clear_letter() + set_quest_state("horse_mission3", "run") + set_state(buy_horse_book) + end + end + end + + state buy_horse_book begin + when 20349.chat."Waffen-Pferdebuch" begin + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Kampf-Pferd beherrschen kannst.") + say("Nun brauchst du noch das Waffen-Pferdebuch") + say("") + say("Für die herstellung benötige ich 500.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=500000 then + if not selectHorseAppearence(50052) then return end + + say_title("Stallbursche:") + say("") + say("Du erhälst das Waffen-Pferdebuch!") + say_item_vnum(50052) + say("") + wait() + + horse.set_level("11") + pc.changemoney(-500000) + pc.remove_item(50051, 1) + set_quest_state("horse_mission3", "run") + set_state(__complete) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Waffen-Pferdebuch kaufen!") + say("") + end + elseif v == 2 then + return + end + end + end + + state failure_quest2 begin + when letter begin + send_letter("Die Pferdeprüfung") + pc.setqf("bogie_mobs2", 0) + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 100 Bogenschützen innerhalb von 30") + say("Minuten nicht töten können. Geh zum") + say("Stallburschen und versuche es erneut!") + say("") + clear_letter() + set_state(start) + end + end + + state __complete begin + when enter begin + q.done() + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_50.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_50.lua new file mode 100644 index 00000000..3f5444aa --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_50.lua @@ -0,0 +1,256 @@ +quest horse_mission3 begin + state start begin + end + + state run begin + when login or levelup with pc.get_level() >= 50 and horse.get_level() == 20 begin + send_letter("Das Millitär-Pferd") + end + + when button or info begin + say_title("Das Millitär-Pferd") + say("") + say("Du bist Level 50 und kannst") + say("nun deine Prüfung für dein Militär") + say("Pferd absolvieren!") + say("Bringe dazu eine Pferdemedaillen mit!") + say("") + clear_letter() + set_state(horse_mission3_begin) + end + end + + state horse_mission3_begin begin + when 20349.chat."Das Millitär-Pferd" begin + say("Stallbursche:") + say("") + say("Hallo "..pc.get_name().."") + say("Du willst also das Militär-Pferd?") + say("Dann musst du erstmal beweisen") + say("das du würdig bist das Militär-Pferd zu führen") + say("Diese Prüfung ist die letzte und härteste!") + say("Ohne Gruppe wirst du sie vermutlich nicht") + say("schaffen.") + wait() + say("Stallbursche:") + say("") + say("Ich bitte dich nun zur letzten Prüfung") + say("300 Dämonen innerhalb 30 Minuten") + say("zu töten. Dann werde ich dir das Militärpferd geben.") + say("") + say("Möchtest du die Prüfung jetzt beginnen?") + local v = select ("Ja, ich möchte!", "Nein, Später.") + if v == 1 then + if horse.get_level() == 20 then + if pc.count_item(50050) >= 1 then + say("Stallbursche:") + say("") + say("Ok, ziehe jetzt los. Die 30 Minuten laufen ab jetzt!") + say("Viel Glück.") + pc.remove_item(50050, 1) + pc.setqf("limit_time3", get_time()+30*60) + pc.setqf("horse_ex_3", 300) + set_state(kill_bogie_mobs3) + else + say("Stallbursche:") + say("") + say("Du hast keine Pferdemedaillen dabei!") + say("Komme wieder wenn du eine bei dir") + say("trägst.") + return + end + else + say("Stallbursche:") + say("") + say("Dein Pferdelevel ist nicht hoch genug!") + say("Komme wieder wenn dein Pferd level 20") + say("erreicht hat.") + return + end + elseif v == 2 then + return + end + end + end + + state kill_bogie_mobs3 begin + when letter begin + send_letter("Die Pferdeprüfung") + end + + when login or levelup with get_time()>=pc.getqf("limit_time3") begin + clear_letter() + pc.setqf("horse_ex_3", 0) + set_state(failure_quest3) + end + + when login begin + q.set_counter("Noch verbl.", pc.getqf("horse_ex_3")) + q.set_clock("Zeit", pc.getqf("limit_time3")-get_time()) + end + + when leave begin + q.done() + end + + when info or button begin + say_title("Die Pferdeprüfung") + say("") + say("Um die Pferdeprüfung abzuschließen musst du") + say("innerhalb 30 Minuten 300 Dämonenbogenschützen") + say("töten. Sie sind im Dämonenturm ab der ersten Ebenen") + say("zu finden!") + say("") + say_reward("Du musst noch "..pc.getqf("horse_ex_3").."") + say_reward("von 300 Dämonenbogenschützen töten!") + end + + when 1002.party_kill begin + pc.setqf("horse_ex_3", pc.getqf("horse_ex_3")-1) + local kill_count = pc.getqf("horse_ex_3") + q.set_counter("Noch verbl.", kill_count) + if kill_count == 0 then + clear_letter() + pc.setqf("horse_ex_3", 0) + set_state(finish_kills3) + end + if get_time()>=pc.getqf("limit_time3") then + clear_letter() + pc.setqf("horse_ex_3", 0) + set_state(failure_quest3) + end + end + end + + state finish_kills3 begin + when letter begin + cleartimer("limit_time3") + send_letter("Prüfung Erfolgreich!") + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 300 Dämonenbogenschützen") + say("innerhalb 30 Minuten getötet.") + say("") + say_reward("Auf zum Stallburschen") + say("") + end + + when __TARGET__.target.click or 20349.chat."Das Millitär-Pferd" begin + target.delete(__TARGET__) + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Militär-Pferd beherrschen kannst.") + say("Nun brauchst du noch das Millitär-Pferdebuch.") + say("") + say("Für die herstellung benötige ich 1.000.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=1000000 then + if not selectHorseAppearence(50052) then return end + + say_title("Stallbursche:") + say("") + say("Du erhälst das Waffen-Pferdebuch!") + say_item_vnum(50053) + say("") + wait() + + horse.set_level("21") + pc.changemoney(-1000000) + pc.remove_item(50052, 1) + set_state(__COMPLETE__) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Millitär-Pferdebuch kaufen!") + say("") + end + elseif v == 2 then + clear_letter() + set_state(buy_horse_book) + end + end + end + + state buy_horse_book begin + when 20349.chat."Millitär-Pferdebuch" begin + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Millitär-Pferd beherrschen kannst.") + say("Nun brauchst du noch das Millitär-Pferdebuch") + say("") + say("Für die herstellung benötige ich 1.000.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=1000000 then + if not selectHorseAppearence(50053) then return end + + say_title("Stallbursche:") + say("") + say("Du erhälst das Millitär-Pferdebuch!") + say_item_vnum(50053) + say("") + say("Ausserdem schenke ich dir noch ein Buch") + say("der Reitkunst um mit dem Fertigkeitstraining") + say("deines Pferdes beginnen zu können.") + wait() + + horse.set_level(21) + pc.changemoney(-1000000) + pc.remove_item(50052, 1) + pc.give_item2(50060, 1) + set_quest_state("horse_mission4", "run") + set_state(__COMPLETE__) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Millitär-Pferdebuch kaufen!") + say("") + end + elseif v == 2 then + return + end + end + end + + state failure_quest3 begin + when letter begin + send_letter("Die Pferdeprüfung") + pc.setqf("horse_ex_3", 0) + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 300 Dämonenbogenschützen innerhalb") + say("von 30 Minuten nicht töten können. Geh zum") + say("Stallburschen und versuche es erneut!") + say("") + clear_letter() + set_state(start) + end + end + + state __COMPLETE__ begin + when enter begin + q.done() + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_75.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_75.lua new file mode 100644 index 00000000..bb025f56 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_examination_75.lua @@ -0,0 +1,244 @@ +quest horse_mission4 begin + state start begin + end + + state run begin + when login or levelup with pc.get_level() >= 75 and horse.get_level() == 29 begin + send_letter("Das Schlachtross") + end + + when button or info begin + say_title("Das Schlachtross") + say("") + say("Du bist Level 75 und kannst") + say("nun deine Prüfung für dein Schlachtross absolvieren!") + say("Bringe dazu 1 Pferdemedaillen mit!") + say("") + clear_letter() + set_state(horse_mission4_begin) + end + end + + state horse_mission4_begin begin + when 20349.chat."Das Schlachtross" begin + say("Stallbursche:") + say("") + say("Hallo "..pc.get_name().."") + say("Du willst also das Schlachtross?") + say("Dann musst du erstmal beweisen") + say("das du würdig bist das Schlachtross zu führen") + say("Diese Prüfung ist die letzte und härteste!") + say("Ohne Gruppe wirst du sie vermutlich nicht") + say("schaffen.") + wait() + say("Stallbursche:") + say("") + say("Ich bitte dich nun zur letzten Prüfung") + say("500 Setaou-Jäger innerhalb 30 Minuten") + say("zu töten. Dann werde ich dir das Schlachtross geben.") + say("") + say("Möchtest du die Prüfung jetzt beginnen?") + local v = select ("Ja, ich möchte!", "Nein, Später.") + if v == 1 then + if horse.get_level() == 29 then + if pc.count_item(50050) >= 1 then + say("Stallbursche:") + say("") + say("Ok, ziehe jetzt los. Die 30 Minuten laufen ab jetzt!") + say("Viel Glück.") + pc.remove_item(50050, 1) + pc.setqf("limit_time4", get_time()+30*60) + pc.setqf("horse_ex_4", 500) + set_state(kill_bogie_mobs3) + else + say("Stallbursche:") + say("") + say("Du hast keine Pferdemedaille dabei!") + say("Komme wieder wenn du eine bei dir") + say("trägst.") + return + end + else + say("Stallbursche:") + say("") + say("Dein Pferdelevel ist nicht hoch genug!") + say("Komme wieder wenn dein Pferd level 29") + say("erreicht hat.") + return + end + elseif v == 2 then + return + end + end + end + + state kill_bogie_mobs3 begin + when letter begin + send_letter("Die Pferdeprüfung") + end + + when login or levelup with get_time()>=pc.getqf("limit_time4") begin + clear_letter() + pc.setqf("horse_ex_4", 0) + set_state(failure_quest3) + end + + when login begin + q.set_counter("Noch verbl.", pc.getqf("horse_ex_4")) + q.set_clock("Zeit", pc.getqf("limit_time4")-get_time()) + end + + when leave begin + q.done() + end + + when info or button begin + say_title("Die Pferdeprüfung") + say("") + say("Um die Pferdeprüfung abzuschließen musst du") + say("innerhalb 30 Minuten 500 Setaou-Jäger") + say("töten. Sie sind im Dämonenturm der ersten Ebenen") + say("zu finden!") + say("") + say_reward("Du musst noch "..pc.getqf("horse_ex_4").."") + say_reward("von 500 Setaou-Jäger töten!") + end + + when 2402.party_kill begin + pc.setqf("horse_ex_4", pc.getqf("horse_ex_4")-1) + local kill_count = pc.getqf("horse_ex_4") + q.set_counter("Noch verbl.", kill_count) + if kill_count == 0 then + clear_letter() + pc.setqf("horse_ex_4", 0) + set_state(finish_kills3) + end + if get_time()>=pc.getqf("limit_time4") then + clear_letter() + pc.setqf("horse_ex_4", 0) + set_state(failure_quest3) + end + end + end + + state finish_kills3 begin + when letter begin + cleartimer("limit_time4") + send_letter("Prüfung Erfolgreich!") + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 500 Setaou-Jäger innerhalb") + say("30 Minuten getötet.") + say("") + say_reward("Auf zum Stallburschen") + say("") + end + + when __TARGET__.target.click or 20349.chat."Das Schlachtross" begin + target.delete(__TARGET__) + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Schlachtross beherrschen kannst.") + say("Nun brauchst du noch das Schlachtross-Siegel.") + say("") + say("Für die herstellung benötige ich 2.000.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=2000000 then + say_title("Stallbursche:") + say("") + say("Du erhälst das Schlachtross-Siegel!") + say_item_vnum(50069) + say("") + horse.set_level(30) + pc.changemoney(-2000000) + pc.remove_item(50053, 1) + pc.give_item2(50069, 1) + set_state(__COMPLETE__) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Schlachtross-Siegel kaufen!") + say("") + end + elseif v == 2 then + clear_letter() + set_state(buy_horse_book) + end + end + end + + state buy_horse_book begin + when 20349.chat."Schlachtross-Siegel" begin + say_title("Stallbursche:") + say("") + say("Du hast die Aufgabe erledigt und bewisen das") + say("du dein Schlachtross beherrschen kannst.") + say("Nun brauchst du noch das Schlachtross-Siegel") + say("") + say("Für die herstellung benötige ich 2.000.000 Yang") + say("") + local v = select ("Bezahlen", "Noch nicht") + if v == 1 then + if pc.money>=2000000 then + say_title("Stallbursche:") + say("") + say("Du erhälst das Schlachtross-Siegel!") + say_item_vnum(50069) + say("") + horse.set_level(30) + pc.changemoney(-2000000) + pc.remove_item(50053, 1) + pc.give_item2(50069, 1) + set_state(__COMPLETE__) + else + say_title("Stallbursche:") + say("") + say("Du hast leider nicht genug Yang bei dir.") + say("Wenn du genug Yang hast kannst du wiederkommen") + say("und das Schlachtross-Siegel kaufen!") + say("") + end + elseif v == 2 then + return + end + end + end + + state failure_quest3 begin + when letter begin + send_letter("Die Pferdeprüfung") + pc.setqf("horse_ex_4", 0) + local v = find_npc_by_vnum(20349) + if v != 0 then target.vid("__TARGET__", v, "Hauptmann3") + end + end + + when button or info begin + say_title("Die Pferdeprüfung") + say("") + say("Du hast die 500 Setaou-Jäger innerhalb von 30") + say("Minuten nicht töten können. Geh zum") + say("Stallburschen und versuche es erneut!") + say("") + clear_letter() + set_state(start) + end + end + + state __COMPLETE__ begin + when enter begin + q.done() + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_horse/horse_medaille.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_medaille.lua new file mode 100644 index 00000000..4360aa86 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_medaille.lua @@ -0,0 +1,48 @@ +quest horse_medaille begin + state start begin + when 20349.chat."Pferdelevel steigern" with horse.get_level() >= 1 begin + say_title("Stallbursche:") + if horse.get_level() >= 1 and horse.get_level() <= 9 or + horse.get_level() >= 11 and horse.get_level() <= 19 or + horse.get_level() >= 21 and horse.get_level() <= 28 then + say("") + say("Möchtest du diese Pferdemedaille benutzen") + say("um dein Pferdelevel zu steigern?") + say("") + if select("Steigern", "Beenden") == 2 then return end + local drop_random = number(1,100) + if drop_random < 50 then + horse.set_level(horse.get_level()+1) + say_title("Pferdelevel gestiegen!") + say("") + say("Glückwunsch!") + say("Das Training mit der Medaille hat geklappt!") + say("") + say("Dein Pferd ist auf Level "..horse.get_level().." gestiegen!") + pc.remove_item(50050, 1) + else + say_title("Pferdelevel nicht gestiegen!") + say("") + say("Das Training mit der Medaille hat leider nicht geklappt!") + say("Probiere es später noch mal.") + say("") + say("Dein Pferd ist noch auf Level "..horse.get_level().."!") + pc.remove_item(50050, 1) + end + else + if horse.get_level() == 10 or horse.get_level() == 20 then + say("") + say("Du musst erst deine nächste Prüfung erfolgreich beenden!") + end + if horse.get_level() == 29 then + say("") + say("Du kannst dein Pferdelevel mit der Medaille nicht mehr erhöhen!") + end + if horse.get_level() == 30 then + say("") + say("Du hast das maximale Pferdelevel bereits erreicht!") + end + end + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/horse_menu.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_menu.lua similarity index 82% rename from main/srv1/share/locale/germany/quest/horse_menu.lua rename to main/srv1/share/locale/germany/quest/quest_horse/horse_menu.lua index 6f40f775..0409cfff 100644 --- a/main/srv1/share/locale/germany/quest/horse_menu.lua +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_menu.lua @@ -24,15 +24,25 @@ quest horse_menu begin elseif s == 0 then horse.revive() elseif s == 1 then - local food = horse.get_grade() + 50054 - 1 - - if pc.countitem(food) > 0 then - pc.removeitem(food, 1) - horse.feed() - return + if horse.get_level() < 30 then + local food = horse.get_grade() + 50053 + if pc.countitem(food) > 0 then + pc.removeitem(food, 1) + horse.feed() + return + else + say(gameforge.horse_menu._30_say .. item_name(food)) + say("") + end else - say(gameforge.horse_menu._30_say .. item_name(food)) - say("") + if pc.countitem(38100) > 0 then + pc.removeitem(38100, 1) + horse.feed() + return + else + say(gameforge.horse_menu._30_say .. item_name(38100)) + say("") + end end elseif (s == 2 and false == pc.is_riding()) then horse.ride() diff --git a/main/srv1/share/locale/germany/quest/quest_horse/horse_summon.lua b/main/srv1/share/locale/germany/quest/quest_horse/horse_summon.lua new file mode 100644 index 00000000..b3e8c758 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_horse/horse_summon.lua @@ -0,0 +1,227 @@ +quest horse_summon begin + state start begin + +function get_horse_summon_prob_pct() + local skill_level=pc.get_skill_level(131) + if skill_level==1 then + return 15 + elseif skill_level==2 then + return 20 + elseif skill_level==3 then + return 30 + elseif skill_level==4 then + return 40 + elseif skill_level==5 then + return 50 + elseif skill_level==6 then + return 60 + elseif skill_level==7 then + return 70 + elseif skill_level==8 then + return 80 + elseif skill_level==9 then + return 90 + elseif skill_level>=10 then + return 100 + end + return 10 +end + + + when 20349.chat.gameforge.horse_summon._10_npcChat with horse.get_grade()==1 and pc.countitem("50051")<1 begin + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._20_say) + local b= select(gameforge.find_squareguard._50_select, gameforge.find_brother_article._100_select) + if 1==b then + if pc.money>=400000 then + pc.changemoney(-400000) + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._30_say) + pc.give_item2("50051", 1) + else + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._40_say) + end + elseif 2==b then + else + say(string.format(gameforge.find_squareguard._70_say, b)) + end + end + when 20349.chat.gameforge.horse_summon._50_npcChat with horse.get_grade()==2 and pc.countitem("50052")<1 begin + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._60_say) + local b= select(gameforge.find_squareguard._50_select, gameforge.find_brother_article._100_select) + if 1==b then + if pc.money>=50000 then + pc.changemoney(-50000) + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._70_say) + pc.give_item2("50052", 1) + else + say(gameforge.horse_summon._80_say) + end + elseif 2==b then + else + say(string.format(gameforge.find_squareguard._70_say, b)) + end + end + when 20349.chat.gameforge.horse_summon._90_npcChat with horse.get_grade()==3 and pc.countitem("50053")<1 begin + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._100_say) + local b= select(gameforge.find_squareguard._50_select, gameforge.find_brother_article._100_select) + if 1==b then + if pc.money>=100000 then + pc.changemoney(-100000) + say_title(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._110_say) + pc.give_item2("50053", 1) + else + say_title(gameforge.horse_exchange_ticket._20_sayTitle) + say(gameforge.horse_summon._80_say) + end + elseif 2==b then + else + say(string.format(gameforge.find_squareguard._70_say, b)) + end + end + when 50051.use with horse.get_grade()==0 begin + say_title(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._120_say) + end + when 50051.use with horse.get_grade()==1 begin + if pc.get_map_index() >= 1100000 and pc.get_map_index() <= 1105000 or + pc.get_map_index() >= 1110000 and pc.get_map_index() <= 1115000 then + syschat("Du kannst in einem Gildenkrieg kein Pferd rufen.") + return + end + if pc.getsp()>=100 then + if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then + chat("Pferd erfolgreich gerufen! (Pferd Level: "..horse.get_level()..")") + horse.summon(false, item.get_value(5)) + else + chat("Es hat nicht funktioniert - das Pferd konnte nicht gerufen werden.") + end + pc.change_sp(-100) + else + chat("Deine mentale Kraft reicht nicht aus.") + end + end + when 50051.use with horse.get_grade()==2 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._160_sayReward) + end + when 50051.use with horse.get_grade()==3 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._170_sayReward) + end + when 50052.use with horse.get_grade()==0 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._180_sayReward) + end + when 50052.use with horse.get_grade()==1 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._190_sayReward) + end + when 50052.use with horse.get_grade()==2 begin + if pc.get_map_index() >= 1100000 and pc.get_map_index() <= 1105000 or + pc.get_map_index() >= 1110000 and pc.get_map_index() <= 1115000 then + syschat("Du kannst in einem Gildenkrieg kein Pferd rufen.") + return + end + if pc.getsp()>=200 then + if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then + chat("Pferd erfolgreich gerufen! (Pferd Level: "..horse.get_level()..")") + horse.summon(false, item.get_value(5)) + else + chat("Es hat nicht funktioniert - das Kampfpferd konnte nicht gerufen werden.") + end + pc.change_sp(-200) + else + chat("Deine mentale Kraft reicht nicht aus.") + end + end + when 50052.use with horse.get_grade()==3 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._230_sayReward) + end + when 50053.use with horse.get_grade()==0 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._240_sayReward) + end + when 50053.use with horse.get_grade()==1 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._190_sayReward) + end + when 50053.use with horse.get_grade()==2 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._250_sayReward) + end + when 50053.use with horse.get_grade()==3 begin + if pc.get_map_index() >= 1100000 and pc.get_map_index() <= 1300000 then + syschat("Du kannst in einem Gildenkrieg kein Pferd rufen.") + return + end + if pc.getsp()>=300 then + if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then + chat("Pferd erfolgreich gerufen! (Pferd Level: "..horse.get_level()..")") + horse.summon(false, item.get_value(5)) + else + chat("Es hat nicht funktioniert - das Militärpferd konnte nicht gerufen werden.") + end + pc.change_sp(-300) + else + chat("Deine mentale Kraft reicht nicht aus.") + end + end + + when 50053.use with horse.get_grade()==4 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._230_sayReward) + end + when 50069.use with horse.get_grade()==1 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._240_sayReward) + end + when 50069.use with horse.get_grade()==2 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._190_sayReward) + end + when 50069.use with horse.get_grade()==3 begin + say(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.horse_summon._250_sayReward) + end + when 50069.use with horse.get_grade()==4 begin + if pc.get_map_index() >= 1100000 and pc.get_map_index() <= 1300000 then + syschat("Du kannst in einem Gildenkrieg kein Pferd rufen.") + return + end + if pc.getsp()>=500 then + if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then + chat("Pferd erfolgreich gerufen! (Pferd Level: "..horse.get_level()..")") + horse.summon(false, item.get_value(5)) + else + chat("Es hat nicht funktioniert - das Schlachtenross konnte nicht gerufen werden.") + end + pc.change_sp(-500) + else + chat("Deine mentale Kraft reicht nicht aus.") + end + end + + when 50083.use begin + if pc.get_map_index() >= 1100000 and pc.get_map_index() <= 1300000 then + syschat("Du kannst in einem Gildenkrieg kein Pferd rufen.") + return + else + horse.summon(false, item.get_value(5)) + end + end + end + + state __COMPLETE__ begin + when enter begin + q.done() + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_change_empire.quest b/main/srv1/share/locale/germany/quest/quest_item/item_change_empire.quest new file mode 100644 index 00000000..060b3531 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_change_empire.quest @@ -0,0 +1,127 @@ +quest change_empire begin + state start begin + when 20090.chat.gameforge.change_empire._10_npcChat with game.get_event_flag("c_e") >0 begin + + local count = pc.get_change_empire_count() ; + if count >= 1 then + say(gameforge.change_empire._20_say) + return + end + say_title(gameforge.change_empire._10_npcChat) + + say(gameforge.change_empire._30_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.cancel) + + if s == 1 then + change_empire.move_pc() + end + end + + when 71054.use begin + say_title(gameforge.change_empire._10_npcChat) + + say(gameforge.change_empire._40_say) + if get_time() < pc.getqf("next_use_time") then + say_title(gameforge.change_empire._50_sayTitle) + say_reward(gameforge.change_empire._60_sayReward) + + if pc.is_gm() then + say(gameforge.change_empire._70_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if s == 1 then + say(gameforge.change_empire._80_say) + pc.setqf("next_use_time", 0) + end + end + + return + end + + if change_empire.move_pc() == true then + pc.setqf("next_use_time", get_time() + 86400 * 7) + end + end + + + + function move_pc() + if pc.is_engaged() then + say_title(gameforge.change_empire._50_sayTitle) + say_reward(gameforge.change_empire._90_sayReward) + say(gameforge.change_empire._100_say) + return false + end + + if pc.is_married() then + say_title(gameforge.change_empire._50_sayTitle) + say_reward(gameforge.change_empire._90_sayReward) + say(gameforge.change_empire._110_say) + return false + end + + if pc.is_polymorphed() then + say_title(gameforge.change_empire._50_sayTitle) + say_reward(gameforge.change_empire._120_sayReward) + say(gameforge.change_empire._130_say) + return false + end + + if pc.has_guild() then + say_title(gameforge.change_empire._50_sayTitle) + say_reward(gameforge.change_empire._140_sayReward) + say(gameforge.change_empire._150_say) + return false + end + + if pc.money < 500000 then + say_title(gameforge.change_empire._50_sayTitle) + say_reward(gameforge.change_empire._160_sayReward) + say(gameforge.change_empire._170_say) + return false + end + + + say(gameforge.change_empire._180_say) + local s = select ( gameforge.change_empire._190_select, gameforge.change_empire._200_select, gameforge.change_empire._205_select, gameforge.locale.cancel) + + if 4 == s then + return false + end + + say_reward(gameforge.change_empire._210_sayReward) + + local a = select(gameforge.locale.guild.yes, gameforge.locale.cancel) + + if 2 == a then + return false + end + + local ret = pc.change_empire(s) + local oldempire = pc.get_empire() + + if ret == 999 then + say_title(gameforge.change_empire._220_sayTitle) + say_reward(gameforge.change_empire._230_sayReward) + pc.change_gold(-500000) + pc.remove_item(71054) ; + + char_log(0, "CHANGE_EMPIRE",string.format(gameforge.change_empire._240_stringFormat, oldempire, s)) + + return true + else + if ret == 1 then + say(gameforge.change_empire._250_say) + elseif ret == 2 then + say(gameforge.change_empire._260_say) + elseif ret == 3 then + say(gameforge.change_empire._270_say) + end + end + + return false + end + + + end +end + diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_change_guild_master.quest b/main/srv1/share/locale/germany/quest/quest_item/item_change_guild_master.quest new file mode 100644 index 00000000..a554ee0c --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_change_guild_master.quest @@ -0,0 +1,53 @@ +quest change_guild_master begin + state start begin + function change_master( name , level_limit , time_resign_limit , time_be_other_leader , time_be_other_member , iscacheitem ) + local ret = guild.change_master_with_limit( name , level_limit , time_resign_limit , time_be_other_leader , time_be_other_member, iscacheitem) + local result = false + + if ret == 0 then + say(gameforge.change_guild_master._30_say) + elseif ret == 1 then + say(gameforge.change_guild_master._40_say) + elseif ret == 2 then + say(gameforge.change_guild_master._50_say) + elseif ret == 3 then + say(gameforge.change_guild_master._60_say) + result = true + pc.remove_item(71099) + elseif ret == 4 then + say(gameforge.change_guild_master._70_say) + elseif ret == 5 then + say(gameforge.change_guild_master._90_say) + elseif ret == 6 then + say(gameforge.change_guild_master._100_say) + elseif ret == 7 then + say(gameforge.change_guild_master._110_say) + end + + return result + end + + when 71099.use begin + if pc.is_guild_master() == false then + say(gameforge.change_guild_master._10_say) + return + end + + + say(gameforge.change_guild_master._20_say) + local s = input() + local newface_name = find_pc_by_name(s) + if newface_name == pc.get_vid() then + say(gameforge.change_guild_master._80_say) + return + end + + if change_guild_master.change_master( s , 40 , 0 , 0 , 0 ,true) == true then + pc.remove_item(71099) + end + + + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/change_name_item.lua b/main/srv1/share/locale/germany/quest/quest_item/item_change_name.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/change_name_item.lua rename to main/srv1/share/locale/germany/quest/quest_item/item_change_name.lua diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_change_sex.quest b/main/srv1/share/locale/germany/quest/quest_item/item_change_sex.quest new file mode 100644 index 00000000..0295236d --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_change_sex.quest @@ -0,0 +1,78 @@ +quest item_change_sex begin + state start begin + when 71048.use begin + if pc.get_level() < 30 then + say_title(gameforge.change_empire._50_sayTitle) + say(gameforge.item_change_sex._10_sayReward) + return + end + + if pc.is_engaged() then + say_title(gameforge.change_empire._50_sayTitle) + say(gameforge.item_change_sex._30_sayReward) + return + end + + if pc.is_married() then + say_title(gameforge.change_empire._50_sayTitle) + say(gameforge.item_change_sex._30_sayReward) + return + end + + if pc.is_polymorphed() then + say_title(gameforge.change_empire._50_sayTitle) + say(gameforge.item_change_sex._60_sayReward) + return + end + + if get_time() < pc.getqf("next_time") then + say_title(gameforge.change_empire._50_sayTitle) + say(gameforge.item_change_sex._80_sayReward) + say(gameforge.item_change_sex._90_say) + + if pc.is_gm() then + say(string.format(gameforge.item_change_sex._100_say, time_to_str(pc.getqf("next_time")))) + say(gameforge.item_change_sex._110_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if s == 1 then + say(gameforge.change_empire._80_say) + pc.setqf("next_time", 0) + end + end + return + + end + + say_title(gameforge.item_change_sex._120_sayTitle) + say(gameforge.item_change_sex._130_say) + wait() + say_title(gameforge.item_change_sex._120_sayTitle) + say(gameforge.item_change_sex._140_say) + local s= select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + + if 1==s then + say_title(gameforge.item_change_sex._120_sayTitle) + say(gameforge.item_change_sex._150_say) + say_reward(gameforge.change_empire._230_sayReward) + + pc.remove_item("71048",1) + pc.setqf("next_time", get_time() + 86400 * 3) + + pc.change_sex() + + local m_sex = pc.get_sex() + + if m_sex == 0 then + char_log(0, "CHANGE_SEX", "F -> M") + else + char_log(0, "CHANGE_SEX", "M -> F") + end + + elseif 2==s then + say(gameforge.item_change_sex._160_say) + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_dr_voucher.lua b/main/srv1/share/locale/germany/quest/quest_item/item_dr_voucher.lua new file mode 100644 index 00000000..2e66a204 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_dr_voucher.lua @@ -0,0 +1,29 @@ +quest item_dr_voucher begin + state start begin + when 80014.use or 80015.use or 80016.use or 80017.use begin + local dr_table = { + [80014] = 100, + [80015] = 500, + [80016] = 1000, + [80017] = 50, + } + + local iVnum = item.vnum + + say_title("DR-Gutschein:") + say("") + say_item_vnum(item.get_vnum()) + say("") + say(string.format("Möchtest du diesen Gutschein für %sDR einlösen?", (dr_table[iVnum]))) + say("") + local sel = select("Einlösen", "Abbrechen") + + if sel == 1 then + pc.remove_item(item.get_vnum(), 1) + pc.give_dr(dr_table[iVnum]) + else + return + end + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/goldbars.lua b/main/srv1/share/locale/germany/quest/quest_item/item_goldbars.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/goldbars.lua rename to main/srv1/share/locale/germany/quest/quest_item/item_goldbars.lua diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_questscrolls.lua b/main/srv1/share/locale/germany/quest/quest_item/item_questscrolls.lua new file mode 100644 index 00000000..afb387cc --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_questscrolls.lua @@ -0,0 +1,705 @@ +quest missionbooks begin + state start begin + function leichtequests() + local quests = { + --{Index, {MobId1, MobAnzahl1}, {MobId2, MobAnzahl2}, Questtitel, Questtext}, + {1, {106, 35}, {0, 0}, "Auftauchen der Grauwölfe 1", "Hast du von den Grauwölfen gehört? Sie waren meist alleine unterwegs, aber durch den Einfluss des bösen Chi in letzter Zeit haben sie begonnen, in Rudeln Reisende zu jagen. Kannst Du diese Grauwölfe ausschalten? Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {2, {107, 30}, {0, 0}, "Auftauchen der Grauwölfe 2", "Hast du von den Alpha-Grauwölfen gehört? Sie waren meist alleine unterwegs, aber durch den Einfluss des bösen Chi in letzter Zeit haben sie begonnen, in Rudeln Reisende zu jagen. Kannst Du diese Alpha-Grauwölfe ausschalten? Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {3, {104, 35}, {105, 25}, "Der Sturm der Blauwölfe", "Hast Du schon vom Sturm der Blauwölfe gehört? Das bezieht sich auf die Untaten der Blauwölfe in letzter Zeit. Sie vernichten alles was ihnen im Weg ist, als wären sie ein Sturm aus Pelz und Zähnen. Kannst Du diesen Sturm der Blauwölfe bändigen?", "Missionsbuch erfüllt!"}, + {4, {112, 25}, {111, 25}, "Marsch der hungernden Bären", "Oh, bitte hilf uns. In letzter Zeit beschädigt eine zunehmende Zahl Grizzlybären und Schwarzbären unsere Bienenstöcke und Plantagen. Bitte hilf uns. Ohne die Bienen und das Obst verhungern wir. Töte die Untiere für uns.", "Missionsbuch erfüllt!"}, + {5, {8004, 2}, {0, 0}, "Metin der Gier zerstören", "Seit kurzem regnet es Steine mit bösem Chi in der Nähe der Stadt. Untersuchungen zeigen, dass das Chi in diesen Steinen Tiere zur Raserei treibt. Zerstöre diese Steine. Ich bitte Dich darum. Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {6, {8003, 2}, {0, 0}, "Metin der Schlacht zerstören", "Seit kurzem regnet es Steine mit bösem Chi in der Nähe der Stadt. Untersuchungen zeigen, dass das Chi in diesen Steinen Tiere zur Raserei treibt. Zerstöre diese Steine. Ich bitte Dich darum. Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {7, {8002, 3}, {0, 0}, "Metin des Kampfes zerschlagen", "Seit kurzem regnet es Steine mit bösem Chi in der Nähe der Stadt. Untersuchungen zeigen, dass das Chi in diesen Steinen Tiere zur Raserei treibt. Zerstöre diese Steine. Ich bitte Dich darum. Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {8, {8001, 2}, {0, 0}, "Metin des Kummers zerschlagen", "Seit kurzem regnet es Steine mit bösem Chi in der Nähe der Stadt. Untersuchungen zeigen, dass das Chi in diesen Steinen Tiere zur Raserei treibt. Zerstöre diese Steine. Ich bitte Dich darum. Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {9, {108, 40}, {0, 0}, "Sorge um die Dörfer", "Die Sorgen der Dörfer in der Nähe der Stadt haben in letzter Zeit zugenommen. Keiler, die bisher höchstens kleine Tiere auf den Bergen angefallen haben, sind aggressiv geworden. Sie sind in die Felder eingefallen und haben die Bauern angegriffen. Kannst Du diese Keiler vertreiben?", "Missionsbuch erfüllt!"}, + {10, {109, 30}, {0, 0}, "Sorge um die Dörfer 2", "Seit Kurzem suchen Keiler und ein roter Keiler, der sie anführt, die Dörfer in der Nähe der Hauptstadt heim. Die Regierung hat beschlossen, dass rote Keiler zu töten sind. Die Krieger werden aufgefordert, jeweils 30 Rote Keiler zu erlegen. Wir bitten dich um deine Mithilfe", "Missionsbuch erfüllt!"}, + {11, {114, 25}, {110, 30}, "Tiger und Bären", "Hast Du das schon gehört? Wenn Tiger und Bären für 100 Tage nur Knoblauch und Zwiebeln fressen, können sie sich in Großtiger und Feuerbären verwandeln. Das kommt bestimmt nicht vor, aber es schadet nicht, dieses Gerücht zu prüfen. Überprüfe es, indem Du Tiger und Bären erlegst.", "Missionsbuch erfüllt!"} + } + return quests + end + function normalequests() + local quests = { + {1, {393, 10}, {0, 0}, "Der Angriff der Se-Rangs", "Krieger, es sind neue Informationen zur weißen Armee eingetroffen. Als Reaktion auf unseren Druck haben die Se-Rangs, Anführerinnen der weißen Armee, eine Gegenoffensive gestartet. Unternimm sofort etwas gegen die Se-Rangs. Wir müssen ihre Anführerinnen erwischen und so ihre Pläne unterbinden.", "Missionsbuch erfüllt!"}, + {2, {5101, 30}, {5102, 30}, "Geheimnis des leichten Affen 1", "Die Lage des leichten Affendungeons in Map2 wurde endlich ermittelt. Normalerweise stellen die dort lebenden Affen keine Bedrohung dar, aber wenn sie sich zusammenrotten, könnten sie das Reich gefährden. Begib dich zum leichten Affendungeon und sieh nach, wie es um die Afenpopulation steht.", "Missionsbuch erfüllt!"}, + {3, {5103, 15}, {5104, 15}, "Geheimnis des leichten Affen 2", "Die Lage des leichten Affendungeons in Map2 wurde endlich ermittelt. Normalerweise stellen die dort lebenden Affen keine Bedrohung dar, aber wenn sie sich zusammenrotten, könnten sie das Reich gefährden. Begib dich zum leichten Affendungeon und sieh nach, wie es um die Affenpopulation steht.", "Missionsbuch erfüllt!"}, + {4, {5111, 30}, {5112, 30}, "Geheimnis des normalen Affen 1", "Der Ort des normalen Affendungeons in der Wüste wurde endlich entdeckt. Soweit wir wissen, sind diese Affen keine Gefahr, aber wenn sie sich zusammenrotten, können sie das Reich gefährden. Begib Dich zum normalen Affendungeon und finde heraus, wer sich dahinter verbirgt.", "Missionsbuch erfüllt!"}, + {5, {5113, 15}, {5114, 15}, "Geheimnis des normalen Affen 2", "Der Ort des normalen Affendungeons in der Wüste wurde endlich entdeckt. Soweit wir wissen, sind diese Affen keine Gefahr, aber wenn sie sich zusammenrotten, können sie das Reich gefährden. Begib Dich zum normalen Affendungeon und finde heraus, wer sich dahinter verbirgt.", "Missionsbuch erfüllt!"}, + {6, {631, 30}, {632, 30}, "Großer Aufstand der Orks 1", "Geheime Informationen legen die Vermutung nahe, dass die Anführer der Orks im Tal von Seungryong an Weltherrschaftsplänen arbeiten. Schau dich dort bitte einmal um und überprüfe die Richtigkeit dieser Informationen. Und damit sich die Reise lohnt, könntest du gleich noch ein paar Orks aus dem Weg schaffen.", "Missionsbuch erfüllt!"}, + {7, {633, 20}, {634, 15}, "Großer Aufstand der Orks 2", "Geheime Informationen deuten darauf hin, dass die Anführer der Orks im Tal von Seungryong planen, die ganze Welt zu unterwerfen. So lächerlich das auch klingen mag, solltest du dieses Gerücht dennoch überprüfen. Und wenn du schon mal dort bist, könntest du auch gleich noch ihre Truppen dezimieren.", "Missionsbuch erfüllt!"}, + {8, {8006, 10}, {0, 0}, "Metin der Dunkelheit zerstören", "Seit kurzem regnet es Steine in der Nähe der Stadt. Sie scheinen böses Chi zu besitzen, denn seitdem gebärden sich die Tiere in der Umgebung wie toll. Bitte kümmere dich darum, dass diese Steine zerstört werden. Du wirst für deine Mühe angemessen entlohnt werden.", "Missionsbuch erfüllt!"}, + {9, {8007, 10}, {0, 0}, "Metin der Eifersucht zerstören", "Seit kurzem regnet es Steine in der Nähe der Stadt. Sie scheinen böses Chi zu besitzen, denn seitdem gebärden sich die Tiere in der Umgebung wie toll. Bitte kümmere dich darum, dass diese Steine zerstört werden. Du wirst für deine Mühe angemessen entlohnt werden.", "Missionsbuch erfüllt!"}, + {10, {8005, 10}, {0, 0}, "Metin der Schwärze zerstören", "Seit kurzem regnet es Steine in der Nähe der Stadt. Sie scheinen böses Chi zu besitzen, denn seitdem gebärden sich die Tiere in der Umgebung wie toll. Bitte kümmere dich darum, dass diese Steine zerstört werden. Du wirst für deine Mühe angemessen entlohnt werden.", "Missionsbuch erfüllt!"}, + {11, {501, 30}, {502, 30}, "Überfall der Wilden", "Wir haben einen Spion der Wilden geschnappt und ihm wichtige Informationen entlockt. Offenbar planen sie einen Überfall auf das Reich. Wir müssen ihrem Angriff zuvorkommen. Beweise deine Treue zum Reich!", "Missionsbuch erfüllt!"}, + {12, {404, 25}, {405, 25}, "Unruhiger schwarzer Wind", "Es heißt neuerdings, dass die Schwarzwindbande sich anschickt, das Land in einem einzigen Handstreich zu übernehmen. Bevor sie genügend Truppen rekrutieren können, sollten wir sie ihrer Führung berauben. Ich bitte dich: Schalte ihre Anführer aus!"}, + {13, {304, 20}, {0, 0}, "Vertreiben der weißen Armee", "In letzter Zeit hat die Armee des Weißen-Eides uns sehr zu schaffen gemacht. Sie entführt oft fahrende Händler und richtet im Dorf Verwüstungen an. Bitte halte sie auf. Schalte Mitglieder der Armee und ihre Anführerinnen aus.", "Missionsbuch erfüllt!"}, + {14, {494, 5}, {0, 0}, "Wer Wind sät, wird Sturm ernten", "Die Chuong, Anführer der Schwarzwindbande, machen Ärger. Als Meister des Schwertkampfs haben sie nur zum Spaß andere Krieger herausgefordert. Schalte sie aus, bevor sie die gesamte Schwarzwindbande mit ihrem Übermut anstecken.", "Missionsbuch erfüllt!"}, + } + return quests + end + function schwerequests() + local quests = { + {1, {701, 30}, {702, 30}, "Anhänger des Schw. Glaubens 1", "Es ist endlich der Befehl ergangen, einen der gefährlichsten Gegner des Reiches auszumerzen: die esoterische Sekte im Tal von Seungryong. Geh dorthin und heize ihnen ordentlich ein! Aber mach nicht den Fehler, sie zu unterschätzen. Auch wenn sie oft nur unverständliches Zeug plappern, sind sie doch erfahrene Kämpfer."}, + {2, {703, 20}, {704, 25}, "Anhänger des Schw. Glaubens 2", "Es ist endlich der Befehl ergangen, einen der gefährlichsten Gegner des Reiches auszumerzen: die esoterische Sekte im Tal von Seungryong. Geh dorthin und heize ihnen ordentlich ein! Aber mach nicht den Fehler, sie zu unterschätzen. Auch wenn sie oft nur unverständliches Zeug plappern, sind sie doch erfahrene Kämpfer."}, + {3, {706, 40}, {707, 40}, "Anhänger des Schw. Glaubens 3", "Es ist endlich der Befehl ergangen, einen der gefährlichsten Gegner des Reiches auszumerzen: die esoterische Sekte im Tal von Seungryong. Geh dorthin und heize ihnen ordentlich ein! Aber mach nicht den Fehler, sie zu unterschätzen. Auch wenn sie oft nur unverständliches Zeug plappern, sind sie doch erfahrene Kämpfer."}, + {4, {1301, 45}, {1302, 35}, "Chunwa Bong-ki", "Der gelbe Tigergeist hat sich anscheinend mit den Baumfrosch-Monstern verschworen. Zerschlage umgehend ihre gemeinsamen Einheiten. Wenn du sie ignorierst, wird dies übel für das Reich ausgehen!"}, + {5, {8511, 25}, {0, 0}, "Das Eis wird schmelzen", "Kennst du den von ewigem Eis bedeckten Berg Sohan? Viele Forscher und Kämpfer haben sich dorthin aufgemacht, sind jedoch nie zurückgekehrt. Finde heraus, warum dies so ist und ob sie angegriffen wurden. Vielleicht kannst du etwas erfahren, wenn du dort Monster jagst."}, + {6, {1063, 45}, {0, 0}, "Das Geheimnis des Dämonenturms", "Einige Gerüchte besagen, dass die Gemeinen Speerkämpfer im Dämonenturm unbesiegbar seien. Angeblich stehen sie jedes Mal wieder auf, wenn man sie tötet. Wenn das stimmt, stehen uns dunkle Zeiten bevor. Bitte finde mehr darüber heraus!"}, + {7, {1064, 60}, {0, 0}, "Der Herr des Dämonenturms", "Nach genauerer Untersuchung wurde festgestellt, dass die Geistersoldaten fortwährend wiederbelebt wurden. Wir müssen Gemeine Geist Schamanen vernichten, um das zu verhindern."}, + {8, {1305, 30}, {0, 0}, "Die rechte des Gelben Tigergeists", "Dir ist sicherlich schon aufgefallen, dass die Tiere in letzter Zeit sehr wild und angriffslustig sind. Der Geheimdienst des Reichs vermutet als Grund dafür, dass der Gelbe Tigergeist, König aller Tiere auf diesem Kontinent, gerade seine Untertanen mobilisiert. Als Gegenmaßnahme sollten wir die Anführer beseitigen, die als seine rechte Hand fungieren."}, + {9, {1105, 35}, {1106, 30}, "Eigentümer des Berg Sohan?", "Der Neunschwanz, Herr des Bergs Sohan, schart dort angeblich Dämonen um sich. Bevor er seine Truppen zusammen hat, müssen wir das Rückgrat seiner Armee zerschlagen und so seine Pläne vereiteln. Bitte hilf uns. Du wirst großzügig belohnt."}, + {10, {1101, 45}, {0, 0}, "Eismonster! Ihr wahres Wesen", "Wir haben herausgefunden, wie die Eismonster auf dem Berg Sohan sich untereinander verständigen: Sie verbreiten ihre Informationen über die schwebenden Eissplitter, die dort überall anzutreffen sind. Um die Truppen des Eislandes zu schwächen, müssen wir diese Informationsübertragung stören. Ich bitte dich: Beseitige das Verzauberte Eis!"}, + {11, {5121, 30}, {5122, 30}, "Geheimnis des schweren Affendungeons 1", "Die Lage des schweren Affendungeons in der Wüste wurde endlich ermittelt. Normalerweise stellen die dort lebenden Affen keine Gefahr dar, aber wenn sie sich zusammenrotten, könnten sie das Reich gefährden. Begib dich zum schweren Affendungeon und sieh nach, wie es um die Affenpopulation steht."}, + {12, {5123, 15}, {5124, 15}, "Geheimnis des schweren Affendungeons 2", "Die Lage des schweren Affendungeons in der Wüste wurde endlich ermittelt. Normalerweise stellen die dort lebenden Affen keine Gefahr dar, aber wenn sie sich zusammenrotten, könnten sie das Reich gefährden. Begib dich zum schweren Affendungeon und sieh nach, wie es um die Affenpopulation steht."}, + {13, {1001, 30}, {1002, 20}, "Gesellschaft des Todes 1", "Hast du schon vom Dämonenturm gehört? Dort haben esoterische Sekten mit mächtiger Magie Dämonensoldaten beschworen. Bekämpfe sie und finde so heraus, wie mächtig sie sind."}, + {13, {1003, 30}, {1004, 25}, "Gesellschaft des Todes 2", "Hast du schon vom Dämonenturm gehört? Dort haben esoterische Sekten mit mächtiger Magie Dämonensoldaten beschworen. Bekämpfe sie und finde so heraus, wie mächtig sie sind."}, + {14, {8010, 10}, {0, 0}, "Metin der Härte zerstören", "Seit kurzem regnet es Steine in der Nähe der Stadt. Sie scheinen böses Chi zu besitzen, denn seitdem gebärden sich die Tiere in der Umgebung wie toll. Bitte kümmere dich darum, dass diese Steine zerstört werden. Du wirst für deine Mühe angemessen entlohnt werden."}, + {15, {8009, 10}, {0, 0}, "Metin der Seele zerstören", "Seit kurzem regnet es Steine in der Nähe der Stadt. Sie scheinen böses Chi zu besitzen, denn seitdem gebärden sich die Tiere in der Umgebung wie toll. Bitte kümmere dich darum, dass diese Steine zerstört werden. Du wirst für deine Mühe angemessen entlohnt werden."}, + {16, {8008, 10}, {0, 0}, "Metin des Schattens zerstören", "Seit kurzem regnet es Steine in der Nähe der Stadt. Sie scheinen böses Chi zu besitzen, denn seitdem gebärden sich die Tiere in der Umgebung wie toll. Bitte kümmere dich darum, dass diese Steine zerstört werden. Du wirst für deine Mühe angemessen entlohnt werden."}, + {17, {2051, 50}, {2052, 50}, "Sie haben acht Beine 1(SD2)", "In der Yongbi-Wüste wurde ein Höhlensystem entdeckt, das den dort lebenden Spinnen als Unterschlupf dient. Wir haben keine genaueren Informationen über diese Spinnenhöhlen, aber die Gegend ist als sehr gefährlich bekannt. Andererseits ergibt sich durch die Ansammlung vieler Spinnen auf engem Raum eine gute Gelegenheit, ihre Zahl und damit auch ihre Bedrohlichkeit zu verringern. Also mach dich auf den Weg! Und sei vorsichtig!"}, + {18, {2053, 50}, {2054, 50}, "Sie haben acht Beine 2(SD2)", "In der Yongbi-Wüste wurde ein Höhlensystem entdeckt, das den dort lebenden Spinnen als Unterschlupf dient. Wir haben keine genaueren Informationen über diese Spinnenhöhlen, aber die Gegend ist als sehr gefährlich bekannt. Andererseits ergibt sich durch die Ansammlung vieler Spinnen auf engem Raum eine gute Gelegenheit, ihre Zahl und damit auch ihre Bedrohlichkeit zu verringern. Also mach dich auf den Weg! Und sei vorsichtig!"}, + {19, {2055, 100}, {0, 0}, "Sie haben acht Beine 3(SD2)", "In der Yongbi-Wüste wurde ein Höhlensystem entdeckt, das den dort lebenden Spinnen als Unterschlupf dient. Wir haben keine genaueren Informationen über diese Spinnenhöhlen, aber die Gegend ist als sehr gefährlich bekannt. Andererseits ergibt sich durch die Ansammlung vieler Spinnen auf engem Raum eine gute Gelegenheit, ihre Zahl und damit auch ihre Bedrohlichkeit zu verringern. Also mach dich auf den Weg! Und sei vorsichtig!"}, + {20, {2103, 30}, {2104, 20}, "Skorpionplage", "Diese Skorpionwesen tyrannisieren Reisende und Händler, was sich schlecht auf die Wirtschaft des Reiches auswirkt. Bitte hilf dabei, dieser Plage Herr zu werden."}, + {21, {2001, 40}, {0, 0}, "Wut der Spinne 1", "Spinnen, die normalerweise friedlich in der Yongbi-Wüste leben, haben angefangen, Reisende anzugreifen und zu töten. Abgesehen davon, dass die Betroffenen wenig erfreut sind, haben diese Angriffe unangenehme Auswirkungen auf die Handelsbeziehungen im Reich. Sorge bitte dafür, dass das aufhört."}, + {22, {2002, 40}, {0, 0}, "Wut der Spinne 2", "Spinnen, die normalerweise friedlich in der Yongbi-Wüste leben, haben angefangen, Reisende anzugreifen und zu töten. Abgesehen davon, dass die Betroffenen wenig erfreut sind, haben diese Angriffe unangenehme Auswirkungen auf die Handelsbeziehungen im Reich. Sorge bitte dafür, dass das aufhört."}, + {23, {2302, 40}, {2303, 30}, "Das Geheimnis des Geisterwaldes", "Nachforschungen haben ergeben, dass der Geisterwald ein Gebiet ist, das von Geisterbaumstumpf und Dryade dominiert wird. Wenn du sie vernichtest, kannst du vielleicht verhindern, dass sich die Geisterbäume weiter ausbreiten."}, + {24, {2301, 50}, {0, 0}, "Untersuche die Geisterbäume", "Sie stehen wie normale, etwas finster aussehende Bäume in der Landschaft herum – doch dann werden sie plötzlich lebendig und greifen Tiere und Menschen an. Finde heraus, wie die Geisterbäume vernichtet werden können."}, + {25, {2204, 40}, {0, 0}, "Erforsche die Flammen", "Die Flammen sind unglaublich brutal. Sie ergötzen sich am Schmerz der Menschen, deren Haut sie gerade verzehren. Wir haben noch keine Ahnung, wie wir sie ausschalten können. Kannst du mehr über diese Flammen herausfinden?"}, + {26, {2202, 45}, {0, 0}, "Flammengeist! Seine Identität", "Eine Gruppe, die Kampftiger jagen sollte, wurde selbst von noch unbekannten Gegnern vernichtet. Es heißt, dass diese Gegner wie brennende Mädchen aussehen, also finde heraus, worum es sich handelt."}, + {27, {2205, 60}, {0, 0}, "Flammenkrieger", "Vor Kurzem wurde das Kind eines Adligen, das sich in das Feuerland begab, von einem Flammenkrieger erschlagen. Wenn du die Flammenkrieger tötest, erhältst du eine Belohnung. Warum forderst du sie nicht heraus?"}, + {28, {2201, 60}, {2203, 40}, "Reduziere die Zahl der Kampftiger", "Jetzt, da wir die Feuergeister bekämpfen können, müssen wir sie im offenen Kampf komplett vernichten. Diese Aufgabe wird vom Militär übernommen, aber um mit voller Kampfstärke zu den Feuergeistern durchdringen zu können, brauchen wir eine Einfallschneise. Bitte sorge dafür, dass uns keine Kampftiger in die Quere kommen."}, + {29, {2201, 45}, {0, 0}, "Doyyumhwan erforschen", "Doyyumhwan ist ein Lavagebiet, das von noch unbekannten Monstern bevölkert wird. Wir müssen diese Region erforschen. Kannst du uns dabei helfen?"} + } + return quests + end + function expertquests() + local quests = { + {1, {106, 35}, {0, 0}, "Auftauchen der Grauwölfe 1", "Hast du von den Grauwölfen gehört? Sie waren meist alleine unterwegs, aber durch den Einfluss des bösen Chi in letzter Zeit haben sie begonnen, in Rudeln Reisende zu jagen. Kannst Du diese Grauwölfe ausschalten? Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {2, {107, 30}, {0, 0}, "Auftauchen der Grauwölfe 2", "Hast du von den Alpha-Grauwölfen gehört? Sie waren meist alleine unterwegs, aber durch den Einfluss des bösen Chi in letzter Zeit haben sie begonnen, in Rudeln Reisende zu jagen. Kannst Du diese Alpha-Grauwölfe ausschalten? Du wirst sicher belohnt werden.", "Missionsbuch erfüllt!"}, + {3, {104, 35}, {105, 25}, "Der Sturm der Blauwölfe", "Hast Du schon vom Sturm der Blauwölfe gehört? Das bezieht sich auf die Untaten der Blauwölfe in letzter Zeit. Sie vernichten alles was ihnen im Weg ist, als wären sie ein Sturm aus Pelz und Zähnen. Kannst Du diesen Sturm der Blauwölfe bändigen?", "Missionsbuch erfüllt!"}, + } + return quests + end + + function einfache_belohnungen_item() + local item = { + -- Item // Count + { 25040, 1 }, -- Segensschriftrolle + { 71084, 20 }, -- Gegenstand verzaubern + { 71085, 5 }, -- Gegenstand verstärken + { 71151, 30 }, -- Grüner verzaubern + { 71152, 10 }, -- Grüner verstärken + { 70024, 1 }, -- Segenskugel + { 50300, 3}, -- Fertigkeitsbuch + { 50050, 3}, -- Pferdemedaille + { 50008, 1}, -- Goldener Schlüssel + { 50009, 1}, -- Silberner Schlüssel + } + return item + end + function einfache_belohnungen_exp() + local experience = { + -- EXP // Chance + { 10000, 20 }, + { 20000, 30 }, + { 40000, 35 }, + { 75000, 10 }, + { 100000, 5 }, + } + return experience + end + function einfache_belohnungen_gold() + local gold ={ + -- Gold // Chance + { 200000, 20 }, + { 400000, 30 }, + { 600000, 35 }, + { 800000, 10 }, + { 1000000, 5 }, + } + return gold + end + + function mittlere_belohnungen_item() + local item = { + -- Item // Count + { 50513, 1 }, -- Seelenstein + { 25040, 1 }, -- Segensschriftrolle + { 71021, 1 }, -- Schriftrolle des Krieges + { 71032, 1 }, -- Schriftrolle des Drachen + { 71084, 20 }, -- Gegenstand verzaubern + { 71085, 5 }, -- Gegenstand verstärken + { 70024, 1 }, -- Segenskugel + { 70102, 10 }, -- Zen-Bohne + { 71107, 1 }, -- Frucht des Lebens + { 50300, 5}, -- Fertigkeitsbuch + { 71015, 1}, -- Erfahrungsring + { 71016, 1}, -- Handschuh des Diebes + { 71001, 3}, -- Exorzismus-Schriftrolle + { 71094, 3}, -- Konzentriertes Lesen + { 71095, 3}, -- Passierschein + { 71153, 1}, -- Trank der Weisheit + } + return item + end + function mittlere_belohnungen_exp() + local experience = { + -- EXP // Chance + { 50000, 20 }, + { 100000, 30 }, + { 200000, 35 }, + { 350000, 10 }, + { 500000, 5 }, + } + return experience + end + function mittlere_belohnungen_gold() + local gold ={ + -- Gold // Chance + { 300000, 20 }, + { 500000, 35 }, + { 700000, 30 }, + { 1000000, 10 }, + { 1500000, 5 }, + } + return gold + end + + function schwere_belohnungen_item() + local item = { + -- Item // Count + { 50513, 1 }, -- Seelenstein + { 25041, 1 }, -- Magischer Stein + { 25040, 3 }, -- Segensschriftrolle + { 71021, 1 }, -- Schriftrolle des Krieges + { 71032, 1 }, -- Schriftrolle des Drachen + { 70039, 1 }, -- Schmiedehandbuch + { 71084, 30 }, -- Gegenstand verzaubern + { 71085, 10 }, -- Gegenstand verstärken + { 70024, 3 }, -- Segenskugel + { 70102, 10 }, -- Zen-Bohne + { 71107, 1 }, -- Frucht des Lebens + { 71108, 20 }, -- Granatapfelsaft + { 50300, 5}, -- Fertigkeitsbuch + { 71015, 1}, -- Erfahrungsring + { 71016, 1}, -- Handschuh des Diebes + { 71001, 3}, -- Exorzismus-Schriftrolle + { 71094, 3}, -- Konzentriertes Lesen + { 71095, 3}, -- Passierschein + { 71110, 1}, -- Pferdezucker + { 71153, 1}, -- Trank der Weisheit + { 71044, 3}, -- Kritischer Kampf + { 71044, 3}, -- Durchbohrender Kampf + } + return item + end + function schwere_belohnungen_exp() + local experience = { + -- EXP // Chance + { 100000, 20 }, + { 200000, 30 }, + { 300000, 35 }, + { 500000, 10 }, + { 750000, 5 }, + } + return experience + end + function schwere_belohnungen_gold() + local gold ={ + -- Gold // Chance + { 500000, 20 }, + { 750000, 50 }, + { 1000000, 25 }, + { 1500000, 3 }, + { 2500000, 2 }, + } + return gold + end + + function experten_belohnungen_item() + local item = { + -- Item // Count + { 50513, 1 }, -- Seelenstein + { 50514, 1 }, -- Seelenstein+ + { 72951, 1 }, -- Halbmondring (3h) + { 72054, 1 }, -- Lolli (3h) + { 72057, 1 }, -- Amulett der Ewigen Liebe (3h) + { 72060, 1 }, -- Ring der Freude (3h) + { 72063, 1 }, -- Ring der Verteidigung (3h) + { 72066, 1 }, -- Ring des Angriffs (3h) + { 25041, 1 }, -- Magischer Stein + { 25040, 5 }, -- Segensschriftrolle + { 71021, 1 }, -- Schriftrolle des Krieges + { 71032, 1 }, -- Schriftrolle des Drachen + { 70039, 1 }, -- Schmiedehandbuch + { 71084, 30 }, -- Gegenstand verzaubern + { 71085, 10 }, -- Gegenstand verstärken + { 70024, 5 }, -- Segenskugel + { 70102, 10 }, -- Zen-Bohne + { 71107, 1 }, -- Frucht des Lebens + { 71108, 20 }, -- Granatapfelsaft + { 52701, 1 }, -- Löwen-Urkunde + { 52702, 1 }, -- Tiger-Urkunde + { 52703, 1 }, -- Keiler-Urkunde + { 52704, 1 }, -- Wolfs-Urkunde + { 52705, 1 }, -- Rentier-Urkunde(m) + { 52706, 1 }, -- Rentier-Urkunde(w) + { 52707, 1 }, -- Dragor-Urkunde + { 38100, 1 }, -- Powersnack (7 Tage) + { 50067, 1 }, -- Rolle der Evolution + { 50068, 1 }, -- Rolle der Mutation + { 99990, 3 }, -- Goldene Muschel + } + return item + end + function experten_belohnungen_exp() + local experience = { + -- EXP // Chance + { 300000, 20 }, + { 400000, 30 }, + { 500000, 35 }, + { 1000000, 10 }, + { 2000000, 5 }, + } + return experience + end + function experten_belohnungen_gold() + local gold ={ + -- Gold // Chance + { 1000000, 20 }, + { 2000000, 50 }, + { 3000000, 25 }, + { 4000000, 3 }, + { 5000000, 2 }, + } + return gold + end + + when 50307.use begin + local liste = missionbooks.leichtequests() + local rnd = number(1, table.getn(liste)) + if pc.getqf("Has_Mission") == 0 then + say_title("Leichtes Missionsbuch:") + say("") + say("Möchtest du das leichte Missionsbuch") + say("einlösen um eine Aufgabe zu erhalten?") + say("") + say_yellow("Du kannst die Mission nicht mehr abbrechen!") + say("") + local start = select("Starten","Abbrechen") + if start == 1 then + pc.setqf("Has_Mission", 1) + pc.setqf("QUEST_ART", 1) + pc.setqf("QUEST_ID", rnd) + pc.setqf("MOB_ID_1", liste[rnd][2][1]) + pc.setqf("MOB_ANZAHL_1", liste[rnd][2][2]) + if liste[rnd][3][1] != 0 then + pc.setqf("MOB_ID_2", liste[rnd][3][1]) + pc.setqf("MOB_ANZAHL_2", liste[rnd][3][2]) + end + pc.remove_item(50307, 1) + send_letter(liste[rnd][4]) + else + return + end + else + say_title("Laufende Missionsbuchquest") + say("") + say("Du hast bereits einen Missionsbuchauftrag") + say("angenommen. Du kannst nur dann einen anderen") + say("Auftrag starten, wenn du den jetzigen Auftrag") + say("vollendest oder abbrichst.") + end + end + when 50308.use begin + local liste = missionbooks.normalequests() + local rnd = number(1, table.getn(liste)) + if pc.getqf("Has_Mission") == 0 then + say_title("Normales Missionsbuch:") + say("") + say("Möchtest du das leichte Missionsbuch") + say("einlösen um eine Aufgabe zu erhalten?") + say("") + say_yellow("Du kannst die Mission nicht mehr abbrechen!") + say("") + local start = select("Starten","Abbrechen") + if start == 1 then + pc.setqf("Has_Mission", 1) + pc.setqf("Is_Finished", 0) + pc.setqf("QUEST_ART", 2) + pc.setqf("QUEST_ID", rnd) + pc.setqf("MOB_ID_1", liste[rnd][2][1]) + pc.setqf("MOB_ANZAHL_1", liste[rnd][2][2]) + if liste[rnd][3][1] != 0 then + pc.setqf("MOB_ID_2", liste[rnd][3][1]) + pc.setqf("MOB_ANZAHL_2", liste[rnd][3][2]) + end + pc.remove_item(50308, 1) + send_letter(liste[rnd][4]) + say_title(liste[quest_id][4]) + else + return + end + else + say_title("Laufende Missionsbuchquest") + say("") + say("Du hast bereits einen Missionsbuchauftrag") + say("angenommen. Du kannst nur dann einen anderen") + say("Auftrag starten, wenn du den jetzigen Auftrag") + say("vollendest oder abbrichst.") + end + end + when 50309.use begin + local liste = missionbooks.schwerequests() + local rnd = number(1, table.getn(liste)) + if pc.getqf("Has_Mission") == 0 then + say_title("Schweres Missionsbuch:") + say("") + say("Möchtest du das schwere Missionsbuch") + say("einlösen um eine Aufgabe zu erhalten?") + say("") + say_yellow("Du kannst die Mission nicht mehr abbrechen!") + say("") + local start = select("Starten","Abbrechen") + if start == 1 then + pc.setqf("Has_Mission", 1) + pc.setqf("Is_Finished", 0) + pc.setqf("QUEST_ART", 3) + pc.setqf("QUEST_ID", rnd) + pc.setqf("MOB_ID_1", liste[rnd][2][1]) + pc.setqf("MOB_ANZAHL_1", liste[rnd][2][2]) + if liste[rnd][3][1] != 0 then + pc.setqf("MOB_ID_2", liste[rnd][3][1]) + pc.setqf("MOB_ANZAHL_2", liste[rnd][3][2]) + end + pc.remove_item(50309, 1) + send_letter(liste[rnd][4]) + say_title(liste[quest_id][4]) + else + return + end + else + say_title("Laufende Missionsbuchquest") + say("") + say("Du hast bereits einen Missionsbuchauftrag") + say("angenommen. Du kannst nur dann einen anderen") + say("Auftrag starten, wenn du den jetzigen Auftrag") + say("vollendest oder abbrichst.") + end + end + when 50310.use begin + local liste = missionbooks.expertquests() + local rnd = number(1, table.getn(liste)) + if pc.getqf("Has_Mission") == 0 then + say_title("Experten Missionsbuch:") + say("") + say("Möchtest du das experten Missionsbuch") + say("einlösen um eine Aufgabe zu erhalten?") + say("") + say_yellow("Das Experten Missionsbuch hat ein 20min.") + say_yellow("Zeitlimit für das absolvieren der Aufgabe!") + say("") + say_yellow("Du kannst die Mission nicht mehr abbrechen!") + say("") + local start = select("Starten","Abbrechen") + if start == 1 then + pc.setqf("Has_Mission", 1) + pc.setqf("MISSION_TIME_20", get_time()+2*60) + pc.setqf("Is_Finished", 0) + pc.setqf("QUEST_ART", 4) + pc.setqf("QUEST_ID", rnd) + pc.setqf("MOB_ID_1", liste[rnd][2][1]) + pc.setqf("MOB_ANZAHL_1", liste[rnd][2][2]) + if liste[rnd][3][1] != 0 then + pc.setqf("MOB_ID_2", liste[rnd][3][1]) + pc.setqf("MOB_ANZAHL_2", liste[rnd][3][2]) + end + pc.remove_item(50310, 1) + send_letter(liste[rnd][4]) + q.set_clock("Verbl. Zeit:", pc.getqf("MISSION_TIME_20")-get_time()) + else + return + end + else + say_title("Laufende Missionsbuchquest") + say("") + say("Du hast bereits einen Missionsbuchauftrag") + say("angenommen. Du kannst nur dann einen anderen") + say("Auftrag starten, wenn du den jetzigen Auftrag") + say("vollendest oder abbrichst.") + end + end + when letter begin + if pc.getqf("Has_Mission") == 1 then + local liste + local quest_art = pc.getqf("QUEST_ART") + local quest_id = pc.getqf("QUEST_ID") + if quest_art == 1 then + liste = missionbooks.leichtequests() + elseif quest_art == 2 then + liste = missionbooks.normalequests() + elseif quest_art == 3 then + liste = missionbooks.schwerequests() + elseif quest_art == 4 then + liste = missionbooks.expertquests() + end + send_letter(liste[quest_id][4]) + end + end + when button or info begin + if pc.getqf("QUEST_ART") == 4 and get_time()>=pc.getqf("MISSION_TIME_20") then + say_title("Missionsbuch Experte:") + say("") + say("Du hast die Aufgabe nicht geschafft innerhalb") + say("der 20 Minuten.") + say("") + say("Versuche es später mit einer neuen Mission erneut!") + + pc.delqf("Is_Finished") + pc.delqf("Has_Mission") + pc.delqf("MOB_ID_1") + pc.delqf("MOB_ID_2") + pc.delqf("MOB_ANZAHL_2") + pc.delqf("MOB_ANZAHL_1") + pc.delqf("QUEST_ID") + pc.delqf("QUEST_ART") + cleartimer("MISSION_TIME_20") + clear_letter() + end + if pc.getqf("Has_Mission") == 1 then + local liste + local belohnung + local quest_art = pc.getqf("QUEST_ART") + local quest_id = pc.getqf("QUEST_ID") + local mission_time = math.floor(((pc.getqf("MISSION_TIME_20") - get_time()) / 60)+0.5) + if quest_art == 1 then + liste = missionbooks.leichtequests() + elseif quest_art == 2 then + liste = missionbooks.normalequests() + elseif quest_art == 3 then + liste = missionbooks.schwerequests() + elseif quest_art == 4 then + liste = missionbooks.expertquests() + end + if pc.getqf("Is_Finished") == 0 then + say_title(liste[quest_id][4]) + say("") + say2(liste[quest_id][5]) + say("") + if liste[quest_id][3][1] == 0 then + say_reward("Töte "..liste[quest_id][2][2].." "..mob_name(liste[quest_id][2][1])) + say_reward("(Verbleibend: "..mob_name(pc.getqf("MOB_ID_1")).." "..pc.getqf("MOB_ANZAHL_1")..")") + else + say_reward("Töte "..liste[quest_id][2][2].." "..mob_name(liste[quest_id][2][1]).." und "..liste[quest_id][3][2].." "..mob_name(liste[quest_id][3][1])) + say_reward("(Verbleibend: "..mob_name(pc.getqf("MOB_ID_1")).." "..pc.getqf("MOB_ANZAHL_1").." und "..mob_name(pc.getqf("MOB_ID_2")).." "..pc.getqf("MOB_ANZAHL_2")..")") + end + say("") + if pc.getqf("QUEST_ART") == 4 then + say_green("Du hast noch "..mission_time.." Minuten zeit!") + say("") + end + -- if select("Weiter", "Abbrechen") == 2 then + -- say_title(liste[quest_id][4].." abbrechen") + -- say("Möchtest du diesen Auftrag wirklich abbrechen?") + -- if select("Ja, abbrechen", "Nein") == 1 then + -- say_title(liste[quest_id][4]) + -- say_title("Auftrag abgebrochen.") + -- pc.delqf("Is_Finished") + -- pc.delqf("Has_Mission") + -- pc.delqf("MOB_ID_1") + -- pc.delqf("MOB_ID_2") + -- pc.delqf("MOB_ANZAHL_2") + -- pc.delqf("MOB_ANZAHL_1") + -- pc.delqf("QUEST_ID") + -- pc.delqf("QUEST_ART") + -- end + -- end + else + say_title(liste[quest_id][4].. " abgeschlossen.") + say("") + say_reward("Du erhälst:") + say("") + if quest_art == 1 then + belohnung_item = missionbooks.einfache_belohnungen_item() + belohnung_exp = missionbooks.einfache_belohnungen_exp() + belohnung_gold = missionbooks.einfache_belohnungen_gold() + elseif quest_art == 2 then + belohnung_item = missionbooks.mittlere_belohnungen_item() + belohnung_exp = missionbooks.mittlere_belohnungen_exp() + belohnung_gold = missionbooks.mittlere_belohnungen_gold() + elseif quest_art == 3 then + belohnung_item = missionbooks.schwere_belohnungen_item() + belohnung_exp = missionbooks.schwere_belohnungen_exp() + belohnung_gold = missionbooks.schwere_belohnungen_gold() + elseif quest_art == 4 then + belohnung_item = missionbooks.experten_belohnungen_item() + belohnung_exp = missionbooks.experten_belohnungen_exp() + belohnung_gold = missionbooks.experten_belohnungen_gold() + end + + local random_item = number(1, table.getn(belohnung_item)) + + ---------- + -- ITEM -- + ---------- + pc.give_item2(belohnung_item[random_item][1], belohnung_item[random_item][2]) + say_reward(belohnung_item[random_item][2].."x "..item_name(belohnung_item[random_item][1])) + + --------- + -- EXP -- + --------- + rand_exp = number (0,99) + local i = 0 + for i = 1, table.getn(belohnung_exp) do + if rand_exp < belohnung_exp[i][2] then + say_reward(numtomoney(belohnung_exp[i][1]).." Erfahrungspunkte") + pc.give_exp2(belohnung_exp[i][1]) + break + else + rand_exp = rand_exp - belohnung_exp[i][2] + end + end + + ---------- + -- GOLD -- + ---------- + rand_gold = number (0,99) + i = 0 + for i = 1, table.getn(belohnung_gold) do + if rand_gold < belohnung_gold[i][2] then + say_reward(numtomoney(belohnung_gold[i][1]).." Yang") + pc.change_money(belohnung_gold[i][1]) + break + else + rand_gold = rand_gold - belohnung_gold[i][2] + end + end + + pc.delqf("Is_Finished") + pc.delqf("Has_Mission") + pc.delqf("MOB_ID_1") + pc.delqf("MOB_ID_2") + pc.delqf("MOB_ANZAHL_2") + pc.delqf("MOB_ANZAHL_1") + pc.delqf("QUEST_ID") + pc.delqf("QUEST_ART") + cleartimer("MISSION_TIME_20") + clear_letter() + end + end + end + when login begin + if pc.getqf("Has_Mission") == 1 then + local count = pc.getqf("MOB_ANZAHL_1") + q.set_counter(mob_name(pc.getqf("MOB_ID_1")), count) + if pc.getqf("QUEST_ART") == 4 then + if get_time()>=pc.getqf("MISSION_TIME_20") then + cleartimer("MISSION_TIME_20") + clear_letter() + set_state(failure_expert_quest) + else + q.set_clock("Verbl. Zeit:", pc.getqf("MISSION_TIME_20")-get_time()) + end + end + end + end + when kill with pc.getqf("Has_Mission") == 1 begin + local liste + local quest_art = pc.getqf("QUEST_ART") + local quest_id = pc.getqf("QUEST_ID") + if quest_art == 1 then + liste = missionbooks.leichtequests() + elseif quest_art == 2 then + liste = missionbooks.normalequests() + elseif quest_art == 3 then + liste = missionbooks.schwerequests() + elseif quest_art == 4 then + liste = missionbooks.expertquests() + end + if liste[quest_id][3][1] == 0 then + if npc.get_race() == pc.getqf("MOB_ID_1") then + local count = pc.getqf("MOB_ANZAHL_1") - 1 + if count >= 0 then + pc.setqf("MOB_ANZAHL_1", count) + q.set_counter(mob_name(pc.getqf("MOB_ID_1")), count) + if pc.getqf("QUEST_ART") == 4 then + if get_time()>=pc.getqf("MISSION_TIME_20") then + cleartimer("MISSION_TIME_20") + clear_letter() + set_state(failure_expert_quest) + end + end + if count == 0 then + pc.setqf("Is_Finished", 1) + send_letter(liste[quest_id][6]) + end + end + end + else + if npc.get_race() == pc.getqf("MOB_ID_1") then + local count = pc.getqf("MOB_ANZAHL_1") - 1 + local count2 = pc.getqf("MOB_ANZAHL_2") + if count >= 0 then + pc.setqf("MOB_ANZAHL_1", count) + q.set_counter(mob_name(pc.getqf("MOB_ID_1")), count) + if pc.getqf("QUEST_ART") == 4 then + if get_time()>=pc.getqf("MISSION_TIME_20") then + cleartimer("MISSION_TIME_20") + clear_letter() + set_state(failure_expert_quest) + end + end + if count == 0 and count2 == 0 then + pc.setqf("Is_Finished", 1) + send_letter(liste[quest_id][6]) + end + end + end + if npc.get_race() == pc.getqf("MOB_ID_2") then + local count2 = pc.getqf("MOB_ANZAHL_2") - 1 + local count = pc.getqf("MOB_ANZAHL_1") + if count2 >= 0 then + pc.setqf("MOB_ANZAHL_2", count2) + q.set_counter(mob_name(pc.getqf("MOB_ID_2")), count2) + if pc.getqf("QUEST_ART") == 4 then + if get_time()>=pc.getqf("MISSION_TIME_20") then + cleartimer("MISSION_TIME_20") + clear_letter() + set_state(failure_expert_quest) + end + end + if count2 == 0 and count == 0 then + pc.setqf("Is_Finished", 1) + send_letter(liste[quest_id][6]) + end + end + end + end + end + end + + state failure_expert_quest begin + when letter begin + send_letter("Mission gescheitert!") + end + + when button or info begin + say_title("Missionsbuch Experte:") + say("") + say("Du hast die Aufgabe nicht geschafft innerhalb") + say("der 20 Minuten.") + say("") + say("Versuche es später mit einer neuen Mission erneut!") + + pc.delqf("Is_Finished") + pc.delqf("Has_Mission") + pc.delqf("MOB_ID_1") + pc.delqf("MOB_ID_2") + pc.delqf("MOB_ANZAHL_2") + pc.delqf("MOB_ANZAHL_1") + pc.delqf("QUEST_ID") + pc.delqf("QUEST_ART") + clear_letter() + set_state(start) + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/rainbowstone.lua b/main/srv1/share/locale/germany/quest/quest_item/item_rainbowstone.lua similarity index 85% rename from main/srv1/share/locale/germany/quest/rainbowstone.lua rename to main/srv1/share/locale/germany/quest/quest_item/item_rainbowstone.lua index 436b9b7d..0a002ba9 100644 --- a/main/srv1/share/locale/germany/quest/rainbowstone.lua +++ b/main/srv1/share/locale/germany/quest/quest_item/item_rainbowstone.lua @@ -45,8 +45,8 @@ quest rainbowstone begin say_title("Regenbogenstein:") say_reward("Dieser Stein ermöglicht es dir,") - say_reward("deine Fertigkeit ab G1 auf P zu skillen!") - say(string.format("%sauf Perfekten Meister?", name)) + say_reward("deine Fertigkeit ab G1 auf P zu perfektionieren!") + say(string.format("%s auf Perfekten Meister?", name)) say("") local s = select("Ja", "Nein") @@ -69,9 +69,9 @@ quest rainbowstone begin if 1 == c then pc.set_skill_level((vnum) ,40) - say_reward("Deine Fertigkeit wurde auf P gesetzt.") - say_reward("Viel Spaß weiterhin auf unserem Server!") - notice_all(tag(SERVER_COLOR, "[Server]") .. " " .. clickable_pn_tag(NAME_COLOR, pc.get_name()) .. " " .. tag(TEXT_COLOR, string.format("hat erfolgreich %sperfektioniert!", name))) + say_reward("Deine Fertigkeit wurde perfektioniert!") + say_reward("Viel Spaß weiterhin auf unserem Server.") + notice_all(tag(SERVER_COLOR, "[Server]") .. " " .. clickable_pn_tag(NAME_COLOR, pc.get_name()) .. " " .. tag(TEXT_COLOR, string.format("hat erfolgreich %s perfektioniert!", name))) pc.removeitem("50512", 1) end end diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_reset_skill.quest b/main/srv1/share/locale/germany/quest/quest_item/item_reset_skill.quest new file mode 100644 index 00000000..4d65faf5 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_reset_skill.quest @@ -0,0 +1,88 @@ +quest reset_scroll begin + state start begin + when 71002.use or 76001.use begin + say_title(gameforge.reset_scroll._10_sayTitle) + + say(gameforge.reset_scroll._20_say) + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if 2 == s then + return + end + + say_title(gameforge.reset_scroll._30_sayTitle) + + say(gameforge.reset_scroll._40_say) + local c = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if 2 == c then + return + end + + char_log(0, "RESET_ALL", "USE_ITEM(71002 or 76001)") + + item.remove() + + char_log(0, "RESET_ALL", "RESET_STAT_POINTS") + pc.reset_point() + char_log(0, "RESET_ALL", "RESET_END") + end + + when 71003.use begin + say_title(gameforge.reset_scroll._50_sayTitle) + say(gameforge.reset_scroll._60_sayReward) + wait() + + local result = BuildSkillList(pc.get_job(), pc.get_skill_group()) + + local vnum_list = result[1] + local name_list = result[2] + + if table.getn(vnum_list) < 2 then + say_title(gameforge.reset_scroll._50_sayTitle) + say(gameforge.reset_scroll._70_say) + return + end + + say_title(gameforge.reset_scroll._50_sayTitle) + say(gameforge.reset_scroll._80_say) + local i = select_table(name_list) + + if table.getn(name_list) == i then + return + end + + local name = name_list[i] + local vnum = vnum_list[i] + + say_title(gameforge.reset_scroll._50_sayTitle) + + say(gameforge.reset_scroll._90_sayReward) + say_reward(string.format(gameforge.reset_scroll._100_say, name)) + + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + if 2 == s then + return + end + + say_title(gameforge.reset_scroll._110_sayTitle) + + say(gameforge.reset_scroll._120_say) + local c = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + + if 2 == c then + return + end + + char_log(0, "RESET_ONE_SKILL", "USE_ITEM(71003)") + pc.remove_item(71003) + + char_log(0, "RESET_ONE_SKILL", "RESET_SKILL["..name.."]") + pc.clear_one_skill(vnum) + + char_log(0, "RESET_ONE_SKILL", "APPLY_17MASTER_BONUS") + pc.setqf("force_to_master_skill", 1) + + say_title(gameforge.reset_scroll._140_sayTitle) + say_reward(string.format(gameforge.reset_scroll._150_say, name)) + end + end +end diff --git a/main/srv1/share/locale/germany/quest/quest_item/item_reset_status.quest b/main/srv1/share/locale/germany/quest/quest_item/item_reset_status.quest new file mode 100644 index 00000000..d3a3f24e --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_item/item_reset_status.quest @@ -0,0 +1,38 @@ +quest reset_status begin + state start begin + when 71103.use or 71104.use or 71105.use or 71106.use begin + local name = { gameforge.reset_status._10_say, gameforge.reset_status._20_say, gameforge.reset_status._30_say, gameforge.reset_status._40_say} + local idx = item.get_vnum() - 71103 + local func = { pc.get_ht, pc.get_iq, pc.get_st, pc.get_dx } + + if func[idx+1]() == 1 then + say_title(gameforge.reset_scroll._10_sayTitle) + say(name[idx+1]..gameforge.reset_status._50_say) + say(name[idx+1]..gameforge.reset_status._60_say) + say("") + return + end + + say_title(gameforge.reset_scroll._10_sayTitle) + say(name[idx+1]..gameforge.reset_status._70_say) + say(gameforge.reset_status._80_say) + say("") + say(gameforge.reset_status._90_say) + + say("") + + local s = select(gameforge.reset_status._100_say, gameforge.reset_status._110_say) + + if s == 1 then + if pc.reset_status( idx ) == true then + say_title(gameforge.reset_scroll._10_sayTitle) + say(gameforge.reset_status._120_say) + pc.remove_item(item.get_vnum()) + else + say_title(gameforge.reset_scroll._10_sayTitle) + say(gameforge.reset_status._130_say) + end + end + end + end +end diff --git a/main/srv1/share/locale/germany/quest/soulstone.lua b/main/srv1/share/locale/germany/quest/quest_item/item_soulstone.lua similarity index 69% rename from main/srv1/share/locale/germany/quest/soulstone.lua rename to main/srv1/share/locale/germany/quest/quest_item/item_soulstone.lua index 846254b7..e31f443f 100644 --- a/main/srv1/share/locale/germany/quest/soulstone.lua +++ b/main/srv1/share/locale/germany/quest/quest_item/item_soulstone.lua @@ -10,12 +10,13 @@ quest soulstone begin end if get_time()< pc.getqf("next_time")then if pc.is_skill_book_no_delay()then - say("Mit diesem Stein kannst du deine Fertigkeiten") - say("perfektionieren.") + say("Da du die Exorzismus-Schriftrolle gelesen hast,") + say("kannst du weiter trainieren, ohne eine Pause") + say("einlegen zu müssen.") wait() - else + else say("Du kannst deine Fertigkeiten noch nicht weiter") - say("Trainieren. Komm später wieder.") + say("trainieren. Komm später wieder.") return end end @@ -40,7 +41,7 @@ quest soulstone begin 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("%sFertigkeitstraining", skill_name) + local title = string.format("%s", skill_name) say_title(title) say("") say("Das Großmeistertraining verbraucht Rangpunkte.") @@ -52,12 +53,14 @@ quest soulstone begin return end if cur_alignment < 0 then - csay.pink( string.format("Benötigte Rangpunkte: %d" , need_alignment * 2 )) + say_reward( string.format("Benötigte Rangpunkte: %d" , need_alignment * 2 )) need_alignment = need_alignment * 2 - elseif cur_alignment < need_alignment then - csay.pink( string.format("Benötigte Rangpunkte: %d" , need_alignment )) + elseif cur_alignment < need_alignment then + say_reward( string.format("Benötigte Rangpunkte: %d" , need_alignment )) + say_reward("Wenn du jetzt trainierst, werden deine") + say_reward("Rangpunkte in den negativen Bereich fallen") else - csay.pink( string.format("Benötigte Rangpunkte: %d" , need_alignment )) + say_reward( string.format("Benötigte Rangpunkte: %d" , need_alignment )) end say("") local s = select("Weiter" , "Abbrechen") @@ -74,14 +77,14 @@ quest soulstone begin say("willst, gib das Wort 'trainieren' in die") say("Befehlszeile ein.") say("") - csay.pink("trainieren") + say_reward("trainieren") + say("Willst du nicht trainieren, drücke einfach") + say("'ENTER'.") local s = input() if s ~= "trainieren" then return end - say("Willst du nicht trainieren, drücke einfach") - say("'ENTER'.") end if get_time()< pc.getqf("next_time")then if pc.is_skill_book_no_delay()then @@ -92,28 +95,37 @@ quest soulstone begin if need_alignment > 0 then if pc.learn_grand_master_skill(skill_vnum) then pc.change_alignment(-need_alignment) - csay.pink(string.format("%s Erfolgreich!", title)) + say_title(string.format("%s Großmeister Fertigkeitstraining", title)) + say_reward("Erfolgreich!") if 40 == pc.get_skill_level( skill_vnum ) then - say("Herzlichen Glückwunsch!") - notice_all(tag(SERVER_COLOR, "[Server]") .. " " .. clickable_pn_tag(NAME_COLOR, pc.get_name()) .. " " .. tag(TEXT_COLOR, string.format("hat erfolgreich %sperfektioniert!", skill_name))) - else - say(string.format("Deine Fertigkeit %s hat", skill_name)) - say(string.format("Stufe G%d erreicht!", (skill_level - 30 + 1))) + say("Herzlichen Glückwunsch! Du hast es geschafft.") + say(string.format("%s ist nun auf Perfekter Meister.", title)) + say("") + say("Dies bedeutet, dass du diese Fertigkeit nun") + say("perfekt beherrschst und nicht mehr weiter") + say("verbessern kannst.") + notice_all(tag(SERVER_COLOR, "[Server]") .. " " .. clickable_pn_tag(NAME_COLOR, pc.get_name()) .. " " .. tag(TEXT_COLOR, string.format("hat erfolgreich %s perfektioniert!", skill_name))) + else + say("Herzlichen Glückwunsch! Du hast es geschafft.") + say("Durch das Fertigkeitstraining der Großmeister") + say(string.format("stieg %s auf Level %d.", skill_name, (skill_level - 30 + 2))) + + --say(string.format("Deine Fertigkeit %s hat", skill_name)) + --say(string.format("Stufe G%d erreicht!", (skill_level - 30 + 1))) end say("") - say("Du hast es geschafft.") - say("ist nun auf Perfekter Meister.") - csay.pink("Du hast dein Level erfolgreich gesteigert!") + say_reward("Du hast dein Level erfolgreich gesteigert!") say_reward( string.format("Du hast %d Rangpunkte verbraucht" , need_alignment )) say("") else - csay.pink(string.format("%s Fehlgeschlagen!" , title )) + say_title(string.format("%s Großmeister Fertigkeitstraining" , title )) + say_reward("Fehlgeschlagen!") say("") say("Du hast deine Fertigkeiten nicht verbessern") say("können.") say("") - csay.pink("Du hast einige Rangpunkte verloren") - csay.pink("und den Seelenstein verbraucht.") + say_reward("Du hast einige Rangpunkte verloren") + say_reward("und den Seelenstein verbraucht.") pc.change_alignment(-number(need_alignment/3 , need_alignment/2)) end diff --git a/main/srv1/share/locale/germany/quest/warpring.lua b/main/srv1/share/locale/germany/quest/quest_item/item_warpring.lua similarity index 99% rename from main/srv1/share/locale/germany/quest/warpring.lua rename to main/srv1/share/locale/germany/quest/quest_item/item_warpring.lua index 8c072655..02d7bbac 100644 --- a/main/srv1/share/locale/germany/quest/warpring.lua +++ b/main/srv1/share/locale/germany/quest/quest_item/item_warpring.lua @@ -1,6 +1,6 @@ quest warpring begin state start begin - when button begin + when button or 9012.chat."Teleportieren" begin local warp = {--koord Pflicht, rest optional! { name = "Map 1", diff --git a/main/srv1/share/locale/germany/quest/quest_list b/main/srv1/share/locale/germany/quest/quest_list index 84270e79..99a4a6b6 100755 --- a/main/srv1/share/locale/germany/quest/quest_list +++ b/main/srv1/share/locale/germany/quest/quest_list @@ -3,43 +3,61 @@ ### OR ## python pre_qc.py -ac +quest_announcements/chest_beginer.lua +quest_announcements/first_login.lua +quest_announcements/level_100_notice.lua +quest_announcements/refine_item_lv9_notice.lua -GILDE/Gilden_Npcs.quest -GILDE/Gilden_Rangliste.quest -GILDE/Gilden_Verwaltung.quest -GILDE/Gildenaltarbau.quest -GILDE/Gildenerstellung.quest -GILDE/Gildenkrieg_beitreten.quest -GILDE/Gildenkriegsliste.quest -GILDE/Gildenlandkauf.quest -GILDE/Gildenleaderwechsel.quest -GILDE/Gildenschmiede.quest - -## READ +quest_guild/guild_building_alter_of_power.quest +quest_guild/guild_building_melt.quest +quest_guild/guild_building_npc.quest +quest_guild/guild_building.quest +quest_guild/guild_create.quest +quest_guild/guild_manage.quest +quest_guild/guild_ranking.quest +quest_guild/guild_war_bet.quest +quest_guild/guild_war_join.quest +quest_guild/guild_war_observer.quest + +quest_horse/horse_examination_01.lua +quest_horse/horse_examination_25.lua +quest_horse/horse_examination_50.lua +quest_horse/horse_examination_75.lua +quest_horse/horse_medaille.lua +quest_horse/horse_menu.lua +quest_horse/horse_summon.lua + +quest_item/item_change_empire.quest +quest_item/item_change_guild_master.quest +quest_item/item_change_name.lua +quest_item/item_change_sex.quest +quest_item/item_dr_voucher.lua +quest_item/item_goldbars.lua +quest_item/item_questscrolls.lua +quest_item/item_rainbowstone.lua +quest_item/item_reset_skill.quest +quest_item/item_reset_status.quest +quest_item/item_soulstone.lua +quest_item/item_warpring.lua + +quest_npc/npc_arena_manager.lua +quest_npc/npc_fisher_buy_fishrod.lua +quest_npc/npc_fisher_refine_fishrod.lua +quest_npc/npc_fortune_telling.lua +quest_npc/npc_hair_shop.lua +quest_npc/npc_information.lua +quest_npc/npc_learn_skill.lua +quest_npc/npc_marriage_manage.quest +quest_npc/npc_skill_reset.lua +quest_npc/npc_smith_crafting.lua +quest_npc/npc_warehouse_item_destroyer.lua +quest_npc/npc_warehouse_shop.lua +quest_npc/npc_warp_spiderdungeon_2.lua + +quest_playerquests/bio.lua + +quest_system/mining_bergbau.lua +#quest_system/oxevent.lua + +adminpannel.quest game_option.quest -pet_system.quest -ride.quest -##sample__guild_make.quest - -## SKIPPED - if commented with "#", it will be skipped just like these: - -# sample__mob_drop_item.quest - -first_login.lua -warpring.lua -horse_summon.lua -skill_group.lua -rainbowstone.lua -warehouse_item_destroyer.lua -warehouse_shop.lua -soulstone.lua -level_info.lua -change_name_item.lua -goldbars.lua -mining.lua -horse_menu.lua -bio.lua -chest_beginer.lua - -refine_item_information.lua -# test.lua diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_arena_manager.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_arena_manager.lua new file mode 100644 index 00000000..3500b686 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_arena_manager.lua @@ -0,0 +1,149 @@ +quest arena_manager begin + state start begin + when 20017.chat.gameforge.arena_manager._10_npcChat begin + if game.get_event_flag("arena_close") > 0 then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._30_say) + return + end + + if not npc.lock() then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._40_say) + return + end + + local useMinLevel = game.get_event_flag("arena_use_min_level") + + if useMinLevel == 0 then + useMinLevel = 25 ; + end + + if pc.get_level() < useMinLevel then + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._50_say, useMinLevel)) + npc.unlock() + return + else + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._60_say) + + local sname = input() + + if sname == "" then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._70_say) + npc.unlock() + return + else + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._80_say, pc.name, sname)) + wait("") + + local opp_vid = find_pc_by_name(sname) + + if opp_vid == 0 then + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._90_say, sname)) + npc.unlock() + return + elseif opp_vid == pc.get_vid() then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._100_say) + npc.unlock() + return + end + + local old = pc. select(opp_vid , opp_vid ) + local opp_level = pc.get_level() + pc. select(old , old ) + + if opp_level < useMinLevel then + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._110_say, useMinLevel)) + npc.unlock() + return + end + if not npc.is_near_vid(opp_vid, 10) then + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._120_say, sname)) + npc.unlock() + return ; + end + + local a = arena.is_in_arena(opp_vid) + if a == 0 then + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._130_say, sname)) + npc.unlock() + return ; + end + say_title(gameforge.arena_manager._140_sayTitle) + say(string.format(gameforge.arena_manager._85_say, pc.name, sname)) + local agree = confirm(opp_vid, string.format(gameforge.arena_manager._87_say, sname, pc.name), 30) + if agree!= CONFIRM_OK then + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._150_say, sname)) + npc.unlock() + return + end + + s = arena.start_duel(sname, 3) + + if s == 0 then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._160_say) + elseif s == 2 then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._170_say) + elseif s == 3 then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._180_say) + end + end + end + npc.unlock() + end + + when 20017.chat.gameforge.arena_manager._190_npcChat begin + local g = arena.get_duel_list() + local arena_name = {} + local arena_observer = {} + + table.foreachi(g, + function(n, p) + arena_name[n] = string.format(gameforge.arena_manager._195_say, p[1], p[2]) + arena_observer[n] = { p[3], p[4], p[5] } + end + ) + + table.insert(arena_name, gameforge.arena_manager._200_tableInsert) + table.insert(arena_observer, 0) + + local count = table.getn(g) + if count == 0 then + say_title(gameforge.arena_manager._20_sayTitle) + say(gameforge.arena_manager._210_say) + return ; + else + say_title(gameforge.arena_manager._20_sayTitle) + say(string.format(gameforge.arena_manager._220_say, count)) + wait() + end + + if table.getn(g)!= 0 then + local s = select_table(arena_name) + + if table.getn(arena_observer) == s then + return ; + end + + if table.getn(arena_observer) >= s then + arena.add_observer(arena_observer[s][1], arena_observer[s][2], arena_observer[s][3]) + end + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_buy_fishrod.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_buy_fishrod.lua new file mode 100644 index 00000000..2fbbddb6 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_buy_fishrod.lua @@ -0,0 +1,202 @@ +quest buy_fishrod begin + state start begin + when 9009.chat.gameforge.buy_fishrod._10_npcChat with pc.level>=7 and pc.level<=17 begin + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._30_say) + local b= select(gameforge.buy_fishrod._40_select, gameforge.buy_fishrod._50_select) + if 1==b then + if pc.money>=3980 then + pc.changemoney(-3980) + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._60_say) + pc.give_item2("27400", 1) + pc.give_item2("27800", 100) + pc.give_item2("27801", 20) + setstate(notify_event) + else + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._70_say) + end + elseif 2==b then + else + say(string.format(gameforge.buy_fishrod._80_say, b)) + end + end + end + state notify_event begin + when letter begin + setskin(NOWINDOW) + makequestbutton(gameforge.buy_fishrod._90_makequestbutton) + q.set_title(gameforge.buy_fishrod._90_makequestbutton) + q.start() + end + when button begin + say_title(gameforge.buy_fishrod._100_sayTitle) + say(gameforge.buy_fishrod._110_say) + local b= select(gameforge.buy_fishrod._120_select, gameforge.buy_fishrod._130_select) + if 1==b then + setstate(play_event) + elseif 2==b then + setstate(__COMPLETE__) + q.done() + else + say(string.format(gameforge.buy_fishrod._80_say, b)) + end + end + when info begin + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._140_say) + local b= select(gameforge.buy_fishrod._120_select, gameforge.buy_fishrod._130_select) + if 1==b then + setstate(play_event) + elseif 2==b then + setstate(__COMPLETE__) + q.done() + else + say(string.format(gameforge.buy_fishrod._80_say, b)) + end + end + end + state play_event begin + when letter begin + setskin(NOWINDOW) + makequestbutton(gameforge.buy_fishrod._150_makequestbutton) + q.set_title(gameforge.buy_fishrod._150_makequestbutton) + q.start() + end + when button begin + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._160_say) + end + when info begin + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._160_say) + end + when 9009.chat.gameforge.buy_fishrod._170_npcChat with pc.countitem("27833")>=5 begin + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._180_say) + setstate(reward) + end + when 9009.chat.gameforge.buy_fishrod._170_npcChat with pc.countitem("27833")<5 begin + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._190_say) + end + end + state reward begin + when letter begin + setskin(NOWINDOW) + makequestbutton(gameforge.buy_fishrod._200_makequestbutton) + q.set_title(gameforge.buy_fishrod._200_makequestbutton) + q.start() + end + when button begin + say_title(gameforge.buy_fishrod._210_sayTitle) + say(gameforge.buy_fishrod._220_say) + if pc.countitem("27833")>=5 then + pc.removeitem("27833", 5) + say(gameforge.buy_fishrod._230_say) + if pc.job==0 then + local r=number(1, 10) + if r==1 then + pc.give_item2("00013", 1) + elseif r==2 then + pc.give_item2("00023", 1) + elseif r==3 then + pc.give_item2("00033", 1) + elseif r==4 then + pc.give_item2("00043", 1) + elseif r==5 then + pc.give_item2("00053", 1) + elseif r==6 then + pc.give_item2("03003", 1) + elseif r==7 then + pc.give_item2("03013", 1) + elseif r==8 then + pc.give_item2("03023", 1) + elseif r==9 then + pc.give_item2("03033", 1) + elseif r==10 then + pc.give_item2("03043", 1) + end + elseif pc.job==1 then + local r=number(1, 15) + if r==1 then + pc.give_item2("00013", 1) + elseif r==2 then + pc.give_item2("00023", 1) + elseif r==3 then + pc.give_item2("00033", 1) + elseif r==4 then + pc.give_item2("00043", 1) + elseif r==5 then + pc.give_item2("00053", 1) + elseif r==6 then + pc.give_item2("01003", 1) + elseif r==7 then + pc.give_item2("04003", 1) + elseif r==8 then + pc.give_item2("01013", 1) + elseif r==9 then + pc.give_item2("04013", 1) + elseif r==10 then + pc.give_item2("01023", 1) + elseif r==11 then + pc.give_item2("02003", 1) + elseif r==12 then + pc.give_item2("02013", 1) + elseif r==13 then + pc.give_item2("02023", 1) + elseif r==14 then + pc.give_item2("02033", 1) + elseif r==15 then + pc.give_item2("2043", 1) + end + elseif pc.job==2 then + local r=number(1, 6) + if r==1 then + pc.give_item2("00013", 1) + elseif r==2 then + pc.give_item2("00023", 1) + elseif r==3 then + pc.give_item2("00033", 1) + elseif r==4 then + pc.give_item2("00043", 1) + elseif r==5 then + pc.give_item2("00053", 1) + elseif r==6 then + pc.give_item2("00053", 1) + end + elseif pc.job==3 then + local r=number(1, 8) + if r==1 then + pc.give_item2("05003", 1) + elseif r==2 then + pc.give_item2("05013", 1) + elseif r==3 then + pc.give_item2("05023", 1) + elseif r==4 then + pc.give_item2("07003", 1) + elseif r==5 then + pc.give_item2("07013", 1) + elseif r==6 then + pc.give_item2("07023", 1) + elseif r==7 then + pc.give_item2("07033", 1) + elseif r==8 then + pc.give_item2("07043", 1) + end + end + else + say_title(gameforge.buy_fishrod._20_sayTitle) + say(gameforge.buy_fishrod._240_say) + end + setstate(__COMPLETE__) + q.done() + end + end + state __COMPLETE__ begin + when enter begin + q.done() + end + end +end diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_refine_fishrod.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_refine_fishrod.lua new file mode 100644 index 00000000..e3850e95 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_fisher_refine_fishrod.lua @@ -0,0 +1,57 @@ +quest fisher begin + state start begin + when 9009.chat.gameforge.fisher._10_npcChat begin + npc.open_shop() + setskin(NOWINDOW) + end + + when 9009.chat.gameforge.fisher._20_npcChat begin + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._40_say) + end + + when 9009.take with item.vnum < 27400 or item.vnum > 27590 begin + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._50_say) + end + + when 9009.take with item.vnum == 27590 begin + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._60_say) + end + + when 9009.take with item.vnum >= 27400 and item.vnum < 27590 and item.get_socket(0)!= item.get_value(2) begin + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._70_say) + end + + when 9009.take with item.vnum >= 27400 and item.vnum < 27590 and item.get_socket(0) == item.get_value(2) begin + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._80_say) + say(string.format(gameforge.fisher._90_say, item.get_value(0) / 10)) + say(gameforge.fisher._100_say) + say(string.format(gameforge.fisher._110_say, 100 - item.get_value(3))) + say(gameforge.fisher._120_say) + + local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no) + + if s == 1 then + local f = __fish_real_refine_rod(item.get_cell()) + if f == 2 then + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._130_say) + elseif f == 1 then + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._140_say) + else + say(gameforge.fisher._150_say) + end + else + say_title(gameforge.fisher._30_sayTitle) + say(gameforge.fisher._160_say) + end + end + end +end + + diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_fortune_telling.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_fortune_telling.lua new file mode 100644 index 00000000..c0d8ffd8 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_fortune_telling.lua @@ -0,0 +1,131 @@ +quest fortune_telling begin + state start begin + when oldwoman.chat.gameforge.fortune_telling._10_npcChat begin + if pc.level<=20 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.fortune_telling._20_say) + return + end + + if get_time()-pc.getqf("time") < 8*60*60 then + local passed_time = get_time() - pc.getqf("time") + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.fortune_telling._30_say) + + wait() + local idx = pc.getqf("idx") + if idx!=0 then + say_title(gameforge.fortune_telling._40_sayTitle) + say(gameforge.fortune_telling._50_say) + say(locale.fortune_words[idx][1]) + + wait() + + if pc.getqf("talisman") == 0 and special.fortune_telling[idx][5] > 0 then + local talisman_cost = special.fortune_telling[idx][5] + say_title(gameforge.fortune_telling._40_sayTitle) + say(gameforge.fortune_telling._60_say) + + local s = select(gameforge.fortune_telling._70_select, gameforge.fortune_telling._80_select) + if s == 1 then + if pc.gold < talisman_cost then + say_title(gameforge.fortune_telling._40_sayTitle) + say(gameforge.fortune_telling._90_say) + + pc.setqf("talisman", 0) + else + pc.give_item2(70052,1) + pc.changegold(-talisman_cost) + pc.setqf("talisman", 1) + + end + else + return + end + else + return + end + end + end + + local gold = 7777 + + say_title(gameforge.fortune_telling._100_sayTitle) + + + say(gameforge.fortune_telling._110_say) + local s = select(gameforge.fortune_telling._120_select, gameforge.fortune_telling._130_select) + + if s == 2 then + say_title(gameforge.fortune_telling._100_sayTitle) + say(gameforge.fortune_telling._140_say) + + return + end + + local n = number(1, 10000) + + local i + local idx + for i = 1, table.getn(special.fortune_telling) do + if n<=special.fortune_telling[i][1] then + idx = i + break + else + n = n - special.fortune_telling[i][1] + end + end + i = idx + + say_title(gameforge.fortune_telling._100_sayTitle) + say(locale.fortune_words[i][2]) + + local t = {} + + n = 0 + local j + for j = 2,4 do + if special.fortune_telling[i][j] != 0 then + n=n+1 + t[n] = j + end + end + + if n > 0 then + n = number(1, n) + __give_char_priv(t[n]-1, special.fortune_telling[i][t[n]]) + end + + pc.setqf("time", get_time()) + pc.setqf("idx", i) + + if special.fortune_telling[i][5]>0 then + wait() + + say_title(gameforge.fortune_telling._100_sayTitle) + say(locale.fortune_words[i][3]) + + local talisman_cost = special.fortune_telling[i][5] + local s = select(gameforge.fortune_telling._150_select, gameforge.fortune_telling._160_select) + if s == 1 then + if pc.gold < talisman_cost then + say(string.format(gameforge.fortune_telling._170_say, gold)) + pc.setqf("talisman", 0) + + else + pc.give_item2(70052,1) + pc.changegold(-talisman_cost) + pc.setqf("talisman", 1) + + end + + elseif s == 2 then + say_title(gameforge.fortune_telling._40_sayTitle) + say(gameforge.fortune_telling._180_say) + pc.setqf("talisman", 0) + end + end + + end -- end_of_when + end -- end_of_state +end -- end_of_quest diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_hair_shop.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_hair_shop.lua new file mode 100644 index 00000000..42923a4c --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_hair_shop.lua @@ -0,0 +1,55 @@ +quest npcs_hair_shop begin + state start begin + when 20094.chat."Krieger Frisuren" begin + local sel1 = select("Männlich", "Weiblich") + if sel1 == 1 then + setskin(NOWINDOW) + npc.open_shop(20) + return + else + setskin(NOWINDOW) + npc.open_shop(21) + return + end + end + + when 20094.chat."Ninja Frisuren" begin + local sel2 = select("Männlich", "Weiblich") + if sel2 == 1 then + setskin(NOWINDOW) + npc.open_shop(22) + return + else + setskin(NOWINDOW) + npc.open_shop(23) + return + end + end + + when 20094.chat."Sura Frisuren" begin + local sel3 = select("Männlich", "Weiblich") + if sel3 == 1 then + setskin(NOWINDOW) + npc.open_shop(24) + return + else + setskin(NOWINDOW) + npc.open_shop(25) + return + end + end + + when 20094.chat."Schamanen Frisuren" begin + local sel4 = select("Männlich", "Weiblich") + if sel4 == 1 then + setskin(NOWINDOW) + npc.open_shop(26) + return + else + setskin(NOWINDOW) + npc.open_shop(27) + return + end + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_information.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_information.lua new file mode 100644 index 00000000..f1e34ef0 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_information.lua @@ -0,0 +1,56 @@ +quest info begin + state start begin + when 20095.chat."Server Informationen" begin + say_title("Server Informationen:") + say("_______________________________________________") + say("Wir suchen immer nach guten Ideen.") + say("Falls es jemandem gelingt gute Ideen zu finden,") + say("kriegt diese Person eine angemessene Belohnung.") + say("") + end + when 20095.chat."Teamler Liste" begin + say_title("Teamler Liste:") + say("__________") + say_cyan("(SA)Goku") + say_red("(DEV)Lead") + say_orange("(GA)Dome") + say("") + end + when 20095.chat."Teamler Fähigkeiten" begin + say_title("Teamler Fähigkeiten:") + say("________________________________________________") + say_cyan("(SA)Goku:") + say("Clientmodder, Designer, Techniker") + say("") + say_red("(DEV)Lead") + say("Clientmodder, Techniker, Developer") + say_orange("(GA)Dome") + say("Was weiß ich") + say("") + end + when 20095.chat."Spiel Informationen" begin + say_title("Spiel Bonus:") + say("_______________________________________") + say("Bonus Erfahrungspunkte in der Woche 100%") + say("Bonus Erfahrungspunkte am Wochenende 100%") + say("Bonus Erfahrungspunkte am Event 100%") + say("_______________________________________") + say("Bonus Yangdroprate in der Woche 100%") + say("Bonus Yangdroprate am Wochenende 100%") + say("Bonus Yangdroprate am Event 100%") + say("_______________________________________") + say("Bonus Yangbomben in der Woche 100%") + say("Bonus Yangbomben am Wochenende 100%") + say("Bonus Yangbomben am Event 100%") + say("") + end + when 20095.chat."Behobene Fehler" begin + say_title("Behobene Fehler:") + say("_______________________________________________") + say("Es gibt bis jetzt keine gefundene Fehler.") + say("Jeder der einen Fehler findet egal welcher Art,") + say("kriegt eine angemessene Belohnung.") + say("") + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/skill_group.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_learn_skill.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/skill_group.lua rename to main/srv1/share/locale/germany/quest/quest_npc/npc_learn_skill.lua diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_marriage_manage.quest b/main/srv1/share/locale/germany/quest/quest_npc/npc_marriage_manage.quest new file mode 100644 index 00000000..c1ce46d1 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_marriage_manage.quest @@ -0,0 +1,497 @@ +quest marriage_manage begin + state start begin + when oldwoman.chat.gameforge.marriage_manage._10_npcChat with not pc.is_engaged_or_married() begin + if not npc.lock() then + say_title(gameforge.fortune_telling._100_sayTitle) + say(gameforge.marriage_manage._20_say) + return + end + if pc.level < 25 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._30_say) + say_title(gameforge.marriage_manage._40_sayTitle) + say_reward(gameforge.marriage_manage._50_sayReward) + npc.unlock() + return + end + + local m_ring_num = pc.countitem(70301) + local m_has_ring = m_ring_num > 0 + if not m_has_ring then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._60_say) + say_item(gameforge.marriage_manage._70_sayItem, 70301, "") + say(gameforge.marriage_manage._80_say) + npc.unlock() + return + end + + local m_sex = pc.get_sex() + local m_nationality= pc.get_empire() + if not marriage_manage.is_equip_wedding_dress() then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._90_say) + if m_sex==0 then + say_item(gameforge.marriage_manage._100_sayItem, marriage_manage.get_wedding_dress(m_sex), "") + say_reward(gameforge.marriage_manage._110_sayReward) + else + say_item(gameforge.marriage_manage._120_sayItem, marriage_manage.get_wedding_dress(m_sex), "") + say_reward(gameforge.marriage_manage._130_sayReward) + end + npc.unlock() + return + end + + -- local NEED_MONEY = 1 + -- if pc.get_money() < NEED_MONEY then + -- say_title(gameforge.couple_ring._20_sayTitle) + -- say(gameforge.marriage_manage._140_say) + -- say_reward(gameforge.marriage_manage._150_sayReward) + -- npc.unlock() + -- return + -- end + + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._160_say) + say_reward(gameforge.marriage_manage._170_sayReward) + + local sname = input() + if sname == "" then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._180_say) + npc.unlock() + return + end + + local u_vid = find_pc_by_name(sname) + local m_vid = pc.get_vid() + if u_vid == 0 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._190_say) + say_reward(string.format(gameforge.marriage_manage._200_sayReward, sname)) + npc.unlock() + return + end + + if not npc.is_near_vid(u_vid, 10) then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._210_say) + say_reward(string.format(gameforge.marriage_manage._220_sayReward, sname)) + npc.unlock() + return + end + + local old = pc.select(u_vid) + local u_level = pc.get_level() + local u_job = pc.get_job() + local u_sex = pc.get_sex() + local u_nationality= pc.get_empire() + local u_name = pc.name + local u_gold = pc.get_money() + local u_married = pc.is_married() + local u_has_ring = pc.countitem(70301) > 0 + local u_wear = marriage_manage.is_equip_wedding_dress() + pc.select(old) + local m_level = pc.get_level() + + if u_vid == m_vid then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._230_say) + say_reward(gameforge.marriage_manage._240_sayReward) + npc.unlock() + return + end + + if u_sex == m_sex then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._250_say) + npc.unlock() + return + end + + if u_nationality != m_nationality then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._260_say) + npc.unlock() + return + end + + if u_married then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._270_say) + say_reward(string.format(gameforge.marriage_manage._280_sayReward, sname)) + npc.unlock() + return + end + + if u_level < 1 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._290_say) + npc.unlock() + return + end + + if not u_has_ring then + if m_ring_num >= 2 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._310_say) + else + say(gameforge.marriage_manage._320_say) + end + say_item(gameforge.marriage_manage._70_sayItem, 70301, "") + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._330_say) + npc.unlock() + return + end + + if not u_wear then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._340_say) + if u_sex==0 then + say_title(gameforge.couple_ring._20_sayTitle) + say_item(gameforge.marriage_manage._100_sayItem, marriage_manage.get_wedding_dress(u_sex), "") + say(gameforge.marriage_manage._350_say) + else + say_title(gameforge.couple_ring._20_sayTitle) + say_item(gameforge.marriage_manage._120_sayItem, marriage_manage.get_wedding_dress(u_sex), "") + say(gameforge.marriage_manage._360_say) + end + npc.unlock() + return + end + + local ok_sign = confirm(u_vid, string.format(gameforge.marriage_manage._365_confirm_chat,pc.name), 30) + + if ok_sign == CONFIRM_OK then + local m_name = pc.name + pc.removeitem(70301, 1) + pc.give_item2(70302, 1) + local old = pc.select(u_vid) + pc.removeitem(70301, 1) + pc.give_item2(70302, 1) + pc.select(old) + + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._370_say) + wait() + setskin(NOWINDOW) + marriage.engage_to(u_vid) + else + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._380_say) + end + npc.unlock() + end + + when oldwoman.chat.gameforge.marriage_manage._390_npcChat with pc.is_engaged() begin + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._400_say) + wait() + setskin(NOWINDOW) + marriage.warp_to_my_marriage_map() + end + + + when 9011.chat.gameforge.marriage_manage._410_npcChat with pc.is_engaged() and marriage.in_my_wedding() begin + if not npc.lock() then + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._430_say) + return + end + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._440_say) + + local sname = input() + local u_vid = find_pc_by_name(sname) + local m_vid = pc.get_vid() + + if u_vid == 0 then + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._450_say) + say_reward(string.format(gameforge.marriage_manage._200_sayReward, sname)) + npc.unlock() + return + end + + if not npc.is_near_vid(u_vid, 10) then + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._460_say) + say_reward(string.format(gameforge.marriage_manage._470_sayReward, sname)) + npc.unlock() + return + end + + if u_vid == m_vid then + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._480_say) + npc.unlock() + return + end + + if u_vid != marriage.find_married_vid() then + say_title(gameforge.marriage_manage._490_sayTitle) + say(gameforge.marriage_manage._500_say) + npc.unlock() + return + end + + local ok_sign = confirm(u_vid, string.format(gameforge.marriage_manage._365_confirm_chat,pc.name), 30) + if ok_sign != CONFIRM_OK then + say_title(gameforge.marriage_manage._490_sayTitle) + say(gameforge.marriage_manage._510_say) + npc.unlock() + return + end + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._520_say) + marriage.set_to_marriage() + say(gameforge.marriage_manage._530_say) + npc.unlock() + end + + function give_wedding_gift() + local male_item = {71072, 71073, 71074} + local female_item = {71069, 71070, 71071} + if pc.get_sex() == MALE then + pc.give_item2(male_item[number(1, 3)], 1) + else + pc.give_item2(female_item[number(1, 3)], 1) + end + end + + when 9011.chat.gameforge.marriage_manage._540_npcChat with (pc.is_engaged() or pc.is_married()) and + marriage.in_my_wedding() and + not marriage.wedding_is_playing_music() begin + marriage.wedding_music(true, "wedding.mp3") + setskin(NOWINDOW) + end + when 9011.chat.gameforge.marriage_manage._550_npcChat with (pc.is_engaged() or pc.is_married()) and + marriage.in_my_wedding() and + marriage.wedding_is_playing_music() begin + marriage.wedding_music(false, "default") + setskin(NOWINDOW) + end + when 9011.chat.gameforge.marriage_manage._560_npcChat with pc.is_married() and marriage.in_my_wedding() begin + marriage.wedding_dark(true) + setskin(NOWINDOW) + end + + when 9011.chat.gameforge.marriage_manage._570_npcChat with pc.is_married() and marriage.in_my_wedding() begin + marriage.wedding_snow(true) + setskin(NOWINDOW) + end + + when 9011.chat.gameforge.marriage_manage._580_npcChat with pc.is_married() and marriage.in_my_wedding() begin + if not npc.lock() then + say_title(gameforge.marriage_manage._490_sayTitle) + say(gameforge.marriage_manage._590_say) + return + end + + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._600_say) + local s = select(gameforge.marriage_manage._610_select, gameforge.marriage_manage._620_select) + if s == 2 then + local u_vid = marriage.find_married_vid() + if u_vid == 0 then + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._630_say) + npc.unlock() + return + end + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._640_say) + local ok_sign = confirm(u_vid, gameforge.marriage_manage._650_confirm_chat, 30) + if ok_sign == CONFIRM_OK then + marriage.end_wedding() + else + say_title(gameforge.marriage_manage._490_sayTitle) + say(gameforge.marriage_manage._660_say) + end + end + npc.unlock() + end + + + when 11000.chat.gameforge.marriage_manage._670_npcChat or + 11002.chat.gameforge.marriage_manage._680_npcChat or + 11004.chat.gameforge.marriage_manage._680_npcChat with pc.is_married() begin + + if not marriage_manage.check_divorce_time() then + return + end + + local u_vid = marriage.find_married_vid() + if u_vid == 0 or not npc.is_near_vid(u_vid, 10) then + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._690_say) + return + end + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._700_say) + + local MONEY_NEED_FOR_ONE = 500000 + local s = select(gameforge.horse_upgrade2._180_select, gameforge.marriage_manage._710_select) + + if s == 1 then + local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE + local m_have_ring = pc.countitem(70302) > 0 + + local old = pc.select(u_vid) + local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE + local u_have_ring = pc.countitem(70302) > 0 + pc.select(old) + + if not m_have_ring then + say(gameforge.marriage_manage._720_say) + return; + end + if not u_have_ring then + say(gameforge.marriage_manage._730_say) + return; + end + + if not m_enough_money then + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._740_say) + say_reward(string.format(gameforge.marriage_manage._750_sayReward, MONEY_NEED_FOR_ONE/10000)) + return; + end + if not u_enough_money then + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._740_say) + say_reward(gameforge.marriage_manage._760_sayReward) + return; + end + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._770_say) + + local c= select(gameforge.horse_upgrade2._180_select, gameforge.marriage_manage._780_select) + if 2 == c then + say_pc_name() + say(gameforge.marriage_manage._790_say) + wait() + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._800_say) + say_reward(gameforge.marriage_manage._810_sayReward) + return + end + + local ok_sign = confirm(u_vid, pc.name..gameforge.marriage_manage._815_confirm_chat, 30) + if ok_sign == CONFIRM_OK then + + local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE + local m_have_ring = pc.countitem(70302) > 0 + local old = pc.select(u_vid) + local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE + local u_have_ring = pc.countitem(70302) > 0 + pc.select(old) + + if m_have_ring and m_enough_money and u_have_ring and u_enough_money then + pc.removeitem(70302, 1) + pc.change_money(-MONEY_NEED_FOR_ONE) + + local old = pc.select(u_vid) + pc.removeitem(70302, 1) + pc.change_money(-MONEY_NEED_FOR_ONE) + pc.select(old) + + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._820_say) + say_reward(gameforge.marriage_manage._810_sayReward) + marriage.remove() + else + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._830_say) + say_reward(gameforge.marriage_manage._840_sayReward) + end + else + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._850_say) + say_reward(gameforge.marriage_manage._840_sayReward) + end + end + end + + when 11000.chat.gameforge.marriage_manage._860_npcChat or + 11002.chat.gameforge.marriage_manage._870_npcChat or + 11004.chat.gameforge.marriage_manage._870_npcChat with not pc.is_married() and pc.count_item(70302) > 0 begin + + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._880_say) + say_reward(gameforge.marriage_manage._890_sayReward) + pc.remove_item(70302) + end + + when 11000.chat.gameforge.marriage_manage._900_npcChat or + 11002.chat.gameforge.marriage_manage._900_npcChat or + 11004.chat.gameforge.marriage_manage._900_npcChat with pc.is_married() begin + + + say_title(gameforge.marriage_manage._910_sayTitle) + say(gameforge.marriage_manage._920_say) + + local s = select(gameforge.horse_upgrade2._180_select, gameforge.marriage_manage._930_select) + + local NEED_MONEY = 1 + if s == 2 then + return + end + if pc.money < NEED_MONEY then + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._940_say) + return + end + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._950_say) + + local c = select(gameforge.marriage_manage._960_select, gameforge.marriage_manage._970_select) + + if c == 2 then + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._980_say) + return + end + pc.removeitem(70302, 1) + pc.change_gold(-NEED_MONEY) + marriage.remove() + say_title(gameforge.find_squareguard._30_sayTitle) + say(gameforge.marriage_manage._990_say) + end + + when oldwoman.chat.gameforge.marriage_manage._1000_npcChat with not pc.is_engaged() begin + local t = marriage.get_wedding_list() + if table.getn(t) == 0 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.marriage_manage._1010_say) + else + local wedding_names = {} + table.foreachi(t, function(n, p) wedding_names[n] = string.format(gameforge.marriage_manage._1015_foreach,p[3],p[4]) end) + wedding_names[table.getn(t)+1] = locale.confirm + local s = select_table(wedding_names) + + if s != table.getn(wedding_names) then + marriage.join_wedding(t[s][1], t[s][2]) + end + end + end + when 9011.click with not pc.is_engaged() and not pc.is_married() begin + say_title(gameforge.marriage_manage._420_sayTitle) + say(gameforge.marriage_manage._1020_say) + end + + function is_equip_wedding_dress() + local a = pc.get_armor() + return a >= 11901 and a <= 11904 + end + function get_wedding_dress(pc_sex) + if 0==pc_sex then + return 11901 + else + return 11903 + end + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_skill_reset.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_skill_reset.lua new file mode 100644 index 00000000..73f4a5b3 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_skill_reset.lua @@ -0,0 +1,79 @@ +quest skill_reset2 begin + state start begin + when 9006.chat.gameforge.skill_reset2._10_npcChat begin + if pc.level < 5 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.skill_reset2._20_say) + return + end + if pc.level >30 then + say_title(gameforge.couple_ring._20_sayTitle) + say(string.format(gameforge.skill_reset2._30_say, pc.level)) + return + end + if pc.get_skill_group()==0 then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.skill_reset2._40_say) + return + end + + local cost = 10000 + pc.level * 2000 + local s = 0 + + if not pc.has_master_skill() then + say_title(gameforge.couple_ring._20_sayTitle) + say(string.format(gameforge.skill_reset2._50_say, cost)) + s = select(gameforge.skill_reset2._10_npcChat, gameforge.skill_reset2._60_select) + else + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.skill_reset2._70_say) + wait() + say(string.format(gameforge.skill_reset2._80_say, cost)) + s = select(gameforge.skill_reset2._90_select, gameforge.locale.cancel) + end + if 2==s then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.skill_reset2._110_say) + return + end + if pc.money < cost then + say_title(gameforge.couple_ring._20_sayTitle) + say(gameforge.skill_reset2._120_say) + return + end + pc.changegold(-cost) + pc.clear_skill() + pc.set_skill_group(0) + set_quest_state("skill_group","run") + end + + when 71100.use begin + if pc.level <=31 or pc.level >=98 then + say_title(item_name(71100)) + say(gameforge.skill_reset2._140_say) + return + end + + if pc.get_skill_group()==0 then + say_title(item_name(71100)) + say(gameforge.skill_reset2._40_say) + return + end + + say_title(item_name(71100)) + say(gameforge.skill_reset2._130_say) + s = select(locale.yes, locale.no) + if 2==s then + return + end + + pc.clear_skill() + pc.set_skill_group(0) + horse.set_level(horse_level) + char_log(0, "RESET_SKILL", "RESET_SKILL_BY_71100") + pc.remove_item(71100) ; + set_quest_state("skill_group","run") + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_smith_crafting.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_smith_crafting.lua new file mode 100644 index 00000000..9cdd47e1 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_smith_crafting.lua @@ -0,0 +1,8 @@ +quest cube begin + state start begin + when 20016.chat."Schriftrollen herstellen" begin + setskin(NOWINDOW) + command("cube open") + end + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/warehouse_item_destroyer.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_warehouse_item_destroyer.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/warehouse_item_destroyer.lua rename to main/srv1/share/locale/germany/quest/quest_npc/npc_warehouse_item_destroyer.lua diff --git a/main/srv1/share/locale/germany/quest/warehouse_shop.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_warehouse_shop.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/warehouse_shop.lua rename to main/srv1/share/locale/germany/quest/quest_npc/npc_warehouse_shop.lua diff --git a/main/srv1/share/locale/germany/quest/quest_npc/npc_warp_spiderdungeon_2.lua b/main/srv1/share/locale/germany/quest/quest_npc/npc_warp_spiderdungeon_2.lua new file mode 100644 index 00000000..1f45b280 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_npc/npc_warp_spiderdungeon_2.lua @@ -0,0 +1,31 @@ +quest warp_sd begin + state start begin + when 20088.chat.gameforge.check_trans_ticket._10_npcChat with pc.get_map_index()==75 begin + say_title(gameforge.check_trans_ticket._15_sayTitle) + say(gameforge.check_trans_ticket._20_say) + wait() + if pc.count_item(71095) > 0 then + say_title(gameforge.check_trans_ticket._15_sayTitle) + say(gameforge.check_trans_ticket._30_say) + wait() + if false == pc.can_warp() then + say(gameforge.check_trans_ticket._160_say) + return + end + if pc.count_item(71095) + pc.count_item(71130) > 0 then + if select("Eintreten", "Ablehnen") == 2 then return end + pc.remove_item(71095, 1) + pc.warp(704100, 464100) + else + return + end + else + say_title(gameforge.check_trans_ticket._15_sayTitle) + say(gameforge.check_trans_ticket._40_say) + say_item_vnum(71095) + wait() + end + end + + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/quest_playerquests/bio.lua b/main/srv1/share/locale/germany/quest/quest_playerquests/bio.lua new file mode 100644 index 00000000..7652ac74 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_playerquests/bio.lua @@ -0,0 +1,2402 @@ + ----------------------- + -- LvL 30 / Orkzähne -- + ----------------------- +quest bio begin + state start begin + when login or levelup with pc.get_level() >=30 begin + set_state(talk_to_disciple_lv30) + end + end + state talk_to_disciple_lv30 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Die Forschung des Biologen") + end + when button or info begin + say_title("Die Forschung des Biologen") + say("") + say("Der Biologe benötigt deine Hilfe.") + say("Sprich mit ihm.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Orkzähne" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Oh, du hilfst mir?") + say("Gut ...") + say("Ich bin übrigens der Biologe") + say("und studiere zahlreiches aus der Pflanzenwelt.") + say("Wenn du mir bei meinen Forschungen hilfst,") + say("werde ich dich reich belohnen.") + say("") + wait() + say_title("Biologe:") + say("") + say("Ich habe vor kurzem wieder angefangen ...") + say("Ich forsche an einer Legende ...") + say("Doch habe ich derzeit viel zu tun,") + say("es wäre also nett, wenn du mir hilfst ...") + say("") + wait() + say_title("Biologe:") + say("") + say("Ich benötige zehn Orkzähne für meine Forschungen.") + say("Diese sind jedoch sehr zerbrechlich,") + say("es kann also sein, dass einige bei") + say("meinen Untersuchungen kaputt gehen.") + say("Ich benötige alle zehn,") + say("um meine Forschungen vollenden zu können.") + say("") + set_state(collect_orcteeth) + pc.setqf("collect_count",0) + end + end + state collect_orcteeth begin + when letter begin + send_letter("Die Forschung des Biologen") + end + when button or info begin + say_title("Orkzähne") + say("") + say("Der Biologe gab dir den Auftrag,") + say("zehn Orkzähne zu sammeln.") + say("Sammel und bring sie dem Biologen.") + say("") + say_item_vnum(30006) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 20084.chat."Orkzähne" with pc.count_item(30006)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob dieser Zahn in Ordnung ist ...") + say("") + pc.remove_item("30006", 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<10 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend, dieser Zahn ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 10 Stück gebracht...") + say("Nun bitte ich dich noch, mir den") + say("Jinunggyis Seelenstein zu bringen.") + say("Du bekommst ihn von Stolzen Orks ...") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_jinunggyis) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, aber der Zahn ist bei") + say("den Untersuchungen zerbrochen.") + say("Bitte hol mir einen neuen Orkzahn!") + say("") + end + end + end + state collect_jinunggyis begin + when letter begin + send_letter("Jinunggyis Seelenstein") + end + when button or info begin + say_title("Jinunggyis Seelenstein") + say("") + say("Du hast alle zehn Orkzähne gesammelt.") + say("Nun musst du Jinunggyis Seelenstein erbeuten.") + say("") + say_item_vnum(30220) + say("Ob dieser Stein tatsächlich eine Seele enthält?") + say("") + say_reward("Töte die Stolzen Orks") + say("") + end + when 631.kill or 632.kill or 633.kill or 634.kill or 635.kill begin + if pc.count_item(30220)<1 then + local rand = number(1,100) + if rand<=3 then game.drop_item_with_ownership(30220, 1) + end + end + end + when 20084.chat."Jinunggyis Seelenstein" begin + if pc.count_item(30220)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um Jinunggyis Seelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30220,1) + set_state(jinunggyis_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 10 Stück gebracht...") + say("Nun bitte ich dich noch, mir den") + say("Jinunggyis Seelenstein zu bringen.") + say("Du bekommst ihn von Stolzen Orks ...") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state jinunggyis_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Die Forschung des Biologen: Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten") + say("suche mit den Informationen der") + say("Orkzähne und des Seelensteins Baek-Go auf.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Bewegungsgeschwindigkeit +10 (Dauerhaft)") + say_reward("1x Roter Ebenholzkasten") + say("") + affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) + pc.give_item2(50109, 1) + set_state(collect_quest_lv40) + end + end + + ---------------------------- + -- LvL 40 / Fluchsammlung -- + ---------------------------- + state collect_quest_lv40 begin + when login or levelup with pc.level>39 begin + set_state(talk_to_disciple_lv40) + end + end + state talk_to_disciple_lv40 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 2") + end + when button or info begin + say_title("Forschung des Biologen 2") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Fluchsammlungen" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Orkzähne") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte die Fluchsammlungen untersuchen.") + say("Davon benötige ich 15 Stück.") + say("Die Bücher sind jedoch ziemlich alt,") + say("manchmal zerfallen sie einfach!") + say("") + set_state(collect_cursebook) + pc.setqf("collect_count",0) + end + end + state collect_cursebook begin + when letter begin + send_letter("Forschung des Biologen 2") + end + when button or info begin + say_title("Fluchsammlungen") + say("") + say("Der Biologe gab dir den Auftrag,") + say("15 Fluchsammlungen zu besorgen.") + say("Diese kannst du bei den Dunklen- und") + say("Hohen Peinigern erbeuten.") + say("") + say_item_vnum(30047) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 20084.chat."Fluchsammlungen" with pc.count_item(30047)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob diese Fluchsammlung in Ordnung ist ...") + say("") + pc.remove_item(30047, 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<15 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend, diese Fluchsammlung ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("Du hast mir die 15 Sammlungen gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige den Tempelseelenstein,") + say("den du von Stolzen dunklen Fanatikern,") + say("Kämpfern, sowie Obersten erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_templekey) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, die Fluchsammlung") + say("ist bei den Untersuchungen zerfallen.") + say("Bitte hol mir eine neue Fluchsammlung.") + end + end + end + state collect_templekey begin + when letter begin + send_letter("Tempelseelenstein") + end + when button or info begin + say_title("Tempelseelenstein") + say("") + say("Du hast alle 15 Fluchsammlungen abgegeben.") + say("Nun musst du den Tempelseelenstein erbeuten.") + say("") + say_item_vnum(30221) + say("Ob dieser Stein tatsächlich Seelen") + say("der Tempelanhänger enthält?") + say("") + say_reward("Töte die Stolzen dunklen Fanatikern,") + say_reward("Kämpfern und Obersten") + end + when 731.kill or 732.kill or 733.kill or 734.kill or 735.kill or 736.kill or 737.kill begin + if pc.count_item(30221)<1 then + local rand = number(0,99) + if rand<5 then game.drop_item_with_ownership(30221, 1) + end + end + end + when 20084.chat."Tempelseelenstein" begin + if pc.count_item(30221)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um den Tempelseelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30221,1) + set_state(templekey_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 15 Sammlungen gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige den Tempelseelenstein,") + say("den du von Stolzen dunklen Fanatikern,") + say("Kämpfern, sowie Obersten erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state templekey_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Fluchsammlungen und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Angriffsgeschwindigkeit +5 (Dauerhaft)") + say_reward("1x Prunk Ebenholzkiste") + say("") + affect.add_collect(apply.ATT_SPEED, 5, 60*60*24*365*60) + pc.give_item2(50110, 1) + set_state(collect_quest_lv50) + end + end + + ------------------------------ + -- LvL 50 / Dämonenandenken -- + ------------------------------ + state collect_quest_lv50 begin + when login or levelup with pc.level>49 begin + set_state(talk_to_disciple_lv50) + end + end + state talk_to_disciple_lv50 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 3") + end + when button or info begin + say_title("Forschung des Biologen 3") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Dämonenandenken" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Fluchsammlungen") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte die Dämonenandenken untersuchen.") + say("Davon benötige ich 15 Stück.") + say("Diese sind jedoch ziemlich zerbrechlich,") + say("es kann also sein, dass einige bei") + say("meinen Untersuchungen kaputt gehen.") + say("") + set_state(collect_deamonitem) + pc.setqf("collect_count",0) + end + end + state collect_deamonitem begin + when letter begin + send_letter("Forschung des Biologen 3") + end + when button or info begin + say_title("Dämonenandenken") + say("") + say("Der Biologe gab dir den Auftrag,") + say("15 Dämonenandenken zu besorgen.") + say("Diese kannst du bei den Monstern im") + say("Dämonenturm erbeuten.") + say("") + say_item_vnum(30015) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 20084.chat."Dämonenandenken" with pc.count_item(30015)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob dieses Dämonenandenken in Ordnung ist ...") + say("") + pc.remove_item("30015", 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<15 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend,") + say("dieses Dämonenandenken ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 15 Andenken gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Sagyis Seelenstein,") + say("den du von den Monstern im Dämonenturm,") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_sagyis) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, das Andenken") + say("ist bei den Untersuchungen zerbrochen.") + say("Bitte hol mir ein Neues.") + end + end + end + state collect_sagyis begin + when letter begin + send_letter("Sagyis Seelenstein") + end + when button or info begin + say_title("Sagyis Seelenstein") + say("") + say("Du hast alle 15 Dämonenandenken abgegeben.") + say("Nun musst du Sagyis Seelenstein erbeuten.") + say("") + say_item_vnum(30222) + say("Ob dieser Stein tatsächlich Seelen") + say("von Sagyis Adligen enthält?") + say("") + end + when 1031.kill or 1032.kill or 1033.kill or 1034.kill begin + if pc.count_item(30222)<1 then + local rand = number(0,99) + if rand<5 then game.drop_item_with_ownership(30222, 1) + end + end + end + when 20084.chat."Sagyis Seelenstein" begin + target.delete("__TARGET__") + if pc.count_item(30222)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um Sagyis Seelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30222,1) + set_state(sagyis_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 15 Andenken gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Sagyis Seelenstein,") + say("den du von den Monstern im Dämonenturm,") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state sagyis_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Dämonenandenken und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Verteidigung +60 (Dauerhaft)") + say_reward("1x Gelber Ebenholzkasten") + say("") + affect.add_collect(apply.DEF_GRADE_BONUS, 60, 60*60*24*365*60) + pc.give_item2(50111, 1) + set_state(collect_quest_lv60) + end + end + + ------------------------ + -- LvL 60 / Eiskugeln -- + ------------------------ + state collect_quest_lv60 begin + when login or levelup with pc.level>59 begin + set_state(talk_to_disciple_lv60) + end + end + state talk_to_disciple_lv60 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 4") + end + when button or info begin + say_title("Forschung des Biologen 4") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Eiskugeln" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Dämonenandenken") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte die Eiskugeln untersuchen.") + say("Davon benötige ich 20 Stück.") + say("Diese sind jedoch ziemlich zerbrechlich,") + say("es kann also sein, dass einige bei") + say("meinen Untersuchungen kaputt gehen.") + say("") + set_state(collect_scoops) + pc.setqf("collect_count",0) + end + end + state collect_scoops begin + when letter begin + send_letter("Forschung des Biologen 4") + end + when button or info begin + say_title("Eiskugeln") + say("") + say("Der Biologe gab dir den Auftrag,") + say("20 Eiskugeln zu besorgen.") + say("Diese kannst du bei den Eisgolems auf") + say("dem Berg Sohan erbeuten.") + say("") + say_item_vnum(30050) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 20084.chat."Eiskugeln" with pc.count_item(30050)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob diese Eiskugel in Ordnung ist ...") + say("") + pc.remove_item("30050", 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<20 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend,") + say("diese Eiskugel ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 20 Eiskugeln gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Aurtumryus Seelenstein,") + say("den du von den Eismonstern auf dem Berg Sohan,") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_aurtumryus) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, die Eiskugel") + say("ist bei den Untersuchungen zerbrochen.") + say("Bitte hol mir eine Neue.") + end + end + end + + state collect_aurtumryus begin + when letter begin + send_letter("Aurtumryus Seelenstein") + end + when button or info begin + say_title("Aurtumryus Seelenstein") + say("") + say("Du hast alle 20 Eiskugeln abgegeben.") + say("Nun musst du Aurtumryus Seelenstein erbeuten.") + say("") + say_item_vnum(30223) + say("Ob dieser Stein tatsächlich Seelen") + say("von Aurtumryus Adligen enthält?") + say("") + end + when 1101.kill or 1102.kill or 1103.kill or 1104.kill or 1105.kill or 1106.kill or 1107.kill begin + if pc.count_item(30223)<1 then + local rand = number(0,99) + if rand<5 then game.drop_item_with_ownership(30223, 1) + end + end + end + when 20084.chat."Aurtumryus Seelenstein" begin + if pc.count_item(30223)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um Aurtumryus Seelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30223,1) + set_state(aurtumryus_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 20 Eiskugeln gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Aurtumryus Seelenstein,") + say("den du von den Eismonstern auf dem Berg Sohan,") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state aurtumryus_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Eiskugeln und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Angriffswert +50 (Dauerhaft)") + say_reward("1x Hellgrüner Ebenholskasten") + say("") + affect.add_collect(apply.ATT_GRADE_BONUS, 50, 60*60*24*365*60) + pc.give_item2(50112, 1) + set_state(collect_quest_lv70) + end + end + + -------------------------------- + -- LvL 70 / Zelkovas Holzäste -- + -------------------------------- + + state collect_quest_lv70 begin + when login or levelup with pc.level>69 begin + set_state(talk_to_disciple_lv70) + end + end + state talk_to_disciple_lv70 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 5") + end + when button or info begin + say_title("Forschung des Biologen 5") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Zelkovas Holzäste" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Eiskugeln") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte Zelkovas Holzäste untersuchen.") + say("Davon benötige ich 25 Stück.") + say("Diese welken jedoch ziemlich schnell,") + say("es kann also sein, dass einige für") + say("meine Untersuchungen unbrauchbar sind.") + say("") + set_state(collect_branches) + pc.setqf("collect_count",0) + end + end + state collect_branches begin + when letter begin + send_letter("Forschung des Biologen 5") + end + when button or info begin + say_title("Zelkovas Holzäste") + say("") + say("Der Biologe gab dir den Auftrag,") + say("25 von Zelkovas Holzästen zu besorgen.") + say("Diese kannst du bei den Monstern") + say("im Geisterwald erbeuten.") + say("") + say_item_vnum(30165) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 2301.kill or 2302.kill or 2303.kill or 2304.kill or 2305.kill or 2311.kill or + 2312.kill or 2313.kill or 2314.kill or 2315.kill or 2306.kill or 2307.kill begin + local rand = number(0,99) + if rand<1 then game.drop_item_with_ownership(30165, 1) + end + end + + when 20084.chat."Zelkovas Holzäste" with pc.count_item(30165)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob dieser Holzast in Ordnung ist ...") + say("") + pc.remove_item("30165", 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<25 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend,") + say("dieser Holzast ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 25 Holzäste gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Gyimoks Seelenstein,") + say("den du ebenfalls von den Monstern") + say("im Geisterwald erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_gyimoks) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, der Holzast") + say("ist während des Transports verwelkt.") + say("Bitte hol mir einen Neuen.") + end + end + end + state collect_gyimoks begin + when letter begin + send_letter("Gyimoks Seelenstein") + end + when button or info begin + say_title("Gyimoks Seelenstein") + say("") + say("Du hast alle 25 Holzäste abgegeben.") + say("Nun musst du Gyimoks Seelenstein erbeuten.") + say("") + say_item_vnum(30224) + say("Ob dieser Stein tatsächlich Seelen") + say("von Gyimoks Adligen enthält?") + say("") + end + when 2301.kill or 2302.kill or 2303.kill or 2304.kill or 2305.kill or 2311.kill or + 2312.kill or 2313.kill or 2314.kill or 2315.kill or 2306.kill or 2307.kill begin + if pc.count_item(30224)<1 then + local rand = number(0,99) + if rand<1 then game.drop_item_with_ownership(30224, 1) + end + end + end + when 20084.chat."Gyimoks Seelenstein" begin + target.delete("__TARGET__") + if pc.count_item(30224)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um Gyimoks Seelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30224,1) + set_state(gyimoks_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 25 Holzäste gebracht.") + say("Nun...ich habe noch eine Bitte.") + say("Ich benötige Gyimoks Seelenstein,") + say("den du ebenfalls von den Monstern") + say("im Geisterwald erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state gyimoks_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Zelkova Holzäste und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Bewegungsgeschwindigkeit +11% (Dauerhaft)") + say_reward("Schadensreduzierung +10% (Dauerhaft)") + say_reward("1x Grüner Ebenholzkasten") + say("") + affect.add_collect(apply.MOV_SPEED, 11, 60*60*24*365*60) + affect.add_collect(apply.NORMAL_HIT_DEFEND_BONUS, 10, 60*60*24*365*60) + affect.add_collect(apply.SKILL_DEFEND_BONUS, 10, 60*60*24*365*60) + pc.give_item2(50113, 1) + set_state(collect_quest_lv80) + end + end + + ---------------------------- + -- LvL 80 / Tugyis Tafeln -- + ---------------------------- + state collect_quest_lv80 begin + when login or levelup with pc.level>79 begin + set_state(talk_to_disciple_lv80) + end + end + state talk_to_disciple_lv80 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 6") + end + when button or info begin + say_title("Forschung des Biologen 6") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Tugyis Tafeln" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Zelkova Holzäste") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte Tugyis Tafeln untersuchen.") + say("Davon benötige ich 30 Stück.") + say("Diese sind jedoch ziemlich zerbrechlich,") + say("es kann also sein, dass einige bei") + say("meinen Untersuchungen kaputt gehen.") + say("") + set_state(collect_plates) + pc.setqf("collect_count",0) + end + end + state collect_plates begin + when letter begin + send_letter("Forschung des Biologen 6") + end + when button or info begin + say_title("Tugyis Tafeln") + say("") + say("Der Biologe gab dir den Auftrag,") + say("30 von Tugyis Tafeln zu besorgen.") + say("Diese kannst du bei den Tausenkämpfern") + say("im Land der Riesen erbeuten.") + say("") + say_item_vnum(30166) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + when 1403.kill begin + local rand = number(0,99) + if rand<50 then game.drop_item_with_ownership(30166, 1) + end + end + + when 20084.chat."Tugyis Tafeln" with pc.count_item(30166)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob diese Tafel in Ordnung ist ...") + say("") + pc.remove_item("30166", 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<30 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend,") + say("diese Tafel ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 30 Tafeln gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Tugyis Seelenstein,") + say("den du ebenfalls von den Monstern") + say("im Land der Riesen erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_tugyis) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, die Tafel") + say("ist während der Untersuchung zerbrochen.") + say("Bitte hol mir eine Neue.") + end + end + end + state collect_tugyis begin + when letter begin + send_letter("Tugyis Seelenstein") + end + when button or info begin + say_title("Tugyis Seelenstein") + say("") + say("Du hast alle 30 Tafeln abgegeben.") + say("Nun musst du Tugyis Seelenstein erbeuten.") + say("") + say_item_vnum(30225) + say("Ob dieser Stein tatsächlich Seelen") + say("von Tugyis Adligen enthält?") + say("") + end + when 1401.kill or 1402.kill or 1403.kill or 1601.kill or 1602.kill or 1603.kill begin + if pc.count_item(30225)<1 then + local rand = number(0,99) + if rand<5 then game.drop_item_with_ownership(30225, 1) + end + end + end + when 20084.chat."Tugyis Seelenstein" begin + if pc.count_item(30225)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um Tugyis Seelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30225,1) + set_state(tugyis_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 30 Tafeln gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige Tugyis Seelenstein,") + say("den du ebenfalls von den Monstern") + say("im Land der Riesen erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state tugyis_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Tugyis Tafeln und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Angriffsgeschwindigkeit +6% (Dauerhaft)") + say_reward("Schadenserhöhung +10% (Dauerhaft)") + say_reward("1x Blauer Ebenholzkasten") + say("") + affect.add_collect(apply.ATT_SPEED, 6, 60*60*24*365*60) + affect.add_collect(apply.SKILL_DAMAGE_BONUS, 10, 60*60*24*365*60) + affect.add_collect(apply.NORMAL_HIT_DAMAGE_BONUS, 10, 60*60*24*365*60) + pc.give_item2(50114, 1) + set_state(collect_quest_lv85) + end + end + + ------------------------------------ + -- LvL 85 / Roter Geisterbaum Ast -- + ------------------------------------ + + state collect_quest_lv85 begin + when login or levelup with pc.level>84 begin + set_state(talk_to_disciple_lv85) + end + end + state talk_to_disciple_lv85 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 7") + end + when button or info begin + say_title("Forschung des Biologen 7") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Roter Geisterbaum Ast" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Tugyis Tafeln") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte Roter Geisterbaum Ast untersuchen.") + say("Davon benötige ich 40 Stück.") + say("Diese welken jedoch ziemlich schnell,") + say("es kann also sein, dass einige für") + say("meine Untersuchungen unbrauchbar sind.") + say("") + set_state(collect_red_ast) + pc.setqf("collect_count",0) + end + end + state collect_red_ast begin + when letter begin + send_letter("Forschung des Biologen 7") + end + when button or info begin + say_title("Roter Geisterbaum Ast") + say("") + say("Der Biologe gab dir den Auftrag,") + say("40 von Roter Geisterbaum Ast zu besorgen.") + say("Diese kannst du bei den Monstern") + say("im Roten Wald erbeuten.") + say("") + say_item_vnum(30167) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 2311.kill or 2312.kill or 2313.kill or 2314.kill or 2315.kill begin + local rand = number(0,99) + if rand<2 then game.drop_item_with_ownership(30167, 1) + end + end + + when 20084.chat."Roter Geisterbaum Ast" with pc.count_item(30167)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob der Roter Geisterbaum Ast gut ist ...") + say("") + pc.remove_item(30167, 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<40 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend,") + say("dieser Ast ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 40 Roter Geisterbaum Ast gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige den Waldgeist-Seelenstein,") + say("den du ebenfalls von den Bossen") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_bossKey) + end + else + say_title("Biologe:") + say("") + say("Es tut mir leid, der Holzast") + say("ist während des Transports verwelkt.") + say("Bitte hol mir einen Neuen.") + say("") + end + end + end + state collect_bossKey begin + when letter begin + send_letter("Waldgeist-Seelenstein") + end + when button or info begin + say_title("Waldgeist-Seelenstein") + say("") + say("Du hast alle 40 Roter Geisterbaum Ast abgegeben.") + say("Nun musst du den Waldgeist-Seelenstein") + say("erbeuten.") + say("") + say_item_vnum(30226) + say("Ob dieser Stein tatsächlich Seelen") + say("eines Waldgeistes enthält?") + say("") + end + when 2311.kill or 2312.kill or 2313.kill or 2314.kill or 2315.kill begin + if pc.count_item(30226)<1 then + local rand = number(0,99) + if rand<1 then game.drop_item_with_ownership(30226, 1) + end + end + end + when 20084.chat."Waldgeist-Seelenstein" begin + if pc.count_item(30226)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um den Waldgeist-Seelenstein.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30226,1) + set_state(bossKey_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die Roter Geisterbaum Ast gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige den Waldgeist-Seelenstein,") + say("den du ebenfalls von den Bossen") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state bossKey_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Notizen und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Schadenreduzierung gegen andere Spieler: +10% (Dauerhaft)") + say_reward("1x Purpur Ebenholzkasten") + say("") + affect.add_collect(apply.RESIST_WARRIOR, 10, 60*60*24*365*60) + affect.add_collect(apply.RESIST_ASSASSIN, 10, 60*60*24*365*60) + affect.add_collect(apply.RESIST_SURA, 10, 60*60*24*365*60) + affect.add_collect(apply.RESIST_SHAMAN, 10, 60*60*24*365*60) + pc.give_item2(50115, 1) + set_state(collect_quest_lv90) + end + end + --------------------------------- + -- LvL 90 / Notiz der Anführer -- + --------------------------------- + + state collect_quest_lv90 begin + when login or levelup with pc.level>89 begin + set_state(talk_to_disciple_lv90) + end + end + state talk_to_disciple_lv90 begin + when letter begin + local v = find_npc_by_vnum(20084) + if v != 0 then target.vid("__TARGET__", v, "Biologe") + end + send_letter("Forschung des Biologen 8") + end + when button or info begin + say_title("Forschung des Biologen 8") + say("") + say("Der Biologe benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Gegenständen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit dem Biologen") + say("") + end + when __TARGET__.target.click or 20084.chat."Notiz der Anführer" begin + target.delete("__TARGET__") + say_title("Biologe:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Tugyis Tafeln") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say_title("Biologe:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say_title("Biologe:") + say("") + say("Ich möchte Notizen der Anführer untersuchen.") + say("Davon benötige ich 50 Stück.") + say("Es kann jedoch sein, dass sich einige") + say("Notizen als alt und unlesbar herausstellen.") + say("") + set_state(collect_notices) + pc.setqf("collect_count",0) + end + end + state collect_notices begin + when letter begin + send_letter("Forschung des Biologen 8") + end + when button or info begin + say_title("Notiz der Anführer") + say("") + say("Der Biologe gab dir den Auftrag,") + say("50 Notizen der Anführer zu besorgen.") + say("Diese kannst du von den Bossen") + say("wie z.B. Oberork, Königsspinne,") + say("Neunschwanz, etc. erbeuten.") + say("") + say_item_vnum(30168) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1304.kill or + 1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5001.kill or 5004.kill or + 5161.kill or 5162.kill or 5163.kill begin + local rand = number(0,99) + if rand<70 then game.drop_item_with_ownership(30168, 1) + end + end + + when 20084.chat."Notiz der Anführer" with pc.count_item(30168)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Biologe:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Biologe:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob diese Notiz lesbar ist ...") + say("") + pc.remove_item("30168", 1) + wait() + if rand<50 then + local count = pc.getqf("collect_count")+1 + if count<50 then + pc.setqf("collect_count", count) + say_title("Biologe:") + say("") + say("Hervorragend,") + say("diese Notiz ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Biologe:") + say("") + say("Du hast mir die 50 Notizen gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige den Seelenstein der Anführer,") + say("den du ebenfalls von den Bossen") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + pc.setqf("collect_count",0) + set_state(collect_bossKey2) + end + else + say_title("Biologe:") + say("Es tut mir leid, die Notiz") + say("hat sich als unlesbar herausgestellt.") + say("Bitte hol mir eine Neue.") + end + end + end + state collect_bossKey2 begin + when letter begin + send_letter("Seelenstein der Anführer") + end + when button or info begin + say_title("Seelenstein der Anführer") + say("") + say("Du hast alle 50 Notizen abgegeben.") + say("Nun musst du den Seelenstein der Anführer") + say("erbeuten.") + say("") + say_item_vnum(30227) + say("Ob dieser Stein tatsächlich Seelen") + say("der Anführer enthält?") + say("") + end + when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1304.kill or + 1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5001.kill or 5004.kill or + 5161.kill or 5162.kill or 5163.kill begin + if pc.count_item(30227)<1 then + local rand = number(0,99) + if rand<20 then game.drop_item_with_ownership(30227, 1) + end + end + end + when 20084.chat."Seelenstein der Anführer" begin + if pc.count_item(30227)>0 then + say_title("Biologe:") + say("") + say("Dank deiner Hilfe verstehe ich nun") + say("die Legende um den Seelenstein der Anführer.") + say("Du hast hart gekämpft.") + say("Sprich mit Baek-Go, er wird dir helfen,") + say("deine inneren Kräfte zu steigern.") + say("") + pc.remove_item(30227,1) + set_state(bossKey_reward) + else + say_title("Biologe:") + say("") + say("Du hast mir die 50 Notizen gebracht.") + say("Nun, ich habe noch eine Bitte.") + say("Ich benötige den Seelenstein der Anführer,") + say("den du ebenfalls von den Bossen") + say("erbeuten kannst.") + say("Ich denke, dafür bist du stark genug.") + say("") + end + end + end + state bossKey_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Biologen zu erhalten,") + say("suche mit den Informationen der") + say("Notizen und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Biologen" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("") + say("Ich sehe ...") + say("Der Biologe hat dich zu mir geschickt.") + say("Hier ist deine Belohnung:") + say("") + say_reward("Du erhälst:") + say_reward("Schaden gegen andere Spieler: +8% (Dauerhaft)") + say_reward("1x Blauer Ebenholzkasten") + say("") + affect.add_collect(apply.ATTBONUS_WARRIOR, 8, 60*60*24*365*60) + affect.add_collect(apply.ATTBONUS_ASSASSIN, 8, 60*60*24*365*60) + affect.add_collect(apply.ATTBONUS_SURA, 8, 60*60*24*365*60) + affect.add_collect(apply.ATTBONUS_SHAMAN, 8, 60*60*24*365*60) + pc.give_item2(50114, 1) + set_state(collect_quest_lv90) + end + end + + -------------------------------- + -- LvL 92 / Juwelen der Magie -- + -------------------------------- + state collect_quest_lv90 begin + when login or levelup with pc.level ==92 begin + set_state(talk_to_disciple_lv92) + end + end + state talk_to_disciple_lv92 begin + when letter begin + local v = find_npc_by_vnum(20091) + if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") + end + send_letter("Forschung von Seon-Pyeong") + end + when button or info begin + say_title("Die Forschung von Seon-Pyeong") + say("") + say("Seon-Pyeong benötigt deine Hilfe.") + say("Sprich mit ihm.") + say("") + say_reward("Sprich mit Seon-Pyeong") + say("") + end + when __TARGET__.target.click or 20091.chat."Juwelen der Magie" begin + target.delete("__TARGET__") + say("Seon-Pyeong:") + say("") + say("Oh, du hilfst mir?") + say("Gut ...") + say("Ich bin übrigens Seon-Pyeong") + say("und studiere zahlreiches aus der Unterwelt.") + say("Wenn du mir bei meinen Forschungen hilfst,") + say("werde ich dich reich belohnen.") + say("") + wait() + say("Seon-Pyeong:") + say("") + say("Ich habe vor kurzem wieder angefangen ...") + say("Ich forsche an einer Legende ...") + say("Doch habe ich derzeit viel zu tun,") + say("es wäre also nett, wenn du mir hilfst ...") + say("") + wait() + say("Seon-Pyeong:") + say("") + say("Ich benötige zehn Juwelen der Magie für meine") + say("Forschungen. Diese sind jedoch sehr zerbrechlich,") + say("es kann also sein, dass einige bei meinen") + say("Untersuchungen kaputt gehen.") + say("Ich benötige alle zehn,") + say("um meine Forschungen vollenden zu können.") + say("") + set_state(collect_magie) + pc.setqf("collect_count",0) + end + end + state collect_magie begin + when letter begin + send_letter("Forschung von Seon-Pyeong") + end + when button or info begin + say_title("Juwelen der Magie") + say("") + say("Seon-Pyeong gab dir den Auftrag,") + say("zehn Juwelen der Magie zu sammeln.") + say("Sammel und bring sie Seon-Pyeong.") + say("") + say_item_vnum(30251) + say("") + say("Du bekommst sie von den Golems aus der Grotte 1") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + + when 20091.chat."Juwelen der Magie" with pc.count_item(30251)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Seon-Pyeong:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Seon-Pyeong:") + say("") + say("Super, du hast mir einen Juwel der Magie gebracht ...") + say("Vielen Dank,") + say("lasst mich schnell schauen") + say("ob dieses Juwel in ordnung ist ...") + say("") + pc.remove_item(30251, 1) + wait() + if rand<25 then + local count = pc.getqf("collect_count")+1 + if count<10 then + pc.setqf("collect_count", count) + say("Seon-Pyeong:") + say("") + say("Hervorragend, dieses Juwel ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Seon-Pyeong:") + say("") + say("Du hast mir die 10 Stück gebracht...") + say("geh zu Baek-Go um dir deine belohnung") + say("abzuholen.") + say("") + pc.setqf("collect_count",0) + set_state(magie_reward) + end + else + say("Seon-Pyeong:") + say("") + say("Es tut mir leid, aber dises Juwel ist bei") + say("den Untersuchungen zerbrochen.") + say("Bitte hol mir ein neues Juwel!") + say("") + end + end + end + state magie_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Seon-Pyeong zu erhalten") + say("suche mit den Informationen den") + say("Juwelen der Magie Baek-Go auf.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Seon-Pyeong" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("Ich sehe ...") + say("Seon-Pyeong hat dich zu mir geschickt.") + say("") + say_reward("Du erhälst:") + say_reward("Max-MP: +162 (Dauerhaft)") + say("") + affect.add_collect(apply.MAX_SP, 162, 60*60*24*365*60) + set_state(collect_quest_lv94) + end + end + + -------------------------------------- + -- LvL 94 / Juwelen der Lebenskraft -- + -------------------------------------- + state collect_quest_lv94 begin + when login or levelup with pc.level>93 begin + set_state(talk_to_disciple_lv94) + end + end + state talk_to_disciple_lv94 begin + when letter begin + local v = find_npc_by_vnum(20091) + if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") + end + send_letter("Forschung des Seon-Pyeong 2") + end + when button or info begin + say_title("Forschung des Seon-Pyeong 2") + say("") + say("Sprich mit Seon-Pyeong, er benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Juwelen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit Seon-Pyeong") + say("") + end + when __TARGET__.target.click or 20091.chat."Juwelen der Lebenskraft" begin + target.delete("__TARGET__") + say("Seon-Pyeong:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Juwelen der Magie") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say("Seon-Pyeong:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say("Seon-Pyeong:") + say("") + say("Ich möchte die Juwelen der Lebenskraft untersuchen.") + say("Davon benötige ich 10 Stück.") + say("Die Juwelen sind jedoch ziemlich zerbrechlich,") + say("manchmal zerfallen sie einfach!") + say("") + set_state(collect_lebenskraft) + pc.setqf("collect_count",0) + end + end + state collect_lebenskraft begin + when letter begin + send_letter("Forschung des Seon-Pyeong 2") + end + when button or info begin + say_title("Juwelen der Lebenskraft") + say("") + say("Sprich mit Seon-Pyeong, er gab dir den Auftrag,") + say("10 Juwelen der Lebenskraft zu besorgen.") + say("Diese kannst du bei den Seatou Monstern") + say("in der Grotte 2 am hinteren Teil bekommen.") + say("") + say_item_vnum(30252) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + when 20091.chat."Juwelen der Lebenskraft" with pc.count_item(30252)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Seon-Pyeong:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Seon-Pyeong:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob dieses Juwel der Lebenskraft in Ordnung ist ...") + say("") + pc.remove_item(30252, 1) + wait() + if rand<25 then + local count = pc.getqf("collect_count")+1 + if count<10 then + pc.setqf("collect_count", count) + say_title("Seon-Pyeong:") + say("") + say("Hervorragend, dieses Juwel der Lebenskraft ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Seon-Pyeong:") + say("") + say("Du hast mir die 10 Stück gebracht...") + say("geh zu Baek-Go um dir deine belohnung") + say("abzuholen.") + say("") + pc.setqf("collect_count",0) + set_state(lebenskraft_reward) + end + else + say_title("Seon-Pyeong:") + say("") + say("Es tut mir leid, das Juwel") + say("ist bei den Untersuchungen zerfallen.") + say("Bitte hol mir ein neues Juwel.") + end + end + end + state lebenskraft_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Seon-Pyeong zu erhalten,") + say("suche mit den Informationen der") + say("Juwelen der Lebenskraft und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Seon-Pyeong" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("Ich sehe ...") + say("Seon-Pyeong hat dich zu mir geschickt.") + say("") + say_reward("Du erhälst:") + say_reward("Max-TP: +1414 (Dauerhaft)") + say("") + affect.add_collect(apply.MAX_HP, 1414, 60*60*24*365*60) + set_state(collect_quest_lv96) + end + end + + ----------------------------------- + -- LvL 96 / Juwelen des Angriffs -- + ----------------------------------- + state collect_quest_lv96 begin + when login or levelup with pc.level>95 begin + set_state(talk_to_disciple_lv96) + end + end + state talk_to_disciple_lv96 begin + when letter begin + local v = find_npc_by_vnum(20091) + if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") + end + send_letter("Forschung des Seon-Pyeong 3") + end + when button or info begin + say_title("Forschung des Seon-Pyeong 3") + say("") + say("Sprich mit Seon-Pyeong, er benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Juwelen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit Seon-Pyeong") + say("") + end + when __TARGET__.target.click or 20091.chat."Juwelen des Angriffs" begin + target.delete("__TARGET__") + say("Seon-Pyeong:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Juwelen der Lebenskraft") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say("Seon-Pyeong:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say("Seon-Pyeong:") + say("") + say("Ich möchte die Juwelen des Angriffs untersuchen.") + say("Davon benötige ich 10 Stück.") + say("Die Juwelen sind jedoch ziemlich zerbrechlich,") + say("manchmal zerfallen sie einfach!") + say("") + set_state(collect_angriff) + pc.setqf("collect_count",0) + end + end + state collect_angriff begin + when letter begin + send_letter("Forschung des Seon-Pyeong 2") + end + when button or info begin + say_title("Juwelen des Angriffs") + say("") + say("Sprich mit Seon-Pyeong, er gab dir den Auftrag,") + say("10 Juwelen des Angriffs zu besorgen.") + say("Diese kannst du bei den Seatou Monstern") + say("in der Grotte 2 am hinteren Teil bekommen.") + say("") + say_item_vnum(30253) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + when 20091.chat."Juwelen des Angriffs" with pc.count_item(30253)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Seon-Pyeong:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Seon-Pyeong:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob dieses Juwel des Angriffs in Ordnung ist ...") + say("") + pc.remove_item(30253, 1) + wait() + if rand<25 then + local count = pc.getqf("collect_count")+1 + if count<20 then + pc.setqf("collect_count", count) + say_title("Seon-Pyeong:") + say("") + say("Hervorragend, dieses Juwel des Angriffs ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Seon-Pyeong:") + say("") + say("Du hast mir die 10 Stück gebracht...") + say("geh zu Baek-Go um dir deine belohnung") + say("abzuholen.") + say("") + pc.setqf("collect_count",0) + set_state(angriff_reward) + end + else + say_title("Seon-Pyeong:") + say("") + say("Es tut mir leid, das Juwel") + say("ist bei den Untersuchungen zerfallen.") + say("Bitte hol mir ein neues Juwel.") + end + end + end + state angriff_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Seon-Pyeong zu erhalten,") + say("suche mit den Informationen der") + say("Juwelen des Angriffs und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Seon-Pyeong" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("Ich sehe ...") + say("Seon-Pyeong hat dich zu mir geschickt.") + say("") + say_reward("Du erhälst:") + say_reward("Angriff: +60 (Dauerhaft)") + say("") + affect.add_collect(apply.ATT_GRADE_BONUS, 60, 60*60*24*365*60) + set_state(collect_quest_lv98) + end + end + --------------------------------------- + -- LvL 98 / Juwelen der Verteidigung -- + --------------------------------------- + state collect_quest_lv98 begin + when login or levelup with pc.level>97 begin + set_state(talk_to_disciple_lv98) + end + end + state talk_to_disciple_lv98 begin + when letter begin + local v = find_npc_by_vnum(20091) + if v != 0 then target.vid("__TARGET__", v, "Seon-Pyeong") + end + send_letter("Forschung des Seon-Pyeong 4") + end + when button or info begin + say_title("Forschung des Seon-Pyeong 4") + say("") + say("Sprich mit Seon-Pyeong, er benötigt ein weiteres Mal Hilfe.") + say("Er meinte, er bräuchte Hilfe auf der Suche") + say("nach speziellen Juwelen.") + say("Sprich mit ihm,") + say("um eine genauere Beschreibung zu erhalten.") + say("") + say_reward("Sprich mit Seon-Pyeong") + say("") + end + when __TARGET__.target.click or 20091.chat."Juwelen der Verteidigung" begin + target.delete("__TARGET__") + say("Seon-Pyeong:") + say("") + say("Gut, dass du gekommen bist...") + say("Die Untersuchung der Juwelen des Angriffs") + say("habe ich abgeschlossen.") + say("Nun habe ich neue Objekte gefunden,") + say("die ich gerne untersuchen würde.") + wait() + say("Seon-Pyeong:") + say("") + say("Ich würde sie ja selber sammeln,") + say("aber ich habe zuviel zu tun...") + say("Es wäre sehr nett, wenn du dies") + say("für mich erledigen könntest.") + wait() + say("Seon-Pyeong:") + say("") + say("Ich möchte die Juwelen der Verteidigung untersuchen.") + say("Davon benötige ich 10 Stück.") + say("Die Juwelen sind jedoch ziemlich zerbrechlich,") + say("manchmal zerfallen sie einfach!") + say("") + set_state(collect_verteidigung) + pc.setqf("collect_count",0) + end + end + state collect_verteidigung begin + when letter begin + send_letter("Forschung des Seon-Pyeong 4") + end + when button or info begin + say_title("Juwelen der Verteidigung") + say("") + say("Sprich mit Seon-Pyeong, er gab dir den Auftrag,") + say("10 Juwelen der Verteidigung zu besorgen.") + say("Diese kannst du bei den Seatou Monstern") + say("in der Grotte 2 am hinteren Teil bekommen.") + say("") + say_item_vnum(30254) + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + end + when 20091.chat."Juwelen der Verteidigung" with pc.count_item(30254)>0 begin + local rand = number(0,99) + if pc.count_item(71035)>0 then + say_title("Seon-Pyeong:") + say("") + say_item_vnum(71035) + say("Du trägst das Elixier des Forschers bei dir!") + say("Damit kannst du die Qualität des Gegenstands verbessern") + say("und somit die Wahrscheinlichkeit steigern, dass die Abgabe") + say("erfolgreich ist.") + say("") + local sel = select("Verwenden", "Nicht verwenden") + if sel == 1 then + rand = rand - 25 + pc.remove_item(71035, 1) + else end + end + say_title("Seon-Pyeong:") + say("") + say("Einen Moment ...") + say("Vielen Dank,") + say("lass mich schnell überprüfen") + say("ob dieses Juwel der Verteidigung in Ordnung ist ...") + say("") + pc.remove_item(30254, 1) + wait() + if rand<25 then + local count = pc.getqf("collect_count")+1 + if count<20 then + pc.setqf("collect_count", count) + say_title("Seon-Pyeong:") + say("") + say("Hervorragend, dieses Juwel der Verteidigung ist in Ordnung.") + say("Bring mir noch welche, damit ich meine") + say("Forschungen abschließen kann.") + say("") + say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!") + say("") + else + say_title("Seon-Pyeong:") + say("") + say("Du hast mir die 10 Stück gebracht...") + say("geh zu Baek-Go um dir deine belohnung") + say("abzuholen.") + say("") + pc.setqf("collect_count",0) + set_state(verteidigung_reward) + end + else + say_title("Seon-Pyeong:") + say("") + say("Es tut mir leid, das Juwel") + say("ist bei den Untersuchungen zerfallen.") + say("Bitte hol mir ein neues Juwel.") + end + end + end + state verteidigung_reward begin + when letter begin + send_letter("Sprich mit Baek-Go") + local v = find_npc_by_vnum(20018) + if v != 0 then target.vid("__TARGET__", v, "Doktor") + end + end + when button or info begin + say_title("Sprich mit Baek-Go") + say("") + say("Um die Belohnung des Seon-Pyeong zu erhalten,") + say("suche mit den Informationen der") + say("Juwelen der Verteidigung und des Seelensteins") + say("Baek-Go auf. Er befindet sich in der Stadt.") + say("") + end + when __TARGET__.target.click or 20018.chat."Belohnung des Seon-Pyeong" begin + target.delete("__TARGET__") + say_title("Baek-Go:") + say("Ich sehe ...") + say("Seon-Pyeong hat dich zu mir geschickt.") + say("") + say_reward("Du erhälst:") + say_reward("Verteidigung: +59 (Dauerhaft)") + say("") + affect.add_collect(apply.DEF_GRADE_BONUS, 59, 60*60*24*365*60) + set_state(__COMPLETE__) + end + end + + state __COMPLETE__ begin + end +end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/quest/mining.lua b/main/srv1/share/locale/germany/quest/quest_system/mining_bergbau.lua similarity index 100% rename from main/srv1/share/locale/germany/quest/mining.lua rename to main/srv1/share/locale/germany/quest/quest_system/mining_bergbau.lua diff --git a/main/srv1/share/locale/germany/quest/quest_system/oxevent.lua b/main/srv1/share/locale/germany/quest/quest_system/oxevent.lua new file mode 100644 index 00000000..6b6a3129 --- /dev/null +++ b/main/srv1/share/locale/germany/quest/quest_system/oxevent.lua @@ -0,0 +1,119 @@ +quest oxevent begin + state start begin + when 20011.chat."OX-Wettbewerb" begin + say_title("Uriel:") + say("Hey - du da! Ja, genau du.") + say("Du schaust recht intelligent aus. Es gibt einen") + say("Wettbewerb, der heißt OX-Wettbewerb. Dort wird") + say("dein Wissen abgefragt. Wenn du gewinnst,") + say("bekommst du eine tolle Belohnung.") + if game.get_event_flag("oxevent_status") == 0 then + wait() + say_title("Uriel:") + say("Wenn der Wettbewerb los geht, kann ich dich") + say("daran teilnehmen lassen, aber du kannst auch") + say("einfach nur zuschauen.") + say("Der Startzeitpunkt ist noch nicht festgelegt.") + say("Ich gebe dir Bescheid, also halte dich bereit.") + elseif game.get_event_flag("oxevent_status") == 1 then + wait() + say_title("Uriel:") + say("Möchtest du auch dabei sein?") + local s = select("Ja", "Nein", "Zuschauen") + if s == 1 then + say_title("Uriel:") + say("Okey, du wirst zum Wettbewerb telepotiert.") + wait() + pc.warp(896500, 24600) + elseif s == 3 then + say_title("Uriel:") + say("Du willst also nur zuschauen?") + say("Okey, du wirst zum OX-Wettbewerb telepotiert.") + wait() + pc.warp(896300, 28900) + end + elseif game.get_event_flag("oxevent_status") == 2 then + say_title("Uriel:") + say("Du kannst nicht mehr teilnehmen!") + say("Nur noch den restlichen Verlauf des Events zugucken.") + local s = select("Zuschauen", "Schließen") + if s == 1 then + say_title("Uriel:") + say("Du wirst zum Wettbewerb telepotiert.") + wait() + pc.warp(896300, 28900) + end + end + end + + when 20358.chat."(GM) OX-Wettbewerb" or 20011.chat."(GM) OX-Wettbewerb" with pc.is_gm() begin + local stat = oxevent.get_status() + -- say_title("OX-Optionen:") + -- say("") + -- say(stat) + if stat == 0 then + say("Möchtest du, das OX-Wettbewerb starten?") + local s = select("Ja", "Nein") + if s == 1 then + local v = oxevent.open() + if v == 0 then + say("Der OX-Wettbewerb ist schon aktiviert.") + elseif v == 1 then + say("Der OX-Wettbewerb wurde gestartet.") + notice_all("Der OX-Wettbewerb hat gerade angefangen!") + else + say_title("Namenlose Blumen:") + say("Der OX-Wettbewerb konnte nicht ausgeführt werden.") + end + end + elseif stat == 1 then + say_title("Namenlose Blumen:") + say("Es ist/sind "..oxevent.get_attender().." Spieler hier.") + say("Willst du den Zugang wirklich schließen?") + local s = select("Ja", "Nein") + if s == 1 then + oxevent.close() + say_title("Namenlose Blumen:") + say("Der Zugang wurde soeben geschlossen!") + end + elseif stat == 2 then + say_title("Namenlose Blumen:") + say("Was möchtest du machen?") + local s = select("Frage stellen", "Alle Spieler belohnen", "Beenden", "Schließen") + if s == 1 then + local v = oxevent.quiz(1, 30) + if v == 0 then + say_title("Namenlose Blumen:") + say("Das OX-Wettbewerb läuft zurzeit noch nicht!") + elseif v == 1 then + say_title("Namenlose Blumen:") + say("Die Frage wurde erfolgreich abgesendet!") + else + say_title("Namenlose Blumen:") + say("Es wird schon eine Frage gestellt!") + end + elseif s == 2 then + say_title("Namenlose Blumen:") + say("Bitte gib die Itemnummer in das Feld ein.") + local item_vnum = input() + say_title("Namenlose Blumen:") + say("Bitte gib die Itemanzahl in das Feld ein.") + local item_count = input() + oxevent.give_item(item_vnum, item_count) + say_title("Namenlose Blumen:") + say("Du hast "..oxevent.get_attender().." Spieler die Belohnung gegeben!") + elseif s == 3 then + oxevent.end_event() + notice_all("Der OX-Wettbewerb hat gerade sein Ende gefunden!") + say_title("Namenlose Blumen:") + say("Du hast den OX-Wettbewerb beendet!") + elseif stat == 3 then + say_title("Namenlose Blumen:") + say("Bitte warte einen Augenblick.") + else + say("Ein Fehler ist aufgetreten!") + end + end + end +end + diff --git a/main/srv1/share/locale/germany/quest/pet_system.quest b/main/srv1/share/locale/germany/quest/quest_system/pet_system.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/pet_system.quest rename to main/srv1/share/locale/germany/quest/quest_system/pet_system.quest diff --git a/main/srv1/share/locale/germany/quest/ride.quest b/main/srv1/share/locale/germany/quest/quest_system/powermount_system.quest similarity index 100% rename from main/srv1/share/locale/germany/quest/ride.quest rename to main/srv1/share/locale/germany/quest/quest_system/powermount_system.quest diff --git a/main/srv1/share/locale/germany/quest/questlib.lua b/main/srv1/share/locale/germany/quest/questlib.lua index 40fbeece..832a3ffd 100755 --- a/main/srv1/share/locale/germany/quest/questlib.lua +++ b/main/srv1/share/locale/germany/quest/questlib.lua @@ -1866,4 +1866,43 @@ function drop_gamble_with_flag(drop_flag) return dp >= number(1, range) end -dofile(get_locale_base_path() .. "/quest/questing.lua") +function say2(msg) + msg_size = string.len(msg) + if msg_size > 59 then + local i = 59 + last_word = nil + while last_word == nil and i > 0 do + if string.sub(msg,i,i) == " " or string.sub(msg,i,i) == "." or string.sub(msg,i,i) == "," then + last_word = i + end + i = i-1 + end + if i == 0 then + last_word = 59 + end + say(string.sub(msg,0,last_word)) + say2(string.sub(msg,last_word+1)) + else + say(msg) + end +end + +function say_normal(name) say(color256(0, 0, 255)..name..color256(196, 196, 196)) end +function say_blue(name) say(color256(0, 0, 255)..name..color256(196, 196, 196)) end +function say_red(name) say(color256(255, 0, 0)..name..color256(196, 196, 196)) end +function say_green(name) say(color256(0, 238, 0)..name..color256(196, 196, 196)) end +function say_gold(name) say(color256(255, 215, 0)..name..color256(196, 196, 196)) end +function say_black(name) say(color256(0, 0, 0)..name..color256(196, 196, 196)) end +function say_white(name) say(color256(255, 255, 255)..name..color256(196, 196, 196)) end +function say_yellow(name) say(color256(255, 255, 0)..name..color256(196, 196, 196)) end +function say_cyan(name) say(color256(0, 206, 209)..name..color256(196, 196, 196)) end +function notice_all_blue(name) say(color256(0, 0, 255)..name..color256(196, 196, 196)) end +function notice_all_red(name) say(color256(255, 0, 0)..name..color256(196, 196, 196)) end +function notice_all_green(name) say(color256(0, 238, 0)..name..color256(196, 196, 196)) end +function notice_all_gold(name) say(color256(255, 215, 0)..name..color256(196, 196, 196)) end +function notice_all_black(name) say(color256(0, 0, 0)..name..color256(196, 196, 196)) end +function notice_all_white(name) say(color256(255, 255, 255)..name..color256(196, 196, 196)) end +function notice_all_yellow(name) say(color256(255, 255, 0)..name..color256(196, 196, 196)) end +function notice_all_cyan(name) say(color256(0, 206, 209)..name..color256(196, 196, 196)) end + +dofile( get_locale_base_path() .. "/quest/LIB/horse_appearence.lua") diff --git a/main/srv1/share/locale/germany/quest/sample__guild_make.quest b/main/srv1/share/locale/germany/quest/sample__guild_make.quest deleted file mode 100755 index 69d0aea1..00000000 --- a/main/srv1/share/locale/germany/quest/sample__guild_make.quest +++ /dev/null @@ -1,46 +0,0 @@ -define __givememoney__ 1000000000 -quest guild_make begin - state start begin - when guild_man1.chat."Make a guild" or guild_man2.chat."Make a guild" or guild_man3.chat."Make a guild" with not pc.hasguild() and not pc.isguildmaster() begin - say("Do you wanna make a guild? I require much money.") - say_reward("You should give him: ".. __givememoney__ .." yang.") - if select("Yes", "No")==2 then return end - -- let's start! - say("Input the name you want for your guild:") - local guild_name = string.gsub(input(), "[^A-Za-z0-9]", "") -- it also clean non alphanumeric characters - local guild_len_name = string.len(guild_name) - if not ((2 < guild_len_name) and (guild_len_name < 12)) then - say_reward("The name should not have special characters and its length should be between 3-11 characters!") - return - end - say("Are you sure you wanna create such guild?[ENTER]"..guild_name) - if select("Yes", "No")==2 then return end - -- checks begin - if not (pc.get_gold() >= __givememoney__ ) then - say_reward("Not enough money.") - return - end - if (pc.hasguild() or pc.isguildmaster()) then - say_reward("You're already inside a guild.") - return - end - -- checks end - -- so many ifs, we can simplify this by using a table - local ret = pc.make_guild0(guild_name) - if ret==-2 then - say_reward("[NO] guild name is invalid (strlen <2 or >11!)") - elseif ret==-1 then - say_reward("[NO] guild name is invalid (special chars found!)") - elseif ret==0 then - say_reward("[NO] guild not created (guild name already present or already member of a guild)") - elseif ret==1 then - pc.change_gold(- __givememoney__ ) - say_reward("[YES] guild created") - elseif ret==2 then - say_reward("[NO] player already part of a guild") - elseif ret==3 then - say_reward("[NO] player already guild master") - end - end - end -end diff --git a/main/srv1/share/locale/germany/quest/sample__mob_drop_item.quest b/main/srv1/share/locale/germany/quest/sample__mob_drop_item.quest deleted file mode 100755 index fb96a791..00000000 --- a/main/srv1/share/locale/germany/quest/sample__mob_drop_item.quest +++ /dev/null @@ -1,275 +0,0 @@ ---[[ martysama0134 - sample MOB_DROP from QUEST - NOTES: - -) pct 10000 will be 100%, which means 100 will be 1% and so on; pct/100 = real % (change MIN_PCT and MAX_PCT otherwise) - -) range_level = 0 no range detection at all; skip if abs(player_level - mob_level) > range_level (if missing, MOB_RANGE_LVL will be used by default) - -) min_level = 0 does nothing, non-zero -> drop only if player level >= min_level - -) max_level = 0 does nothing, non-zero -> drop only if player level <= max_level - -) limit_map = 0 all maps, non-zero -> player_map_index = limit_map - -) a table can have "multi" for containing a sub-table of drops - -) "vnum" can have a range of values for dropping all of them at once -]] - -define MIN_PCT 1 -define MAX_PCT 10000 - -define MOB_RANGE_LVL 15 - -define DROP_TYPE_INVENTORY 1 -define DROP_TYPE_INVENTORY_WITH_DICE 2 -define DROP_TYPE_GROUND 3 -define DROP_TYPE_GROUND_WITH_OWNERSHIP 4 -define DROP_TYPE_GROUND_WITH_OWNERSHIP_AND_DICE 5 - -define MSG_TYPE_INFO 1 -define MSG_TYPE_NOTICE_ALL 2 -define MSG_TYPE_BIG_NOTICE_ALL 3 - -quest mob_drop_item begin - state start begin - function fnc_drop(drop_type) - if mob_drop_item.fnc_drop_list==nil then - mob_drop_item.fnc_drop_list = { - [DROP_TYPE_INVENTORY] = pc.give_item2, - [DROP_TYPE_INVENTORY_WITH_DICE] = pc.give_item2_with_dice, - [DROP_TYPE_GROUND] = game.drop_item, - [DROP_TYPE_GROUND_WITH_OWNERSHIP] = game.drop_item_with_ownership, - [DROP_TYPE_GROUND_WITH_OWNERSHIP_AND_DICE] = game.drop_item_with_ownership_and_dice, - } - end - return mob_drop_item.fnc_drop_list[drop_type] or mob_drop_item.fnc_drop_list[DROP_TYPE_GROUND_WITH_OWNERSHIP] - end - function fnc_msg(msg_type) - if mob_drop_item.fnc_msg_list==nil then - mob_drop_item.fnc_msg_list = { - [MSG_TYPE_INFO] = syschat, - [MSG_TYPE_NOTICE_ALL] = notice_all, - [MSG_TYPE_BIG_NOTICE_ALL] = big_notice_all, - } - end - return mob_drop_item.fnc_msg_list[msg_type] or mob_drop_item.fnc_msg_list[MSG_TYPE_BIG_NOTICE_ALL] - end - function get_drop_table(mob_vnum) - if mob_drop_item.drop_table==nil then - mob_drop_item.drop_table = { - -- mob_drop_item.drop_table begins - [0] = { - ["multi"] = { -- multiple droppable items - { -- drop table 1 - ["limit_map"] = 0, -- all maps - ["range_level"] = 5, -- drop only player_level < or > mob_level by 5 - ["drop_type"] = DROP_TYPE_GROUND_WITH_OWNERSHIP, - ["drop_table"] = { - -- drop_table begins - { -- Red Potions (P) (M) (G) given together 0.05% - ["vnum"] = {27001, 27002, 27003}, - ["count"] = 1, - ["pct"] = 5, - }, - -- drop_table ends - }, - }, - { -- drop table 2 - ["limit_map"] = 0, -- 0 = all maps, non-zero = drop only in that map index - ["drop_type"] = DROP_TYPE_GROUND_WITH_OWNERSHIP, - ["drop_table"] = { - -- drop_table begins - { -- Blue Potions (P) (M) (G) given together 0.05% - ["vnum"] = {27004, 27005, 27006}, - ["count"] = 1, - ["pct"] = 5, - }, - -- drop_table ends - }, - }, - } - }, - [101] = { - ["limit_map"] = 0, -- 0 = all maps, non-zero = drop only in that map index - ["min_level"] = 1, -- 0 = no check, non-zero = drop only if player level >= min_level - ["max_level"] = 20, -- 0 = no check, non-zero = drop only if player level <= max_level - ["drop_type"] = DROP_TYPE_INVENTORY, - ["drop_table"] = { - -- drop_table begins - { -- red potion 1x 100% - ["vnum"] = 27001, - ["count"] = 1, - ["pct"] = MAX_PCT, - }, - -- drop_table ends - }, - }, - [102] = { - ["limit_map"] = 0, -- 0 = all maps, non-zero = drop only in that map index - ["min_level"] = 1, -- 0 = no check, non-zero = drop only if player level >= min_level - ["max_level"] = 20, -- 0 = no check, non-zero = drop only if player level <= max_level - ["drop_type"] = DROP_TYPE_INVENTORY_WITH_DICE, - ["drop_table"] = { - -- drop_table begins - { -- red potion (m) 1x 100% - ["vnum"] = 27002, - ["count"] = 1, - ["pct"] = MAX_PCT, - }, - { -- red potion (l) 2x 50% (10000/100*50=5000) - ["vnum"] = 27003, - ["count"] = 1, - ["pct"] = 5000, - }, - { -- blue potion (s) 1x 100% - ["vnum"] = 27004, - ["count"] = 1, - ["pct"] = MAX_PCT, - }, - { -- blue potion (m) 2x 1% (10000/100=100) - ["vnum"] = 27005, - ["count"] = 1, - ["pct"] = 100, - }, - { -- blue potion (l) 2x 80% (10000*0.80=8000) - ["vnum"] = 27006, - ["count"] = 2, - ["pct"] = MAX_PCT * 0.80, - }, - -- drop_table ends - }, - }, - [103] = { - ["limit_map"] = 0, -- 0 = all maps, non-zero = drop only in that map index - ["min_level"] = 1, -- 0 = no check, non-zero = drop only if player level >= min_level - ["max_level"] = 20, -- 0 = no check, non-zero = drop only if player level <= max_level - ["drop_type"] = DROP_TYPE_GROUND, - ["drop_table"] = { - -- drop_table begins - { -- red potion 1x 100% - ["vnum"] = 27001, - ["count"] = 1, - ["pct"] = MAX_PCT, - }, - -- drop_table ends - }, - }, - [104] = { - ["limit_map"] = 0, -- all maps - ["min_level"] = 1, -- player level >= 1 - ["max_level"] = 20, -- player level <= 20 - ["drop_type"] = DROP_TYPE_GROUND_WITH_OWNERSHIP, - ["drop_table"] = { - -- drop_table begins - { -- red potion 1x 100% - ["vnum"] = 27001, - ["count"] = 1, - ["pct"] = MAX_PCT, - }, - -- drop_table ends - }, - }, - [105] = { - ["drop_type"] = DROP_TYPE_GROUND_WITH_OWNERSHIP_AND_DICE, - ["drop_table"] = { - -- drop_table begins - { -- red potion 1x 100% - ["vnum"] = 27001, - ["count"] = 1, - ["pct"] = MAX_PCT, - }, - -- drop_table ends - }, - }, - [691] = { - ["limit_map"] = 0, -- all maps index - ["min_level"] = 30, -- player_level >= 30 - ["max_level"] = 50, -- and player_level <= 50 - ["drop_type"] = DROP_TYPE_GROUND_WITH_OWNERSHIP_AND_DICE, - ["drop_table"] = { - -- drop_table begins - { -- nymph sword+0 5% - ["vnum"] = 160, - ["count"] = 1, - ["pct"] = MAX_PCT / 100*5, - }, - -- drop_table ends - }, - ["msg_note"] = "%s has annihilated the big and ugly %s", -- first % = player name, second % = mob name - ["msg_type"] = MSG_TYPE_BIG_NOTICE_ALL, - }, - -- mob_drop_item.drop_table ends - } - -- alternative clones: - ----mob_drop_item.drop_table[106] = mob_drop_item.drop_table[101] -- make 106 the same of 101 - ----mob_drop_item.drop_table[107] = mob_drop_item.drop_table[101] -- make 107 the same of 101 - end - return mob_drop_item.drop_table[mob_vnum] - end - function subprocess_drop(mob_drop_table, mob_vnum, mob_level, map_index, player_level, player_name) - -- check valid map - if mob_drop_table["limit_map"]~=nil then - local is_valid_map = mob_drop_table["limit_map"]==0 or mob_drop_table["limit_map"]==map_index - if not is_valid_map then - return - end - end - - ----test_chat(string.format(" lvl range check %d %d %d", mob_level, player_level, MOB_RANGE_LVL)) - ----test_chat(string.format(" valid level (min_level %d, max_level %d, range_level %d)", mob_drop_table["min_level"] or -1, mob_drop_table["max_level"] or -1, mob_drop_table["range_level"] or -1)) - - -- check valid level - -- skip if player < min_level - if mob_drop_table["min_level"]~=nil and mob_drop_table["min_level"]~=0 and player_level < mob_drop_table["min_level"] then - return - end - -- skip if player > max_level - if mob_drop_table["max_level"]~=nil and mob_drop_table["max_level"]~=0 and player_level > mob_drop_table["max_level"] then - return - end - -- skip if abs(player_level - mob_level) > range_level - local range_level = mob_drop_table["range_level"]~=nil and mob_drop_table["range_level"] or MOB_RANGE_LVL - if (range_level ~= 0 and math.abs(mob_level - player_level) > MOB_RANGE_LVL) then -- default case: skip if level range is > mob range level - return - end - ----test_chat(" after check valid level") - - -- drop item - for idx,elem in ipairs(mob_drop_table["drop_table"]) do - local nnn = number(MIN_PCT, MAX_PCT) - ----test_chat(string.format(" roll %d >= %d", elem["pct"], nnn)) - if elem["pct"] >= nnn then - _fnc_drop = mob_drop_item.fnc_drop(mob_drop_table["drop_type"]) - if type(elem["vnum"]) == "table" then -- list of vnums with same count - for idx,vnum_sub in ipairs(elem["vnum"]) do - _fnc_drop(vnum_sub, elem["count"]) - end - else - _fnc_drop(elem["vnum"], elem["count"]) - end - end - end - ----test_chat(" after drop check") - - -- send message - if mob_drop_table["msg_note"]~=nil and mob_drop_table["msg_type"]~=nil then - mob_drop_item.fnc_msg(mob_drop_table["msg_type"])(string.format(mob_drop_table["msg_note"], player_name, mob_name(mob_vnum))) - end - end - function process_drop(mob_vnum, mob_level, map_index, player_level, player_name) - -- get mob drop table - local mob_drop_table = mob_drop_item.get_drop_table(mob_vnum) - if mob_drop_table==nil then - return - end - --- - if mob_drop_table["multi"]==nil then - mob_drop_item.subprocess_drop(mob_drop_table, mob_vnum, mob_level, map_index, player_level, player_name) - else - for idx,mob_drop_table_sub in ipairs(mob_drop_table["multi"]) do - mob_drop_item.subprocess_drop(mob_drop_table_sub, mob_vnum, mob_level, map_index, player_level, player_name) - end - end - end - when kill with not npc.is_pc() begin - -- global drop - mob_drop_item.process_drop(0, npc.get_level0(), pc.get_map_index(), pc.get_level(), pc.get_name()) - -- mob vnum drop - mob_drop_item.process_drop(npc.get_vnum0(), npc.get_level0(), pc.get_map_index(), pc.get_level(), pc.get_name()) - end - end -end diff --git a/main/srv1/share/locale/germany/quest/test.lua b/main/srv1/share/locale/germany/quest/test.lua deleted file mode 100644 index e7fd5d0c..00000000 --- a/main/srv1/share/locale/germany/quest/test.lua +++ /dev/null @@ -1,12 +0,0 @@ -quest test begin - state start begin - when login begin - loop_timer("test", 10) - end - - when test.timer begin - pc.give_dr(100) - pc.give_dm(50) - end - end -end \ No newline at end of file diff --git a/main/srv1/share/locale/germany/settings.lua b/main/srv1/share/locale/germany/settings.lua index 9b57588e..ae02e31f 100755 --- a/main/srv1/share/locale/germany/settings.lua +++ b/main/srv1/share/locale/germany/settings.lua @@ -170,6 +170,8 @@ add_bgm_info(303, "blacksea.mp3", 0.5); add_bgm_info(304, "mt.mp3", 0.5); set_bgm_volume_enable(); -dofile(get_locale_base_path().."/BlueDragon.lua") -dofile(get_locale_base_path().. "/quest/GFquestlib.lua") +dofile(get_locale_base_path().. "/quest/LIB/GameForge_BlueDragon.lua") +dofile(get_locale_base_path().. "/quest/LIB/GameForge_QuestLib.lua") +dofile(get_locale_base_path().. "/quest/LIB/GameForge_QuestLib_2.lua") +dofile(get_locale_base_path().. "/quest/LIB/Mijago_QuestLib.lua") diff --git a/main/srv1/share/locale/germany/special_item_group.txt b/main/srv1/share/locale/germany/special_item_group.txt index 57a132d6..76e4ce69 100755 --- a/main/srv1/share/locale/germany/special_item_group.txt +++ b/main/srv1/share/locale/germany/special_item_group.txt @@ -621,6 +621,39 @@ Group Schmuckkasten 1 10 1 1 } +Group Eisenkiste +{ + Vnum 50121 + 1 14180 1 10 -- Amethystarmband+0 + 2 16180 1 10 -- Amethysthalskette+0 + 3 17180 1 10 -- Amethystohrringe+0 + 4 30190 1 10 -- Blutstein + 5 72006 1 10 -- Handschuhe des Diebes + 6 16100 1 10 -- Ebenholzhalskette+0 + 7 72003 1 10 -- Erfahrungsring + 8 72012 1 10 -- Feder der Liebenden + 9 72015 1 10 -- Fischereibuch + 10 14200 1 10 -- Himmelstränenarmband+0 + 11 16200 1 10 -- Himmelstränenhalskette+0 + 12 17200 1 10 -- Himmelstränenohrringe+0 + 13 14080 1 10 -- Jadearmband+0 + 14 16080 1 10 -- Jadehalskette+0 + 15 14160 1 10 -- Kristallarmband+0 + 16 16160 1 10 -- Kristallhalskette+0 + 17 17160 1 10 -- Kristallohrringe+0 + 18 71004 1 10 -- Medaille des Drachen + 19 72024 1 10 -- Medaille des Glücks + 20 71082 1 10 -- Metinstein (schwer) + 21 27987 1 10 -- Muschel + 22 14120 1 10 -- Perlenarmband+0 + 23 16120 1 10 -- Perlenhalskette+0 + 24 50513 1 10 -- Seelenstein + 25 25040 1 10 -- Segensschriftrolle + 26 14140 1 10 -- Weißgoldarmband+0 + 27 16140 1 10 -- Weißgoldhalskette+0 + 28 70024 1 10 -- Segenskugel +} + ######################################## ## ## Gruppe: Boss Truhen diff --git a/main/srv1/share/locale/germany/translate.lua b/main/srv1/share/locale/germany/translate.lua index 2af43a8a..62421fd1 100755 --- a/main/srv1/share/locale/germany/translate.lua +++ b/main/srv1/share/locale/germany/translate.lua @@ -2081,50 +2081,50 @@ gameforge.locale.fortune_words_6_body = "Heute ist ein schlechter Tag. Ein Tag, gameforge.locale.fortune_words_6_title = "Pech. " gameforge.locale.fortune_words_7_body = "Dies ist der schlimmste aller Tage für dich. Die[ENTER]Götter haben sich von dir abgewandt, nichts wird[ENTER]dir gelingen können. Wenn du Feuer machen willst,[ENTER]wird es regnen und wenn du durstig bist, wird die[ENTER]Sonne auf dich herab brennen. Wie alle anderen[ENTER]wirst du hart arbeiten, aber keine Früchte für[ENTER]deine Mühen ernten. Es ist ,[ENTER]das du ertragen musst! Ohne Talisman steht dir[ENTER]eine schwere Zeit bevor. Hast du Interesse daran,[ENTER]einen solchen zu erstehen? " gameforge.locale.fortune_words_7_title = "Ganz großes Pech. " -gameforge.locale.gm_skill_name_1 = "Dreiwege-Schnitt " -gameforge.locale.gm_skill_name_10 = "Schwertschlag " -gameforge.locale.gm_skill_name_11 = "Hinterhalt " -gameforge.locale.gm_skill_name_12 = "Blitzangriff " -gameforge.locale.gm_skill_name_13 = "Degenwirbel " -gameforge.locale.gm_skill_name_14 = "Tarnung " -gameforge.locale.gm_skill_name_15 = "Giftwolke " -gameforge.locale.gm_skill_name_16 = "Wiederholter Schuss " -gameforge.locale.gm_skill_name_17 = "Pfeilregen " -gameforge.locale.gm_skill_name_18 = "Feuerpfeil " -gameforge.locale.gm_skill_name_19 = "Federschreiten " -gameforge.locale.gm_skill_name_2 = "Schwertwirbel " -gameforge.locale.gm_skill_name_20 = "Giftpfeil " -gameforge.locale.gm_skill_name_21 = "Fingerschlag " -gameforge.locale.gm_skill_name_22 = "Drachenwirbel " -gameforge.locale.gm_skill_name_23 = "Verzauberte Klinge " -gameforge.locale.gm_skill_name_24 = "Furcht " -gameforge.locale.gm_skill_name_25 = "Verzauberte Rüstung " -gameforge.locale.gm_skill_name_26 = "Zauber aufheben " -gameforge.locale.gm_skill_name_27 = "Dunkler Schlag " -gameforge.locale.gm_skill_name_28 = "Flammenschlag " -gameforge.locale.gm_skill_name_29 = "Geist der Flamme " -gameforge.locale.gm_skill_name_3 = "Kampfrausch " -gameforge.locale.gm_skill_name_30 = "Dunkler Schutz " -gameforge.locale.gm_skill_name_31 = "Geisterschlag " -gameforge.locale.gm_skill_name_32 = "Dunkler Stein " -gameforge.locale.gm_skill_name_33 = "Fliegender Talisman " -gameforge.locale.gm_skill_name_34 = "Drachenschießen " -gameforge.locale.gm_skill_name_35 = "Drachengebrüll " -gameforge.locale.gm_skill_name_36 = "Segen " -gameforge.locale.gm_skill_name_37 = "Reflektieren " -gameforge.locale.gm_skill_name_38 = "Hilfe des Drachen " -gameforge.locale.gm_skill_name_39 = "Blitzwurf " -gameforge.locale.gm_skill_name_4 = "Aura des Schwerts " -gameforge.locale.gm_skill_name_40 = "Blitz heraufbeschwören " -gameforge.locale.gm_skill_name_41 = "Blitzkralle " -gameforge.locale.gm_skill_name_42 = "Kurieren " -gameforge.locale.gm_skill_name_43 = "Schnelligkeit " -gameforge.locale.gm_skill_name_44 = "Angriff+ " -gameforge.locale.gm_skill_name_5 = "Sausen " -gameforge.locale.gm_skill_name_6 = "Durchschlag " -gameforge.locale.gm_skill_name_7 = "Heftiges Schlagen " -gameforge.locale.gm_skill_name_8 = "Stampfer " -gameforge.locale.gm_skill_name_9 = "Starker Körper " +gameforge.locale.gm_skill_name_1 = "Dreiwege-Schnitt" +gameforge.locale.gm_skill_name_10 = "Schwertschlag" +gameforge.locale.gm_skill_name_11 = "Hinterhalt" +gameforge.locale.gm_skill_name_12 = "Blitzangriff" +gameforge.locale.gm_skill_name_13 = "Degenwirbel" +gameforge.locale.gm_skill_name_14 = "Tarnung" +gameforge.locale.gm_skill_name_15 = "Giftwolke" +gameforge.locale.gm_skill_name_16 = "Wiederholter Schuss" +gameforge.locale.gm_skill_name_17 = "Pfeilregen" +gameforge.locale.gm_skill_name_18 = "Feuerpfeil" +gameforge.locale.gm_skill_name_19 = "Federschreiten" +gameforge.locale.gm_skill_name_2 = "Schwertwirbel" +gameforge.locale.gm_skill_name_20 = "Giftpfeil" +gameforge.locale.gm_skill_name_21 = "Fingerschlag" +gameforge.locale.gm_skill_name_22 = "Drachenwirbel" +gameforge.locale.gm_skill_name_23 = "Verzauberte Klinge" +gameforge.locale.gm_skill_name_24 = "Furcht" +gameforge.locale.gm_skill_name_25 = "Verzauberte Rüstung" +gameforge.locale.gm_skill_name_26 = "Zauber aufheben" +gameforge.locale.gm_skill_name_27 = "Dunkler Schlag" +gameforge.locale.gm_skill_name_28 = "Flammenschlag" +gameforge.locale.gm_skill_name_29 = "Geist der Flamme" +gameforge.locale.gm_skill_name_3 = "Kampfrausch" +gameforge.locale.gm_skill_name_30 = "Dunkler Schutz" +gameforge.locale.gm_skill_name_31 = "Geisterschlag" +gameforge.locale.gm_skill_name_32 = "Dunkler Stein" +gameforge.locale.gm_skill_name_33 = "Fliegender Talisman" +gameforge.locale.gm_skill_name_34 = "Drachenschießen" +gameforge.locale.gm_skill_name_35 = "Drachengebrüll" +gameforge.locale.gm_skill_name_36 = "Segen" +gameforge.locale.gm_skill_name_37 = "Reflektieren" +gameforge.locale.gm_skill_name_38 = "Hilfe des Drachen" +gameforge.locale.gm_skill_name_39 = "Blitzwurf" +gameforge.locale.gm_skill_name_4 = "Aura des Schwerts" +gameforge.locale.gm_skill_name_40 = "Blitz heraufbeschwören" +gameforge.locale.gm_skill_name_41 = "Blitzkralle" +gameforge.locale.gm_skill_name_42 = "Kurieren" +gameforge.locale.gm_skill_name_43 = "Schnelligkeit" +gameforge.locale.gm_skill_name_44 = "Angriff+" +gameforge.locale.gm_skill_name_5 = "Sausen" +gameforge.locale.gm_skill_name_6 = "Durchschlag" +gameforge.locale.gm_skill_name_7 = "Heftiges Schlagen" +gameforge.locale.gm_skill_name_8 = "Stampfer" +gameforge.locale.gm_skill_name_9 = "Starker Körper" gameforge.locale.gold = "Yang " gameforge.locale.gold_drop_pct = "Yang-Droprate in Prozent " gameforge.locale.guild = {}