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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Вопросы по скриптингу

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 573
Последнее редактирование модератором:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Ramirez написал(а):
Я искал его в папке с моим проектом. Что соурс должен писать после окончания компиляции? У меня пишет процесс остановлен хотя компилирую без ошибок! И новый Gothic.dat не появляется!
Если он так пишет значит есть ошибки(не критические но есть)смотри лог.
 
Последнее редактирование модератором:

p-zenia

Участник форума
Регистрация
6 Апр 2009
Сообщения
38
Благодарности
0
Баллы
150
А внимания исправлять надо? Что соурс после компиляции должен писать?
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Ramirez
Чтобы появился «GOTHIC.dat» и «ou.bin» достаточно исправить критические ошибки (обозначены красным цветом), внимания тоже желательно исправлять, но не обязательно.

У меня после компиляции пишет:
0 ошибок, 4 внимания…
 

p-zenia

Участник форума
Регистрация
6 Апр 2009
Сообщения
38
Благодарности
0
Баллы
150
Критические ошибки я исправил. А Gothic.dat не появляется! И ещё как мне исправить ошибку: Функция должна возвращать значение.
 

TemplaR

Участник форума
Регистрация
16 Ноя 2008
Сообщения
322
Благодарности
0
Баллы
175
Мы не телепаты. Если хочешь чтобы тебе помогли скрипт выложи или опиши проблему ясно. ;)
 

s@m


Модостроитель
Регистрация
2 Мар 2007
Сообщения
315
Благодарности
56
Баллы
195
Ramirez написал(а):
Критические ошибки я исправил. А Gothic.dat не появляется! И ещё как мне исправить ошибку: Функция должна возвращать значение.
Если говорится что Функция должна возвращать значение значит тип функции - func int. А она может иметь значения TRUE и FALSE смотри:
FUNC INT DIA_Addon_Bill_Hello_Condition()
{
if (Npc_IsInState (self, ZS_Talk))
&& (self.aivar[AIV_TalkedToPlayer] == FALSE)
{
return TRUE;
};
};
Тут говориться что если НПС в режиме разговора и ниразу не говорил с ГГ товозвращаем TRUE. А в другом случае нужно вернуть FALSE, но тут не сказано вернуть FALSE. Практически во всех диалогах есть такая вот недоработка, вот сравни, это исправленнле условие:
FUNC INT DIA_Addon_Bill_Hello_Condition()
{
if (Npc_IsInState (self, ZS_Talk))
&& (self.aivar[AIV_TalkedToPlayer] == FALSE)
{
return TRUE;
};
return FALSE;
};
 
Последнее редактирование модератором:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
САМ, а не легче сделать не так:
FUNC INT DIA_Addon_Bill_Hello_Condition()
{
if (Npc_IsInState (self, ZS_Talk))
&& (self.aivar[AIV_TalkedToPlayer] == FALSE)
{
return TRUE;
};
return FALSE;
};
а так:
FUNC VOID DIA_Addon_Bill_Hello_Condition()
{
if (Npc_IsInState (self, ZS_Talk))
&& (self.aivar[AIV_TalkedToPlayer] == FALSE)
{
return TRUE;
};
};
Так будет меньше напряги на твои железки компа.
 

Greg

Участник форума
Регистрация
8 Июл 2009
Сообщения
34
Благодарности
0
Баллы
150
Привет всем. Подскажите как мне исправить ошибку: функция сровнения возможна только в if выражении.
 

[)r0n

Участник форума
Регистрация
2 Май 2009
Сообщения
43
Благодарности
0
Баллы
150
Это значит, что где то в коде ты написал что-то вроде a>b - это и есть сравнение. Оно может использоваться только в условии.
Условие задается так:
if (само условие, например a>b)
{
тут надо писать что произойдет если условие верно.
}

Вроде все правильно написал :)

PS.От сюда следует что у тебя в какой-то функции НЕсравнения стоит двойное равно.
 
Последнее редактирование модератором:

Greg

