Dr.Sinc Опубликовано 17 мая, 2009 Жалоба Поделиться Опубликовано 17 мая, 2009 (изменено) Приветствую, товарищи! Эта тема раньше называлась по-другому, и таков ее оригинальный текст: Нынче я засел-таки за подковыривание Облявского способа вампиризации населения, и возник у меня следующий вопрос. В стандартном Oblivion, когда вампир подходит к спящему NPC и активирует его, появляется диалог - поговорить или укусить. Вопрос в следующем: где находится данное окно в TES? Я посмотрел VampireScript и, насколько я понимаю, это окно прописано не там (хотя я очень слаб в скриптовании, воистину, десу). Итак, где же прописываются все эти окошки? В скриптах? Или в конфигурационных файлах? Как можно поменять эти окна, если это возможно? Для уточнения приведу суть плагина... Я хочу сделать 3 возможных "вампирских карьеры" для игры. В зависимости от своего поведения игрок либо преодолеет свою вампирскую сущность и получит признание и любовь, либо позволит вампиру пересилить человека и превратится в ходячую мясорубку с вытекающей оттуда ненавистью со стороны рода людского, либо найдет средний путь и останется вампиром, способным кушать кровушку без потери больших человеческих жертв. Соответственно, игрок может игнорировать жажду крови, борясь за свою человечность (для этого нужно никого не кусать). Игрок может убивать ради крови (для этого нужно помечать своих жертв заклинанием). И игрок может пойти на компромисс и пить кровь, но не убивая - то есть мирно посасывая спящих граждан. Последнее и делается через этот злокозненный диалог, и к нему нужно прикрутить нечто, что позволило бы оповещать управляющий скрипт, что игрок насытился именно "мирным" способом... И где же это окошко кроется? Теперь вопрос другой. Я написал-таки новый вампир-скрипт и был бы признателен, если бы кто-нибудь проверил в нем синтаксис... --S. Изменено 22 мая, 2009 пользователем Dr.Sinc Ссылка на комментарий Поделиться на другие сайты Поделиться
Sniper Опубликовано 18 мая, 2009 Жалоба Поделиться Опубликовано 18 мая, 2009 Хоть я тоже в скриптах Морровинда почти ни бум бум,но все равно выложи текст етого вампирского скрипта Ссылка на комментарий Поделиться на другие сайты Поделиться
Dr.Sinc Опубликовано 18 мая, 2009 Автор Жалоба Поделиться Опубликовано 18 мая, 2009 (изменено) Между прочим, в проблеме темы я разобрался и в помощи по данному конкретному вопросу более не нуждаюсь... Меню создается самим движком Oblivion; при активации спящего NPC и выборе опции "кормиться" вызывается функция Player.VampireFeed, устанавливающая флаг игрока HasVampireFeed в 1, и ничего с этим боле не поделаешь... Зато есть обходной путь! Теперь мне нужно, чтобы кто-нибудь проверил мой скрипт... Хоть я тоже в скриптах Морровинда почти ни бум бум, <...> Нет, Вы не поняли... Я в них совсем ни бум бум. Если я могу бегло писать на Java всяких консольных математических автоматов, то здесь все совсем плохо. То есть, моя степень умения писать на TES Script выражается отрицательным числом. Все настолько плохо, что поначалу я эти скрипты пишу на аналоге школьного алгоритмического языка образца 72-го года ^_^ но все равно выложи текст етого вампирского скрипта В общем, совершенно без понятия, будет ли оно работать или нет... Ибо переводил с алгоритмического языка ^_^ Итак, в чем суть. Имеются три глобальных переменных - Saint, Pacific и Killer, хранящие "вампирский" рейтинг игрока как Святого, Мирного и Убийцы соответственно. Первый возрастает каждые n дней голодания (отслеживается самим скриптом), второй - за каждую глотку, укушенную без гибели жертвы (тот самый HasVampireFed), третий - за каждого убитого ради крови (отслеживается через глобальную перменную HasVampireFedForcibly, которая изменяется с помощью скрипта, навешенного на спелл "убийства ради крови"). Поначалу (сразу после вампиризации) игрок является "нейтральным вампиром" со всеми 3-мя переменными, равными 0. С превышением одного из рейтингов над другими игрок получает новые статусы в каждой из трех ветвей развития (а с ними и новые способности), вплоть до трех высших "чинов" - Темного Святого (Святой, Saint = 50), Повелителя Ночи (Мирный, Pacific = 50) и Кровавого Лорда (Убийца, Killer = 50). После достижения одного из 3-х этих статусов "развитие" заканчивается и переменные больше не меняются - игрок добился высшего уровня. Собственно скрипт: ScriptName VampireScript global short Saint global short Pacific global short Saint global short HasVampireFedForcibly global short LastActionPerformed short doOnce short PCVampStatus short hasDisease short currentDay short dayCount short hungryDays short growthComplete float vampHours begin GameMode ; Блок системных настроек If ( doOnce == 1 ) Set fQuestDelayTime To 0.5 Set doOnce To 1 endif ; Если игрок излечился (т.е. PCVampire и PCVampStatus == -1), то ничего не делаем If ( PCVampire == -1 ) Return endif ; Если PCVampStatus == -1 (т.е. игрок излечился), то устанавливаем и PCVampire в -1 If ( PCVampStatus == -1 ) Set PCVampire To -1 endif ; Если PCVampStatus != -1 (т.е. игрок - вампир), то устанавливаем и PCVampire в 1 If ( PCVampStatus != -1 && PCVampire != 1 ) Set PCVampire To 1 endif ; ----------------------------- БЛОК ПОЛУЧЕНИЯ ВАМПИРИЗМА ---------------------------------- ; Коррекция статуса инфицирования по наличию заклинания болячки If ( hasDisease == 0 ) If ( Player.IsSpellTarget VampDisease == 1 ) Set hasDisease To 1 endif endif If ( hasDisease == 1 ) If ( Player.IsSpellTarget VampDisease == 0 ) Set hasDisease To 0 endif endif ; Собственно блок на превращение порфириновой гемофилии в настоящий вампиризм If ( PCVampStatus == 0 ) If ( hasDisease == 1 ) If ( GetPCIsSex Male == 1 ) MessageBox "Вступительный текст для мужчины" else MessageBox "Вступительный текст для женщины" endif Set hasDisease To 0 Player.RemoveSpell VampDisease Player.AddSpell "_DA_Vampirism_lv0_f" Player.AddSpell "_DA_Vampire_lv0_f_Skills" Player.AddSpell "_DA_Vampire_lv0_f_Attrs" Player.AddSpell "_DA_Vampire_lv0_f_Spells" Player.SetFactionRank PlayerVampireFaction 0 AddTopic CureforVampirism StartQuest MS40 Set vampDay To GameDay Set vampHour To GameHour endif endif ; ------------------- БЛОК ОТСЛЕЖИВАНИЯ ДЕЙСТВИЙ, ИЗМЕНЯЮЩИХ СТАТУСЫ ----------------------- ; Блок, отслеживающий "покусывания без жертв" и изменяющий статус "Мирного" If ( Player.HasVampireFed == 1 ) Set hungryDays To 0 Set Pacific To ( Pacific + 1 ) Set Saint To ( Saint - 1 ) Set Killer To ( Killer - 1 ) endif ; Блок, отслеживающий убийства ради крови и изменяющий статус "Убийцы" If ( HasVampireFedForcibly == 1 ) Set hungryDays To 0 Set HasVampireFedForcibly To 0 Set Killer To ( Killer + 1 ) Set Saint To ( Saint - 1 ) Set Pacific To ( Pacific - 1 ) endif ; ----------------- БЛОК, ИЗМЕНЯЮЩИЙ УРОВНИ В СООТВЕТСТВИИ СО СТАТУСАМИ -------------------- If ( growthComplete != 1 ) ; Условия для "Святого" If ( Saint > Pacific && Saint > Killer && Saint == 5 ) Set PCVampStatus To 1 elseif ( Saint > Pacific && Saint > Killer && Saint == 10 ) Set PCVampStatus To 2 elseif ( Saint > Pacific && Saint > Killer && Saint == 20 ) Set PCVampStatus To 3 elseif ( Saint > Pacific && Saint > Killer && Saint == 35 ) Set PCVampStatus To 4 elseif ( Saint > Pacific && Saint > Killer && Saint == 55 ) Set PCVampStatus To 5 Set growthComplete To 1 endif ; Условия для "Мирного" If ( Pacific > Saint && Pacific > Killer && Pacific == 5 ) Set PCVampStatus To 11 elseif ( Pacific > Saint && Pacific > Killer && Pacific == 10 ) Set PCVampStatus To 12 elseif ( Pacific > Saint && Pacific > Killer && Pacific == 20 ) Set PCVampStatus To 13 elseif ( Pacific > Saint && Pacific > Killer && Pacific == 35 ) Set PCVampStatus To 14 elseif ( Pacific > Saint && Pacific > Killer && Pacific == 55 ) Set PCVampStatus To 15 Set growthComplete To 1 endif ; Условия для "Убийцы" If ( Killer > Saint && Killer > Pacific && Killer == 5 ) Set PCVampStatus To 21 elseif ( Killer > Saint && Killer > Pacific && Killer == 10 ) Set PCVampStatus To 22 elseif ( Killer > Saint && Killer > Pacific && Killer == 20 ) Set PCVampStatus To 23 elseif ( Killer > Saint && Killer > Pacific && Killer == 35 ) Set PCVampStatus To 24 elseif ( Killer > Saint && Killer > Pacific && Killer == 55 ) Set PCVampStatus To 25 Set growthComplete To 1 endif endif ; ----------- БЛОК, ИЗМЕНЯЮЩИЙ СПОСОБНОСТИ В СООТВЕТСТВИИ СО СТАТУСАМИ -------------------- If ( PCVampStatus == 0 ) ; "Нейтральный" ("начальный") вампир If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv0_f" Player.RemoveSpell "_DA_Vampire_lv0_f_Skills" Player.RemoveSpell "_DA_Vampire_lv0_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv0_f_Spells" Player.AddSpell "_DA_Vampirism_lv0_h" Player.AddSpell "_DA_Vampire_lv0_h_Skills" Player.AddSpell "_DA_Vampire_lv0_h_Attrs" Player.AddSpell "_DA_Vampire_lv0_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv0_h" Player.RemoveSpell "_DA_Vampire_lv0_h_Skills" Player.RemoveSpell "_DA_Vampire_lv0_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv0_h_Spells" Player.AddSpell "_DA_Vampirism_lv0_f" Player.AddSpell "_DA_Vampire_lv0_f_Skills" Player.AddSpell "_DA_Vampire_lv0_f_Attrs" Player.AddSpell "_DA_Vampire_lv0_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 1 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv1_f" Player.RemoveSpell "_DA_Vampire_lv1_f_Skills" Player.RemoveSpell "_DA_Vampire_lv1_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv1_f_Spells" Player.AddSpell "_DA_Vampirism_lv1_h" Player.AddSpell "_DA_Vampire_lv1_h_Skills" Player.AddSpell "_DA_Vampire_lv1_h_Attrs" Player.AddSpell "_DA_Vampire_lv1_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv1_h" Player.RemoveSpell "_DA_Vampire_lv1_h_Skills" Player.RemoveSpell "_DA_Vampire_lv1_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv1_h_Spells" Player.AddSpell "_DA_Vampirism_lv1_f" Player.AddSpell "_DA_Vampire_lv1_f_Skills" Player.AddSpell "_DA_Vampire_lv1_f_Attrs" Player.AddSpell "_DA_Vampire_lv1_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 2 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv2_f" Player.RemoveSpell "_DA_Vampire_lv2_f_Skills" Player.RemoveSpell "_DA_Vampire_lv2_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv2_f_Spells" Player.AddSpell "_DA_Vampirism_lv2_h" Player.AddSpell "_DA_Vampire_lv2_h_Skills" Player.AddSpell "_DA_Vampire_lv2_h_Attrs" Player.AddSpell "_DA_Vampire_lv2_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv2_h" Player.RemoveSpell "_DA_Vampire_lv2_h_Skills" Player.RemoveSpell "_DA_Vampire_lv2_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv2_h_Spells" Player.AddSpell "_DA_Vampirism_lv2_f" Player.AddSpell "_DA_Vampire_lv2_f_Skills" Player.AddSpell "_DA_Vampire_lv2_f_Attrs" Player.AddSpell "_DA_Vampire_lv2_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 3 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv3_f" Player.RemoveSpell "_DA_Vampire_lv3_f_Skills" Player.RemoveSpell "_DA_Vampire_lv3_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv3_f_Spells" Player.AddSpell "_DA_Vampirism_lv3_h" Player.AddSpell "_DA_Vampire_lv3_h_Skills" Player.AddSpell "_DA_Vampire_lv3_h_Attrs" Player.AddSpell "_DA_Vampire_lv3_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv3_h" Player.RemoveSpell "_DA_Vampire_lv3_h_Skills" Player.RemoveSpell "_DA_Vampire_lv3_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv3_h_Spells" Player.AddSpell "_DA_Vampirism_lv3_f" Player.AddSpell "_DA_Vampire_lv3_f_Skills" Player.AddSpell "_DA_Vampire_lv3_f_Attrs" Player.AddSpell "_DA_Vampire_lv3_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 4 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv4_f" Player.RemoveSpell "_DA_Vampire_lv4_f_Skills" Player.RemoveSpell "_DA_Vampire_lv4_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv4_f_Spells" Player.AddSpell "_DA_Vampirism_lv4_h" Player.AddSpell "_DA_Vampire_lv4_h_Skills" Player.AddSpell "_DA_Vampire_lv4_h_Attrs" Player.AddSpell "_DA_Vampire_lv4_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv4_h" Player.RemoveSpell "_DA_Vampire_lv4_h_Skills" Player.RemoveSpell "_DA_Vampire_lv4_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv4_h_Spells" Player.AddSpell "_DA_Vampirism_lv4_f" Player.AddSpell "_DA_Vampire_lv4_f_Skills" Player.AddSpell "_DA_Vampire_lv4_f_Attrs" Player.AddSpell "_DA_Vampire_lv4_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 5 ) ; "Темный Святой"; он не голодает ^_^ Player.AddSpell "_DA_Vampirism_lv5_h" Player.AddSpell "_DA_Vampire_lv5_h_Skills" Player.AddSpell "_DA_Vampire_lv5_h_Attrs" Player.AddSpell "_DA_Vampire_lv5_h_Spells" elseif ( PCVampStatus == 11 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv11_f" Player.RemoveSpell "_DA_Vampire_lv11_f_Skills" Player.RemoveSpell "_DA_Vampire_lv11_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv11_f_Spells" Player.AddSpell "_DA_Vampirism_lv11_h" Player.AddSpell "_DA_Vampire_lv11_h_Skills" Player.AddSpell "_DA_Vampire_lv11_h_Attrs" Player.AddSpell "_DA_Vampire_lv11_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv11_h" Player.RemoveSpell "_DA_Vampire_lv11_h_Skills" Player.RemoveSpell "_DA_Vampire_lv11_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv11_h_Spells" Player.AddSpell "_DA_Vampirism_lv11_f" Player.AddSpell "_DA_Vampire_lv11_f_Skills" Player.AddSpell "_DA_Vampire_lv11_f_Attrs" Player.AddSpell "_DA_Vampire_lv11_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 12 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv12_f" Player.RemoveSpell "_DA_Vampire_lv12_f_Skills" Player.RemoveSpell "_DA_Vampire_lv12_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv12_f_Spells" Player.AddSpell "_DA_Vampirism_lv12_h" Player.AddSpell "_DA_Vampire_lv12_h_Skills" Player.AddSpell "_DA_Vampire_lv12_h_Attrs" Player.AddSpell "_DA_Vampire_lv12_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv12_h" Player.RemoveSpell "_DA_Vampire_lv12_h_Skills" Player.RemoveSpell "_DA_Vampire_lv12_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv12_h_Spells" Player.AddSpell "_DA_Vampirism_lv12_f" Player.AddSpell "_DA_Vampire_lv12_f_Skills" Player.AddSpell "_DA_Vampire_lv12_f_Attrs" Player.AddSpell "_DA_Vampire_lv12_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 13 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv13_f" Player.RemoveSpell "_DA_Vampire_lv13_f_Skills" Player.RemoveSpell "_DA_Vampire_lv13_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv13_f_Spells" Player.AddSpell "_DA_Vampirism_lv13_h" Player.AddSpell "_DA_Vampire_lv3_h_Skills" Player.AddSpell "_DA_Vampire_lv3_h_Attrs" Player.AddSpell "_DA_Vampire_lv13_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv13_h" Player.RemoveSpell "_DA_Vampire_lv13_h_Skills" Player.RemoveSpell "_DA_Vampire_lv13_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv13_h_Spells" Player.AddSpell "_DA_Vampirism_lv13_f" Player.AddSpell "_DA_Vampire_lv13_f_Skills" Player.AddSpell "_DA_Vampire_lv13_f_Attrs" Player.AddSpell "_DA_Vampire_lv13_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 14 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv14_f" Player.RemoveSpell "_DA_Vampire_lv14_f_Skills" Player.RemoveSpell "_DA_Vampire_lv14_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv14_f_Spells" Player.AddSpell "_DA_Vampirism_lv14_h" Player.AddSpell "_DA_Vampire_lv14_h_Skills" Player.AddSpell "_DA_Vampire_lv14_h_Attrs" Player.AddSpell "_DA_Vampire_lv14_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv14_h" Player.RemoveSpell "_DA_Vampire_lv14_h_Skills" Player.RemoveSpell "_DA_Vampire_lv14_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv14_h_Spells" Player.AddSpell "_DA_Vampirism_lv14_f" Player.AddSpell "_DA_Vampire_lv14_f_Skills" Player.AddSpell "_DA_Vampire_lv14_f_Attrs" Player.AddSpell "_DA_Vampire_lv14_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 15 ) ; "Владыка Ночи" If ( daysHungry >= 2 ) ; Если голодает более 2-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv15_f" Player.RemoveSpell "_DA_Vampire_lv15_f_Skills" Player.RemoveSpell "_DA_Vampire_lv15_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv15_f_Spells" Player.AddSpell "_DA_Vampirism_lv15_h" Player.AddSpell "_DA_Vampire_lv15_h_Skills" Player.AddSpell "_DA_Vampire_lv15_h_Attrs" Player.AddSpell "_DA_Vampire_lv15_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv15_h" Player.RemoveSpell "_DA_Vampire_lv15_h_Skills" Player.RemoveSpell "_DA_Vampire_lv15_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv15_h_Spells" Player.AddSpell "_DA_Vampirism_lv15_f" Player.AddSpell "_DA_Vampire_lv15_f_Skills" Player.AddSpell "_DA_Vampire_lv15_f_Attrs" Player.AddSpell "_DA_Vampire_lv15_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 21 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv21_f" Player.RemoveSpell "_DA_Vampire_lv21_f_Skills" Player.RemoveSpell "_DA_Vampire_lv21_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv21_f_Spells" Player.AddSpell "_DA_Vampirism_lv21_h" Player.AddSpell "_DA_Vampire_lv21_h_Skills" Player.AddSpell "_DA_Vampire_lv21_h_Attrs" Player.AddSpell "_DA_Vampire_lv21_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv21_h" Player.RemoveSpell "_DA_Vampire_lv21_h_Skills" Player.RemoveSpell "_DA_Vampire_lv21_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv21_h_Spells" Player.AddSpell "_DA_Vampirism_lv21_f" Player.AddSpell "_DA_Vampire_lv21_f_Skills" Player.AddSpell "_DA_Vampire_lv21_f_Attrs" Player.AddSpell "_DA_Vampire_lv21_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 22 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv22_f" Player.RemoveSpell "_DA_Vampire_lv22_f_Skills" Player.RemoveSpell "_DA_Vampire_lv22_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv22_f_Spells" Player.AddSpell "_DA_Vampirism_lv22_h" Player.AddSpell "_DA_Vampire_lv22_h_Skills" Player.AddSpell "_DA_Vampire_lv22_h_Attrs" Player.AddSpell "_DA_Vampire_lv22_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv22_h" Player.RemoveSpell "_DA_Vampire_lv22_h_Skills" Player.RemoveSpell "_DA_Vampire_lv22_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv22_h_Spells" Player.AddSpell "_DA_Vampirism_lv22_f" Player.AddSpell "_DA_Vampire_lv22_f_Skills" Player.AddSpell "_DA_Vampire_lv22_f_Attrs" Player.AddSpell "_DA_Vampire_lv22_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 23 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv23_f" Player.RemoveSpell "_DA_Vampire_lv23_f_Skills" Player.RemoveSpell "_DA_Vampire_lv23_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv23_f_Spells" Player.AddSpell "_DA_Vampirism_lv23_h" Player.AddSpell "_DA_Vampire_lv23_h_Skills" Player.AddSpell "_DA_Vampire_lv23_h_Attrs" Player.AddSpell "_DA_Vampire_lv23_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv23_h" Player.RemoveSpell "_DA_Vampire_lv23_h_Skills" Player.RemoveSpell "_DA_Vampire_lv23_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv23_h_Spells" Player.AddSpell "_DA_Vampirism_lv23_f" Player.AddSpell "_DA_Vampire_lv23_f_Skills" Player.AddSpell "_DA_Vampire_lv23_f_Attrs" Player.AddSpell "_DA_Vampire_lv23_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 24 ) If ( daysHungry >= 3 ) ; Если голодает более 3-х дней, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv24_f" Player.RemoveSpell "_DA_Vampire_lv24_f_Skills" Player.RemoveSpell "_DA_Vampire_lv24_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv24_f_Spells" Player.AddSpell "_DA_Vampirism_lv24_h" Player.AddSpell "_DA_Vampire_lv24_h_Skills" Player.AddSpell "_DA_Vampire_lv24_h_Attrs" Player.AddSpell "_DA_Vampire_lv24_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv24_h" Player.RemoveSpell "_DA_Vampire_lv24_h_Skills" Player.RemoveSpell "_DA_Vampire_lv24_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv24_h_Spells" Player.AddSpell "_DA_Vampirism_lv24_f" Player.AddSpell "_DA_Vampire_lv24_f_Skills" Player.AddSpell "_DA_Vampire_lv24_f_Attrs" Player.AddSpell "_DA_Vampire_lv24_f_Spells" Set vampHour To GameHour endif elseif ( PCVampStatus == 25 ) ; "Кровавый Лорд" If ( daysHungry >= 1 ) ; Если голодает более 1-го дня, то слабеет... Player.RemoveSpell "_DA_Vampirism_lv25_f" Player.RemoveSpell "_DA_Vampire_lv25_f_Skills" Player.RemoveSpell "_DA_Vampire_lv25_f_Attrs" Player.RemoveSpell "_DA_Vampire_lv25_f_Spells" Player.AddSpell "_DA_Vampirism_lv25_h" Player.AddSpell "_DA_Vampire_lv25_h_Skills" Player.AddSpell "_DA_Vampire_lv25_h_Attrs" Player.AddSpell "_DA_Vampire_lv25_h_Spells" Set vampHour To GameHour else Player.RemoveSpell "_DA_Vampirism_lv25_h" Player.RemoveSpell "_DA_Vampire_lv25_h_Skills" Player.RemoveSpell "_DA_Vampire_lv25_h_Attrs" Player.RemoveSpell "_DA_Vampire_lv25_h_Spells" Player.AddSpell "_DA_Vampirism_lv25_f" Player.AddSpell "_DA_Vampire_lv25_f_Skills" Player.AddSpell "_DA_Vampire_lv25_f_Attrs" Player.AddSpell "_DA_Vampire_lv25_f_Spells" Set vampHour To GameHour endif endif end begin MenuMode ; Отсчитываем дни, которые игрок был заражен порфириновой гемофилией If ( hasDisease == 1 ) If ( currentDay == 0 ) Set currentDay To GameDay else If ( currentDay != GameDay ) Set dayCount To ( dayCount + 1 ) Set currentDay To GameDay endif endif endif ; Если прошло 3 или более дня с заболевания порфириновой гемофилией, изменяем уровень на 0 If ( hasDisease == 1 ) If ( dayCount >= 3) If ( IsPCSleeping ) WakeUpPC Set PCVampStatus To 0 endif endif endif ; Блок, отслеживающий голодные дни и изменяющий статус Святого If ( PCVampStatus != -1 ) If ( IsTimePassing ) If ( vampHours >= 22 ) Set hungryDays To ( hungryDays + 1 ) Set vampHours To 0 If ( growthComplete != 1 ) Set lastActionPerformed To 1 Set Saint To ( Saint + 1 ) Set Pacific To ( Pacific - 1 ) Set Killer To ( Killer - 1 ) endif endif endif endif end End Изменено 22 мая, 2009 пользователем Dr.Sinc Ссылка на комментарий Поделиться на другие сайты Поделиться
Graft Опубликовано 19 июня, 2009 Жалоба Поделиться Опубликовано 19 июня, 2009 Как там, создание плага не заглохло? Идея очень хорошая. P.S. Скрипт на первый взгляд вполне рабочий. Но надо потестить в "натуре", а не на первый взгляд )) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти