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

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

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

MaGoth

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

Вложения

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

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.170
Баллы
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
Благодарности
666
Баллы
245
Hasmadan, когда начнешь программировать, тогда начнёшь понимать, для чего всё это. И в итоге это окажется логичным, правильным и удобным в некоторых случаях. ;)
 

Hasmadan

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

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
666
Баллы
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.049
Благодарности
1.170
Баллы
340
Можешь для примера скинуть скрипт?

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

Yelawolf

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

Ilot

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

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

Хелдар

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

Beowulf

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

Хелдар

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

Ur-tRall

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

Хелдар

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