Участник форума
Регистрация
8 Июл 2009
Сообщения
34
Благодарности
0
Баллы
150
Ну а как ошибку исправить? Заменить двойное равно на >?
 
Последнее редактирование модератором:

marazmus

★★★★★★★★★★★
Основатель
Регистрация
7 Янв 2003
Сообщения
2.117
Благодарности
914
Баллы
385
Greg написал(а):
Ну а как ошибку исправить? Заменить двойное равно на >?

Где код? Приведите кусок кода на 2-3 строки вверх и вниз от той строки, в которой ошибка.
 
Последнее редактирование модератором:

Greg

Участник форума
Регистрация
8 Июл 2009
Сообщения
34
Благодарности
0
Баллы
150
{
AI_Output (self, other, "DIA_Bosper_SellFur_11_06");
AI_Output (other, self,"DIA_Bosper_SellFur_15_07");
AI_Output (self, other,"DIA_Bosper_SellFur_11_08");
Bosper_TrollFurSold == TRUE;
}
else //TRUE
AI_Output (self, other, "DIA_Bosper_SellFur_11_09");
AI_Output (other, self,"DIA_Bosper_SellFur_15_10");
 
Последнее редактирование модератором:

[)r0n

Участник форума
Регистрация
2 Май 2009
Сообщения
43
Благодарности
0
Баллы
150
"=="- означает, если я все правильно помню, сравнение. Тоесть проверку. Равна ли переменная чему либо
А вот чтобы задать переменной какое-либо значение нужно написать просто"="
Тоесть, вроде так: Bosper_TrollFurSold = TRUE;
 
Последнее редактирование модератором:

marazmus

★★★★★★★★★★★
Основатель
Регистрация
7 Янв 2003
Сообщения
2.117
Благодарности
914
Баллы
385
Я лично очень огорчаюсь, когда вижу, что начинающие скриптологи-модостроители считают себя выше того, чтобы хотя бы раз прочитать скриптологию Вама...

Модераторам: сделайте отдельную тему "Ошибки в скриптах"и перенесите туда всю фигню из этой ветки и из других.
 
Последнее редактирование модератором:

Greg

Участник форума
Регистрация
8 Июл 2009
Сообщения
34
Благодарности
0
Баллы
150
С ошибками я разобрался! Но возникла другая проблема! Я создал непися прописал его в Startap компилировал, заменил Gothic.dat и Ou.bin а непись в игре не появился!
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Greg
Если ты всё правильно сделал... то непись, появится при начале новой игры...
З.Ы. Об этом уже, сто-пятьдесят раз писалось ::)

Пост ниже:
Значит ты что-то-где-то забыл прописать (дописать) ;)
 

Greg

Участник форума
Регистрация
8 Июл 2009
Сообщения
34
Благодарности
0
Баллы
150
Так я заново игру начал!
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
2GregПриведи пример как ты вставил своего непися в Startup.d в спойлере(желательно не одной строкой а всю функцию инициализации мира). Я стопудово уверен что ошибка там.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
vmazz написал(а):
2Greg Приведи пример как ты вставил своего непися в Startup.d в спойлере(желательно не одной строкой а всю функцию инициализации мира). Я стопудово уверен что ошибка там.
Не врятли, возможно у него стоит возвращение exe версия у меня тоже такое было
 
Последнее редактирование модератором:

Velikan

Участник форума
Регистрация
20 Фев 2009
Сообщения
31
Благодарности
0
Баллы
150
Уважаемые скриптеры. Встал вопрос. ответьте, кто знает, пожалуйста.
EquipItem - если я эту функцию вызываю не в инстанции НПС, а например в функции, которая вызывается из триггера, то если я открываю инвентарь, то оружие в красной рамке, но на поясе у гг не появляется и таким образом все некорректно работает. То есть оно фактически не экипируется.
Могу ли в готике экипировать то оружие, какое хочу? Или в реальном времени можно Экипировать только лучшее оружие - функция AI_EquipBestMeleeWeapon???
 
Сверху Снизу