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

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

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

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

MaGoth

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

Вложения

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

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Вопрос. Возможно ли в скриптах прописать в каком количестве используются итемки. Например, можно надеть один пояс или два кольца. Вот как изменить это число?

Без копания в движке никак. Самый простой способ задать предмету флаг mainflag = ITEM_KAT_MAGIC тогда можно предметов экипировать бесконечное число. А для ограничений например написать функцию, которая будет считать кол-во экипированных предметов и автоматически деэкипировать превышающие это число предметы.
 

bitewolf

Участник форума
Регистрация
21 Авг 2012
Сообщения
39
Благодарности
7
Баллы
155
Позволю себе вброс вопросов.
1. Как добавить дружелюбного монстра (хотя бы орка или гоблина)?
Тут я пытался склеить скрипт NPC и гоблина, в игре он стоит без движения, не агрится и после смерти не падает.
instance NONE_5002_gob (Npc_Default)
{
name[0] = "Гоб";
guild = GIL_NONE;
npcType = NpcType_Friend;
id = 5002;
level = 10;
voice = 18;
flags = 0;
Mdl_SetVisual(self,"Gobbo.mds");
Mdl_SetVisualBody(self,"Gob_Body",0,DEFAULT,"",DEFAULT,DEFAULT,-1);
fight_tactic = FAI_MONSTER_COWARD;
daily_routine = Rtn_PreStart_5002;
};

func void Rtn_PreStart_5002()
{
TA_Dance(8,0,22,0,"NW_XARDAS_GOBBO_02");
TA_Dance(22,0,8,0,"NW_XARDAS_GOBBO_02");
};
2. Какие действия могут выполнять орки, гоблины и другая живность во время простоя(танцы - TA_Dance, курение болотника - TA_Smoke_Joint)?
3. Если с NPC снять броню, или поменять на другую, это отобразится на внешнем виде. У гоблинов и орков (если они дружелюбные и квестовые) это можно сделать "переодев" их в другую текстуру?

Если можно, тыкните, где об этом почитать или дайте пример кода.
 

Hasmadan

Участник форума
Регистрация
8 Янв 2010
Сообщения
10
Благодарности
1
Баллы
150
bitewolf, давно не скриптовал, но у орков вроде есть сидение у костра и стоять на вэйпоинте...
instance NONE_88888_SuperOrc(Npc_Default)
{
name[0] = "Супер Дружелюбный Орк";
guild = GIL_FRIENDLY_ORC;
id = 88888;
voice = 18;
flags = 0;
npcType = npctype_main;
Mdl_SetVisual(self,"Orc.mds");
Mdl_SetVisualBody(self,"Orc_BodyElite",DEFAULT,DEFAULT,"Orc_HeadWarrior",DEFAULT,DEFAULT,-1);
fight_tactic = FAI_ORC;
daily_routine = Rtn_Start_88888;
};


func void Rtn_Start_88888()
{
TA_Stand_WP(9,0,21,0,"NW_BIGFARM_HOUSE_ONAR_SIT");
TA_Stand_WP(21,0,9,0,"NW_BIGFARM_HOUSE_UP1_04");
};
насчет сидения у костра, лень копаться... но всё же... вроде было такое...
а насчет орков, то да... им броню не снять, а только менять текстуру или модель...
хотя, если надеть на него доспехи, то будет нечто)))))
 

Midlight

Участник форума
Регистрация
8 Июн 2011
Сообщения
155
Благодарности
1
Баллы
185
bitewolf, сидяший у костра орк:
instance OrcShaman_Sit(Mst_Default_OrcShaman)
{
B_SetVisuals_OrcShaman();
EquipItem(self,ItMw_2H_OrcAxe_01);
start_aistate = ZS_MM_AllScheduler;
aivar[AIV_MM_OrcSitStart] = OnlyRoutine;
};
instance OrcWarrior_Sit(Mst_Default_OrcWarrior)
{
B_SetVisuals_OrcWarrior();
EquipItem(self,ItMw_2H_OrcAxe_03);
start_aistate = ZS_MM_AllScheduler;
aivar[AIV_MM_OrcSitStart] = OnlyRoutine;
};
У гоблинов только стояние на вейпоинте.
 

Hasmadan

Участник форума
Регистрация
8 Янв 2010
Сообщения
10
Благодарности
1
Баллы
150
недавно задался себе вопросом, почему у скриптов много "ссылок" на другие скрипты...
например, скрипт n-меча
const int Value_n-sword = 100;
const int Damage_n-sword = 100;
const int Range_n-sword = 100;
instance ItMw_n-sword(C_Item)
{
name = "n-меч";
mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;
value = value_n-sword;
damageTotal = Damage_n-sword;
damagetype = DAM_EDGE;
range = Range_n-sword;
cond_atr[2] = ATR_STRENGTH;
cond_value[2] = 85;
visual = "n-sword.3ds";
description = name;
text[2] = NAME_Damage;
count[2] = damageTotal;
text[3] = NAME_Str_needed;
count[3] = cond_value[2];
text[4] = NAME_OneHanded;
text[5] = NAME_Value;
count[5] = value;
};
почему бы не указать сразу параметры цены и урона?))) ведь скрипт тоже работает так...
ведь можно сократить скрипт на 2-3 строчки с каждым объектом...
 

