[AGFC: Valley of Gothic] М: Скриптинг в Готике

Страница 60 из 65 « Первая 10505354555657585960 6162636465
Поиск в этой теме:

Расширенный поиск
Старый 16.12.2010, 22:48   #2361
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Чтобы в игре показывались субтитры, нужно изменить
Cпойлер(щелкните, чтобы прочесть):
в файле Gothic.ini значение параметра subTitles=1 (по умолчанию: 0).
Ответить с цитированием
Старый 17.12.2010, 00:16   #2362
Halzcedon

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Может тебе надо обновить OU.BIN файл в папке Cutscene.
Ответить с цитированием
Старый 17.12.2010, 08:46   #2363
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Спасибо за ответы сейчас попробую по поводу ini

Может тебе надо обновить OU.BIN файл в папке Cutscene.

OU.BIN менял бесполезно :P

Добавление от 12/17/10, в 07:09:03
Есть у меня ещё один вопрос очень интересный так что слушаем и пробуем ответить :) ;)Есть у меня два абсолютно новых ZEN(мир):Вопрос_-_-_-Можно ли через скрипты иначе GothicSource соединить две локации,по принципу вставке NPC или тех же монстров, через Вейпонты или фрипоинты.Если можно то как?     :)

Добавление от 12/17/10, в 08:06:37
Попробовал с Gothic.ini всё так же.Жмёшь на фразу "Как дела" нету ни моих титров не NPC.Самое интересное вот что когда жму первую фразу поидее над головой должны появиться титры мол "Как дела" а у меня после нажатия первой фразы открывается сразу меню с выбором второй моей фразы типа "Могу тебе я чем нибудь помочь".В чём дело может ещё варианты решения есть?
Ответить с цитированием
Старый 17.12.2010, 11:34   #2364
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Попробовал с Gothic.ini всё так же.Жмёшь на фразу "Как дела" нету ни моих титров не NPC.Самое интересное вот что когда жму первую фразу поидее над головой должны появиться титры мол "Как дела" а у меня после нажатия первой фразы открывается сразу меню с выбором второй моей фразы типа "Могу тебе я чем нибудь помочь".В чём дело может ещё варианты решения есть?
Скрипт диалогов с этим неписем - в студию.
Ответить с цитированием
Старый 17.12.2010, 17:04   #2365
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Есть у меня ещё один вопрос очень интересный так что слушаем и пробуем ответить *Есть у меня два абсолютно новых ZEN(мир):Вопрос_-_-_-Можно ли через скрипты иначе GothicSource соединить две локации,по принципу вставке NPC или тех же монстров, через Вейпонты или фрипоинты.Если можно то как?
Соединить или сделать переход из локации в локацию? В любом случае для всего этого нужен spacer.
Например, по триггерам перехода - http://mod.worldofgothic.ru/3d/octriggerchangelevel
По склеиванию уровней - http://mod.worldofgothic.ru/3d/zen-files
Ответить с цитированием
Старый 17.12.2010, 17:38   #2366
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

instance BAU_66666_Franz_SimpleDialog (C_INFO)
{
     npc                  = BAU_66666_Franz;
     condition            = BAU_66666_Franz_SimpleDialog_Condition;
     information            = BAU_66666_Franz_SimpleDialog_Info;
     important            = FALSE;
     permanent            = FALSE;
     description            = " Доброе утро, Франк!";
};

func int BAU_66666_Franz_SimpleDialog_Condition()
{
     return TRUE;
};

func void BAU_66666_Franz_SimpleDialog_Info()
{
     AI_Output(other, self, "BAU_66666_Franz_SimpleDialog_Info_15_01"); // Доброе утро, Франк!
     AI_Output(self, other, "BAU_66666_Franz_SimpleDialog_Info_16_02"); // И тебе того же, коли не шутишь...
};



