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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
    Скрыть объявление
  2. Форум аддона "Возвращение" 2.0:
    — Обсудить игру, почитать о прохождениях и/или разрешить свои вопросы по игре вы можете в одной из тем одноименного форума. Посетить...
    — Прочитать историю изменения и/или скачать последнюю версию аддона "Возвращение", вы можете на страницах наших ресурсов. Скачать...
    Скрыть объявление

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

Тема в разделе "Готика - Архив", создана пользователем Saturas, 17 сен 2014.

?

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

  1. Надо

    85,3%
  2. Не надо

    14,7%
Статус темы:
Закрыта.
  1. Saturas

    Saturas
    Модостроитель

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

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    13.232
    Благодарности:
    5.778
    Баллы:
    740
    Пол:
    Мужской
    Было 36х изначально.

    Может кому и пригодится, но изначально это - дохлая тема...
     
  3. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    ты наркоман?
    Код:
    const int TAB_ANZAHL = 256;
    Не о чем не говорит?
    И то что const int GIL_SEPERATOR_HUM = 16; имеет номер 16, а не 36.
    Или я по твоему настолько поехавший что 36 от 16 не отличаю?
     
  4. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    13.232
    Благодарности:
    5.778
    Баллы:
    740
    Пол:
    Мужской
    Абсолютно не о чем..

    Это лишь делитель гильдии людей и монстров..
     
  5. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    Ну а как же массив гильдий ЛЮДЕЙ, не ?
     
  6. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    13.232
    Благодарности:
    5.778
    Баллы:
    740
    Пол:
    Мужской
    Не путай константы Дедала с таблицей гильдий в движке, она == 36х. Есть сомнения, дуй в Долину Готы на Аг, читать тему декомпиллер Вама, он там где-то писал об этом...
     
  7. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    Код:
    .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 м?
     
  8. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    13.232
    Благодарности:
    5.778
    Баллы:
    740
    Пол:
    Мужской
    Ну, мало-ли что где написано..
    В оригинале, Г1 например, первые 16 это Нуман райс с делителем, остальное до 42 монстры, в Г2 в этом плане мало что изменилось...
    Что до 36х то возможно это была таблица соотношений гильдий, хз не помню уже сейчас толком, но точно помню что Вам по гильдиям хуманов это писал.
     
  9. Alex7777

    Alex7777 Участник форума

    Регистрация:
    14 июн 2013
    Сообщения:
    104
    Благодарности:
    2
    Баллы:
    90
    Пол:
    Мужской
    Конечно нужно! Услышать бы весь список)
     
  10. Мільтен

    Мільтен Участник форума

    Регистрация:
    27 июн 2008
    Сообщения:
    825
    Благодарности:
    1.042
    Баллы:
    265
    Пол:
    Мужской
    Объявил бы сначал весь список, потом спрашивал, надо или нет.
    Увеличить максимальное кол-во гильдий смысла нет. Стандартного кол-ва достаточно.

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

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

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

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    весь список - вечером, в основном минор фиксы, и добавления, но крайне полезные, например, я избавился от 1000000 переменных для каждого нового задания, добавив функцию Npc_LogGetTopicStatus(str topic);
    так что теперь кучи лишнего кода писать нет смысла.
     
    HZuil поблагодарил.
  12. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    Описание доабвлений( в основном функции скриптов, и иже с ними, но на мой взгляд довольно полезные)

    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
    };
    На данный момент все, если появляются вопросы по применению функций и тд - задавайте, ибо подозреваю многие функции будут не совсем понятны.
    Позже выложу наработки скриптов некоторые
     
  13. osipovjohn

    osipovjohn Участник форума

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

    redleha
    Модостроитель

    Регистрация:
    26 фев 2008
    Сообщения:
    688
    Благодарности:
    646
    Баллы:
    245
    Пол:
    Мужской
    Собственно всё это уже давно есть на Икарусе и ЛеГо.
     
  15. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    13.232
    Благодарности:
    5.778
    Баллы:
    740
    Пол:
    Мужской
    И что ты будешь делать с ним?
    Г2Экст абсолютно ни чем не поддерживается и практически со всем несовместим...
     
  16. Dimmell

    Dimmell Участник форума

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

    kraw
    Модостроитель

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

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

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    Во первых, от г2екста тут осталось, почти ничего, это раз, а два, что значит не совместим, ты о чем вобще?
    Подробнее, чот не могу въехать.
    А, ты имеешь в виду функцию типа GetSlotItem(slot) ? Все, понял, сейчас добавлю.
    Опять же подробнее, в какой массив?
    Что под этим имеется ввиду?
    Есть функции SetValue_ они позволяют записывать, читать массивы по индексам, и тд
     
    Последнее редактирование: 18 сен 2014
  19. osipovjohn

    osipovjohn Участник форума

    Регистрация:
    11 июл 2012
    Сообщения:
    24
    Благодарности:
    0
    Баллы:
    70
    Пол:
    Мужской
    Saturas, ты когда выложишь в открытый доступ свои творения?
     
  20. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.831
    Благодарности:
    540
    Баллы:
    275
    Пол:
    Женский
    Завтра вечером тестовую версию кину
     
Статус темы:
Закрыта.

Поделиться этой страницей

Neverwinter