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

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

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

MaGoth

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

Вложения

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

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Непозволительная роскошь. Количество аиваров ограничено 100, и для них можно найти более полезное применение.

Я этим пользовался при создании НМ. А сейчас, в новом моде, это очень часто используемый прием.


Кроме перпендикуляров есть еще и параллели... :D
А как можно "сформулировать" появление диалога в определенной главе?
Никак не формулировть - это событие (условие, до 5-го дня, во 2-й главе), а не диалог. А диалог появится (или не появится) в зависимости от даты (главы, события и т.д.).
Легкий пример применения абсолютных значений без заморачивания с аиварами с сохранением даты диалога и т.п.:
делаю хардкорный мод, но не хочу сделать его харддротным. Получение по квестам оружия/брони/плюшек - так надо и противников делать пропорциональным награде (т.е. сильными), обычный средний игрок их вытянуть сможет через маты и С/Л, но я могу спокойно облегчить жизнь игрокам например добавив на 20-й (+-3дня) день в игре (но только в 1-й главе) более сильную броню/свитки/оружие в продажу (она будет сильнее общедоступной, но не имбой и чуть-чуть слабее доступной в следующей главе), и т.д. И мне не надо привязывать к каким-то абсолютным значениям выполненных квестов и манипулировать разностью в датах. Вы используете линейную прокачку по квестам, я могу использовать прокачку по времени в игре и не зависимо от главы и выполненных квестов.
PS. я надеюсь понятно изложил мысль?

Глава - это когда свершилось некое игровое событие, а не просто пробежала секундная стрелка. Привязывать диалог к главе - естественно. К номеру дня - крайне сомнительно. Поскольку одни и те же квесты можно выполнить в совершенно разные дни.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Глава - это когда свершилось некое игровое событие, а не просто пробежала секундная стрелка. Привязывать диалог к главе - естественно.

OMG... А если в моде только 1 глава? И вообще сюжет построен не на забегах по квестам? :oops:
Да, квесты можно выполнить в разные дни и в разной последовательности - но при чем здесь это? Если я добавлю в инвентарь торговца на 10-й день шпагу посильнее или несколько свитков, как это отрицательно соотнесется с квестами? А не добавлю все и сразу при старте игры? Что плохого в том, что я например обновлю оружие у избранных НПС на 20 день в игре?
ЗЫ. я Вам про игровые возможности, а Вы мне - про сюжетную линейность.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Что плохого в том, что я например обновлю оружие у избранных НПС на 20 день в игре?
Некоторые игроки знающие об этом для того чтобы получить нужное буду попросту проматывать время отсыпаясь 20 дней в кроватке, в случае же привязки к главам или другим сюжетным событиям игрок получит требуемое по задумке автора мода в нужный момент. Если автору мода наплевать на эти факторы, то ничего плохого нет.
 

hell9999

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

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
Кто мешает сделать препятствие постоянному сну в виде небольшой скриптовой заслонки, которая после определенного количества проспанных часов будет отключать возможность спать еще энное количество времени?
Вариант.
Запрещать одно, чтобы реализовать другое. На все воля автора мода.
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Кто мешает сделать препятствие постоянному сну в виде небольшой скриптовой заслонки, которая после определенного количества проспанных часов будет отключать возможность спать еще энное количество времени?
А не проще этого добиться привязкой к главе, например? Или к некому диалогу...

А так, конечно, можно сделать мод из одной главы, с одним диалогом и одним заданием "убей всех". Тогда да. Можно "скриптовых заслонок" наделать.

Но мне кажется, что в такой мод неинтересно будет играть.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Кто мешает сделать препятствие постоянному сну в виде небольшой скриптовой заслонки, которая после определенного количества проспанных часов будет отключать возможность спать еще энное количество времени?
Можно пытаться бороться с манчкизмом, багоюзом и т.д... Хотя ни к чему хорошему это не приведет, и боком вылезет на нормальных игроках.
Я делал в Ребалансах типа статистики - часы сна, скорость вырезания монстров и т.д., кто спал и решил похвастаться - тех видно, кто спал, но втихаря - да мне все равно как он играл, лишь бы получил удовольствие. :)
Можно сделать как я уже писал выше про вариант "хардкорVSхардротство", т.е. вставка определенных предметов для облегчения игры. Это как пример. Распишу еще раз подробнее - если игрок сильный, и умеет играть удар-блок-отскок, он вынесет всех необходимых противников по квестам и так, но если игрок слабый, то побегав по миру 20 дней в 1-й главе и уткнувшись носом в то, что ничего закрыть не сможет - хоть будет иметь честный выбор - купить доспехи/броню или... заюзать марвин. А его все равно заюзают если не будет альтернативы. Или антивариант - избиение тограшей/гильдейцев с целью забрать их оружие ( не менее %50 игроков грешат), и можно не давать сразу в инвентарь все (свитки, оружие и т.д.) Можете возразить что "можно нужное потом при выполнении квестов добавить", можно, только вот потом по скриптам рыть и искать что, когда и где добавил - утомит. А так - пара функций с несложной логикой и не обязательно использовать фиксированные значения, можно рандомно +-Х, не 20 дней, а от 15 до 25. Как игрок будет играть - это его проблемы, хочет спать - пусть спит, хочет юзать марвин - успехов, но будет возможность что-то новое найти со временем в игре. Аналогично можно и в сундуки пихать хлам и т.д. Это все к теме "разнообразить игру". Привязка к квестам накладывает обязательство выполнения этого квеста, и если где-то дадут меч, а где-то броню, но игрок не может ни то, ни другое сразу выбить - пусть покупает/находит/крадет и т.д., но после истечения определенного игрового времени, а не сразу кидать торгашам "а вот у меня убермеч и броняБомба" - торгаша за ворота, и по рогам свитком в начале игры, или для честных - копим и не пытаемся сразу рубить. Так хоть какая-то неопределенность будет с начала игры - нет брони, нет оружия, пытайся сдать квесты своими силами, слабоват - ну получи еще шанс. Кто не покупал шпагу мастера у интенданта в самом начале? (это как пример).