Вот скрипт очень простой сделал, но над головой NPC титров ответа нет.
Ответить с цитированием
Старый 17.12.2010, 18:35   #2367
Halzcedon

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
А титры из оригинала работают?
если Да, то точно я говорю... Ou.bin !
Ответить с цитированием
Старый 17.12.2010, 18:46   #2368
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Скрипты диалогов NPC(Wolf,Elena и т.д) если брать из оригинала то тоже не работает.А сама игра оригинал норм работает.Расскажи поподробней OU.bin может и правда в этом дело.Жду ответа :)
Ответить с цитированием
Старый 17.12.2010, 19:16   #2369
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Скрипты диалогов NPC(Wolf,Elena и т.д) если брать из оригинала то тоже не работает.А сама игра оригинал норм работает.Расскажи поподробней OU.bin может и правда в этом дело.Жду ответа
При компиляции соурсером в папке проекта создаются 2 файла — Gothic.dat и ou.bin
Первый содержит скрипты, второй как раз субтитры. Первый размещается в _work\data\Scripts\_compiled второй в _work\data\Scripts\Content\cutscene.
Ответить с цитированием
Старый 17.12.2010, 19:38   #2370
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

А как обновить ou.Bin?  :( :'( Может мой способ неправельный?
Ответить с цитированием
Старый 17.12.2010, 19:49   #2371
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
А как обновить ou.Bin? *  Может мой способ неправельный?
А как вы gothic.dat обновляете?  ;)
Ответить с цитированием
Старый 17.12.2010, 19:56   #2372
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Ни как вроде не обновлял)))Ou.bin и Ou.csl обновляю а датник.Можешь рассказать подробно как Gothic.dat обновить?
Ответить с цитированием
Старый 17.12.2010, 20:00   #2373
B_Wolf

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Чем компилируешь?
Ответить с цитированием
Старый 17.12.2010, 20:07   #2374
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

В Spacer 2 через Апдейт , Save. А компилирую перед входом в игру "Пересобрать скрипты" галочку ставлю и всё
Ответить с цитированием
Старый 17.12.2010, 20:38   #2375
B_Wolf

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Я для компиляции использую GothicSourcer, как и многие другие модостроители.

В твоем случае ou.bin нужно обновлять через Spacer.
Запусти Spacer, включи окно Output_Units, в нем жми Load, затем Update, затем Save
Ответить с цитированием
Старый 17.12.2010, 20:54   #2376
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Я так и делал всё равно так же варианты "ответа, вопросов" есть а над головой титров нет((
Ответить с цитированием
Старый 17.12.2010, 21:18   #2377
B_Wolf

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Если запускаешь через GothicGame.ini, проверь, есть ли там строка
VDF=GothicGame.mod
если есть, замени на
VDF=
или удали (переименуй) файл по пути
Gothic2\Data\modvdf\GothicGame.mod

З.Ы. Надеюсь никаких левых скриптовых патчей или модов типа ехе версии "Возвращения" не установлены?
Ответить с цитированием
Старый 18.12.2010, 09:26   #2378
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

А как обновляется Gothic.dat может в нём дело?

Добавление от 12/18/10, в 08:46:35
Почему когда декомплишь Gothic.dat все скрипты DIA... в менеджере ошибок отображаются синим цветом ---Мол--
Внимание:В Библиотеке (OutPutUnits) не найден модуль DIA_BAU_Gunnar.d и т.д в том же духе.Подскажите в чём дело и как можно это исправить.Может именно поэтому у меня диалоги не отображаются?
Ответить с цитированием
Старый 18.12.2010, 10:35   #2379
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Почему когда декомплишь Gothic.dat все скрипты DIA... в менеджере ошибок отображаются синим цветом ---Мол--
Внимание:В Библиотеке (OutPutUnits) не найден модуль DIA_BAU_Gunnar.d и т.д в том же духе.Подскажите в чём дело и как можно это исправить.Может именно поэтому у меня диалоги не отображаются?
Я полагаю потому, что нет соответствующего ou.bin с субтитрами.
Ответить с цитированием
Старый 18.12.2010, 10:42   #2380
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

А что если попробовать переустановить игру и Mdk может поможет?
Ответить с цитированием
Старый 18.12.2010, 13:43   #2381
Halzcedon

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
попробуй ещё раз...
1)удали Ou.bin и Ou.csl
2)запусти Spacer, компилируй скрипты - проверь чтобы не было ошибок.
3)в окне Out-put units нажми кнопку Update, подожди пока загрузится до конца,за тем нажми save.
ЗЫ: Лучше проверить лишний раз...
Ответить с цитированием
Старый 19.12.2010, 18:44   #2382
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Люди ответе на вопрос.Компилирую Gothic.dat в окне ошибок вылазит 21-а ошибка ТИПА ---Функция должна возвращать значение---Как исправить её?За ранее спасибо))

