• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, спешите принять участие в поэтическом конкурсе "Весенние поэты 2024"!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Не стесняюсь спросить....

George_M

Участник форума
Регистрация
17 Дек 2010
Сообщения
692
Благодарности
18
Баллы
255
Возник один вопрос: что возвращает функция Hlp_GetInstanceID (c_item item) если у предметов в Готике ID не стоят? Просто заметил забавный баг - похоже, что для некоторых предметов она возвращает одинаковые значения и при использовании полученной информации движок подсовывает другой предмет.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
George_M,
Возник один вопрос: что возвращает функция Hlp_GetInstanceID (c_item item) если у предметов в Готике ID не стоят?
int Hlp_GetInstanceID (c_item item) // получить ID номер предмета по ссылке на класс item.

Примерное решение такое:
var C_Item WeapHear;
var int ValueHear;
WeapHear = Npc_GetEquippedMeleeWeapon(self);
ValueHear = Hlp_GetInstanceID(WeapHear);
 

George_M

Участник форума
Регистрация
17 Дек 2010
Сообщения
692
Благодарности
18
Баллы
255
Магот, так и сделано. Но какой номер она вернет и откуда его берет? У меня был баг с несколькими мечами при заточке в Мрачных Тайнах. Проставил всему, что точится разные номера ID, но один образчик всеравно по выданному значению идентифицирует как кирку, а кирку после этого начитает принимать за дубину с гвоздями. Самое интересное, в польской версии этого глюка нету, так что конечно может быть и багом сорсера при компилинге скриптов.
 

Вариматас

Забанен
Регистрация
11 Апр 2011
Сообщения
175
Благодарности
1
Баллы
165
Вполне вероятно, по пробуй скомпилить игрой. или спейсером, разницы нету.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
George_M,
С ID все очень просто:
1. Всем именам (инстанциям) в скриптах при их компиляции присваивается порядковый номер, вот этот самый порядковый номер для предметов и НПС является их идентификатором (id).

2. Эти номера могут съезжать в результате каких-либо операций, что в итоге отразится в том, что они будут соответствовать разным предметам (НПС), а не тому, чему был указан автором изначально.
Такое возможно только при редактировании скриптов и последующей их компиляции (добавление или удаление в скриптах одного имени приведет к изменению всех следующих за ним порядковых номеров (id)).

Например, если в игре (скриптово) создается новый предмет (НПС), а старый удаляется, то id - не изменятся. Если старый не удаляется, то для всех последующих инстанций будет сдвиг для id по номерам.
Следовательно, чтобы избежать сдвигов и прочего, все новые добавляемые предметы (НПС) надо указывать в конце файла *.src для последующей компиляции.


Вариматас, Разница будет, компилить нужно только в ГС.
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.847
Благодарности
1.213
Баллы
440
Возникло ещё два вопроса по скриптингу:
1) Прописал, что причина атаки одного нпс1 на нпс2 стал использование Моба (AR_UseMob) . Реакция пройдет в данном случае на любой используемый моб нпс2 ?
2) В скрипте записки нпс прописал такую строку
Knows_UMS = TRUE;
В условиях диалога прописал
if (Knows_UMS = TRUE && Npc_HasItems (other, ItWr_UMSMessage)>= 1)

Но ГС отказывается компилировать (Хотя я полностью ориентировался на скрипт Халвора)
* в Story_Globals пропечатано
var int Knows_UMS;
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
Beowulf,
В условиях запрещено использование оператора присвоения = . Используй оператор сравнения == .

Правильно будет так:
if (Knows_UMS == TRUE && Npc_HasItems (other, ItWr_UMSMessage)>= 1)
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Минуточку. А разве не нужно заключить в дополнительные скобки выражение Knows_UMS == TRUE ? Где гарантия, что компилятор посчитает первым операндом для операции "логическое И" именно результат сравнения, а не константу TRUE ?
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Dimus,
Компилятор всегда следует строго заданным приоритетам, а у оператора сравнения приоритет вроде как больше, уже сталкивался с этим.

К примеру, в таком выражении: (self.aivar[AIV_NPCFlags] & Flag_Partymember == Flag_Partymember) сначала выполняется сравнение, а затем побитовая операция, что дает неверный результат. А (self.aivar[AIV_NPCFlags] & Flag_Partymember) == Flag_Partymember) дает результат верный.
 

multivoin

Участник форума
Регистрация
5 Сен 2009
Сообщения
302
Благодарности
9
Баллы
185
подскажите что это за ошибка вылазеет при быстрой загрузке ф8 в г1 *???*
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    10,6 KB · Просмотры: 263

multivoin

Участник форума
Регистрация
5 Сен 2009
Сообщения
302
Благодарности
9
Баллы
185
Не может найти файл сохранения в папке /saves/current, что непонятно то?

а как настроить эту быструю загрузку ф 10? я после быстрого сохранения закидываю файлы сохранения в папку current а они опять перемещаются после вылета игры ф10 в папку saves!
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
multivoin, Какая еще к черту быстрая загрузка и сохранение ?!
Или ты про незадокументированные опции включаемые в ини-файле, если да, то причем тут раздел модостроения? ::)
 

multivoin

Участник форума
Регистрация
5 Сен 2009
Сообщения
302
Благодарности
9
Баллы
185
multivoin, Какая еще к черту быстрая загрузка и сохранение ?!
Или ты про незадокументированные опции включаемые в ини-файле, если да, то причем тут раздел модостроения? ::)
А! Ну сори! Я привык тут спрашивать!
*flowers*

а вообще то была мысля сделать что то типа патча для г1 где реализовано управление с г2 и быстрое сохранение и загрузка, а раздела патчестроя поблизости не оказалось, так решил сюда писнуть! :) сразу вопрос
реализуемо ли в г1 подбирание предмета только мышкой, а не мышка + вперед, или это в эхэшнике зашито?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
multivoin, Не реализуемо, только в движке.
 

George_M

Участник форума
Регистрация
17 Дек 2010
Сообщения
692
Благодарности
18
Баллы
255
Попытался вставить в русификатор Мрачных Тайн под Г1 подправленные картинки с русским текстом и сразу наткнулся на проблему. Сконвертнул в GoMan - использует польские, сконвертнул движком - использует польские. Убил польские - использует от оригинальной Готики, а мои берет только отсутствующие в оригинале. Но заметил странную штуку - startscreen который я не трогал тоже берет из оригинала. Проверил - разобрал .mod файл с текстурами и собрал назад GothicVDFS2.6a ничего не изменяя. И, о чудо - текстуры начало брать (кроме новых разумеется) из оригинала Готики. Не подскажете, с чем это связано и как можно обойти, и чем вообще определяется приоритет использования текстур с одинаковым названием?

Уже неактуально! Я, дурак, просто Timestamp при сборке не ставил, а по умолчанию 1980 год забит...
 

towel

Участник форума
Регистрация
18 Апр 2011
Сообщения
3
Благодарности
0
Баллы
145
Возможно ли как-нибудь в 1-2 частях уравнять время с реальным? То есть 1 час в игре = 60 реальных минут.
 

multivoin

Участник форума
Регистрация
5 Сен 2009
Сообщения
302
Благодарности
9
Баллы
185
Зачем тебе? Ты жить там собрался? :)
 

Spielmann

Участник форума
Регистрация
22 Май 2010
Сообщения
106
Благодарности
7
Баллы
175
Кто знает как создать визуальное заклинание с нуля?
 
Сверху Снизу