AGFC
Страница 7 из 8 1234567 8

AGFC (http://agfc.ru/index.php)
-   AGFC: Valley of Gothic (http://agfc.ru/forumdisplay.php?f=46)
-   -   М: Уроки скриптологии (http://agfc.ru/showthread.php?t=1098161614)

12.09.2005 08:32

Re: Уроки скриптологии
 
2Vendiga:<br>
Цитата:

Ой, а почему уроки прекратились? Что уже нечему учть?
<br>Учить ещё есть чему, а вот времени на это уже нет. Все силы &quot;брошены&quot; на новую версию декомпилятора.<br>Да, большинству из вас уже не нужна учеба, сами кого захотите научите. &nbsp;;)

12.09.2005 15:48

Re: Уроки скриптологии
 
2Vam:
Цитата:

Да, большинству из вас уже не нужна учеба, сами кого захотите научите.
<br>Да, многому.... основному ::) Но вот дальше бурить самые потаённые глубины скриптов... Здесь либо без пол-литра, либо без Vam'a не обойдёшься :D

02.10.2005 14:55

Re: Уроки скриптологии
 
Просттите, я просмотрел, или здесь нет описания AI?

03.10.2005 10:47

Re: Уроки скриптологии
 
2eLong:<br>
Цитата:

Просттите, я просмотрел, или здесь нет описания AI?
<br>Вся AI Готики 2 полностью рассмотрена начиная с 4 страницы (пост 79).

04.11.2005 17:37

Re: Уроки скриптологии
 
После декомпиляции gothic.dat декомпилятором Vama скрипты выглядят не наглядно, там трудно что либо разобрать, [] квадратик заменяет начало новой строки. А можно их привести в более наглядный вид? Ну типа как немецкие?<br><br>И ещё одно при компиляции появляются ошибки допущеные разработчиками. Так вот кто нибуть может показать как их правильно исправить или выложить файлы с уже исправлеными скриптами<br><br>Добавление от 11/04/05, в 16:57:58 <hr class="hr_agfc">После декомпиляции gothic.dat декомпилятором Vama скрипты выглядят не наглядно, там трудно что либо разобрать, [] квадратик заменяет начало новой строки. А можно их привести в более наглядный вид? Ну типа как немецкие?<br><br>И ещё одно при компиляции появляются ошибки допущеные разработчиками. Так вот кто нибуть может показать как их правильно исправить или выложить файлы с уже исправлеными скриптами<br>

04.11.2005 21:03

Re: Уроки скриптологии
 
[quote=Stel1 link=board=gothic&amp;t=1098161614&amp;start=225#2 44 date=11/04/05, в 16:37:58]<br><br>
Цитата:

Добавление от 11/04/05, в 16:57:58 <hr class="hr_agfc">После декомпиляции gothic.dat декомпилятором Vama скрипты выглядят не наглядно, там трудно что либо разобрать, [] квадратик заменяет начало новой строки. А можно их привести в более наглядный вид? Ну типа как немецкие?
<br><br>Странно...<br><br>instance BDT_1096_ADDON_LENNAR_ANEWFACE(C_Info)<br>{<br> * * *npc = BDT_1096_Addon_Lennar;<br> * * *condition = bdt_1096_addon_lennar_anewface_condition;<br> * * *information = bdt_1096_addon_lennar_anewface_info;<br> * * *important = TRUE;<br> * * *permanent = FALSE;<br>};<br><br>func int bdt_1096_addon_lennar_anewface_condition()<br>{<br > * * *return TRUE;<br>};<br>********<br><br><br>Это не наглядно? Хм...<br>И какие еще []?<br>Пользуйся UltraEdit и настрой его (значки всякие лишние, типа начала строки...)!<br>

04.11.2005 22:07

Re: Уроки скриптологии
 
Я понял это блокнот так галимо открывает в word нормально<br><br>А второй Почему мой созданный меч не пашет в русских скриптах пишет &quot;Unknow indintifired (или что-то так) ScHasMyWeapon.d *&quot;ItMw_MySword&quot;&quot;. А в немецкой пашет. Я компелирую спейсером т.к. декомпилятор вама выдаёт ошибки програмистов.<br><br>

06.11.2005 01:18

Re: Уроки скриптологии
 
Цитата:

Сообщение от Stel1 link=board=gothic&amp;t=1098161614&amp;start=225#2 46 date=11/04/05, в 21:07:28
<br>Я понял это блокнот так галимо открывает в word нормально

<br><br><br>
Цитата:

А второй Почему мой созданный меч не пашет в русских скриптах пишет &quot;Unknow indintifired (или что-то так) ScHasMyWeapon.d *&quot;ItMw_MySword&quot;&quot;. А в немецкой пашет. Я компилирую спейсером т.к. декомпилятор вама выдаёт ошибки програмистов.
<br><br>Ну так спейсер и не обращает внимания на твои ошибки &nbsp;:D,<br>а декомпилятор, обращает.<br>Пиши скрипты без ошибок &nbsp;;)

06.11.2005 14:07

Re: Уроки скриптологии
 
Так я правильно написал точно тоже что я написал пашет на немецких скриптах. Я уже копировал с немецких свои части кода. И добовлял к русским всё равно ерунда получается

06.11.2005 16:23

Re: Уроки скриптологии
 
Может прекратите замусоривать ветку?

09.12.2005 03:07

Re: Уроки скриптологии
 
Читаю тут на досуге сведенные TycoooN`ом &quot;Уроки скриптологии&quot;, выложенные в таверне, и сходу вижу такую запись:<br>
Цитата:

Тема первая: Типы переменных.<br>В скриптах используется всего несколько типов переменных:<br>VOID - &quot;пустой&quot; тип<br>INT - целое число<br>FLOAT - число с плавающей точкой<br>STRING - строка текста<br>CLASS - структура с внутренними типами и функциями<br>PROTOTYPE - обычно инициализация класса, но возможно и другое использование<br>INSTANCE - пока сказать нечего.<br>вот, кажется, и все типы.
<br>И думается мне &quot;а что же подумают новички, типа меня, об загадочном INSTANCE? еще ведь легендами какими обсадят и пустят черти какими слухами в народ&quot;. Может, с учетом накопленного опыта, продумать, как подредактировать имеющиеся пробелы? Для порядку, такскать, поскольку в сведенном виде (спасибо TycoooN) сей документ (спасибо Vam) особенно эффективен и полезен.<br><br>Добавление от 12/09/05, в 02:27:48 <hr class="hr_agfc">
Цитата:

подскажите как сделать собственную книгу или письмо в Г2, вернее мне скрипт для этого нужен.
<br><br>
Цитата:

Items\IT_Written.d <br>Содержимое этого файла ОЧЕНЬ тебе поможет.
<br>И вот таких вопросов-ответов масса, насколько я помню. По ним бы FAQ сделать было бы полезно.<br><br>Извиняюсь за оффтоп, но он по делу.

TycoooN 23.01.2006 18:11

Re: Уроки скриптологии
 
Господа, прекращаем обсуждение. Ветка для уроков, а не для вопросов. Вопросы - в соответствующих темах.

28.04.2006 11:50

Re: Уроки скриптологии
 
А теперь главный вопрос! Где это хранится??? в какой папке, и с помощью чего открыть????

28.04.2006 17:56

Re: Уроки скриптологии
 
2Antolflash:<br>
Цитата:

А теперь главный вопрос! Где это хранится??? в какой папке, и с помощью чего открыть????
<br><br>Папка со скриптами любой Готики - ..\_work\data\scripts\Content - сюжетные скрипты,<br>..\_work\data\scripts\System - системные скрипты.<br>Любые *.d файлы открываются и редактируются любым текстовым редактором.<br><br>Если же эти папки отсутствуют и есть только папка ..\_work\data\scripts\_compiled, то скрипты нужно сначала получить, запустив Декомпилятор скриптов Готики, но это уже другая тема... (см. здесь)

19.05.2006 18:41

Re: М: Уроки скриптологии
 
Вопрос по названиям предметов в скриптах.<br>Поле &quot;name&quot; отвечает за отображаемое название предмета на земле, поле &quot;description&quot; - за отображение названия предмета в инвентаре.<br><br>А вот какое поле отвечает за ОПИСАНИЕ предмета в инвентаре? Например: ЯБЛОКО. МЯГКОЕ И СОЧНОЕ<br><br>Пример скрипта ниже<br>
Цитата:

instance ItMW_Addon_Knife01(C_Item)<br>{<br> &nbsp; &nbsp; &nbsp;name = &quot;Складной нож&quot;;<br> &nbsp; &nbsp; &nbsp;mainflag = ITEM_KAT_NF;<br> &nbsp; &nbsp; &nbsp;flags = ITEM_SWD;<br> &nbsp; &nbsp; &nbsp;material = MAT_METAL;<br> &nbsp; &nbsp; &nbsp;value = Value_Wolfsmesser;<br> &nbsp; &nbsp; &nbsp;damageTotal = Damage_Wolfsmesser;<br> &nbsp; &nbsp; &nbsp;damagetype = DAM_EDGE;<br> &nbsp; &nbsp; &nbsp;range = Range_Wolfsmesser;<br> &nbsp; &nbsp; &nbsp;on_equip = Equip_1H_03;<br> &nbsp; &nbsp; &nbsp;on_unequip = UnEquip_1H_03;<br> &nbsp; &nbsp; &nbsp;cond_atr[2] = ATR_STRENGTH;<br> &nbsp; &nbsp; &nbsp;cond_value[2] = Condition_Wolfsmesser;<br> &nbsp; &nbsp; &nbsp;visual = &quot;ItMw_012_1h_Knife_02.3DS&quot;;<br> &nbsp; &nbsp; &nbsp;description = &quot;Маленький нож. Хорошо прятать в сапог&quot;;<br> &nbsp; &nbsp; &nbsp;text[2] = NAME_Damage;<br> &nbsp; &nbsp; &nbsp;count[2] = damageTotal;<br> &nbsp; &nbsp; &nbsp;text[3] = NAME_Str_needed;<br> &nbsp; &nbsp; &nbsp;count[3] = cond_value[2];<br> &nbsp; &nbsp; &nbsp;text[4] = NAME_ADDON_BONUS_1H;<br> &nbsp; &nbsp; &nbsp;count[4] = Waffenbonus_03;<br> &nbsp; &nbsp; &nbsp;text[5] = NAME_Value;<br> &nbsp; &nbsp; &nbsp;count[5] = value;<br>};<br>
<br><br>Распишите плз за что отвечает каждая строка?

20.05.2006 09:20

Re: М: Уроки скриптологии
 
2fokon:<br>
Цитата:

Распишите плз за что отвечает каждая строка?
<br>Похоже ты не очень хорошо читал Уроки скриптологии, в них рассмотрено множество описаний предметов, но повторить не сложно:<br><br><br>instance ItMW_Addon_Knife01(C_Item)<br>{<br> * * // название предмета в фокусе<br> * * name = &quot;Складной нож&quot;;<br> * * // флаг категории предмета - оружие блжнего радиуса поражения<br> * * mainflag = ITEM_KAT_NF;<br> * * // другие флаги - тип оружия - меч<br> * * flags = ITEM_SWD;<br> * * // материал предмета - металлический<br> * * material = MAT_METAL;<br> * * // стоимость предмета в &quot;рублях&quot;<br> * * value = Value_Wolfsmesser;<br> * * // суммарное повреждение, наносимое оружием<br> * * damageTotal = Damage_Wolfsmesser;<br> * * // тип наносимого повреждения - повреждение острым оружием<br> * * damagetype = DAM_EDGE;<br> * * // радиус поражения оружия ближнего боя<br> * * range = Range_Wolfsmesser;<br> * * // функция, вызываемая при экипировке<br> * * on_equip = Equip_1H_03;<br> * * // функция, вызываемая, когда предмет снимается и убирается в инвентарь<br> * * on_unequip = UnEquip_1H_03;<br> * * // для применения предмета требуется сила<br> * * cond_atr[2] = ATR_STRENGTH;<br> * * // значение силы для применения предмета<br> * * cond_value[2] = Condition_Wolfsmesser;<br> * * // имя файла изображения предмета<br> * * visual = &quot;ItMw_012_1h_Knife_02.3DS&quot;;<br> * * // название предмета в инвентаре<br> * * description = &quot;Маленький нож. Хорошо прятать в сапог&quot;;<br> * * // далее text[] и count[] соответственно строки описания предмета в инвентаре и значения этих характеристик, индекс массивов - номер строки записи, при пропущенном индексе выводится пустая строка<br> * * // третья строка - &quot;Повреждение: значение повреждения&quot; <br> * * text[2] = NAME_Damage;<br> * * count[2] = damageTotal;<br> * * // четвертая строка - &quot;Необходимо силы: значение силы&quot; <br> * * text[3] = NAME_Str_needed;<br> * * count[3] = cond_value[2];<br> * * // пятая строка - &quot;Бонус к одноручному умению - значение бонуса&quot; <br> * * text[4] = NAME_ADDON_BONUS_1H;<br> * * count[4] = Waffenbonus_03;<br> * * // шестая строка - &quot;Ценность: значение стоимости&quot; <br> * * text[5] = NAME_Value;<br> * * count[5] = value;<br>};<br><br><br>...вот и всё, для других предметов аналогично.

30.05.2006 22:49

Re: М: Уроки скриптологии
 
Есть проблема: требуется &quot;подружить&quot; людей и монстров.<br>Имеется монстр, вокруг него - горстка людей.<br>На монстра нападают другие монстры, люди, ГГ.<br>Требуется, чтобы люди вокруг монстрика защищали его, а не бросались его атаковать при первом же ударе.<br>Как реализовать?<br><br>Функция B_SetGuildAttitude(любой человек, friendly, монстр) не подходит.

marazmus 30.05.2006 23:23

Re: М: Уроки скриптологии
 
Поставь &quot;защищаемому&quot; монстру такую же гильдию, что и у людей, которые его защищают. В случае нападения на монстра люди будут атаковать напавшего, так как это будет нападение на &quot;своего&quot;.

31.05.2006 19:56

Re: М: Уроки скриптологии
 
Цитата:

Сообщение от marazmus link=board=gothic&amp;t=1098161614&amp;start=250#2 57 date=05/30/06, в 23:23:20
<br>Поставь &quot;защищаемому&quot; монстру такую же гильдию, что и у людей, которые его защищают. В случае нападения на монстра люди будут атаковать напавшего, так как это будет нападение на &quot;своего&quot;.<br>

<br>Речь идёт о Г1...<br>Пробовал. У монстра остаётся 1 хитпойнт, после чего он успешно &quot;восстаёт из мёртвых&quot;.<br>Смутно понимаю, что нужно править zs_unconscious.d, и zs_dead.d, но как определить именно конкретного монстра?

marazmus 31.05.2006 20:22

Re: М: Уроки скриптологии
 
По поводу Г1 - не спец, извини. Под Г1 ничего не скриптил. Но файл GUILDS.D, определяющий отношения между гильдиями, там тоже есть.<br><br>Если остается 1 хитпойнт - значит, ты прописал ему гильдию, которая &quot;дружественна&quot; или &quot;нейтральна&quot; ГГ. В этом случае, победив персонажа, ты его не убиваешь, а только отправляешь в &quot;нокдаун&quot;. <br>Я тоже склоняюсь к тому, что нужно копать zs_unconcious.d, если неохота возиться с гильдиями. А монстру просто прописать ID, и по нему определять в zs_unconcious.d факт &quot;побеждения&quot;. Потом переводить побежденного монстра в состояние zs_dead.<br><br>p.s. А &quot;защитники&quot; нападают на тебя? Решил эту задачу?<br>p.p.s. Может, перенесем обсуждение в тему &quot;Скриптинг в Готике&quot;? Там это будет более уместно. Может, модераторы &quot;откусят&quot; наш кусок обсуждения и перекинут в эту тему?

11.07.2006 17:46

Re: М: Уроки скриптологии
 
Подскажите плз где можно скачать ворлд мейкер для Готики..

11.07.2006 18:57

Re: М: Уроки скриптологии
 
2Soullesser:<br>
Цитата:

Подскажите плз где можно скачать ворлд мейкер для Готики..
<br>Тебе надо сюда. Там есть практически всё, что нужно для модостроения.<br>А вопросы по модостроению задаются здесь.

31.07.2006 12:00

Re: М: Уроки скриптологии
 
Несколько вопросиков.<br>Подскажите, пожалуйста, как узнать, что ГГ ударил NPC сдади?<br>Как сделать так, чтобы NPC реагировали на увиденные ими трупы других NPC ?

31.07.2006 14:01

Re: М: Уроки скриптологии
 
2-AlexX-:<br>
Цитата:

как узнать, что ГГ ударил NPC сдади?
<br>Это сделать нельзя, движок не определяет с какой стороны НПС насесен удар, и в скриптах это никак не отражается. Хотя можно попробовать внести в функцию реакции на повреждение B_AssessDamage анализ, видит ли жертва агрессора, используя функцию движка Npc_CanSeeNpc.<br><br>
Цитата:

Как сделать так, чтобы NPC реагировали на увиденные ими трупы других NPC ?
<br>Это сделать можно. Есть восприятие - PERC_ASSESSBODY (восприятие НПС мертвого тела). Обработчик этого восприятия реализован только для монстров, если у монстра стоит флаг пожирать падаль и рядом есть труп, то движок выдает реакцию на восприятие и включается обработчик его B_MM_AssessBody, в котором монстр бежит к трупу и &quot;кушает&quot; его. Необходимо написать обработчик этого восприятия для людей и активировать это восприятие.<br>

01.08.2006 19:16

Re: М: Уроки скриптологии
 
Люди, помогите разобраться с функцией, а то я совсем запутался.<br>Я хочу что бы при прочтении книги “ItWr_Book_Mis” появился предмет “ItMw_2H_Blessed_02” на вэйпоинте под названием “NW_Farm3” (к примеру), но при этом только один раз, а не при каждом прочтении книги.<br>

01.08.2006 22:10

Re: М: Уроки скриптологии
 
2Тёмный маг:<br>
Цитата:

Я хочу что бы при прочтении книги “ItWr_Book_Mis” появился предмет “ItMw_2H_Blessed_02” на вэйпоинте под названием “NW_Farm3” (к примеру), но при этом только один раз, а не при каждом прочтении книги.
<br>Поставь просто флаг, т.е. заводим глобальную переменную, при чтении смотрим, если она = FALSE, то ставим предмет и присваиваем ей значение TRUE. Это всё... &nbsp;::)

16.08.2006 18:21

Re: М: Уроки скриптологии
 
Не могли бы вы, добрые люди, помочь чуток? Я вот вроде отпечатывал всё нормально, но компилятор упорно материться...<br><br>Info_ClearChoices (dia_vlk_432_moe);<br> * * *Info_AddChoice (dia_vlk_432_moe, &quot;А не пошел бы ты к такой то бабушке?&quot;, dia_vlk_432_moe_1);<br> * *Info_AddChoice (dia_vlk_432_moe, &quot;Хорошо, я согласен&quot;, dia_vlk_432_moe_2);<br>};<br><br>func void dia_vlk_432_moe_1 ()<br>{<br> * * *AI_Output (other, self, &quot;dia_vlk_432_moe_1_02_01&quot;); // А не пошел бы ты к такой то бабушке<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_1_01_01&quot;); // Парень, ты, наверное, меня не понял. Ну это не беда, я тебе сейчас всё объясню.<br> * * *B_Attack(self,other,AR_NONE,1);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>func void dia_vlk_432_moe_2 ()<br>{<br> * * *AI_Output(other,self,&quot;dia_vlk_432_moe_2_02_0 1&quot;); // Хорошо, я согласен<br> * * *AI_Output(self,other,&quot;dia_vlk_432_moe_2_01_0 1&quot;); // Ты все правильно сделал. Не забудь наведывать ко мне каждый день. * * *B_GiveInvItems(other,self,ItMi_Gold, 20);<br> * * *B_LogEntry (TOPIC_BlackHawks, &quot;Теперь я каждый день должен платить Мо по 20 золотых&quot;);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>На выделенную жирным строчку компилятор упорно матерится, что там не тот тип... *Не поможете, а? *::)

16.08.2006 21:20

Re: М: Уроки скриптологии
 
2Pui-LeGuDaa:<br>
Цитата:

На выделенную жирным строчку компилятор упорно матерится, что там не тот тип... &nbsp;Не поможете, а?
<br>Приведи полное сообщение компилятора, может ты со строкой ошибся, здесь похоже всё нормально. Какой компилятор используешь?

17.08.2006 00:02

Re: М: Уроки скриптологии
 
Компилятор версия 2.40... С 3.00 я так до конца и не разобрался. Я немного неправильно сформулировал свой вопрос. Компилятор матерится не именно на эту строчку, а на dia_vlk_432_moe_2... Да и я говорил: пишет, что не тот тип... Я читал твой тутор по скриптам, упакованный Тайкуном... На всякий пожарный перепробовал поставить не инт, а войд и тп... Неудивительно, ничто не помогло.<br>Скажите мне плиз тег на спойлер, я бы спойлер сделал со скриптом.

17.08.2006 17:32

Re: М: Уроки скриптологии
 
Цитата:

Сообщение от Pui-LeGuDaa link=board=gothic&amp;t=1098161614&amp;start=250#2 68 date=08/17/06, в 00:02:24
<br>Скажите мне плиз тег на спойлер, я бы спойлер сделал со скриптом.<br>

<br><br>Тег на спойлер:[Spoiler] <br>...Spoiler TEXT */Spoiler соответственно - &quot;Spoiler&quot; в квадратных скобках <br>[/Spoiler]

17.08.2006 17:46

Re: М: Уроки скриптологии
 
Вот значит весь скрипт. Осторожно, больше двухсот строк, точнее почти 300.<br>[spoiler]instance dia_vlk_432_moe (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 1;<br> * * *condition = dia_vlk_432_moe_condition;<br> * * *information = dia_vlk_432_moe_info;<br> * * *permanent = false;<br> * * *important = true;<br>};<br><br>func int dia_vlk_432_moe_condition ()<br>{<br> * * *return TRUE;<br>};<br><br>func void dia_vlk_432_moe_info ()<br>{<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_01_01&quot;); // &amp;#205;&amp;#229; &amp;#242;&amp;#238;&amp;#240;&amp;#238;&amp;#239; &amp;#232;&amp;#241;&amp;#252; &amp;#228;&amp;#240;&amp;#243;&amp;#230;&amp;#238; &amp;#234;, &amp;#240;&amp;#224;&amp;#231;&amp;#227;&amp;#238; &amp;#226;&amp;#238;&amp;#240; &amp;#229;&amp;#241;&amp;#242;&amp;#252;.<br> * * *AI_Output (other, self, &quot;dia_vlk_432_moe_02_01&quot;); // &amp;#215;&amp;#242;&amp;#238; &amp;#242;&amp;#229;&amp;#225;&amp;#229; &amp;#237;&amp;#243;&amp;#230;&amp;#237;&amp;#238; ?<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_01_02&quot;); // &amp;#210;&amp;#251; &amp;#239;&amp;#240;&amp;#232;&amp;#248;&amp;#229; &amp;#235; &amp;#237;&amp;#224; &amp;#237;&amp;#224;&amp;#249;&amp;#243; &amp;#242;&amp;#229;&amp;#240;&amp;#240;&amp;#232; &amp;#242;&amp;#238;&amp;#240;&amp;#232;&amp;#2 54; &amp;#232; &amp;#231;&amp;#228;&amp;#229;&amp;#241;&amp;#2 52; &amp;#228;&amp;#229;&amp;#233;&amp;#241;&amp;#242; &amp;#226;&amp;#243;&amp;#254; &amp;#228;&amp;#240;&amp;#243;&amp;#227;&amp;#232; &amp;#229; &amp;#231;&amp;#224;&amp;#234;&amp;#238;&amp;#237; &amp;#251;, &amp;#237;&amp;#229;&amp;#230;&amp;#229;&amp;#235; &amp;#232; &amp;#226; &amp;#238;&amp;#241;&amp;#242;&amp;#224;&amp;#235; &amp;#252;&amp;#237;&amp;#251;&amp;#245; &amp;#247;&amp;#224;&amp;#241;&amp;#242;&amp;#255; &amp;#245; &amp;#227;&amp;#238;&amp;#240;&amp;#238;&amp;#228; &amp;#224;.<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_01_03&quot;); // &amp;#197;&amp;#241;&amp;#235;&amp;#232; &amp;#242;&amp;#251; &amp;#245;&amp;#238;&amp;#247;&amp;#229;&amp;#248; &amp;#252; &amp;#241;&amp;#239;&amp;#238;&amp;#234;&amp;#238; &amp;#233;&amp;#237;&amp;#238; &amp;#230;&amp;#232;&amp;#242;&amp;#252; &amp;#232; &amp;#227;&amp;#243;&amp;#235;&amp;#255;&amp;#242; &amp;#252; &amp;#227;&amp;#228;&amp;#229; &amp;#245;&amp;#238;&amp;#247;&amp;#229;&amp;#248; &amp;#252;, &amp;#242;&amp;#238; &amp;#231;&amp;#224; &amp;#253;&amp;#242;&amp;#238; &amp;#237;&amp;#243;&amp;#230;&amp;#237;&amp;#2 38; &amp;#237;&amp;#224;&amp;#236; &amp;#231;&amp;#224;&amp;#239;&amp;#235;&amp;#224; &amp;#242;&amp;#232;&amp;#242;&amp;#252;.<br> * * *AI_Output (other, self, &quot;dia_vlk_432_moe_02_02&quot;); // &amp;#192; &amp;#234;&amp;#242;&amp;#238; &amp;#226;&amp;#251; &amp;#242;&amp;#224;&amp;#234;&amp;#232;&amp;#229; , &amp;#247;&amp;#242;&amp;#238;&amp;#225;&amp;#2 51; &amp;#255; &amp;#226;&amp;#224;&amp;#236; &amp;#239;&amp;#235;&amp;#224;&amp;#242;&amp;#232; &amp;#235;?<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_01_04&quot;); // &amp;#204;&amp;#251;? &amp;#210;&amp;#251; &amp;#240;&amp;#224;&amp;#231;&amp;#226;&amp;#2 29; &amp;#237;&amp;#229; &amp;#241;&amp;#235;&amp;#251;&amp;#248;&amp;#224; &amp;#235; &amp;#238; &amp;#225;&amp;#224;&amp;#237;&amp;#228;&amp;#2 29; &quot;&amp;#215;&amp;#229;&amp;#240;&amp;#237;&amp ;#251;&amp;#229; &amp;#223;&amp;#241;&amp;#242;&amp;#240;&amp;#229; &amp;#225;&amp;#251;&quot;?<br> * * *AI_Output (other, self, &quot;dia_vlk_432_moe_01_03&quot;); // &amp;#205;&amp;#229;&amp;#242;, &amp;#237;&amp;#229; &amp;#241;&amp;#235;&amp;#251;&amp;#248;&amp;#224; &amp;#235;.<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_01_05&quot;); // &amp;#205;&amp;#243;, &amp;#242;&amp;#229;&amp;#239;&amp;#229;&amp;#240; &amp;#252; &amp;#231;&amp;#237;&amp;#224;&amp;#247;&amp;#232; &amp;#242; &amp;#243;&amp;#241;&amp;#235;&amp;#251;&amp;#248; &amp;#224;&amp;#235;.<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_01_06&quot;); // &amp;#194; &amp;#238;&amp;#225;&amp;#249;&amp;#229;&amp;#236; , &amp;#242;&amp;#251; &amp;#228;&amp;#238;&amp;#235;&amp;#230;&amp;#229; &amp;#237; &amp;#225;&amp;#243;&amp;#228;&amp;#229;&amp;#248; &amp;#252; &amp;#239;&amp;#235;&amp;#224;&amp;#242;&amp;#232; &amp;#242;&amp;#252; &amp;#237;&amp;#224;&amp;#236; &amp;#234;&amp;#224;&amp;#230;&amp;#228;&amp;#251; &amp;#233; &amp;#228;&amp;#229;&amp;#237;&amp;#252; &amp;#239;&amp;#238; 20 &amp;#236;&amp;#238;&amp;#237;&amp;#229;&amp;#242; . &amp;#223; &amp;#228;&amp;#243;&amp;#236;&amp;#224;&amp;#254; , &amp;#228;&amp;#235;&amp;#255; &amp;#242;&amp;#229;&amp;#225;&amp;#255; &amp;#253;&amp;#242;&amp;#238; &amp;#237;&amp;#229; &amp;#241;&amp;#238;&amp;#241;&amp;#242;&amp;#224; &amp;#226;&amp;#232;&amp;#242; &amp;#242;&amp;#240;&amp;#243;&amp;#228;&amp;#224; .<br> * * *Info_ClearChoices (dia_vlk_432_moe);<br> * * *Log_CreateTopic (TOPIC_BlackHawks, LOG_MISSION);<br> * *Log_SetTopicStatus (TOPIC_BlackHawks, LOG_RUNNING);<br> * *B_LogEntry (TOPIC_BlackHawks, &quot;&amp;#194; &amp;#239;&amp;#238;&amp;#240;&amp;#242;&amp;#2 43; &amp;#255; &amp;#226;&amp;#241;&amp;#242;&amp;#240;&amp;#229; &amp;#242;&amp;#232;&amp;#235; &amp;#204;&amp;#238;, &amp;#247;&amp;#235;&amp;#229;&amp;#237;&amp;#2 24; &amp;#225;&amp;#224;&amp;#237;&amp;#228;&amp;#2 51; &amp;#215;&amp;#229;&amp;#240;&amp;#237;&amp;#251; &amp;#245; &amp;#223;&amp;#241;&amp;#242;&amp;#240;&amp;#229; &amp;#225;&amp;#238;&amp;#226;. &amp;#206;&amp;#237; &amp;#226;&amp;#251;&amp;#236;&amp;#238;&amp;#227; &amp;#224;&amp;#229; &amp;#243; &amp;#236;&amp;#229;&amp;#237;&amp;#255; &amp;#228;&amp;#229;&amp;#237;&amp;#252;&amp;#227; &amp;#232;.&quot;);<br> * * *Info_ClearChoices (dia_vlk_432_moe);<br> * * *Info_AddChoice (dia_vlk_432_moe, &quot;&amp;#192; &amp;#237;&amp;#229; &amp;#239;&amp;#238;&amp;#248;&amp;#229;&amp;#2 35; &amp;#225;&amp;#251; &amp;#242;&amp;#251; &amp;#234; &amp;#242;&amp;#224;&amp;#234;&amp;#238;&amp;#2 33;-&amp;#242;&amp;#238; &amp;#225;&amp;#224;&amp;#225;&amp;#243;&amp;#248; &amp;#234;&amp;#229;?&quot;, dia_vlk_432_moe_1);<br> * *Info_AddChoice (dia_vlk_432_moe, &quot;&amp;#213;&amp;#238;&amp;#240;&amp;#238;&amp ;#248;&amp;#238;, &amp;#255; &amp;#241;&amp;#238;&amp;#227;&amp;#235;&amp;#224; &amp;#241;&amp;#229;&amp;#237;.&quot;, dia_vlk_432_moe_2);<br>};<br><br>func void dia_vlk_432_moe_1 ()<br>{<br> * * *AI_Output (other, self, &quot;dia_vlk_432_moe_1_02_01&quot;); // &amp;#192; &amp;#237;&amp;#229; &amp;#239;&amp;#238;&amp;#248;&amp;#229;&amp;#2 35; &amp;#225;&amp;#251; &amp;#242;&amp;#251; &amp;#234; &amp;#242;&amp;#224;&amp;#234;&amp;#238;&amp;#2 33;-&amp;#242;&amp;#238; &amp;#225;&amp;#224;&amp;#225;&amp;#243;&amp;#248; &amp;#234;&amp;#229;?<br> * * *AI_Output (self, other, &quot;dia_vlk_432_moe_1_01_01&quot;); // &amp;#207;&amp;#224;&amp;#240;&amp;#229;&amp;#237; &amp;#252;, &amp;#242;&amp;#251;, &amp;#237;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#238;&amp;#229;, &amp;#236;&amp;#229;&amp;#237;&amp;#255; &amp;#237;&amp;#229; &amp;#239;&amp;#238;&amp;#237;&amp;#255;&amp;#235; . &amp;#205;&amp;#243;, &amp;#253;&amp;#242;&amp;#238; &amp;#237;&amp;#229; &amp;#225;&amp;#229;&amp;#228;&amp;#224;, &amp;#241;&amp;#229;&amp;#233;&amp;#247;&amp;#224; &amp;#241; &amp;#255; &amp;#242;&amp;#229;&amp;#225;&amp;#229; &amp;#226;&amp;#241;&amp;#184; &amp;#238;&amp;#225;&amp;#250;&amp;#255;&amp;#241; &amp;#237;&amp;#254;.<br> * * *B_Attack(self,other,AR_NONE,1);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>func void dia_vlk_432_moe_2 ()<br>{<br> * * *AI_Output(other,self,&quot;dia_vlk_432_moe_2_02_0 1&quot;); // &amp;#213;&amp;#238;&amp;#240;&amp;#238;&amp;#248; &amp;#238;, &amp;#255; &amp;#241;&amp;#238;&amp;#227;&amp;#235;&amp;#224; &amp;#241;&amp;#229;&amp;#237;.<br> * * *AI_Output(self,other,&quot;dia_vlk_432_moe_2_01_0 1&quot;); // &amp;#210;&amp;#251; &amp;#226;&amp;#241;&amp;#229; &amp;#239;&amp;#240;&amp;#224;&amp;#226;&amp;#232; &amp;#235;&amp;#252;&amp;#237;&amp;#238; &amp;#241;&amp;#228;&amp;#229;&amp;#235;&amp;#224; &amp;#235;. &amp;#205;&amp;#229; &amp;#231;&amp;#224;&amp;#225;&amp;#243;&amp;#228; &amp;#252; &amp;#237;&amp;#224;&amp;#226;&amp;#229;&amp;#228; &amp;#251;&amp;#226;&amp;#224;&amp;#242;&amp;#252; &amp;#241;&amp;#255; &amp;#234;&amp;#238; &amp;#236;&amp;#237;&amp;#229; &amp;#234;&amp;#224;&amp;#230;&amp;#228;&amp;#251; &amp;#233; &amp;#228;&amp;#229;&amp;#237;&amp;#252;.<br> * * *B_GiveInvItems(other,self,ItMi_Gold, 20);<br> * * *B_LogEntry (TOPIC_BlackHawks, &quot;&amp;#210;&amp;#229;&amp;#239;&amp;#229;&amp ;#240;&amp;#252; &amp;#255; &amp;#228;&amp;#238;&amp;#235;&amp;#230;&amp;#229; &amp;#237; &amp;#234;&amp;#224;&amp;#230;&amp;#228;&amp;#251; &amp;#233; &amp;#228;&amp;#229;&amp;#237;&amp;#252; &amp;#239;&amp;#235;&amp;#224;&amp;#242;&amp;#232; &amp;#242;&amp;#252; &amp;#204;&amp;#238; 20 &amp;#231;&amp;#238;&amp;#235;&amp;#238;&amp;#242; &amp;#251;&amp;#245;.&quot;);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>instance dia_vlk_432_moe_afterfight_loose (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 2;<br> * * *condition = dia_vlk_432_moe_afterfight_loose_condition;<br> * * *information = dia_vlk_432_moe_afterfight_loose_info;<br> * * *permanent = false;<br> * * *important = true;<br>};<br><br>func int dia_vlk_432_moe_afterfight_loose_condition ()<br>{<br> * * *if((self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_LOST) &amp;&amp; Npc_IsInState(self,ZS_Talk))<br> * * *{<br> * * * * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_vlk_432_moe_afterfight_loose_info ()<br>{<br> * * *AI_Output(self,other,&quot;dia_vlk_432_moe_faterf ight_loose_02_01&quot;); // &amp;#192; &amp;#242;&amp;#251; &amp;#243;&amp;#239;&amp;#229;&amp;#240;&amp;#242; &amp;#251;&amp;#233; &amp;#239;&amp;#224;&amp;#240;&amp;#229;&amp;#237; &amp;#252;. &amp;#200; &amp;#255; &amp;#231;&amp;#224;&amp;#236;&amp;#224;&amp;#240; &amp;#224;&amp;#235; &amp;#241;&amp;#226;&amp;#238;&amp;#233; &amp;#241;&amp;#254;&amp;#240;&amp;#242;&amp;#243; &amp;#234;, &amp;#239;&amp;#238;&amp;#253;&amp;#242;&amp;#238; &amp;#236;&amp;#243; &amp;#242;&amp;#251; &amp;#225;&amp;#243;&amp;#228;&amp;#229;&amp;#248; &amp;#252; &amp;#239;&amp;#235;&amp;#224;&amp;#242;&amp;#232; &amp;#242;&amp;#252; &amp;#237;&amp;#229; 20, &amp;#224; 40 &amp;#231;&amp;#238;&amp;#235;&amp;#238;&amp;#242; &amp;#251;&amp;#245;.<br> * * *AI_Output(self,other,&quot;dia_vlk_432_moe_faterf ight_loose_02_02&quot;); // &amp;#223; &amp;#228;&amp;#243;&amp;#236;&amp;#224;&amp;#2 54; &amp;#253;&amp;#242;&amp;#238; &amp;#237;&amp;#224;&amp;#243;&amp;#247;&amp;#232; &amp;#242; &amp;#242;&amp;#229;&amp;#225;&amp;#255; &amp;#243;&amp;#226;&amp;#224;&amp;#230;&amp;#224; &amp;#242;&amp;#252; &amp;#241;&amp;#242;&amp;#224;&amp;#240;&amp;#248; &amp;#232;&amp;#245;. &amp;#210;&amp;#251; &amp;#236;&amp;#229;&amp;#237;&amp;#255; &amp;#239;&amp;#238;&amp;#237;&amp;#255;&amp;#235; ?<br> * * *AI_Output(other,self,&quot;dia_vlk_432_moe_faterf ight_loose_01_01&quot;); // &amp;#196;&amp;#224;, &amp;#255; &amp;#226;&amp;#241;&amp;#229; &amp;#239;&amp;#238;&amp;#237;&amp;#255;&amp;#235; .<br> * * *B_LogEntry(TOPIC_BlackHawks, &quot;&amp;#210;&amp;#229;&amp;#239;&amp;#229;&amp ;#240;&amp;#252; &amp;#255; &amp;#228;&amp;#238;&amp;#235;&amp;#230;&amp;#229; &amp;#237; &amp;#234;&amp;#224;&amp;#230;&amp;#228;&amp;#251; &amp;#233; &amp;#228;&amp;#229;&amp;#237;&amp;#252; &amp;#239;&amp;#235;&amp;#224;&amp;#242;&amp;#232; &amp;#242;&amp;#252; &amp;#204;&amp;#238; 40 &amp;#231;&amp;#238;&amp;#235;&amp;#238;&amp;#242; &amp;#251;&amp;#245;.&quot;);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>instance dia_vlk_432_moe_afterfight_win (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 2;<br> * * *condition = dia_vlk_432_moe_afterfight_win_condition;<br> * * *information = dia_vlk_432_moe_afterfight_win_info;<br> * * *permanent = false;<br> * * *important = true;<br>};<br><br>func int dia_vlk_432_moe_afterfight_win_condition ()<br>{<br> * * *if((self.aivar[AIV_LastFightAgainstPlayer] != FIGHT_LOST) &amp;&amp; Npc_IsInState(self,ZS_Talk))<br> * * *{<br> * * * * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_vlk_432_moe_afterfight_win_info ()<br>{<br> * * *AI_Output(self,other,&quot;dia_vlk_432_moe_faterf ight_win_02_01&quot;); // &amp;#207;&amp;#224;&amp;#240;&amp;#229;&amp;#237; &amp;#252;, &amp;#243; &amp;#242;&amp;#229;&amp;#225;&amp;#255; &amp;#225;&amp;#238;&amp;#235;&amp;#252;&amp;#248; &amp;#232;&amp;#229; &amp;#237;&amp;#229;&amp;#239;&amp;#240;&amp;#232; &amp;#255;&amp;#242;&amp;#237;&amp;#238;&amp;#241; &amp;#242;&amp;#232;! &amp;#223; &amp;#242;&amp;#224;&amp;#234; &amp;#253;&amp;#242;&amp;#238; &amp;#228;&amp;#229;&amp;#235;&amp;#238; &amp;#237;&amp;#229; &amp;#238;&amp;#241;&amp;#242;&amp;#224;&amp;#226; &amp;#235;&amp;#254;.<br> * * *B_LogEntry(TOPIC_BlackHawks, &quot;&amp;#223; &amp;#239;&amp;#238;&amp;#225;&amp;#229;&amp;#228; &amp;#232;&amp;#235; &amp;#204;&amp;#238;, &amp;#238;&amp;#237; &amp;#238;&amp;#225;&amp;#229;&amp;#249;&amp;#224; &amp;#235; &amp;#236;&amp;#237;&amp;#229; &amp;#243;&amp;#241;&amp;#242;&amp;#240;&amp;#238; &amp;#232;&amp;#242;&amp;#252; &amp;#237;&amp;#229;&amp;#239;&amp;#240;&amp;#232; &amp;#255;&amp;#242;&amp;#237;&amp;#238;&amp;#241; &amp;#242;&amp;#232;.&quot;);<br> * * *AI_StopProcessInfos(self);<br>};<br><br> * * *<br>instance dia_vlk_432_moe_pay (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 3;<br> * * *condition = dia_vlk_432_moe_pay_condition;<br> * * *information = dia_vlk_432_moe_pay_info;<br> * * *permanent = true;<br> * * *important = true;<br>};<br><br>func int dia_vlk_432_moe_pay_condition ()<br>{<br> * * *If(Npc_KnowsInfo(other, dia_vlk_432_moe_2))<br> * * *{<br> * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_vlk_432_moe_pay_info ()<br>{<br> * * *AI_Output ( self, other, &quot;dia_vlk_432_moe_pay_01_01&quot;); // &amp;#210;&amp;#251;, &amp;#237;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#238;&amp;#229;, &amp;#239;&amp;#240;&amp;#232;&amp;#237;&amp;#184; &amp;#241; &amp;#228;&amp;#229;&amp;#237;&amp;#252;&amp;#227; &amp;#232;?<br> * * *Info_Addchoice (dia_vlk_432_moe_pay, &quot;&amp;#196;&amp;#224;, &amp;#226;&amp;#238;&amp;#242; &amp;#238;&amp;#237;&amp;#232;.&quot;, dia_vlk_432_moe_pay_yes);<br> * * *Info_Addchoice (dia_vlk_432_moe_pay, &quot;&amp;#210;&amp;#251; &amp;#237;&amp;#232;&amp;#247;&amp;#229;&amp;#227; &amp;#238; &amp;#237;&amp;#229; &amp;#239;&amp;#238;&amp;#235;&amp;#243;&amp;#247; &amp;#232;&amp;#248;&amp;#252;!&quot;, dia_vlk_432_moe_pay_no);<br>};<br><br>func void dia_vlk_432_moe_pay_info_yes ()<br>{<br> * * *AI_Output ( other, self, &quot;dia_vlk_432_moe_pay_yes_02_01&quot;); // &amp;#196;&amp;#224;, &amp;#226;&amp;#238;&amp;#242; &amp;#238;&amp;#237;&amp;#232;.<br> * * *if(B_GiveInvItems(other,self,ItMi_Gold,20))<br> * * *{<br> * * * * * *AI_Output(self,other,&quot;DIA_vlk_432_moe_pay_ye s_01_01&quot;); * * *//&amp;#205;&amp;#243; &amp;#245;&amp;#238;&amp;#240;&amp;#238;&amp;#248; &amp;#238;, &amp;#236;&amp;#238;&amp;#230;&amp;#229;&amp;#248; &amp;#252; &amp;#232;&amp;#228;&amp;#242;&amp;#232;.<br> * * * * * *AI_StopProcessInfos(self);<br> * * *}<br> * * *else if(Npc_HasItems(hero,ItMi_Gold) &lt;20)<br> * * *{<br> * * * * * *AI_Output(self,other,&quot;DIA_vlk_432_moe_pay_ye s_01_01&quot;); * * *// &amp;#199;&amp;#228;&amp;#229;&amp;#241;&amp;#2 52; &amp;#237;&amp;#229; &amp;#226;&amp;#241;&amp;#184;! &amp;#210;&amp;#251; &amp;#240;&amp;#229;&amp;#248;&amp;#232;&amp;#2 35; &amp;#239;&amp;#229;&amp;#240;&amp;#229;&amp;#245; &amp;#232;&amp;#242;&amp;#240;&amp;#232;&amp;#242; &amp;#252; &amp;#236;&amp;#229;&amp;#237;&amp;#255;!<br> * * * * * *B_Attack(self,other,AR_NONE,1);<br> * * *};<br>};<br> * * *<br>instance dia_vlk_432_moe_pay40 (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 4;<br> * * *condition = dia_vlk_432_moe_pay40_condition;<br> * * *information = dia_vlk_432_moe_pay40_info;<br> * * *permanent = true;<br> * * *important = true;<br>};<br><br>func int dia_vlk_432_moe_pay40_condition ()<br> * * *{<br> * * *If (Npc_KnowsInfo(other, dia_vlk_432_moe_afterfight_loose))<br> * * *{<br> * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_vlk_432_moe_pay40_info ()<br>{<br> * * *AI_Output ( self, other, &quot;dia_vlk_432_moe_pay40_01_01&quot;); // &amp;#210;&amp;#251;, &amp;#237;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#238;&amp;#229;, &amp;#239;&amp;#240;&amp;#232;&amp;#237;&amp;#184; &amp;#241; &amp;#228;&amp;#229;&amp;#237;&amp;#252;&amp;#227; &amp;#232;?<br> * * *Info_Addchoice (dia_vlk_432_moe_pay40, &quot;&amp;#196;&amp;#224;, &amp;#226;&amp;#238;&amp;#242; &amp;#238;&amp;#237;&amp;#232;.&quot;, dia_vlk_432_moe_pay40_yes);<br> * * *Info_Addchoice (dia_vlk_432_moe_pay40, &quot;&amp;#210;&amp;#251; &amp;#237;&amp;#232;&amp;#247;&amp;#229;&amp;#227; &amp;#238; &amp;#237;&amp;#229; &amp;#239;&amp;#238;&amp;#235;&amp;#243;&amp;#247; &amp;#232;&amp;#248;&amp;#252;!&quot;, dia_vlk_432_moe_pay40_no);<br>};<br><br>func void dia_vlk_432_moe_pay40_info_yes ()<br>{<br> * * *AI_Output ( other, self, &quot;dia_vlk_432_moe_pay40_yes_02_01&quot;); // &amp;#196;&amp;#224;, &amp;#226;&amp;#238;&amp;#242; &amp;#238;&amp;#237;&amp;#232;.<br> * * *if(B_GiveInvItems(other,self,ItMi_Gold,40))<br> * * *{<br> * * * * * *AI_Output(self,other,&quot;DIA_vlk_432_moe_pay40_ yes_01_01&quot;); * * *//&amp;#205;&amp;#243; &amp;#245;&amp;#238;&amp;#240;&amp;#238;&amp;#248; &amp;#238;, &amp;#236;&amp;#238;&amp;#230;&amp;#229;&amp;#248; &amp;#252; &amp;#232;&amp;#228;&amp;#242;&amp;#232;.<br> * * * * * *AI_StopProcessInfos(self);<br> * * * * * *<br> * * *}<br> * * *else if(Npc_HasItems(hero,ItMi_Gold) &gt;40)<br> * * *{<br> * * * * * *AI_Output(self,other,&quot;DIA_vlk_432_moe_pay40_ yes_01_01&quot;); * * *// &amp;#199;&amp;#228;&amp;#229;&amp;#241;&amp;#2 52; &amp;#237;&amp;#229; &amp;#226;&amp;#241;&amp;#184;! &amp;#210;&amp;#251; &amp;#240;&amp;#229;&amp;#248;&amp;#232;&amp;#2 35; &amp;#239;&amp;#229;&amp;#240;&amp;#229;&amp;#245; &amp;#232;&amp;#242;&amp;#240;&amp;#232;&amp;#242; &amp;#252; &amp;#236;&amp;#229;&amp;#237;&amp;#255;!<br> * * * * * *B_Attack(self,other,AR_NONE,1);<br> * * * * * *AI_StopProcessInfos(self);<br> * * *};<br>};<br><br>instance dia_moe_ment (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 5;<br> * * *condition = dia_moe_ment_condition;<br> * * *information = dia_moe_ment_info;<br> * * *permanent = true;<br> * * *important = true;<br>};<br><br>func int dia_moe_ment_condition ()<br>{<br> * * *If(other.guild == GIL_MIL)<br> * * *{<br> * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_moe_ment_info ()<br>{<br> * * *AI_Output ( self, other, &quot;dia_moe_ment_01_01&quot;); // &amp;#221;&amp;#233;, &amp;#239;&amp;#224;&amp;#240;&amp;#237;&amp;#232; ! &amp;#194;&amp;#238;&amp;#242; &amp;#253;&amp;#242;&amp;#238;&amp;#242; &amp;#242;&amp;#232;&amp;#239;, &amp;#239;&amp;#240;&amp;#238; &amp;#234;&amp;#238;&amp;#242;&amp;#238;&amp;#240; &amp;#238;&amp;#227;&amp;#238; &amp;#255; &amp;#226;&amp;#224;&amp;#236; &amp;#227;&amp;#238;&amp;#226;&amp;#238;&amp;#240; &amp;#232;&amp;#235;!<br> * * *AI_Output ( other, self, &quot;dia_moe_ment_02_01&quot;); // &amp;#210;&amp;#229;&amp;#225;&amp;#229; &amp;#239;&amp;#238;&amp;#234;&amp;#224;&amp;#231; &amp;#224;&amp;#235;&amp;#238;&amp;#241;&amp;#2 52; &amp;#236;&amp;#224;&amp;#235;&amp;#238; &amp;#239;&amp;#240;&amp;#238;&amp;#248;&amp;#235; &amp;#238;&amp;#227;&amp;#238; &amp;#240;&amp;#224;&amp;#231;&amp;#227;&amp;#238; &amp;#226;&amp;#238;&amp;#240;&amp;#224;?<br> * * *AI_Output ( self, other, &quot;dia_moe_ment_01_02&quot;); // &amp;#209;&amp;#229;&amp;#233;&amp;#247;&amp;#224; &amp;#241; &amp;#255; &amp;#242;&amp;#229;&amp;#225;&amp;#229; &amp;#231;&amp;#224;&amp;#228;&amp;#224;&amp;#236; , &amp;#236;&amp;#229;&amp;#237;&amp;#242;&amp;#238; &amp;#226;&amp;#241;&amp;#234;&amp;#224;&amp;#2 55; &amp;#241;&amp;#234;&amp;#238;&amp;#242;&amp;#232; &amp;#237;&amp;#224;!<br> * * *B_LogEntry(TOPIC_BlackHawks, &quot;&amp;#194;&amp;#241;&amp;#255; &amp;#225;&amp;#224;&amp;#237;&amp;#228;&amp;#2 24; &amp;#215;&amp;#229;&amp;#240;&amp;#237;&amp;#251; &amp;#245; &amp;#223;&amp;#241;&amp;#242;&amp;#240;&amp;#229; &amp;#225;&amp;#238;&amp;#226; &amp;#245;&amp;#238;&amp;#247;&amp;#229;&amp;#2 42; &amp;#236;&amp;#229;&amp;#237;&amp;#255; &amp;#243;&amp;#225;&amp;#232;&amp;#242;&amp;#252; . &amp;#223; &amp;#228;&amp;#238;&amp;#235;&amp;#230;&amp;#229; &amp;#237; &amp;#239;&amp;#238;&amp;#227;&amp;#238;&amp;#226; &amp;#238;&amp;#240;&amp;#232;&amp;#242;&amp;#2 52; &amp;#239;&amp;#238; &amp;#253;&amp;#242;&amp;#238;&amp;#236;&amp;#2 43; &amp;#239;&amp;#238;&amp;#226;&amp;#238;&amp;#228; &amp;#243; &amp;#241; &amp;#203;&amp;#238;&amp;#240;&amp;#228;&amp;#238; &amp;#236; &amp;#192;&amp;#237;&amp;#228;&amp;#240;&amp;#229; .&quot;);<br> * * *B_Attack(self,other,AR_NONE,1);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>instance dia_moe_join (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 6;<br> * * *condition = dia_moe_join_condition;<br> * * *information = dia_moe_join_info;<br> * * *permanent = false;<br> * * *important = true;<br>}; <br><br>func int dia_moe_join_condition ()<br>{<br> * * *If(other.guild != GIL_MIL) &amp;&amp; (other.guild != GIL_PAL)<br> * * *{<br> * * * * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_moe_join_info ()<br>{<br> * * *AI_Output ( self, other, &quot;dia_moe_join_01_01&quot;); // &amp;#221;&amp;#233;, &amp;#239;&amp;#224;&amp;#240;&amp;#229;&amp;#237; &amp;#252;!<br> * * *AI_Output ( other, self, &quot;dia_moe_join_02_01&quot;); // &amp;#215;&amp;#242;&amp;#238;? &amp;#206;&amp;#239;&amp;#255;&amp;#242;&amp;#2 52; &amp;#231;&amp;#224; &amp;#241;&amp;#242;&amp;#224;&amp;#240;&amp;#238; &amp;#229;?<br> * * *AI_Output ( self, other, &quot;dia_moe_join_01_02&quot;); // &amp;#205;&amp;#229;&amp;#242;. &amp;#211; &amp;#236;&amp;#229;&amp;#237;&amp;#255; &amp;#229;&amp;#241;&amp;#242;&amp;#252; &amp;#234; &amp;#242;&amp;#229;&amp;#225;&amp;#229; &amp;#228;&amp;#229;&amp;#235;&amp;#238;.<br> * * *AI_Output ( * * *other, self, &quot;dia_moe_join_02_02&quot;); // &amp;#202;&amp;#224;&amp;#234;&amp;#238;&amp;#2 29; &amp;#229;&amp;#249;&amp;#229; &amp;#228;&amp;#229;&amp;#235;&amp;#238;?<br> * * *AI_Output ( self, other, &quot;dia_moe_join_01_03&quot;); // &amp;#210;&amp;#238;&amp;#225;&amp;#238;&amp;#2 33; &amp;#231;&amp;#224;&amp;#232;&amp;#237;&amp;#242; &amp;#229;&amp;#240;&amp;#229;&amp;#241;&amp;#238; &amp;#226;&amp;#224;&amp;#235;&amp;#241;&amp;#2 55; &amp;#237;&amp;#224;&amp;#248; &amp;#225;&amp;#238;&amp;#241;&amp;#241;, &amp;#206;&amp;#241;&amp;#234;&amp;#224;&amp;#240; . &amp;#206;&amp;#237; &amp;#245;&amp;#238;&amp;#242;&amp;#229;&amp;#2 35; &amp;#225;&amp;#251; &amp;#226;&amp;#241;&amp;#242;&amp;#240;&amp;#229; &amp;#242;&amp;#232;&amp;#242;&amp;#252;&amp;#241; &amp;#255; &amp;#241; &amp;#242;&amp;#238;&amp;#225;&amp;#238;&amp;#233; .<br> * * *AI_Output ( other, self, &quot;dia_moe_join_02_03&quot;); // &amp;#215;&amp;#242;&amp;#238;&amp;#225;&amp;#2 51; &amp;#236;&amp;#229;&amp;#237;&amp;#255; &amp;#239;&amp;#240;&amp;#232;&amp;#234;&amp;#238; &amp;#237;&amp;#247;&amp;#232;&amp;#242;&amp;#252; ?<br> * * *AI_Output ( self, other, &quot;dia_moe_join_01_04&quot;); // &amp;#205;&amp;#229;&amp;#242;, &amp;#247;&amp;#242;&amp;#238;&amp;#225;&amp;#2 51; &amp;#239;&amp;#238;&amp;#227;&amp;#238;&amp;#226; &amp;#238;&amp;#240;&amp;#232;&amp;#242;&amp;#252; . &amp;#207;&amp;#240;&amp;#232;&amp;#245;&amp;#238; &amp;#228;&amp;#232; &amp;#226; &amp;#239;&amp;#238;&amp;#235;&amp;#237;&amp;#238; &amp;#247;&amp;#252; &amp;#226; &amp;#242;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#243; &amp;#202;&amp;#224;&amp;#240;&amp;#228;&amp;#232; &amp;#244;&amp;#224;, &amp;#238;&amp;#237; &amp;#225;&amp;#243;&amp;#228;&amp;#229;&amp;#2 42; &amp;#230;&amp;#228;&amp;#224;&amp;#242;&amp;#2 52; &amp;#242;&amp;#229;&amp;#225;&amp;#255;.<br> * * *B_LogEntry(TOPIC_BlackHawks, &quot;&amp;#204;&amp;#229;&amp;#237;&amp;#255; &amp;#245;&amp;#238;&amp;#247;&amp;#229;&amp;#2 42; &amp;#226;&amp;#232;&amp;#228;&amp;#229;&amp;#242; &amp;#252; &amp;#227;&amp;#235;&amp;#224;&amp;#226;&amp;#224; &amp;#240;&amp;#252; &amp;#225;&amp;#224;&amp;#237;&amp;#228;&amp;#251; . &amp;#204;&amp;#237;&amp;#229; &amp;#237;&amp;#243;&amp;#230;&amp;#237;&amp;#2 38; &amp;#239;&amp;#240;&amp;#232;&amp;#233;&amp;#242; &amp;#232;&amp;#226; &amp;#242;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#243; &amp;#202;&amp;#224;&amp;#240;&amp;#228;&amp;#232; &amp;#244;&amp;#224; &amp;#226; &amp;#239;&amp;#238;&amp;#235;&amp;#237;&amp;#238; &amp;#247;&amp;#252;.&quot;);<br> * * *AI_StopProcessInfos(self);<br>};<br><br>instance dia_moe_enter (C_Info)<br>{<br> * * *npc = vlk_432_moe;<br> * * *nr = 7;<br> * * *condition = dia_moe_enter_condition;<br> * * *information = dia_moe_enter_info;<br> * * *permanent = true;<br> * * *important = true;<br>};<br><br>func int dia_moe_enter_condition ()<br>{<br> * * *if(Wld_IsTime(0,0,2,0))<br> * * *{<br> * * * * * *return TRUE;<br> * * *};<br>};<br><br>func void dia_moe_enter_info ()<br>{<br> * * *AI_Output ( self, other, &quot;dia_moe_enter_01_01&quot;); // &amp;#215;&amp;#242;&amp;#238; &amp;#242;&amp;#229;&amp;#225;&amp;#229; &amp;#231;&amp;#228;&amp;#229;&amp;#241;&amp;#2 52; &amp;#237;&amp;#243;&amp;#230;&amp;#237;&amp;#238; ?<br> * * *AI_Output ( other, self, &quot;dia_moe_enter_02_01&quot;); // &amp;#213;&amp;#238;&amp;#247;&amp;#243; &amp;#239;&amp;#238;&amp;#241;&amp;#232;&amp;#228; &amp;#229;&amp;#242;&amp;#252; &amp;#226; &amp;#242;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#229;.<br> * * *AI_Output ( other, self, &quot;dia_moe_enter_01_02&quot;); // &amp;#207;&amp;#240;&amp;#232;&amp;#245;&amp;#238; &amp;#228;&amp;#232; &amp;#239;&amp;#238;&amp;#231;&amp;#230;&amp;#229; , &amp;#242;&amp;#224;&amp;#226;&amp;#229;&amp;#240; &amp;#237;&amp;#224; &amp;#243;&amp;#230;&amp;#229; &amp;#239;&amp;#229;&amp;#240;&amp;#229;&amp;#239; &amp;#238;&amp;#235;&amp;#237;&amp;#229;&amp;#237; &amp;#224;.<br> * * *AI_StopProcessInfos(self);<br>};<br><br>instance dia_moe_enterjoin (C_Info)<br>{ * * *<br> * * *npc = vlk_432_moe;<br> * * *nr = 8;<br> * * *condition = dia_moe_enterjoin_condition;<br> * * *information = dia_moe_enterjoin_info;<br> * * *important = true;<br> * * *permanent = false;<br>};<br><br>func int dia_moe_enterjoin_condition ()<br>{<br> * * *If(Npc_KnowsInfo(other, dia_moe_join))<br> * * *{<br> * * * * * *return true;<br> * * *};<br>};<br><br>func void dia_moe_enterjoin_info ()<br>{<br> * * *AI_Output ( self, other, &quot;dia_moe_enterjoin_01_01&quot;); // &amp;#209;&amp;#242;&amp;#238;&amp;#233;. &amp;#215;&amp;#242;&amp;#238; &amp;#242;&amp;#229;&amp;#225;&amp;#229; &amp;#231;&amp;#228;&amp;#229;&amp;#241;&amp;#2 52; &amp;#237;&amp;#243;&amp;#230;&amp;#237;&amp;#238; ?<br> * * *AI_Output ( other, self, &quot;dia_moe_enterjoin_02_01&quot;); // &amp;#204;&amp;#229;&amp;#237;&amp;#255; &amp;#230;&amp;#228;&amp;#229;&amp;#242; &amp;#226;&amp;#224;&amp;#248; &amp;#225;&amp;#238;&amp;#241;&amp;#241;.<br> * * *AI_Output ( self, other, &quot;dia_moe_enterjoin_01_02&quot;); // &amp;#207;&amp;#240;&amp;#238;&amp;#245;&amp;#238; &amp;#228;&amp;#232;.<br> * * *AI_StopProcessInfos(self);<br>};<br>[/spoiler]<br><br>Да что ж ты будешь делать. Текст из ноутпада не делаеться по-русски

17.08.2006 21:54

Re: М: Уроки скриптологии
 
Почему у тебя в этой функции<br>func int dia_vlk_432_moe_pay_condition ()<br>{<br> * * If(Npc_KnowsInfo(other, dia_vlk_432_moe_2))<br> * * {<br> * * return TRUE;<br> * * };<br>};<br>выделенное слово совпадает с именем функции, здесь вместо него должно стоять имя инстанции диалога.

18.08.2006 01:44

Re: М: Уроки скриптологии
 
2Vam: Извини тугодумающего нуба, но у меня ведь инстанция разделяется на две ветки. В одной ГГ посылает Мо, в другой говорит, что заплатит. Инстанцию я прописывал только в начале диалога до разветвления... А мне нужно, чтобы при условии посылания Мо, ГГ платил 40, а при условии того, что платит сразу, платит 40 монет.

18.08.2006 09:21

Re: М: Уроки скриптологии
 
2Pui-LeGuDaa:<br>
Цитата:

но у меня ведь инстанция разделяется на две ветки.
<br>Инстанция ни на что разделяться не может, это диалог может идти разными путями.<br>
Цитата:

А мне нужно, чтобы при условии посылания Мо, ГГ платил 40, а при условии того, что платит сразу, платит 40 монет.
<br>Я не знаю по логике, что тебе нужно и как ты строишь диалог, но могу сказать одно, что у функции<br>// возвращает TRUE, если НПС npc уже получил информацию instanceInfo, иначе FALSE.<br>func int Npc_KnowsInfo(C_NPC npc, int instanceInfo); <br>вторым аргументом должна быть прописана инстанция диалога (какая не знаю, у тебя их много, всё зависит от логики диалога), а у тебя прописано имя функции, вот тебе и ошибка - несоответствие типов (нельзя преобразовать func к int).

18.08.2006 10:44

Re: М: Уроки скриптологии
 
2All<br>Извиняюсь за ламерский вопрос. <br>Прописываю текст скрипта: <br>FUNC VOID EVT_MOD_01 () <br>{ <br>Wld_InsertNpc (SCAVENGER,&quot;WP_01&quot;); <br>};<br><br>сохраняю файл как EventMOD.d в папке Events. затем в спейсере(1.5) жму world - reparse scriptfiles. появляется ошибка: ... unknown identifier:SCAVENGER <br>иногда даже начинает грузить, но тогда вообще выскакивает Access Violation. <br>как новичок, надеюсь на вашу мудрость. =)

18.08.2006 11:58

Re: М: Уроки скриптологии
 
Объясните пожалуйста суть проблемы. Вобщем, декомпилировал я файл gothic.dat. Подкорректировал тексты в скриптах *d, затем сохранил, нажал Compile. Вроде бы после этого скрипты скопилировались в dat файл. Заменил им оригинальный файл, но ничего не происходит. что мне делать? Если можно, то объясните поподробнее. Это единственный сайт, где я надеюсь на хорошую помощь) <br><br><br>Добавление от 08/18/06, в 12:00:33 <hr class="hr_agfc">В игре как были тексты изначально, так и остались. Что характерно, с menu.dat у меня всё полкчилось, а вот с самым глаdysv? что-то не так. <br>Gothic.dat и Ou.bin расфасовал по отдельным папкам.

18.08.2006 21:39

Re: М: Уроки скриптологии
 
Товарищи, с вопросами прошу переехать в соответствующие темы:<br>1. Вопросы по модостроению - все вопросы по модостроению за исключением скриптинга.<br>2. Скриптинг в Готике - понятно для каких вопросов.<br>3. Декомпилятор скриптов Готики - все вопросы по программе GothicSourcer и работе с ним.<br><br>Эта тема, как написано в аннотации, предназначена для уроков, здесь можно предлагать свои решения каких-либо проблем связанных со скриптингом.<br><br>Отвечаю здесь Wirtus'у: последний раз.<br>
Цитата:

Заменил им оригинальный файл, но ничего не происходит. что мне делать? Если можно, то объясните поподробнее.
<br>Если gothic.dat и ou.bin файлы GothicSourcer'ом были созданы и правильно вставлены тобой в игру, то необходимо:<br>- начинать игру заново, чтобы увидеть изменения<br>- удалить файл vdfs.dmp (насчет этого не уверен, но не помешает).<br>

01.09.2006 14:57

Re: М: Уроки скриптологии
 
Статью по созданию динамических моделей можно прочитать здесь.<br>

07.09.2006 22:05

Re: М: Уроки скриптологии
 
Извините может я лезу не в ту тему но можно ли изменит походку героя в 1 готике ну например как у гуру или у стражника?

08.09.2006 01:31

Re: М: Уроки скриптологии
 
2Ork Warrior:
Цитата:

Извините может я лезу не в ту тему но можно ли изменит походку героя в 1 готике ну например как у гуру или у стражника?
<br><br>void Mdl_ApplyOverlayMds (c_npc n0, string s1); - запустить файл анимации s1 с расширением mds для НПС n0.<br>Пример Походка со сложенными руками (Гуру, Маги огня, Маги воды, Послушники и пр...): Mdl_ApplyOverlayMds(self,&quot;Humans_Mage.mds&quo t;);<br>Пример Военная походка (Стражник, Наемник и пр.): Mdl_ApplyOverlayMds(self,&quot;Humans_Militia.mds& quot;);<br>Пример Расслабленная походка (Воры, Призраки и пр): Mdl_ApplyOverlayMds(self,&quot;Humans_Relaxed.mds& quot;);<br>Пример Сутулая походка (Шахтеры, Крестьяне и пр): Mdl_ApplyOverlayMds(self,&quot;Humans_Tired.mds&qu ot;);<br>Пример Благородная походка (Рудные бароны): Mdl_ApplyOverlayMds(self,&quot;Humans_Arrogance.md s&quot;);<br><br>P.S. Советую почитать данную тему с 1 страницы.


Текущее время: 20:09. Часовой пояс GMT +4.
Страница 7 из 8 1234567 8

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2022