Добавление от 12/19/10, в 18:04:02
Почему когда соединяю два zen мира у меня у одного мира, земля пропадает,а деревья камни кусты и прочее остаётся.?Помогите плиз решить эту проблему)(
Ответить с цитированием
Старый 19.12.2010, 19:42   #2383
Halzcedon

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Ты удалил 3d меш-файл этого зена.
Ответить с цитированием
Старый 19.12.2010, 19:58   #2384
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Нет.А чё надо что ли?
Ответить с цитированием
Старый 19.12.2010, 20:10   #2385
Halzcedon

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

наоборот не надо, убедись что она у тебя действительно есть и то что ты её не заменил.
PS: тебе DEDROIT в репутации написал
Cпойлер(щелкните, чтобы прочесть):
Просто у тебя у зена, у которого пропадает земля, не прописана ссылка на 3дс мира. Укажи в зен меш мира, сохрани и попробуй заного соеденить.
так и сделай.
Ответить с цитированием
Старый 19.12.2010, 20:22   #2386
ForestDark

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Можешь прям по пунктам расписать так я чё то не сильно понял.Плиз оч надо  :)

Добавление от 12/19/10, в 19:26:24
И как понять Укажи в зен меш мира.Тоже не понятно разъясните

Добавление от 12/19/10, в 19:32:16
Всё всем спасибо огромное я понял чё значит Укажи в зен меш мира Всё сработало))Спасибо спасибо спасибо :)А с миссиями всё та же фигня :-[
Ответить с цитированием
Старый 19.12.2010, 20:50   #2387
Halzcedon

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ForestDark:
Напиши в спойлере один из квестов посмотрим на твои ошибки  :)
Ответить с цитированием
Старый 19.12.2010, 21:33   #2388
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Хочу изменить повреждение для одного оружия. Через соурсер создал проект, декомпилировал файл gothic.dat, изменил что мне надо, скомпилировал, взял файл gothic.dat из GothicSourcer V3.14\Gothic Projects\SolURIZEL\PrjGOTHIC и заменил им файл в Gothic\_work\data\Scripts\_compiled. Запускаю, ничего не меняется, с новой игры тоже. Занимаюсь этим впервые, может как-то по-другому надо?  :(
Ответить с цитированием
Старый 19.12.2010, 23:47   #2389
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Olympus:
Хочу изменить повреждение для одного оружия. Через соурсер создал проект, декомпилировал файл gothic.dat, изменил что мне надо, скомпилировал, взял файл gothic.dat из GothicSourcer V3.14\Gothic Projects\SolURIZEL\PrjGOTHIC и заменил им файл в Gothic\_work\data\Scripts\_compiled. Запускаю, ничего не меняется, с новой игры тоже. Занимаюсь этим впервые, может как-то по-другому надо? *
Судя по всему сделали все верно. Еще было бы неплохо оригинальный датник забэкапить.
Уризелей в Г1 несколько, может не тот вставляете или не тот отредактировали?
Ответить с цитированием
Старый 19.12.2010, 23:58   #2390
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Уризель тот, заряженный - mythrilklinge02. Копия оригинального датника тоже имеется. Может быть у меня в скрипте не так что-то?
Cпойлер(щелкните, чтобы прочесть):
instance Mythrilklinge02(C_Item)
{
     name = "УРИЗЕЛЬ";
     mainflag = ITEM_KAT_NF;
     flags = ITEM_2HD_SWD | ITEM_MISSION;
     material = MAT_METAL;
     value = 10000;
     damagetype = DAM_FIRE | DAM_MAGIC | DAM_EDGE;
     damage[DAM_INDEX_EDGE] = 150;
     damage[DAM_INDEX_FIRE] = 30+[ATR_MANA];
     damage[DAM_INDEX_MAGIC] = 120;
     range = 200;
     cond_atr[2] = ATR_STRENGTH;
     cond_value[2] = 30;
     visual = "ItMw_2H_Sword_Sleeper_02.3DS";
     description = name;
     text[0] = "Это меч Уризель.";
     text[1] = "Уризель заряжен магической энергией. Урон 150";
     text[2] = NAME_Dam_Magic;
     count[2] = damage[DAM_INDEX_MAGIC];
     text[3] = NAME_Dam_Fire;
     count[3] = damage[DAM_INDEX_FIRE];
     text[4] = NAME_Str_needed;
     count[4] = cond_value[2];
     text[5] = NAME_Value;
     count[5] = value;
};
Ответить с цитированием
Старый 20.12.2010, 00:19   #2391
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Olympus:
*damage[DAM_INDEX_FIRE] = 30+[ATR_MANA];
Странная конструкция. ATR_MANA вообще числовая константа, равная 2, следовательно урон огнем вашего Уризеля — 32.
А что еще не работает?
Ответить с цитированием
Старый 20.12.2010, 00:24   #2392
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Да, это я неверно сделал... А как сделать, чтоб урон огнём был равен 30+ текущий уровень маны ГГ?
Ответить с цитированием
Старый 20.12.2010, 00:53   #2393
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Olympus:
Да, это я неверно сделал... А как сделать, чтоб урон огнём был равен 30+ текущий уровень маны ГГ?
Так просто — скорее никак. Игровые инстанции (в частности предметы) создаются в момент создания новой игры\либо в момент вставки предмета в мир. Т.е. даже если привязать параметры меча к атрибутам ГГ они привяжутся к его текущим атрибутам и не будут расти с новым уровнем. А скорее всего получим вылет в окошки %)

