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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

    Не ленитесь, голосуйте в этой теме за тех форумчан, которые по вашему мнению больше всех проявили себя в этом году
    По желанию, аргументировать свой выбор можете в теме обсуждения голосования.

Готика 2: НВ Расширение возможностей готики 2

А надо ли оно кому? Или только мне это интересно?


  • Всего проголосовало
    34
Статус
В этой теме нельзя размещать новые ответы.

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Так, по скольку старая моя тема закрыта, открыываю новую, вот. Работу по пакету расширений на днях разморозил, и добавил еще кучу новых возможностей(добавлен класс статус баров, например) и еще куча мелких добавлений, вроде как расширения массива гильдий до 20х20(было16х16)(можно хоть до 100, проблемы в этом нету), реализзована карманная кража как в г1, функция отключения фильтрации брони в инверртаре торговцев/трупов и тд, весь список оглашу вечером, вопрос такой. А нужно ли оно кому?
Касательно комплияции - как всегда игрой, ибо писать компилятор, для екста, да и вообще это сильно много гемороая, ибо пакет постоянно обновляется, меняются смещения функций и все остальное, вопщем так. Еще раз спрашиваю нужно ли оно кому?(ах да, будет выложена моя сборка скриптов с наработками)
ВОпщем, жду ответа, тему просьба перенести в старую, н уи открыть старую ессно
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
вроде как расширения массива гильдий до 20х20(было16х16)
Было 36х изначально.

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

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
ты наркоман?
Код:
const int TAB_ANZAHL = 256;
Не о чем не говорит?
И то что const int GIL_SEPERATOR_HUM = 16; имеет номер 16, а не 36.
Или я по твоему настолько поехавший что 36 от 16 не отличаю?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Ну а как же массив гильдий ЛЮДЕЙ, не ?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Ну а как же массив гильдий ЛЮДЕЙ, не ?
Не путай константы Дедала с таблицей гильдий в движке, она == 36х. Есть сомнения, дуй в Долину Готы на Аг, читать тему декомпиллер Вама, он там где-то писал об этом...
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Код:
.text:00700FA0 ; public: void __thiscall oCGuilds::InitGuildTable(class zSTRING const &)
А тут по адресу 0x00701127+2 написано 0x10 что в десятичной системе равно 16. И еще там написано, что если массив больше чем 256(16х16) то U: GUILDS:Guild-attitude-table size mismatch : Size has to be 16х16 м?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
А тут по адресу 0x00701127+2 написано 0x10 что в десятичной системе равно 16. И еще там написано, что если массив больше чем 256(16х16) то U: GUILDS:Guild-attitude-table size mismatch : Size has to be 16х16 м?
Ну, мало-ли что где написано..
В оригинале, Г1 например, первые 16 это Нуман райс с делителем, остальное до 42 монстры, в Г2 в этом плане мало что изменилось...
Что до 36х то возможно это была таблица соотношений гильдий, хз не помню уже сейчас толком, но точно помню что Вам по гильдиям хуманов это писал.
 

Pinic

Участник форума
Регистрация
14 Июн 2013
Сообщения
128
Благодарности
13
Баллы
185
Так, по скольку старая моя тема закрыта, открыываю новую, вот. Работу по пакету расширений на днях разморозил, и добавил еще кучу новых возможностей(добавлен класс статус баров, например) и еще куча мелких добавлений, вроде как расширения массива гильдий до 20х20(было16х16)(можно хоть до 100, проблемы в этом нету), реализзована карманная кража как в г1, функция отключения фильтрации брони в инверртаре торговцев/трупов и тд, весь список оглашу вечером, вопрос такой. А нужно ли оно кому?
Касательно комплияции - как всегда игрой, ибо писать компилятор, для екста, да и вообще это сильно много гемороая, ибо пакет постоянно обновляется, меняются смещения функций и все остальное, вопщем так. Еще раз спрашиваю нужно ли оно кому?(ах да, будет выложена моя сборка скриптов с наработками)
ВОпщем, жду ответа, тему просьба перенести в старую, н уи открыть старую ессно
Конечно нужно! Услышать бы весь список)
 

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
Объявил бы сначал весь список, потом спрашивал, надо или нет.
Увеличить максимальное кол-во гильдий смысла нет. Стандартного кол-ва достаточно.

Ну статус-полоски еще имеют какой-то смысл.

