Показать сообщение отдельно
Старый 19.10.2006, 09:29   #1487
Vam

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

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

2MaGoth:
Я ни как не могу найти переменную которая содержит на протяжении игры значение Глав. Т.е. 1, 2... 6.
Почитав уроки Вама, и посмотрев в скриптах пришел к выводу, что это должна быть Kapitel, но она ни чего не содержит в себе
Однозначно, Kapitel переменная сожержит номер текущей главы, присвоение его переменной происходит в функции B_Kapitelwechsel, движок Готики на неё никакого влияния не оказывает, это чисто скриптовая переменная. Заводить новую переменую для этой цели не имеет смысла.

При тестировании в Главы скакал при помощи дяди марвина, и перца по имени SH.
Не работает. прописывает статы, которые я давно уже изменил.
Я не знаю, каким образом марвин осуществляет переход в другую главу, но можно предположить, что эта переменная им не меняется.

Если в функции инициализации стоит цифра 3 B_SetAttributesToChapterDementor(self,3) то из какой Главы не вызови Дементора, у него статы будут равными условию if(Kap == 3),(В оригинальных скриптах).
Данную функцию можно просто вызывать с параметрами B_SetAttributesToChapterDementor("имя инстанции дементора",Kapitel); Вызов этой функции можно выполнять из функции B_Kapitelwechsel. Self здесь работать не будет, т.к. он отслеживается движком и к дементору в данном случае отношения не имеет.
И напоследок - функцию B_SetAttributesToChapterDementor("имя инстанции дементора",Kapitel) необходимо зарегистрировать в файле RedefinedFunc.dsc таким образом void B_SetAttributesToChapterDementor(int#,int);, т.к. в ней происходит переопределение инстанции дементора к типу int. Внутри этой функции для доступа к НПС использовать следующую конструкцию:
* * *var C_NPC dementor;
* * *dementor = Hlp_GetNpc('первый аргумент функции');

Сделав таким образом всё должно работать, только как тестировать ответить не могу.

P.S.: А можно вообще ничего в функцию не передавать, а всё получать в ней из этих переменных.
Ответить с цитированием