Новости Ремейк "Готики 1" | Трейлер Showcase 2024
  • 3.635
  • 9
Новички, пришло время принять реальность и смириться с судьбой. Чувствуйте себя как дома в Долине Рудников, месте, полном опасностей, преступлений и жадности. Вам предстоит оставаться здесь очень...
Готика 2: Другая история Gothic II: Other Story - Описание мода
  • 22.172
  • 78
Готика 2: Другая история / Other Story - это глобальная модификация для игры «Готика 2: Ночь Ворона». Её цель - сделать игру более нелинейной, с большим количеством вариантов выбора и...
Новости Старт 6го сезона Grim League
  • 3.499
  • 2
4 мая в 18-00 стартует шестой сезон Community лиги по одной из лучших игр в жанре arpg Grim Dawn. Сезон представляет собой глобальную модификацию игры, включающую в себя расширение мира, изменение...
Новости Дата релиза Baldur's Gate III
  • 22.494
  • 2
Наконец-то дождались - "Baldur's Gate III" покидает ранний доступ, и в августе 2023 выходит в полноценный релиз, о чём стало известно на церемонии "The Game Awards 2022". С момента выхода игры в...

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

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
12.620
Реакции
11.136
Баллы
1.071
Лучшие ответы
2
nullЕстественно, под изменением параметра понимается изменение эффекта а не константы (которую можно объявить переменной)[/quote]

Без изменения константы изменение эффекта не будет.
 

vadymg

Новичок
Участник форума
Регистрация
22 Июл 2014
Сообщения
12
Реакции
0
Баллы
8
Лучшие ответы
0
Без изменения константы изменение эффекта не будет.
Я это понимаю. Последний коммент был к тому, что я спрашиваю не о том, как изменить значение константы, а о том, как изменить сам эффект. Простите, что не смог высказать свою мысль достаточно чётко.

К вопросам выше добавляется ещё один вопрос. Как сделать так, чтобы некий товар, который я продаю торговцу, не попадал к нему в инвентарь. Соответственно, чтобы ГГ не смог снова купить этот же предмет.

Спасибо.
 

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
12.620
Реакции
11.136
Баллы
1.071
Лучшие ответы
2
Если ты знаешь конкретно, что это за предмет, то в диалоге персонажа где вызывается окно торговли надо прописать функцию... Npc_RemoveInvItems(self,инста предмета,количество); И при следующей продаже у него уже не будет этого предмета. если до этого ты продал ему его. Это самый легкий способ.
 

Moran Grimoff

Наемник
Модостроитель
Участник форума
Регистрация
19 Янв 2013
Сообщения
725
Реакции
207
Баллы
146
Лучшие ответы
4
А как поменять цену на конкретный товар у конкретного торговца? Например, чтобы в разных тавернах цена на пиво была разная.
Я бы лично просто создал несколько видов пива/еды/воды и пораспихивал их по торговцам. При этом можно еще и визуальное отличие использовать. Как в свое время в Возвращении было несколько видов скелетов, демонов и т.д. Так будешь уверен, что все сработает.
 

vadymg

Новичок
Участник форума
Регистрация
22 Июл 2014
Сообщения
12
Реакции
0
Баллы
8
Лучшие ответы
0
А кто знает, как достучаться до игрового таймера?
Как мне реализовать возможность вызывать определённый метод, допустим, каждые 5 игровых минут?
 

xterm

Герой
Команда форума
Администратор форума
Пользователь VIP
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
11 Апр 2010
Сообщения
5.477
Реакции
1.141
Баллы
556
Лучшие ответы
5
А кто знает, как достучаться до игрового таймера?
Как мне реализовать возможность вызывать определённый метод, допустим, каждые 5 игровых минут?
https://sites.google.com/site/ukroleha/modarticles/triggerscriptcycle
 

vadymg

Новичок
Участник форума
Регистрация
22 Июл 2014
Сообщения
12
Реакции
0
Баллы
8
Лучшие ответы
0
Как объявить глобальную переменную в рамках проекта?

А кто знает, как достучаться до игрового таймера?
Как мне реализовать возможность вызывать определённый метод, допустим, каждые 5 игровых минут?
https://sites.google.com/site/ukroleha/modarticles/triggerscriptcycle
А можно, чтобы не создавать свой триггер? Ведь игровые часы как-то работают, значит уже триггер какой-то есть. Можно узнать имя этого триггера, и как через него запустить свой метод? Потому как мне надо выполнять действие привязываясь к игровому времени, а oCTriggerScript, как я понял, привязан к системному времени...
 
