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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Gothic ½ Доп. информация на экране | Union_GothicScreenInfo [Плагин для Union]

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.887
Баллы
335
Плагин позволяет отображать на экране дополнительную информацию о здоровье, мане, игровом времени, стрелах, защите врага. Статус бар врага со здоровьем можно разместить над врагом. Также присутствует режим ускорения мира.

Требования: Union 1.0m
Платформа игры: G1, G1A, G2, G2A.

Установка:
Скачать Hedin_Union_Gothic_ScreenInfo.vdf и скопировать файл в Gothic\Data\Plugins или в Gothic\Data\

Если вы используете игру со стима, то лучше использовать стимовскую версию из Мастерской. Чтобы использовать, надо в свойствах игры зайти во вкладку Бета и выбрать Workshop.

Нужно просто подписаться на нужный плагин.
Версия для Готики 2.
Версия для Готики 1.

После установка и запуска игры в Gothic.ini появится раздел [SHOW_ADDITIONAL_INFO] со следующими настройками:
INI:
[SHOW_ADDITIONAL_INFO]
speedWorldKey=KEY_F
; используемая кнопка для ускорения
; по умолчанию KEY_F

bNeedSpeedMode=1
; включить/отключить ускорение

speedModeMult=1,4
; множитель ускорения, переключается между заданными числами

bShowDate=1
; показывать текущий день и время

sDay=День:
; используемая надпись при показе текущего дня (используется для перевода на другой язык)

bMunitionInfo=1
; показывать текущее количество боеприпасов

MunitionColorR=51
MunitionColorG=204
MunitionColorB=51
; цвет надписи количества боеприпасов в RGB

MunitionPosX=1
; позиция надписи количества боеприпасов по X (от 0 до 8192)

MunitionPosY=750
; позиция надписи количества боеприпасов по Y (от 0 до 8192)

bNeedShowBarAboveEnemy=1
; Показывать или нет статус бар здоровья над врагом.

bShowEnemyHealth=1
; Показывать или нет цифры текущего здоровья у врага

bshowPlayerHealthAndMana=1
; Показывать или нет цифры текущего здоровья и маны у игрока

playerHealthName=EMPTY
; Надпись для жизней

playerManaName=EMPTY
; Надпись для маны

baseScaleEnemyBar=1
;

bNeedShowEnemyNameAboveBar=0
;

datePosX=1
; позиция надписи даты и времени X (от 0 до 8192)

datePosY=100
; позиция надписи даты и времени Y (от 0 до 8192)

dateColorR=255
dateColorG=105
dateColorB=0
; цвет надписи даты и времени в RGB

bNeedShowSpeedModeInfo=1
; Показывать или нет надпись, что включено ускорение

speedModePosX=1
; позиция надписи ускорения по X (от 0 до 8192)

speedModePosY=200
; позиция надписи ускорения по Y (от 0 до 8192)

playerSwimBarParams=50,7200,1000,200
; Позиция и размер бара воздуха по x,y,w,h
; x - позиция по X (от 0 до 8192)
; y - позиция по Y (от 0 до 8192)
; w - ширина бара
; h - высота бара

playerHealthBarParams=50,7700,1000,200
; Позиция и размер бара жизней по x,y,w,h
; x - позиция по X (от 0 до 8192)
; y - позиция по Y (от 0 до 8192)
; w - ширина бара
; h - высота бара

playerManaBarParams=50,7964,1000,200
; Позиция и размер бара маны по x,y,w,h
; x - позиция по X (от 0 до 8192)
; y - позиция по Y (от 0 до 8192)
; w - ширина бара
; h - высота бара

hpNamePosX_NEW=150
; Позиция надписи Жизнь по X (от 0 до 8192)

hpNamePosY_NEW=7200
; Позиция надписи Жизнь по Y (от 0 до 8192)

manaNamePosX_NEW=150
; Позиция надписи Мана по X (от 0 до 8192)

manaNamePosY_NEW=7764
; Позиция надписи Мана по Y (от 0 до 8192)

swimNamePosX_NEW=150
; Позиция надписи Воздух по X (от 0 до 8192)

swimNamePosY_NEW=6636
; Позиция надписи Воздух по Y (от 0 до 8192)

swimName=EMPTY
; Надпись для Воздуха
; по умолчанию EMPTY

bNeedExtSwim=1
;
; по умолчанию 1

bAllowSpeedInInv=0
; Позволяет использовать ускорение в инвентаре
; по умолчанию 0

speedText=Speed mode:  x
; Надпись ускорения (Для перевода)
; по умолчанию Speed mode:  x

bshowPlayerSwimName=1
; позволяет отключить надпись у бара воздуха
; по умолчанию 1

