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

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

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

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
Как допустим назначить клавишу каму либо предмету по принципу карты мира
если это реально то объясните как?

Зарание благодарен!!!
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Saturas написал(а):
Как допустим назначить клавишу каму либо предмету по принципу карты мира
если это реально то объясните как?
Нереально
Saturas написал(а):
Кто знает как делать боевые заклинания
ну типа там огненный шар и т.д.
Заклинание вроде работает но повреждение не наносится.
Если кто знает подскажите плиз!
Пример, "плювка"спящего
Wld_PlayEffect("SPELLFX_SLEEPER_FIREBALL",self,hero,2,150,DAM_FIRE,TRUE);
SPELLFX_SLEEPER_FIREBALL - имя эффекта
self - от кого
hero - ну думаю понятно
2 - не знаю что(не разобрался еще)
150 - уровень дамага
DAM_FIRE - класс дамага
TRUE - в переводе с английского - правда :D

2vmazz: В принципе да, он там и должен появиться... Но как уже сказал - будет работать или нет - не знаю.
 
Последнее редактирование:

Vam

Почетный форумчанин
Регистрация
8 Июл 2008
Сообщения
255
Благодарности
1
Баллы
180
2MEG@VOLT:
Wld_PlayEffect("SPELLFX_SLEEPER_FIREBALL",self,hero,2,150,DAM_FIRE,TRUE);
SPELLFX_SLEEPER_FIREBALL - имя эффекта
self - от кого
hero - ну думаю понятно
2 - не знаю что(не разобрался еще)
150 - уровень дамага
DAM_FIRE - класс дамага
TRUE - в переводе с английского - правда 
Точнее вот так, описание из GS - каждый может посмотреть  ;)
// проиграть визуальный эффект
// nameVfx - имя эффекта (из файла Scripts\System\VisualFX\VisualFxInst.d)
// instOrigin - инстанция персонажа или предмета, от которого исходит эффект
// instTarget - инстанция персонажа или предмета, на который накладывается эффект
// EffectLevel - уровень эффекта
// Damage - наносимое повреждение
// DamageType - тип повреждения
// IsProjectile - активация коллизий эффекта
func void Wld_PlayEffect(var string nameVfx, var C_NPC instOrigin, var C_NPC instTarget, var int EffectLevel, var int Damage, var int DamageType, var int IsProjectile);


Да, ну у меня просто времени небыло //МЕГА//
 
Последнее редактирование модератором:

Лорд Алекс

Участник форума
Регистрация
8 Фев 2009
Сообщения
63
Благодарности
0
Баллы
155
может вопрос не в тему но думаю это где-то в скриптах :-[
как изменить "marvin"на другое слово, например"yourich"или полностью убрать "marvin"
 
Последнее редактирование модератором:

TemplaR

Участник форума
Регистрация
16 Ноя 2008
Сообщения
322
Благодарности
0
Баллы
175
2Призрак ночи:
Нельзя изменить\убрать "Марвина". Он движком контролируется, так что не судьба.
 
Последнее редактирование модератором:

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
Saturas написал(а):
Как допустим назначить клавишу каму либо предмету по принципу карты мира
если это реально то объясните как?

Зарание благодарен!!!
Назначить новые клавиши невозможно, а вот зарезервированые - всегда пожалуйса. Всего их 3 - клавиша открытия карты, H и P. Причем H,P работают только если в gothic.ini параметр usePotionKeys выставить на 1.
Сами функции клавиш прописаны в b_OnHotkey.d, а именно
M - player_hotkey_screen_map
H - player_hotkey_lame_heal
P - player_hotkey_lame_potion
 
Последнее редактирование модератором:

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Dimmell написал(а):
Или ищи функцию, которая обрабатывается постоянно по ходу игры и вставляй вызов своей из нее с проверкой на условия. Но это будет лишняя нагрузка на движок.

Случаем не знаешь такой функции, а то не чё в голову не приходит (а очень надо) и ещё раз они существуют, значит, их наверно можно и создавать…

Если не в той теме затеяли обсуждения, пожалуйста, перенеси в нужную, со ссылкой на неё. ;)
 
Последнее редактирование модератором:

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
Пишу именно сюда по той причине, что ответ должен дать человек знающий двигало Г1. Вопрос такой: результат использования сковородок, точила и т.д лежит в движке?? Саму функцию CreateInvItem(self, предмет) я нигде не нашел, и более того присваевание mobsi диалога ни к чему хорошему не приводит, т.е диалог не появляется + все так же дается 1 мяса . Сам скрипт написан верно, уверен на 100%.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
2vmazz:
Пост перенес в эту тему, так как здесь ему самое место. ;)
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
2MaGoth: Да могбы удалить этот пост :)
Кароче сам отвечаю на свой вопрос: +1 (предмет) лежит не в движке а в анимации, и мобси присваеваются легко.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
2vmazz:
Да именно там и лежит, как и все остальное что дается Непесю в рюкзак по ходу игры. 
Более подробно об этом можешь почитать туториал по Эвент Тегам на мод.вог.ру. ;)
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Geor'G
Можешь поэкспериментировать с print_percent_bar (отображение полоски выносливости). Там их куча, и они довольно часто вызываются. Заодно и поиском посмотри откуда и когда вызываются. ;)
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
А как насчёт того чтоб новою создать или такого невозможно
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Geor'G
Ты определи для себя условия, когда твоя функция должна отрабатывать: при битве, расчете зкспы, сне, открытии инвентаря, и т.д. И организовывай вызов своей функции из этой функции (например, GivePlayerXP - функция начисления экспы в скриптах). Чаще всего идет расчет экспы.
А новую создавать - это менять движок. И прописывать условия проверки (вызова) твоей функции все равно придется. Но уже в движке. :)
Те же яйца, только в профиль.
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
[move]-А-А-А-А-А-А - Помогите – А-А-А-А-А-А-[/move]

В общем, функция должна срабатывать всегда, когда изменяется отношения Инноса, а то есть вот эта «лабуда» которая есть в функции:
Код:
innos_karma_value = INNOSPRAYCOUNT - INNOSCRIMECOUNT;
не срабатывает, пока нет вызова само функции (что естественно), а в какую функцию вставить вызов моей функции я не знаю.

2Dimmell: Самый оптимальный вариант сделать это, да, при начисление опыта, уже думал про это, но не делал так, и не всегда изменяется отношения Инноса при начисление экспы, а хотелось бы, что бы функция всегда срабатывала.
 

DUSTinghoFFman

Участник форума
Регистрация
24 Май 2008
Сообщения
904
Благодарности
4
Баллы
185
2Geor'G:
А какая функция должна срабатывать, если не секрет? Может, дело в вашей функции?
Скиньте её в личку, если можно :)
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Geor'G написал(а):
В общем, функция должна срабатывать всегда, когда изменяется отношения Инноса, а то есть вот эта «лабуда» которая есть в функции:
Код:
innos_karma_value = INNOSPRAYCOUNT - INNOSCRIMECOUNT;
не срабатывает, пока нет вызова само функции (что естественно), а в какую функцию вставить вызов моей функции я не знаю.
Уже(ж) вроде написал понятно.
Разжевываю:
после всех строк
Код:
innos_karma_value = INNOSPRAYCOUNT - INNOSCRIMECOUNT;
прописываешь вызов своей функции: MyXYZ_Func(параметры, если нужны).
Саму функцию прописываешь до первого обращения к ней
func void MyXYZ_Func(описания параметров)
В теле функции пишешь все, что хочешь.
ВСЕ.
ЗЫ. Второй раз советую посмотреть print_percent_bar.d со всеми внутренностями. И в поиск забить, нпример, print_percent_bar_karma_innos, увидишь откуда и как работает вызов и прописывание функций.
 
Последнее редактирование модератором:

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
2Dimmell: Это я естесно всё знаю, ты немного не понял, смотри в личку, там всё подробно расписал. :)

2DUSTinghoFFman: Тебе тоже в личку сбросил. :)
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
2Geor'G: ИМХО лучший вариант для тебя - вызывать ее постоянно. Да и удара по производительности практически нет, если функция небольшая.
ЗЫ: Может и мне в личку кинешь? :D

ЗЫЫ: Прошу чтоб тутор написаный ukur`ом в 118 посту этой темы скопировали на mod.wog.ru, имхо очень полезная вещь!

======Добавляю======
2Geor'G: Перечитал посты повнимательней, и полностью соглашаюсь с Dimmell, поищи где меняется отношение и добавь туда свою функцию.
 

Jeus

Участник форума
Регистрация
18 Мар 2009
Сообщения
232
Благодарности
1
Баллы
165
Всем доброго времени суток. Есть один вопросик. Я решил изменять количество экспы получаемой за убийство монстров в моде "Возвращение". Стоит MOD-версия. Как я понял файл gothic.dat Возвращения находится в RETURNING_MOD.mod. Извлек я все файлы, изменил нужный скрипт, запаковал обратно и вставил в папку. Вес файла получился практически таким-же (на 106 байт меньше).При запуске через Starter запускается обычная Г2:НВ и при старте новой игры вылетает. Со старым же файлом всё отлично. Что делать? В чём ошибка? И извините если пишу не в тот топик. Посчитал что нужно написать сюда.
 
Последнее редактирование модератором:
Сверху Снизу