В теории можно, конечно, при измении атрибута\левел-апе проводить проверку, находить экипированный Уризель и менять ему параметр дамага, но будет ли это работать без проверки не скажешь. *Ежели Мухомор\BlackWolf на форуме появится у него не грех будет спросить, что-то подобное он делал в своем моде.

И да, количество маны у ГГ получается магической формулой hero.attribute[ATR_MANA] или если нужен максимальный запас hero.attribute[ATR_MANA_MAX]
Ответить с цитированием
Старый 20.12.2010, 01:15   #2394
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Выходит следующее:
Скрипт Моего Уризеля:
Cпойлер(щелкните, чтобы прочесть):
instance Mythrilklinge02(C_Item)
{
     name = "УРИЗЕЛЬ";
     mainflag = ITEM_KAT_NF;
     flags = ITEM_2HD_SWD | ITEM_MISSION;
     material = MAT_METAL;
     value = 10000;
     damagetype = DAM_FIRE | DAM_MAGIC | DAM_EDGE;
     damage[DAM_INDEX_EDGE] = 150;
     damage[DAM_INDEX_FIRE] = 30;
     damage[DAM_INDEX_MAGIC] = 120;
     range = 200;
     cond_atr[2] = ATR_STRENGTH;
     cond_value[2] = 30+hero.attribute[ATR_MANA_MAX];
     visual = "ItMw_2H_Sword_Sleeper_02.3DS";
     description = name;
     text[0] = "Это меч Уризель.";
     text[1] = "Уризель заряжен магической энергией. Урон 150";
     text[2] = NAME_Dam_Magic;
     count[2] = damage[DAM_INDEX_MAGIC];
     text[3] = NAME_Dam_Fire;
     count[3] = damage[DAM_INDEX_FIRE];
     text[4] = NAME_Str_needed;
     count[4] = cond_value[2];
     text[5] = NAME_Value
     count[5] = value;
};

А в вкладке сообщения компилятор выдаёт что мол
Процесс остановлен...
64 ошибки(ок), 51 внимания(ий)
На мои изменения в файле Items\MissionItems_5.d не ругается. Все 64 ошибки - Функция должна возвращать значение. Я так понял, что изменённый файл не компилировался. И что, мне теперь все эти ошибки нужно самому исправить?  :o
Ответить с цитированием
Старый 20.12.2010, 01:27   #2395
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Olympus:
30+hero.attribute[ATR_MANA_MAX];
Все равно это работать не будет :) При создании инстанции переменная hero никуда не ссылается, скорее всего будет вылет в винду при вставке нового Уризеля.

А в вкладке сообщения компилятор выдаёт что мол
Процесс остановлен...
64 ошибки(ок), 51 внимания(ий)
При декомпиляции исходников Г1 или Г2 соурсером обязательно будут ошибки и внимания, и да их придётеся править вручную. В 90% там ничего сложного. Если лень этим заниматся можно поискать уже исправленные скрипты, такие точно ходили одно время по сайтам модостроителей.
Ответить с цитированием
Старый 20.12.2010, 01:37   #2396
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Ну хорошо. Тогда как их испралять? Вот один из скриптов с ошибкой
Cпойлер(щелкните, чтобы прочесть):

func int B_SetDayTolerance()
{
* * *if(Wld_IsTime(22,0,23,59))
* * *{
* * * * * *return Wld_GetDay() + 1;
* * *}
* * *else
* * *{
* * * * * *return Wld_GetDay();
* * *};
};


Ошибка в 12ой строке...

Да, а каким образом к повреждению от обычных мечей добавляется сила? Может по этому же принципу можно будет добавить запас маны к огненному повреждению?
Ответить с цитированием
Старый 20.12.2010, 04:16   #2397
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Olympus:
Ну хорошо. Тогда как их испралять?
func int означает, что функция обязана возвращать числовое значение, к сожалению парсер не учитывает значения внутри блоков с условиями (при наличии else), поэтмоу вариантов минимум 2:

Стандартный, чтобы отмахаться от ошибки и пойти дальше:
Cпойлер(щелкните, чтобы прочесть):
func int B_SetDayTolerance()
{
* * *if(Wld_IsTime(22,0,23,59))
* * *{
* * * * * *return Wld_GetDay() + 1;
* * *}
* * *else
* * *{
* * * * * *return Wld_GetDay();
* * *};
* * *return 0;
};

Более хитрый
Cпойлер(щелкните, чтобы прочесть):
func int B_SetDayTolerance()
{
* * if(Wld_IsTime(22,0,23,59))
* * {
* * * * * return Wld_GetDay() + 1;
* * };
* * return Wld_GetDay();
};


Да, а каким образом к повреждению от обычных мечей добавляется сила? Может по этому же принципу можно будет добавить запас маны к огненному повреждению?
Этими вычислениями занимается движок игры и лучше оставить эту функцию ему.

Что можно сделать?
Можно написать стороннюю функцию, которая будет при встрече с каждым врагом высчитывать необходимый нам урон от огня. Например, в функции восприятия B_AssessFighter() добавить:
Код:
// определяем игрок ли другой НПЦ? * * *if(Npc_IsPlayer(other)) { * * * * * *var C_ITEM tmpwpn; * * * * * *// определяем оружие, которым экипирован игрок * * * * * *tmpwpn = Npc_GetReadiedWeapon(other); ** * * * * * * * *if (Hlp_IsItem(tmpwpn,Mythrilklinge02)) { * * * * * * * * *tmpwpn.damage[DAM_INDEX_FIRE] = 30 + other.attribute[ATR_MANA]; // меняем урон * * * * * * * * *tmpwpn.count[3] = tmpwpn.damage[DAM_INDEX_FIRE]; * * * * * * * * // меняем сопутствующую надпись * * * * * *}; * * *};
Ответить с цитированием
Старый 20.12.2010, 09:47   #2398
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Вот тут что-то не получается отмахнуться
Cпойлер(щелкните, чтобы прочесть):

func void B_StopShortZapped()
{
     PrintDebugNpc(PD_MAGIC,"B_StopShortZapped");
     Npc_PercDisable(self,PERC_ASSESSSTOPMAGIC);
     Npc_ClearAIQueue(self);
     AI_Standup(self);
     if(C_NpcIsHuman(self) || C_NpcIsOrc(self))
     {
           AI_StartState(self,ZS_ReactToDamage,0,"");
     }
     else if(C_NpcIsMonster(self))
     {
           AI_StartState(self,ZS_MM_Attack,0,"");
     };
};