Карманная кража - ну ок.

ИМХО, из того, что нужно:
- диалоги между более, чем двумя персами;
- возможность вручную задавать анимацию для каждой реплики;
- многостраничные документы;
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Объявил бы сначал весь список, потом спрашивал, надо или нет.
Увеличить максимальное кол-во гильдий смысла нет. Стандартного кол-ва достаточно.

Ну статус-полоски еще имеют какой-то смысл.

Карманная кража - ну ок.

ИМХО, из того, что нужно:
- диалоги между более, чем двумя персами;
- возможность вручную задавать анимацию для каждой реплики;
- многостраничные документы;
весь список - вечером, в основном минор фиксы, и добавления, но крайне полезные, например, я избавился от 1000000 переменных для каждого нового задания, добавив функцию Npc_LogGetTopicStatus(str topic);
так что теперь кучи лишнего кода писать нет смысла.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Описание доабвлений( в основном функции скриптов, и иже с ними, но на мой взгляд довольно полезные)

PHP:
//Функция возвращает строку режима ходьбы
//RUN / WALK / SNEAK
//В дальнейшем, скорее всего будет заменена на аналогичную, но с возвращаемым int значением, тк эта дает всего 3 режима, а не все 6
func string GetWalkModeString(var C_NPC npc);
PHP:
//Возвращает интсанцию нпс находящегося в фокусе tNpc
func C_NPC GetFocusNpc(var C_NPC tNpc);
PHP:
//Возвращает 1 если в фокусе tNpc есть нпс, 0 если нету.
func int Npc_ValidFocusNpc(var C_NPC tNpc);
PHP:
//Возвращает статус задания topic 
//LOG_RUNNING / LOG_SUCCESS / LOG_FAILED / LOG_OBSOLETE
func int Log_GetTopicStatus(var string topic);

PHP:
//функции изменения значений переменных движком(например для изменения констант/массивов по индексу)
//пример: SetValue_str(TXT_GUILDS,"Новая_строка",2) записывает строку по адрессу массива 2
FUNC STRING SetValue_str             ( VAR STRING s0, VAR STRING s1, VAR INT i2 ) { return s0; };
FUNC INT SetValue_int                 ( VAR STRING s0, VAR INT i1, VAR INT i2 ) { return 0; };

FUNC FLOAT SetValue_flt             ( VAR STRING s0, VAR FLOAT r1, VAR INT i2 ) { return 0; };
//функции чтения переменных, в основном нужны чтобы читать из массива
//пример: GetValue_STR(TXT_GUILDS,2) читает строку, по адресу
FUNC STRING GetValue_STR             ( VAR STRING s0, VAR INT i1 ) { return s0; };
FUNC INT GetValue_int                 ( VAR STRING s0, VAR INT i1 ) { return 0; };
FUNC FLOAT GetValue_flt             ( VAR STRING s0, VAR INT i1 ) { return 0; };

PHP:
//Активирует ZS_ слот на скелете нпс(например активация слота щита, возможно добавление своих слотов на модель, и использование в игре.
//LOG_RUNNING / LOG_SUCCESS / LOG_FAILED / LOG_OBSOLETE
func void ActivateZSSlot (var string slotName);
PHP:
//Поместить предмет pItem в слот SlotName
//пример Ext_PutInSlot(hero,"ZS_SHIELD",ItAr_Shield) поместит щит в слот щита на спине
FUNC VOID Ext_PutInSlot             ( VAR C_NPC npc, VAR STRING SlotName, VAR INT pItem )
PHP:
//Удаление из слота
FUNC VOID Ext_RemoveFromSlot         ( VAR C_NPC npc, VAR STRING SlotName )
PHP:
//Установить модификатор состояния тела нпс
FUNC INT Npc_ModifyBodyState        ( VAR C_NPC npc, VAR INT NewbMod, VAR INT OldbMod )
PHP:
//получить модификатор
FUNC INT Npc_HasBodyStateModifier    ( VAR C_NPC npc,     VAR INT bMod  )
PHP:
//объявить нпс игроком
FUNC INT Npc_SetAsPlayer            ( VAR C_NPC npc )
PHP:
//Функция перехода между мирами
//wld - имя мира *.zen
//wp - точка появления гг в новом мире
FUNC STRING Wld_ChangeLevel         ( VAR STRING wld, VAR STRING wp )
PHP:
//Закрыть сундук на ключь InstName
FUNC VOID Mob_SetKeyInstance        ( VAR STRING MobName, VAR STRING InstName )     { };
//Закрыть сундук на комбинацию отмычек
//пример:
//Mob_SetPickLockStr("XARDAS_CHEST","LRLLRRRRLRRLR");
FUNC VOID Mob_SetPickLockStr         ( VAR STRING MobName, VAR STRING str )     { };

