Новости Анонс The Elder Scrolls VI уже этим летом?
  • 157
  • 0
По данным инсайдера eXtas1s, Bethesda может впервые показать The Elder Scrolls VI летом 2025 года Обсуждается возможность анонса игры на одной из крупных презентаций Xbox - в июне или августе...
Новости Of Ash and Steel: разработка в цифрах
  • 140
  • 0
На днях авторы игры Of Ash and Steel поблагодарили игроков за поддержку и положительные отклики, а также поделились цифрами во время разработки. В игре будут: 300+ квестов; 30 000+ строк...
Новости Clair Obscur: Expedition 33 – новая ролевая игра, ломающая стереотипы
  • 382
  • 1
Clair Obscur: Expedition 33 – уникальная ролевая игра, которая могла появиться только у инди-разработчика Раз в год Художница просыпается и рисует на Монолите. Выводит свое проклятое число. И...
Новости Состоялся релиз The Elder Scrolls IV: Oblivion Remastered
  • 1.298
  • 18
22 апреля 2025 года состоялся релиз игры The Elder Scrolls IV: Oblivion Remastered. Это ремастер игры 2006 года, разработанный студиями Virtuos и Bethesda Game Studios, изданный Bethesda...

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

TraZag

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

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

vadymg

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

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

Спасибо.
 

TraZag

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

Moran Grimoff

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

vadymg

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

xterm

Герой
Команда форума
Администратор форума
Пользователь VIP
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
11 Апр 2010
Сообщения
5.478
Реакции
1.152
Баллы
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.447
Реакции
3.607
Баллы
741
Лучшие ответы
405
значит уже триггер какой-то есть.
Есть то есть, но что-бы найти его, придется затратить намного больше усилий, чем написать свои часы на триггер скрипте, что делается довольно просто.
Потому как мне надо выполнять действие привязываясь к игровому времени
Если надо узнать определенный промежуток времени подойдет функция ниже.
// возвращает 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
Сообщения
13.074
Реакции
11.528
Баллы
1.071
Лучшие ответы
5
Есть нюанс - циклический тригер порой не соответствует реальному таймеру....но реально проще сделать через него. Либо ставь какой нить костыль - там есть возможность обращаться ко встроенным функциям движка.
 

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) Как пометить предмет, чтобы он оставался в инвентаре у торговца, но не отображался на панели торговли?
 
Сверху Снизу