quest autorate_and_auto_day_mode begin state start begin when login or logout or levelup or kill or disconnect or enter or dead begin local time = os.date("%H") if time > 00 and time < 08 or time > 22 and time < 24 then if game.get_event_flag("eclipse") == 0 then notice_all("<Система> Добрый вечер,игроки. Рейты на сервере повышены с 130 до 160. ") __give_empire_priv(0, 1, 160, 60*60*24) __give_empire_priv(0, 2, 160, 60*60*24) __give_empire_priv(0, 4, 160, 60*60*24) game.set_event_flag("eclipse",1) end end if time > 08 and time < 22 then if game.get_event_flag("eclipse") == 1 then notice_all("<Система> Добрый утро,игроки. Рейты на сервере понижены с 160 до 130. ") __give_empire_priv(0, 1, 130, 60*60*24) __give_empire_priv(0, 2, 130, 60*60*24) __give_empire_priv(0, 4, 130, 60*60*24) game.set_event_flag("eclipse",0) end end end end end
2. Роса на 1 итем.
Код
quest rosa begin state start begin when dead begin ------ Подсказка, что эффекты росы неактивны. if get_time() > pc.getqf("duration") and pc.get_level > 30 then local rosa = math.random(1, 2) if rosa == 1 then syschat("<Подсказка> Роса не активна. ") else return end end end when 70058.use begin if get_time() < pc.getqf("duration") then syschat("Время эффектов еще не вышло! ") end if get_time() > pc.getqf("duration") then if pc.getqf("rosa_energie") > 1 then if pc.getqf("rosa_lvl") == 1 then syschat("Получено:пронз. удар +8%; крит. удар +8%; Урон +30; защита +40; сопрот. магии+8%; скорость атаки +3. ") pc.setqf("duration",get_time()+15) pc.setqf("rosa_kolvo", pc.getqf("rosa_kolvo")+1) affect.add_collect(apply.DEF_GRADE_BONUS, 40, 60*60*2) -- Броня affect.add_collect(apply.ATT_GRADE_BONUS, 30, 60*60*2) -- Урон affect.add_collect(apply.CRITICAL_PCT, 8, 60*60*2) -- Крит. Удар affect.add_collect(apply.PENETRATE_PCT, 8, 60*60*2) -- Пронз. Удар affect.add_collect(apply.ATT_SPEED, 2, 60*60*2) -- Скор. атаки affect.add_collect(apply.RESIST_MAGIC, 8, 60*60*2) -- Сопрот. магии if pc.getqf("rosa_lvl") == 2 then syschat(" Получено: шанс пронз. удара 12;шанс крит. удара на 12;атакa +80;защита +110;сопрот. магии+120;скорость атаки +5. ") chat("В Чаше Тартара сока осталось еще "..20-pc.getqf("rosa_kolvo").." использований! ") pc.setqf("duration",get_time()+450) pc.setqf("rosa_kolvo", pc.getqf("rosa_kolvo")+1) affect.add_collect(apply.DEF_GRADE_BONUS, 110, 60*60*2) -- Броня affect.add_collect(apply.ATT_GRADE_BONUS, 80, 60*60*2) -- Урон affect.add_collect(apply.CRITICAL_PCT, 12, 60*60*2) -- Крит. Удар affect.add_collect(apply.PENETRATE_PCT, 12, 60*60*2) -- Пронз. Удар affect.add_collect(apply.ATT_SPEED, 5, 60*60*2) -- Скор. атаки affect.add_collect(apply.RESIST_MAGIC, 12, 60*60*2) -- Сопрот. магии if pc.getqf("rosa_lvl") == 3 then chat("Получено: пронз. удар +20;крит. удара +20;атакa +120;защита +200;сопрот. магии+20;скорость атаки +8. ") chat("В Чаше Тартара сока осталось еще "..20-pc.getqf("rosa_kolvo").." использований! ") pc.setqf("duration",get_time()+600) pc.setqf("rosa_kolvo", pc.getqf("rosa_kolvo")+1) affect.add_collect(apply.DEF_GRADE_BONUS, 200, 60*60*2) -- Броня affect.add_collect(apply.ATT_GRADE_BONUS, 120, 60*60*2) -- Урон affect.add_collect(apply.CRITICAL_PCT, 20, 60*60*2) -- Крит. Удар affect.add_collect(apply.PENETRATE_PCT, 20, 60*60*2) -- Пронз. Удар affect.add_collect(apply.ATT_SPEED, 8, 60*60*2) -- Скор. атаки affect.add_collect(apply.RESIST_MAGIC, 20, 60*60*2) -- Сопрот. магии end end end else syschat("<Система> Чаша пуста. ") end else syschat("<Система> Роса еще активна. ") end end end end
3. Эвент,когда-то писался для СВ(не дописаный - награды дописать нужно). Не проверялся.
Код
quest sw_event_soul begin state start begin when 9010.chat."Настройки эвента душ " with pc.is_gm() begin say_title("SW: Настройки эвента ") say(" ") say("Что вы хотите сделать? ") local s = select("Начать ","Обнулить счет ","Выход ") if s == 1 then say_title("SW: управления эвентом ") say("") say("Вы начали эвент. ") say("") game.set_event_flag("sw_event_soul", 1) game.set_event_flag("sw_event_soul_blue_key",0) game.set_event_flag("sw_event_soul_red_key",0) game.set_event_flag("sw_event_soul_yellow_key",0) game.set_event_flag("sw_event_soul_notice_yellow",0) game.set_event_flag("sw_event_soul_notice_blue",0) game.set_event_flag("sw_event_soul_notice_red",0) notice_all(" "..pc.get_name()..": Эвент <Души из Сундука> был начат! ") end if s == 2 then say_title("SW: управления эвентом ") say("") say("Вы точно хотите обнулить ") say("счет эвента <Души из Сундука> ? ") say("") local set_to_zero = select("Да ","Нет ") if set_to_zero == 1 then say_title("SW: управления эвентом ") say("") say("Вы закончили эвент. ") say("") game.set_event_flag("sw_event_soul", 0) game.set_event_flag("sw_event_soul_blue_key",0) game.set_event_flag("sw_event_soul_red_key",0) game.set_event_flag("sw_event_soul_yellow_key",0) game.set_event_flag("sw_event_soul_notice_yellow",0) game.set_event_flag("sw_event_soul_notice_blue",0) game.set_event_flag("sw_event_soul_notice_red",0) notice_all(" "..pc.get_name()..": Счет эвента <Души из Сундука> был обнулен. ") else return end end end end when login or dead or enter or kill or levelup or disconnect begin local time = os.date("%H") if time == 21 then if game.get_event_flag("sw_event_soul") == 0 then game.set_event_flag("sw_event_soul", 1) game.set_event_flag("sw_event_soul_blue_key",0) game.set_event_flag("sw_event_soul_red_key",0) game.set_event_flag("sw_event_soul_yellow_key",0) game.set_event_flag("sw_event_soul_notice_yellow",0) game.set_event_flag("sw_event_soul_notice_blue",0) game.set_event_flag("sw_event_soul_notice_red",0) notice_all("==========================================") notice_all("SunWay:Эвент <Погоня за Душами> началася! ") notice_all("==========================================") end end end when login begin if game.get_event_flag("sw_event_soul") == 1 then chat("В данный момент происходит Эвент <Души из Сундука> ") pc.give_item2(228,1) if game.get_event_flag("sw_event_soul") == 0 and pc.getqf("sw_event_soul_in_box") == 0 then pc.remove_item(228,1) end end end when kill with not npc.is_pc() and game.get_event_flag("sw_event_soul") == 1 and pc.count_item(228) == 1 begin local soul_go_box = math.random(1, 10) if soul_go_box == 1 then chat("Ваш сундук поглотил душу,сейчас их у вас: "..pc.getqf("sw_event_soul_in_box").." ") pc.setqf("sw_event_soul_in_box", pc.getqf("sw_event_soul_in_box")+1) end end when kill with not npc.is_pc() begin if game.get_event_flag("sw_event_soul") == 1 and pc.count_item(228) == 1 then if pc.get_empire() == 1 then local sw_event_soul_red_key = game.get_event_flag("sw_event_soul_red_key") if sw_event_soul_red_key < 5 then local key_drop_red = math.random(1, 10) if key_drop_red == 1 then pc.give_item2(228,1) chat("Вы счастливчик! Вам выпал ключ! ") game.set_event_flag("sw_event_soul_red_key", game.get_event_flag("sw_event_soul_red_key")+1) end end if sw_event_soul_red_key == 5 and game.get_event_flag("sw_event_soul_notice_red") == 0 then game.set_event_flag("sw_event_soul_yellow", game.get_event_flag("sw_event_soul_notice_yellow")+1) notice_all("Эвент <Души из Сундука>: Все бесплатные ключи,которые падали для желтой империи,были найдены. ") if sw_event_soul_red_key <= 5 then notice_all("У игроков желтей империи есть еще: "..5-game.get_event_flag("sw_event_soul_yellow_key").." бесплатных ключей ") if sw_event_soul_blue_key <= 5 then notice_all("У игроков синей империи есть еще: "..5-game.get_event_flag("sw_event_soul_blue_key").." бесплатных ключей ") if sw_event_soul_yellow_key == 5 and sw_event_soul_blue_key == 5 and sw_event_soul_red_key == 5 then notice_all("Эвент <Души из Сундука>:Все бесплатные ключи были найдены игроками! ") end end end end end if pc.get_empire() == 2 then local sw_event_soul_yellow_key = game.get_event_flag("sw_event_soul_yellow_key") if sw_event_soul_yellow_key < 5 then local key_drop_yellow = math.random(1, 10) if key_drop_yellow == 1 then pc.give_item2(228,1) chat(" Вы счастливчик! Вам выпал ключ! ") game.set_event_flag("sw_event_soul_yellow_key", game.get_event_flag("sw_event_soul_yellow_key")+1) end end if sw_event_soul_yellow_key == 5 and game.get_event_flag("sw_event_soul_notice_yellow") == 0 then game.set_event_flag("sw_event_soul_yellow", game.get_event_flag("sw_event_soul_notice_yellow")+1) notice_all("Эвент <Души из Сундука>: Все бесплатные ключи,которые падали для желтой империи,были найдены. ") if sw_event_soul_red_key <= 5 then notice_all("У игроков красной империи есть еще: "..5-game.get_event_flag("sw_event_soul_red_key").." бесплатных ключей ") if sw_event_soul_blue_key <= 5 then notice_all("У игроков синей империи есть еще: "..5-game.get_event_flag("sw_event_soul_blue_key").." бесплатных ключей ") if sw_event_soul_yellow_key == 5 and sw_event_soul_blue_key == 5 and sw_event_soul_red_key == 5 then notice_all("Эвент <Души из Сундука>:Все бесплатные ключи были найдены игроками! ") end end end end end if pc.get_empire() == 3 then local sw_event_soul_blue_key = game.get_event_flag("sw_event_soul_blue_key") if sw_event_soul_blue_key <= 5 then local key_drop_blue = math.random(1, 10) if key_drop_blue == 1 then pc.give_item2(228,1) chat(" Вы счастливчик! Вам выпал ключ! ") game.set_event_flag("sw_event_soul_blue_key", game.get_event_flag("sw_event_soul_blue_key")+1) end end if sw_event_soul_yellow_key == 5 and game.get_event_flag("sw_event_soul_notice_blue") == 0 then game.set_event_flag("sw_event_soul_notice_blue", game.get_event_flag("sw_event_soul_notice_blue")+1) notice_all("Эвент <Души из Сундука>: Все бесплатные ключи,которые падали для синей империи,были найдены. ") if sw_event_soul_red_key <= 5 then notice_all("У игроков красной империи есть еще: "..5-game.get_event_flag("sw_event_soul_red_key").." бесплатных ключей ") if sw_event_soul_blue_key <= 5 then notice_all("У игроков желтой империи есть еще: "..5-game.get_event_flag("sw_event_soul_yellow_key").." бесплатных ключей ") if sw_event_soul_yellow_key == 5 and sw_event_soul_blue_key == 5 and sw_event_soul_red_key == 5 then notice_all("Эвент <Души из Сундука>:Все бесплатные ключи были найдены игроками! ") end end end end end end end when 228.use begin if game.get_event_flag("sw_event_soul") == 0 then local soul = pc.getqf("sw_event_soul_in_box") if soul < 30 then chat("<Голос из сундука> вы нашли "..0+pc.getqf(sw_event_soul_in_box).." душ. ") chat("<Голос из сундука> Ваших душ хватит на ITEM ") end if soul > 30 and soul < 50 then chat("<Голос из сундука> вы нашли "..0+pc.getqf(sw_event_soul_in_box).." душ. ") chat("<Голос из сундука> Ваших душ хватит на ITEM ") end else chat("<Голос из сундука> Ваших душ хватит на ITEM,чтобы открыть сундук,вам нужно ") chat("<Голос из сундука> перетянуть на него ключ. ") end end end end end
4. Обмен вещей
Код
quest orion_obmen_latu begin state start begin when 20001.chat." Латы " begin local b=select(" Панцирь черная сталь+0 ", " Одеяние Мрачного Ветра+0 ", " Латы Черной Магии+0 ", " Платье Сумрака+0 ", " Отмена ") if b == 1 then if pc.count_item(50042) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Медаль героя 200х ", 50042, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") return end if pc.count_item(50613) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Кристаллы небесных слёз 200х ", 50613, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") say("") return end pc.remove_item(50042,200) pc.remove_item(50613,200) pc.give_item2(11290) say_title(" Поздравляю! ") say_item(" Вот ваш предмет ", 11290, "") say(" ") say_gold(" Поздравляю с приобретением Панцирь черная сталь+0 ") elseif b == 2 then if pc.count_item(50042) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Медаль героя 200х ", 50042, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") return end if pc.count_item(50613) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Кристаллы небесных слёз 200х ", 50613, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") say("") return end pc.remove_item(50042,200) pc.remove_item(50613,200) pc.give_item2(11290) say_title(" Поздравляю! ") say_item(" Вот ваш предмет ", 11490, "") say(" ") say_gold(" Поздравляю с приобретением Одеяние Мрачного Ветра+0 ") elseif b == 3 then if pc.count_item(50042) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Медаль героя 200х ", 50042, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") return end if pc.count_item(50613) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Кристаллы небесных слёз 200х ", 50613, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") say("") return end pc.remove_item(50042,200) pc.remove_item(50613,200) pc.give_item2(11690) say_title(" Поздравляю! ") say_item(" Вот ваш предмет ", 11690, "") say(" ") say_gold(" Поздравляю с приобретением Латы Черной Магии+0 ") elseif b == 4 then if pc.count_item(50042) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Медаль героя 200х ", 50042, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") return end if pc.count_item(50613) < 200 then say(" Для создания у вас нету: ") say("") say_item(" Кристаллы небесных слёз 200х ", 50613, "") say_reward(" Приходите ко мне когда ") say_reward(" у вас будет все необходимое! ") say("") return
Сообщение отредактировал VeryBad - Воскресенье, 28.09.2014, 18:57