PHP:
//Фильтрация доспехов в интвертаре обыскиваемого нпс/инвертаре торговца
//1 - доспехи фильтруются
//0 - не фильтруются.
FUNC INT FilterArmor                 ( VAR INT i0 )


PHP:
//Класс индикаторов /хп/маны и тд
class C_STATUSBAR
{
    var int            posx;    //Положение полосы по оси X 
    var int            posy;    //Положение полосы по оси Y 
    var int            sizex;    //Размер по оси X
    var int            sizey;    //Размер по оси Y
    var    int         value;    //текущее значение
    var    int         maxrange;//Максимальное значение 
    var    STRING   backtex; //текстура индикатор
    var    STRING   bartex;//текстура полосы
    var string        temptex;//не испульзуется
    var    int         bShow; //показать/скрыть полосу 1/0
};
На данный момент все, если появляются вопросы по применению функций и тд - задавайте, ибо подозреваю многие функции будут не совсем понятны.
Позже выложу наработки скриптов некоторые
 

osipovjohn

Участник форума
Регистрация
11 Июл 2012
Сообщения
24
Благодарности
0
Баллы
160
Сатурас, ты МУЖИК. Конечно нужно. Особенно скриптовый переход между мирами
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
ИМХО, из того, что нужно:
- диалоги между более, чем двумя персами;
- возможность вручную задавать анимацию для каждой реплики;
- многостраничные документы;
Собственно всё это уже давно есть на Икарусе и ЛеГо.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Конечно нужно. Особенно скриптовый переход между мирами
И что ты будешь делать с ним?
Г2Экст абсолютно ни чем не поддерживается и практически со всем несовместим...
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Описание доабвлений( в основном функции скриптов, и иже с ними, но на мой взгляд довольно полезные)

По слотам - тогда надо и определение инстанции в слоте ХХ (иначе как определить напр. экипировку лучшим предметом?)
По сундукам - очистка сундука (желательно с сохранением содержимого в общий массив для очистки инстанция-кол-во), а также функция возвращающая имя МОБ в фокусе (по типу как для НПС). И желательно нормальную работу с массивами. Для чего - можно будет без чистки ЗЕНов организовать рандомное наполнение сундуков (или при старте новой игры, или при фокусе на сундуке/попытке открыть)
Возвращаясь к теме двухгодичной давности - интересовала бы способность лучников сохранять дистанцию при стрельбе, ГГ приближается - отбежали и стреляем дальше. И не по WP и не натыкаясь на все подряд. :)
ЗЫ. Меня это интересовало бы года 3 тому назад, сейчас меня больше интересует новый движок. Хотя может кому-то и пригодится.
 

kraw


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

Правда, для этого сундук должен быть именованным.
То есть при создании мода вполне возможно сделать наполнение сундуков "рандомным".
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
И что ты будешь делать с ним?
Г2Экст абсолютно ни чем не поддерживается и практически со всем несовместим...
Во первых, от г2екста тут осталось, почти ничего, это раз, а два, что значит не совместим, ты о чем вобще?
По слотам - тогда надо и определение инстанции в слоте ХХ (иначе как определить напр. экипировку лучшим предметом?)
Подробнее, чот не могу въехать.
А, ты имеешь в виду функцию типа GetSlotItem(slot) ? Все, понял, сейчас добавлю.
По сундукам - очистка сундука (желательно с сохранением содержимого в общий массив для очистки инстанция-кол-во),
Опять же подробнее, в какой массив?
И желательно нормальную работу с массивами.
Что под этим имеется ввиду?
Есть функции SetValue_ они позволяют записывать, читать массивы по индексам, и тд
 
Последнее редактирование:

osipovjohn

Участник форума
Регистрация
11 Июл 2012
Сообщения
24
Благодарности
0
Баллы
160
Saturas, ты когда выложишь в открытый доступ свои творения?
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Завтра вечером тестовую версию кину
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу