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

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

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

MaGoth

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

Вложения

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

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Можно сделать проще, без else.

Код:
func int B_SetDayTolerance() {
if (Wld_IsTime(22,0,23,59))
{
   return Wld_GetDay() + 1;
};
return Wld_GetDay();
};
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Это стандартная ситуация некомпилированных скриптов. С Матео я уже в личке пообщался. Выслал ему исправленные.
 

Matteo

Участник форума
Регистрация
21 Июн 2015
Сообщения
86
Благодарности
3
Баллы
170
Thanks to MEG@VOLT and you guys too. I need help on this error now.



G2 scripts, I'm translating L'Hiver Edition to ENG.
 

Defman

Участник форума
Регистрация
26 Май 2013
Сообщения
3.165
Благодарности
245
Баллы
300
I guess the uppercase/lowercase is important in this case, you try to use B_DIA_Addon_Myxir_Teach_FL() instead.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
I guess the uppercase/lowercase is important in this case, you try to use B_DIA_Addon_Myxir_Teach_FL() instead.
Не, тут прописные-строчные буквы не имеют значения. тут ругается о том, что не вкурсе про эту функцию. Возможно она объявлена далее, нужно ее перенести выше DIA_Addon_Mixir_CITY_Teach_Info
 

Matteo

Участник форума
Регистрация
21 Июн 2015
Сообщения
86
Благодарности
3
Баллы
170
So, how can I fix it?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Не, тут прописные-строчные буквы не имеют значения. тут ругается о том, что не вкурсе про эту функцию. Возможно она объявлена далее, нужно ее перенести выше DIA_Addon_Mixir_CITY_Teach_Info
No, there's uppercase-lowercase letters do not matter. I abuse that doesn't know about this feature. Maybe she announced next, you need to move above DIA_Addon_Mixir_CITY_Teach_Info
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Дополнение к ответу MEG@VOLT:
Насколько я помню, в скриптах всегда надо писать заглавными буквами названия waypoint и freepoint. Также из-за ограничений компилятора, работающего только за один проход, все классы, прототипы, инстанции, константы, переменные и функции должны быть объявлены до первого обращения к ним. Порядок компиляции скриптов задан в файле Gothic.src.
 
Последнее редактирование:

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Подскажите, кто знает. В классе C_Menu флаг MENU_NOANI за что отвечает. Используется в меню журнала и статистики персонажа, но ее наличие или отсутствие не играет никакой роли. Возможно чего-то не заметил.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
В классе C_Menu флаг MENU_NOANI за что отвечает.
По хвостам в ресурсах Г1 можно предположить, что ранний вариант меню отличался от релизного. Кажется, там планировалось использование анимированных текстур. Данный флаг может являться таким же хвостом от нереализованных идей.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Похоже хвосты от итемов которые планировались к переделке/разбору и т.д.. другого объяснения не вижу.. а это когда то упоминалось... ::)

Тут у немцев есть из меню небольшой отрывок eventTimerMSec = 1000; // 1 second cycle with EVENT_TIMER

А EVENT_TIMER вызывается с помощью пункта oneventaction[EVENT_TIMER]. Осталось связать это как-нибудь воедино, если конечно это все вообще работает.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
class c_npc
{
var int id;
var string name[5]; // Кто знает для чего здесь массив?
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Оказывается для запуска игры в скриптах Gothic достаточно следующих строчек кода:
Код:
class C_Npc
{
var int id;
var string name[5];
var string slot;
var string effect;
var int npcType;
var int flags;
var int attribute[8];
var int HitChance[5];
var int protection[8];
var int damage[8];
var int damagetype;
var int guild;
var int level;
var func mission[5];
var int fight_tactic;
var int weapon;
var int voice;
var int voicePitch;
var int bodymass;
var func daily_routine;
var func start_aistate;
var string spawnPoint;
var int spawnDelay;
var int senses;
var int senses_range;
var int aivar[100];
var string wp;
var int exp;
var int exp_next;
var int lp;
var int bodyStateInterruptableOverride;
var int noFocus;
};


instance PC_Hero(C_Npc)
{
attribute[1] = 10;
attribute[0] = 10;
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"hum_body_Naked0",9,0,"Hum_Head_Pony",18,0,-1);
Mdl_ApplyOverlayMds(self,"Humans_1hST1");
};

func void startup_global()
{
Game_InitGerman();
};

func void init_global()
{
Game_InitGerman();
};
Правда 99% функций игры не работает :)
 
Последнее редактирование модератором:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Оказывается для запуска игры в скриптах Gothic достаточно следующих строчек кода:

class C_Npc
{
var int id;
var string name[5];
var string slot;
var string effect;
var int npcType;
var int flags;
var int attribute[8];
var int HitChance[5];
var int protection[8];
var int damage[8];
var int damagetype;
var int guild;
var int level;
var func mission[5];
var int fight_tactic;
var int weapon;
var int voice;
var int voicePitch;
var int bodymass;
var func daily_routine;
var func start_aistate;
var string spawnPoint;
var int spawnDelay;
var int senses;
var int senses_range;
var int aivar[100];
var string wp;
var int exp;
var int exp_next;
var int lp;
var int bodyStateInterruptableOverride;
var int noFocus;
};


instance PC_Hero(C_Npc)
{
attribute[1] = 10;
attribute[0] = 10
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"hum_body_Naked0",9,0,"Hum_Head_Pony",18,0,-1);
Mdl_ApplyOverlayMds(self,"Humans_1hST1");
};

func void startup_global()
{
Game_InitGerman();
};

func void init_global()
{
Game_InitGerman();
};

Правда 99% функций игры не работает :)
Датник весит 2 кб ?
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Последнее редактирование модератором:

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
А приставки во внешних функциях B_, C_, G_ имеют какое-нибудь функциональное или смысловое значение?
Ну, в целом, обычно B_ - это просто выполняемые функции были без возвращаемого значения.
С_ - что-то возвращают как значение. В большинстве своем TRUE/FALSE
G_ - функции вызываемые движком при определённых взаимодействиях с объектами мира (открыть замок, обыскать труп вроде). Даны в скриптах для небольшого редактирования.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Ээээээээ, вы совсем уже? B_InitGuildAttitudes, и тд вызываются ИЗ скриптов. Глазки открывать иногда нужно. А так, все верно он сказал выше, разве что хоткеивские функции не обозначены префиксом, а так все как положено.
 
Сверху Снизу