Последнее редактирование модератором:

Haart

Герой
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
3 Дек 2012
Сообщения
6.277
Реакции
3.370
Баллы
676
Лучшие ответы
398
значит уже триггер какой-то есть.
Есть то есть, но что-бы найти его, придется затратить намного больше усилий, чем написать свои часы на триггер скрипте, что делается довольно просто.
Потому как мне надо выполнять действие привязываясь к игровому времени
Если надо узнать определенный промежуток времени подойдет функция ниже.
// возвращает 1, если текущее время находится между границами
// (hourLow, minLow – нижняя граница, hourHigh, minHigh – верхняя граница в часах и минутах),
// иначе возвращает 0.
func int Wld_IsTime(var int hourLow, var int minLow, var int hourHigh, var int minHigh);

Если надо что-бы действие выполнялось не в рамках задания, а каждый день-час итд, то проще все-же делать триггер-скрипт.

А вообще, в ГотикСоурсере есть достаточно подробное описание внутренних функций, почитайте, половину вопросов отпадет) (Вид - Панель данных - Внутренние функции) Удачи.
 

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
12.620
Реакции
11.136
Баллы
1.071
Лучшие ответы
2
Есть нюанс - циклический тригер порой не соответствует реальному таймеру....но реально проще сделать через него. Либо ставь какой нить костыль - там есть возможность обращаться ко встроенным функциям движка.
 

vadymg

Новичок
Участник форума
Регистрация
22 Июл 2014
Сообщения
12
Реакции
0
Баллы
8
Лучшие ответы
0
Приветствую, друзья!
За выходные накопилось несколько вопросов:
1) Какие файлы игры ковыряет Spacer по-умолчанию? Потому как я боюсь случайно что-то поменять в оригинальной игре, хочу, чтобы все изменения были только в рамках проекта мода.
2) После компиляции проекта в .mod, размещении его в \Data\ModVDF, создании mod.ini через Gothic Ini Writer, и попытке запуска мода через \System\GothicStarter_mod.exe запускается оригинальная Готика. Подозреваю, что проблема в mod.ini. Решил проблему копированием файлов Gothic.dat и ou.bin вместо оригинальных, но, понятно, это решение временное. Хотел бы попросить знатоков просмотреть мой ini файл.
[INFO]
Title=G2RM
Version=0.0.0.1
Authors=vadymg
Webpage=
Description=
Icon=
[FILES]
VDF=G2RM.mod
Game=Content\Gothic
FightAI=Content\Fight
Menu=System\Menu
Camera=System\Camera
Music=System\Music
SoundEffects=System\Sfx
ParticleEffects=System\ParticleFx
VisualEffects=System\VisualFx
OutputUnits=OU
[SETTINGS]
Player=PC_Hero
World=
[OPTIONS]
show_Info=0
show_InfoX=800
show_InfoY=7200
show_Version=1
show_VersionX=6500
show_VersionY=7200
show_Focus=1
show_FocusItm=1
show_FocusMob=0
show_FocusNpc=1
show_FocusBar=1
force_Subtitles=1
force_Parameters=
[OVERRIDES]
INTERNAL.extendedMenu=1
3) После попытки изменить отображаемую цену предмета, по-прежнему продолжает отображаться его фактическая цена. Т.е. вот такой вот вариант не работает. Почему?
instance ItMw_1h_Vlk_Dagger(C_Item)
{
name = "Кинжал";
mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;
value = Value_VLKDolch; //5
damageTotal = Damage_VLKDolch;
damagetype = DAM_EDGE; //Режущий
range = Range_VLKDolch;
cond_atr[2] = ATR_STRENGTH;
cond_value[2] = Condition_VLKDolch;
visual = "Itmw_005_1h_dagger_01.3DS";
description = "Обычное оружие простых горожан";
text[0] = name;
text[1] = NAME_Dam_Edge;
count[1] = damageTotal;
text[2] = NAME_Range;
count[2] = range;
text[3] = NAME_Str_needed;
count[3] = cond_value[2];
text[4] = NAME_OneHanded;
text[5] = NAME_Value;
count[5] = 100;
};
4) Как пометить предмет, чтобы он оставался в инвентаре у торговца, но не отображался на панели торговли?
 
Сверху Снизу