Bjorn++

Участник форума
Регистрация
28 Июн 2011
Сообщения
1.063
Благодарности
46
Баллы
235
Hasmadan, Ага)
Это у разрабов прикол такой, не обращай внимание;)
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
Hasmadan, когда начнешь программировать, тогда начнёшь понимать, для чего всё это. И в итоге это окажется логичным, правильным и удобным в некоторых случаях. ;)
 

Hasmadan

Участник форума
Регистрация
8 Янв 2010
Сообщения
10
Благодарности
1
Баллы
150
redleha, спасибо конечно))) но я давно начал программировать))))))
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
redleha, спасибо конечно))) но я давно начал программировать))))))
Ну, в этом случае тогда должен был догадаться, что это хотя бы удобно для выстраивания баланса. Прикинь тебе надо раскидать, изменить кучу просто каких-то абстрактных чисел. Что легче, копаться по всему файлу, или в шапке изменить несколько констант.
Это для разбора сложнее, а для созидания легче.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
redleha,
Ну, в этом случае тогда должен был догадаться, что это хотя бы удобно для выстраивания баланса.
Для выстраивания баланса удобней написать простенькую утилитку которая выведет в табличной форме нужные имена и параметры с возможностью редактиования и сохранения из нее. И этой "утилитке" все равно где и что будет прописано. Но для ее работы проще если это все будет в одном файле. Как и для пользователя. :)
 

Hasmadan

Участник форума
Регистрация
8 Янв 2010
Сообщения
10
Благодарности
1
Баллы
150
redleha, к примеру, очень удобно сделали, что вынесли количество получаемого опыта в отдельный файл... но с вещами это вообще неудобно... ведь, чтобы изменить у какого-либо меча урон, нужно открывать, как минимум, два файла... а это - потеря времени при разработке...
Dimmell, для своих проектов я тоже делаю программки... и в данном случае это банальный парсер значений...
а вообще, само удобно, когда параметры вещи написаны под самой вещью, а не в других файлах...
ведь лучше знать, что редактируешь...
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
Без копания в движке никак. Самый простой способ задать предмету флаг mainflag = ITEM_KAT_MAGIC тогда можно предметов экипировать бесконечное число. А для ограничений например написать функцию, которая будет считать кол-во экипированных предметов и автоматически деэкипировать превышающие это число предметы.

Ага успел исправить;).
А так правильно. Единственное, что следует добавить новый флаг.
И кстати с функцией экипировки у меня чтот не получилось. Можешь для примера скинуть скрипт?

P.S. Мечта готомана:D.
 

Вложения

  • ogo.JPG
    ogo.JPG
    135,3 KB · Просмотры: 254

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Можешь для примера скинуть скрипт?

Готового скрипта у меня на руках нет. Да и не скриптил давно уже.
Выкладывай свой скрипт, покумекаем, что там не так.
 

Yelawolf

★★★★★★★★★
Супермодератор
Регистрация
27 Дек 2011
Сообщения
1.415
Благодарности
471
Баллы
355
Ilot,
Это он все кольца одел? Это ж сколько у него пальцев?:D
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
Combichrist, сИито.:D
Ровно сто колечек, там просто шлем одно кольцо униз подвинул.

hell9999, ага на днях выложу как до своего компа добирусь)))
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.449
Благодарности
779
Баллы
375
У меня такая проблема: у фоновых персонажей не отображаются диалоги после моего копания в скриптах. Черт знает что такое, ломаю голову второй день. Уже пробовал вставлять исходные диалоги - не работает все равно. Где я мог стереть какую-нибудь важную строчку или что-то вроде того?
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.847
Благодарности
1.213
Баллы
440
Хелдар, проверь строку npctype
она должна иметь значение NPCTYPE_AMBIENT
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.449
Благодарности
779
Баллы
375
Все эти мелочи проверены уже. Я руководствовался уроком Мильтена, + он мне лично пытался помочь (увы, безуспешно).
 

Ur-tRall

Участник форума
Регистрация
16 Май 2009
Сообщения
4.102
Благодарности
2.122
Баллы
475
А что с СВМ-файлом? Именно они отвечают за фоновые диалоги. Он должен находиться либо в конце папки СТОРИ, либо в самом конце решения.
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.449
Благодарности
779
Баллы
375
Ur-tRall, Ты неправильно понял вопрос. У меня проблема с фоновыми диалогами вроде "Что нового?". У граждан лишь вариант КОНЕЦ есть.
 
Сверху Снизу