bNeedShowValuesInternalBars=1
; позволяет разместить числа в центре бара
; по умолчанию 1

bAllowSpeedInAllTime=0
; позволяет использовать ускорение без ограничений
; по умолчанию 0





Для работы требуется


- Для постоянного показа мана нужно поставить ShowManaBar = 2 в systempack.ini
- Показ информации о защите и силе моба по левому shift + KEY_I (KEY_I можно поменять в готик.ини)

MOUSE_DX
MOUSE_DY
MOUSE_UP
MOUSE_DOWN
MOUSE_LEFT
MOUSE_RIGHT
MOUSE_WHEELUP
MOUSE_WHEELDOWN
MOUSE_BUTTONLEFT
MOUSE_BUTTONRIGHT
MOUSE_BUTTONMID
MOUSE_XBUTTON1
MOUSE_XBUTTON2
MOUSE_XBUTTON3
MOUSE_XBUTTON4
MOUSE_XBUTTON5
KEY_ESCAPE
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_0
KEY_MINUS
KEY_EQUALS
KEY_BACK
KEY_TAB
KEY_Q
KEY_W
KEY_E
KEY_R
KEY_T
KEY_Y
KEY_U
KEY_I
KEY_O
KEY_P
KEY_LBRACKET
KEY_RBRACKET
KEY_RETURN
KEY_LCONTROL
KEY_A
KEY_S
KEY_D
KEY_F
KEY_G
KEY_H
KEY_J
KEY_K
KEY_L
KEY_SEMICOLON
KEY_APOSTROPHE
KEY_GRAVE
KEY_LSHIFT
KEY_BACKSLASH
KEY_Z
KEY_X
KEY_C
KEY_V
KEY_B
KEY_N
KEY_M
KEY_COMMA
KEY_PERIOD
KEY_SLASH
KEY_RSHIFT
KEY_MULTIPLY
KEY_LMENU
KEY_SPACE
KEY_CAPITAL
KEY_F1
KEY_F2
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_F10
KEY_NUMLOCK
KEY_SCROLL
KEY_NUMPAD7
KEY_NUMPAD8
KEY_NUMPAD9
KEY_SUBTRACT
KEY_NUMPAD4
KEY_NUMPAD5
KEY_NUMPAD6
KEY_ADD
KEY_NUMPAD1
KEY_NUMPAD2
KEY_NUMPAD3
KEY_NUMPAD0
KEY_DECIMAL
KEY_OEM_102
KEY_F11
KEY_F12
KEY_F13
KEY_F14
KEY_F15
KEY_KANA
KEY_ABNT_C1
KEY_CONVERT
KEY_NOCONVERT
KEY_YEN
KEY_ABNT_C2
KEY_NUMPADEQUALS
KEY_PREVTRACK
KEY_AT
KEY_COLON
KEY_UNDERLINE
KEY_KANJI
KEY_STOP
KEY_AX
KEY_UNLABELED
KEY_NEXTTRACK
KEY_NUMPADENTER
KEY_RCONTROL
KEY_MUTE
KEY_CALCULATOR
KEY_PLAYPAUSE
KEY_MEDIASTOP
KEY_VOLUMEDOWN
KEY_VOLUMEUP
KEY_WEBHOME
KEY_NUMPADCOMMA
KEY_DIVIDE
KEY_SYSRQ
KEY_RMENU
KEY_PAUSE
KEY_HOME
KEY_UP
KEY_PRIOR
KEY_LEFT
KEY_RIGHT
KEY_END
KEY_DOWN
KEY_NEXT
KEY_INSERT
KEY_DELETE
KEY_LWIN
KEY_RWIN
KEY_APPS
KEY_POWER
KEY_SLEEP
KEY_WAKE
KEY_WEBSEARCH
KEY_WEBFAVORITES
KEY_WEBREFRESH
KEY_WEBSTOP
KEY_WEBFORWARD
KEY_WEBBACK
KEY_MYCOMPUTER
KEY_MAIL
KEY_MEDIASELECT
KEY_BACKSPACE
KEY_NUMPADSTAR
KEY_LALT
KEY_CAPSLOCK
KEY_NUMPADMINUS
KEY_NUMPADPLUS
KEY_NUMPADPERIOD
KEY_NUMPADSLASH
KEY_RALT
KEY_UPARROW
KEY_PGUP
KEY_LEFTARROW
KEY_RIGHTARROW
KEY_DOWNARROW
KEY_PGDN

Hedin_Union_Gothic_ScreenInfo.vdf
Скачать актуальные версии плагинов (google)
Скачать актуальные версии плагинов (yandex)
 
Последнее редактирование модератором:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.281
Благодарности
4.581
Баллы
625
Бары над головами это конечно красиво, на больших дистанциях больно дофига обзор перекрывают. Добавь зависимость размера бара от дистанции. С фиксированными min и max обязательно.
И линк на сорсы оставь.
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.887
Баллы
335
Oк, после НГ уже выложу на гитхаб и добавлю зависимость от расстояния.. Пока выложил, что бы не потерялось в теме миниплагинов. Всех готоманов с Наступающим :)
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.039
Благодарности
1.814
Баллы
240
Возможно, стоит убрать привязку координат надписей об уроне к текущему положению НПС.
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.887
Баллы
335
Slavemaster, Мне привязка нравится, правда сейчас есть небольшой косяк, когда моб умирает, то вместе с ним некрасиво дергается надпись, один раз. В видео, на падальщиках это видно. Я постараюсь это поправить. И возможно добавлю еще один режим отображения, когда урон вообще не привязан к позиции. Пускай опционально будет.
 

KyMuP_1

Участник форума
Регистрация
5 Фев 2020
Сообщения
91
Благодарности
36
Баллы
130
hedin7, советую отключить в игре переключение на вид от первого лица на F и назначить ускорение на F
Это только лишь из-за удобства ? я так понимаю.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.281
Благодарности
4.581
Баллы
625
hedin7,
1609424311965.png


Свичём через Union.GetSystemLanguage() мультиланг задай в глобал вар какой-нибудь
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.887
Баллы
335
Для русского, англ, немецкого и польского задал перевод здоровья в зависимости от языка, надеюсь в "Gesundheit" и "Zdrowie" не ошибся. Для остальных языков вообще просто HP, MP сделал.

C++:
         defaultManaName = "Mana";
        switch (Union.GetSystemLanguage())
        {
            case Lang_Rus: defaultHealthName = "Жизнь"; defaultManaName = "Мана"; break;
            case Lang_Eng: defaultHealthName = "Health";  break;
            case Lang_Ger: defaultHealthName = "Gesundheit"; break;
            case Lang_Pol: defaultHealthName = "Zdrowie";     break;
            default: defaultHealthName = "HP"; defaultManaName = "MP"; break;
        }

Gratt, есть небольшой вопрос по string.Split. Я пробовал его использовать, что бы огород не городить, но почему-то на нем рандомно крашится игра. Как его правильно использовать?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.281
Благодарности
4.581
Баллы
625
Я пробовал его использовать, что бы огород не городить, но почему-то на нем рандомно крашится игра. Как его правильно использовать?
Исправление выйдет с выходом обновленного SDK. Я почему-то забыл заменить все функции работы с памятью в массиве Array на аналоги с приставкой shi_, прим. malloc => shi_malloc. Эти аналоги также применяются в операторах new/delete. Функции используются для того, чтобы и готика, и плагины, и сам Union использовали одни и те же методы аллокации. В данном случае краш возникает, потому что метод Split возвращает массив, созданный под управлением vc100. А удаление происходит в твоем плагине - под управлением vc140+.
Замени файлы массива по пути C:\ProgramData\Union\SDK\Union\v1.0h\Include\Common и пересобери проект.
 

Вложения

  • ArrayNew.7z
    5,2 KB · Просмотры: 52

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.887
Баллы
335
Спасибо, сплит заработал. Тогда его и буду использовать..
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.887
Баллы
335
Изменения в версии 2.0.2 (обновил видео в шапке)
- Улучшено отображение урона при смерти врага.
- Дефолтные имена для жизни и маны теперь зависят от системного языка. Возможность задать свои имена осталась в gothic.ini
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.281
Благодарности
4.581
Баллы
625
Уточняю. Нельзя, если определение производится через функцию, в которой происходят операции над zstring с использованием методов. Простые определения типа обычной строки не повредят, поскольку конструкторы зеновских классов защищены от выполнения вне своего движка.
Но в любом случае в глобальном пространстве лучше использовать string из SDK.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.039
Благодарности
1.814
Баллы
240
Gratt, я и забыл про этот костыль. Лучше бы мессага выводилась. Тем более, что деструкторы таким же образом не защищены. То есть баг остался, но воспроизвести труднее.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.281
Благодарности
4.581
Баллы
625
Slavemaster, пускать xcall на фатал еррор? Возможно в этом есть смысл.
 

Masty

Участник форума
Регистрация
3 Дек 2020
Сообщения
5
Благодарности
0
Баллы
55
Amazing plugin, i've one suggestion for another small feature that fits the plugin. What about an option in the .ini file to make mana bar show permanently on screen? Many big mods have it but i think it could be a cool addition to the plugin for those who do not have a game with that feature yet!
Keep up the amazing work and thank you!
 
Сверху Снизу