func int ZS_ShortZapped()
{
     PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped");
     if(!Npc_HasBodyFlag(self,BS_FLAG_INTERRUPTABL E))
     {
           PrintDebugNpc(PD_MAGIC,"bodystate not interuptable, standing up...");
           AI_Standup(self);
     };
     if(!Npc_IsDead(self) && !Npc_IsInState(self,ZS_Unconscious) && !C_BodyStateContains(self,BS_SWIM) && !C_BodyStateContains(self,BS_DIVE))
     {
           PrintDebugNpc(PD_MAGIC,"...NSC ist nicht bewuЯtlos / tot / schwimmend / tauchend");
           AI_PlayAni(self,"T_STAND_2_LIGHTNING_VICTIM") ;
     };
     return 0;
};

func int ZS_ShortZapped_Loop()
{
     PrintDebugNpc(PD_ZS_LOOP,"ZS_ShortZapped Loop");
     if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED)
     {
           B_StopShortZapped();
     };
     AI_Wait(self,1);
     return 0;
};

func void ZS_ShortZapped_End()
{
     PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped_End ");
};


Ругается на 33 строку
Ответить с цитированием
Старый 20.12.2010, 10:19   #2399
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Cпойлер(щелкните, чтобы прочесть):
func void B_StopShortZapped()
{
* * *PrintDebugNpc(PD_MAGIC,"B_StopShortZapped");
* * *Npc_PercDisable(self,PERC_ASSESSSTOPMAGIC);
* * *Npc_ClearAIQueue(self);
* * *AI_Standup(self);
* * *if(C_NpcIsHuman(self) || C_NpcIsOrc(self))
* * *{
* * * * * *AI_StartState(self,ZS_ReactToDamage,0,"");
* * *}
* * *else if(C_NpcIsMonster(self))
* * *{
* * * * * *AI_StartState(self,ZS_MM_Attack,0,"");
* * *};
};

func void ZS_ShortZapped()
{
* * *PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped");
* * *if(!Npc_HasBodyFlag(self,BS_FLAG_INTERRUPTABLE))
* * *{
* * * * * *PrintDebugNpc(PD_MAGIC,"bodystate not interuptable, standing up...");
* * * * * *AI_Standup(self);
* * *};
* * *if(!Npc_IsDead(self) && !Npc_IsInState(self,ZS_Unconscious) && !C_BodyStateContains(self,BS_SWIM) && !C_BodyStateContains(self,BS_DIVE))
* * *{
* * * * * *PrintDebugNpc(PD_MAGIC,"...NSC ist nicht bewuЯtlos / tot / schwimmend / tauchend");
* * * * * *AI_PlayAni(self,"T_STAND_2_LIGHTNING_VICTIM");
* * *};
};

func int ZS_ShortZapped_Loop()
{
* * *PrintDebugNpc(PD_ZS_LOOP,"ZS_ShortZapped Loop");
* * *if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED)
* * *{
* * * * * *B_StopShortZapped();
* * *};
* * *AI_Wait(self,1);
* * *return LOOP_CONTINUE;
};

func void ZS_ShortZapped_End()
{
* * *PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped_End");
};


См. структуру прочих ZS-функций: стартовая и конечная пустого (void) типа, _loop - бывает и void и int, возвращает чаще всего LOOP_CONTINUE (фактически тот же самый 0, но через константы как бы правильнее)
Ответить с цитированием
Старый 20.12.2010, 14:38   #2400
Olympus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Не помогает, что-то не так здесь
Cпойлер(щелкните, чтобы прочесть):
func int ZS_ShortZapped_Loop()
{
     PrintDebugNpc(PD_ZS_LOOP,"ZS_ShortZapped Loop");
   if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED)
   {
       B_StopShortZapped();
   };
   AI_Wait(self,1);
   return LOOP_CONTINUE;
};