А не проще этого добиться привязкой к главе, например? Или к некому диалогу...
К какому диалогу подобное можно привязать? Если ты просто уперся в то, что все возможное уже выполнил в этой главе, а перейти в следующую не можешь - дают по рогам? Мало таких модов и игроков?
 
Последнее редактирование:

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Тут вспомнил еще кое-что... Я в Реб2 сделал одну фишку - в стелажах с самого начала игры лежали свитки света (их все находили и собирали), но со временем там рандомно могли появляться другие и сильные свитки... Вы думаете их кто-нибудь нашел? :D
Потому что все привыкли "один раз взял и все"...
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Кто не покупал шпагу мастера у интенданта в самом начале?
Я не покупал никогда, ибо что шпаги что пушки, без должной реализации считаю — дерьмом мира "Готики"...
А в целом все это условно, и все эти вариации на тему + день, - день, или через 15-25 дней, всё это одна большая шляпа, толком ни на что не влияющая. А в некоторых случаях даже портящая оригинал..

Я в Реб2 сделал одну фишку - в стелажах с самого начала игры лежали свитки света (их все находили и собирали),
Вопрос только один, где была при этом логика игры, — спала наверное ?
Иначе говоря откуда им там рандомно появляться, точнее с чего вдруг.?!
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Вопрос только один, где была при этом логика игры, — спала наверное ?
Иначе говоря откуда им там рандомно появляться, точнее с чего вдруг.?!

по логике "живого" мира готики - там ничего появляться не должно. Потому что в домах НПС не живут, ничего туда не кладут, спаунят сыр и мясо когда хотят пожевать, спаунят метелки когда подметают и все это магически как появилось - так и пропадает. Это боги-разрабы со старта одаривают сундуки хламом. :D
А если серьезно -это была проверка чуть-чуть недоделанной идеи, до полной реализации осталось полшага и появлялось бы куча рандомных квестов в игре. Но мне лень было прописывать десяток-другой строк в скриптах. :)
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
по логике "живого" мира готики - там ничего появляться не должно.
По логике живого мира, это была тупо нычка какого-то, запасливого чувака/чувихи, а не сундук в который тарят, от того там ничего появлятся и не должно, окромя того что было добавлено туда по сюжетной конве.
Это я имел ввиду..
Здравая реализация подобного без добавления спец функций в двиг и скрипты мало реализуема, онли костыли с огородом ветвистых функций по вставкам, в которых потом сам ноги-же и обломаешь...
 

Dimmell

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

MoranGrimoff

Участник форума
Регистрация
12 Фев 2013
Сообщения
40
Благодарности
2
Баллы
155
Всем здрасьте! Вопрос по скриптам возвращения. Подскажите, господа, какая функция отвечает за тот факт, что при ударе по Хранителю вас в ответ фигачит огнем? И соответственно, какой функцией в 7 главе эта фишка выключается?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525

Не знаком со скриптами этого мода, да и с самим модом тоже, но могу предположить следующее. Разгадку нужно искать в функции, подвешенной на обработку восприятия повреждения у этого самого Хранителя. Найди, в каком состоянии пребывает Хранитель, когда его бьют, смотри, какая функция обрабатывает повреждение. Обработчик задаётся строкой
Npc_PercEnable(self,PERC_ASSESSDAMAGE,ZS_ReactToDamage);
В приведённом примере при нанесении повреждения вызывается функция ZS_ReactToDamage().
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275
Подскажите, а можно сделать рандом при начале новой игры? Т.е., чтоб начальная ветка диалога зависила от рандома на старте.
 
Последнее редактирование модератором:

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275
Не подскажете в чем проблема?
Хотел изменить урон магией, в зависимости от условия. Написал так:

Код:
instance Spell_Firebolt(C_Spell_Proto)
{
    if(hero.guild != GIL_NONE)
    {
    time_per_mana = 0;
    damage_per_level = SPL_Damage_Firebolt_2 + ATR_INTELLECT;
    damagetype = DAM_FIRE;
    }
    else if(hero.guild == GIL_NONE)
    {
    time_per_mana = 0;
    damage_per_level = SPL_Damage_Firebolt + ATR_INTELLECT;
    damagetype = DAM_FIRE;
    };
};

Условие гильдия, только для теста, как самое простое.
Вроде компиляция проходит без ошибок, но при попытке экипировать свиток, игру выбивает. Вообще, можно ли так сделать, или я не там копаю?
 

MEG@VOLT

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

Мод? икарус?
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.168
Баллы
340
Уж ежели интеллект, то скорее всего скрипт одного из вариантов "Возвращения".
 

MEG@VOLT

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