Добавление от 12/20/10, в 13:57:50
В общем все ошибки исправил, кроме одной
Cпойлер(щелкните, чтобы прочесть):
func void B_StopShortZapped()
{
   PrintDebugNpc(PD_MAGIC,"B_StopShortZapped");
   Npc_PercDisable(self,PERC_ASSESSSTOPMAGIC);
   Npc_ClearAIQueue(self);
   AI_Standup(self);
   if(C_NpcIsHuman(self) || C_NpcIsOrc(self))
   {
       AI_StartState(self,ZS_ReactToDamage,0,"");
   }
   else if(C_NpcIsMonster(self))
   {
       AI_StartState(self,ZS_MM_Attack,0,"");
   };
};

func int ZS_ShortZapped()
{
   PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped");
   if(!Npc_HasBodyFlag(self,BS_FLAG_INTERRUPTABL E))
   {
       PrintDebugNpc(PD_MAGIC,"bodystate not interuptable, standing up...");
       AI_Standup(self);
   };
   if(!Npc_IsDead(self) && !Npc_IsInState(self,ZS_Unconscious) && !C_BodyStateContains(self,BS_SWIM) && !C_BodyStateContains(self,BS_DIVE))
   {
       PrintDebugNpc(PD_MAGIC,"...NSC ist nicht bewuЯtlos / tot / schwimmend / tauchend");
       AI_PlayAni(self,"T_STAND_2_LIGHTNING_VICTIM") ;
           return LOOP_CONTINUE;
   };
};
func int ZS_ShortZapped_Loop()
{                                                                                    Строка 33
   PrintDebugNpc(PD_ZS_LOOP,"ZS_ShortZapped Loop");
     if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED)
     {
           B_StopShortZapped();
   };
   AI_Wait(self,1);
     return LOOP_CONTINUE;
};

func void ZS_ShortZapped_End()
{
   PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped_End ");
};

Пишет следующее: Magic/ZS/ZS_Zapped.d(33): Ошибка: Функция должна возвращать значение :rip:

Добавление от 12/20/10, в 13:58:13
В общем все ошибки исправил, кроме одной
Cпойлер(щелкните, чтобы прочесть):
func void B_StopShortZapped()
{
   PrintDebugNpc(PD_MAGIC,"B_StopShortZapped");
   Npc_PercDisable(self,PERC_ASSESSSTOPMAGIC);
   Npc_ClearAIQueue(self);
   AI_Standup(self);
   if(C_NpcIsHuman(self) || C_NpcIsOrc(self))
   {
       AI_StartState(self,ZS_ReactToDamage,0,"");
   }
   else if(C_NpcIsMonster(self))
   {
       AI_StartState(self,ZS_MM_Attack,0,"");
   };
};

func int ZS_ShortZapped()
{
   PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped");
   if(!Npc_HasBodyFlag(self,BS_FLAG_INTERRUPTABL E))
   {
       PrintDebugNpc(PD_MAGIC,"bodystate not interuptable, standing up...");
       AI_Standup(self);
   };
   if(!Npc_IsDead(self) && !Npc_IsInState(self,ZS_Unconscious) && !C_BodyStateContains(self,BS_SWIM) && !C_BodyStateContains(self,BS_DIVE))
   {
       PrintDebugNpc(PD_MAGIC,"...NSC ist nicht bewuЯtlos / tot / schwimmend / tauchend");
       AI_PlayAni(self,"T_STAND_2_LIGHTNING_VICTIM") ;
           return LOOP_CONTINUE;
   };
};
func int ZS_ShortZapped_Loop()
{                                                                                    Строка 33
   PrintDebugNpc(PD_ZS_LOOP,"ZS_ShortZapped Loop");
     if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED)
     {
           B_StopShortZapped();
   };
   AI_Wait(self,1);
     return LOOP_CONTINUE;
};

func void ZS_ShortZapped_End()
{
   PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped_End ");
};

Пишет следующее: Magic/ZS/ZS_Zapped.d(33): Ошибка: Функция должна возвращать значение :rip:
Ответить с цитированием
Страница 60 из 65 « Первая 10505354555657585960 6162636465


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе

Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Текущее время: 18:22. Часовой пояс GMT +4.

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

AGFC: Valley of Gothic © 2004-2022

Яндекс.Метрика