Новые сообщения Участники Правила Поиск
Модератор форума: freeknik, SLAwww, thecre, RealCrazyMan  
Помощь по SDK для Serious Sam 1.05/1.07
art-serious Четверг, 13.10.2016, 17:29 | Сообщение # 2671


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Не хочу показаться попрошайкой, но где можно начать лепить 3D HUD? Понятное дело, что это реализуется там же, где и рендер элементов от первого лица (оружие игрока, как пример). Сигналы изменения текстуры на модели посылать с сурса с параметрами игрока? Где начать копать?
Сообщение отредактировал art-serious - Четверг, 13.10.2016, 17:47


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
ST27 Четверг, 13.10.2016, 20:36 | Сообщение # 2672


Сообщений: 457
Награды: 7
Замечания: 0%
 
Я б завел каких-нибудь переменных (ну или использовал en_fHealth, m_fArmor и прочее) и обновлял бы все рендеримые текстуры и модели в зависимости от изменения числа в каком-нибудь каждотикном RenderGameView.
А начать? - ну, припили все компоненты худа (модели и текстуры), добавь в пре-кэш и потом уже в рендер. Не знаю, почему это должно показаться слишком сложным, хотя сам 3д худ делать не пробовал

Добавлено (13.10.2016, 20:36)
---------------------------------------------
Ну и да, не забыть стащить из RenderWeaponModel относительные координаты игрока для рендера худа. (свою функцию рендера можешь как раз запихать рядом со строкой GetPlayerWeapons()->RenderWeaponModel(аргументы) или что-то такое в Player)

- My Personal Site -
Jack_Stone Понедельник, 17.10.2016, 22:01 | Сообщение # 2673


Сообщений: 142
Награды: 1
Замечания: 0%
 
Вот такое выдает:

Код
--------------------Configuration: EntitiesMP - Win32 Release--------------------
Compiling...
HUD.cpp
D:\IMAGES\FOR GAMES\SERIOUSSAM\SAM\NE\Sources\EntitiesMP\Common\HUD.cpp(686) : error C2039: 'm_iMaxAKBullets' : is not a member of 'CPlayerWeapons'
        D:\IMAGES\FOR GAMES\SERIOUSSAM\SAM\NE\SOURCES\EntitiesMP/PlayerWeapons.h(103) : see declaration of 'CPlayerWeapons'
AmmoItem.cpp
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/AmmoItem.es(192) : error C2065: 'AV_AKBULLETS' : undeclared identifier
AmmoPack.cpp
D:\IMAGES\FOR GAMES\SERIOUSSAM\SAM\NE\Sources\EntitiesMP\AmmoPack.cpp(34) : error C2065: 'MAX_AKBULLETS' : undeclared identifier
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/AmmoPack.es(99) : error C2065: 'AV_AKBULLETS' : undeclared identifier
PlayerWeapons.cpp
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/PlayerWeapons.es(585) : error C2065: 'MAX_AKBULLETS' : undeclared identifier
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/PlayerWeapons.es(2653) : error C2065: 'm_iMaxAKBullets' : undeclared identifier
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/PlayerWeapons.es(2665) : error C2065: 'AMMO_AKBULLETS' : undeclared identifier
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/PlayerWeapons.es(3131) : error C2065: 'AV_AKBULLETS' : undeclared identifier
Generating Code...
Error executing cl.exe.

EntitiesMP.dll - 8 error(s), 0 warning(s)

Добавлено (14.10.2016, 00:02)
---------------------------------------------
больше всего не понятна эта строка:

Код
D:/Images/For games/SeriousSam/Sam/NE/Sources/EntitiesMP/PlayerWeapons.es(585) : error C2065: 'MAX_AKBULLETS' : undeclared identifier


потому на 585 строке вот это на самом деле:

Код
31 FLOAT m_fRayHitDistance = 100.0f,   // distance from hit point

Добавлено (17.10.2016, 22:01)
---------------------------------------------
Никто не знает, почему при попытке запуска NETRICSA игра может зависать???

ST27 Понедельник, 17.10.2016, 22:15 | Сообщение # 2674


Сообщений: 457
Награды: 7
Замечания: 0%
 
GameMP надо пересобирать

- My Personal Site -
Jack_Stone Понедельник, 17.10.2016, 22:39 | Сообщение # 2675


Сообщений: 142
Награды: 1
Замечания: 0%
 
так я в GameMP не менял ничего. Я ввёл CannonItem и SniperItem. Может из-за этого? В Нетриксе же как раз WeaponItem используется, как я понимаю, а этих 2х изначально не было.

ST27 Понедельник, 17.10.2016, 22:58 | Сообщение # 2676


Сообщений: 457
Награды: 7
Замечания: 0%
 
Я конкретно не знаю, что может вылетать, но пересобирать GameMP надо независимо от того, менял ты его или нет. Только это исправляет вылет

- My Personal Site -
Jack_Stone Понедельник, 17.10.2016, 23:05 | Сообщение # 2677


Сообщений: 142
Награды: 1
Замечания: 0%
 
Что значит пересобирать?

ST27 Понедельник, 17.10.2016, 23:32 | Сообщение # 2678


Сообщений: 457
Награды: 7
Замечания: 0%
 
Ну господи, скомпилировать

- My Personal Site -
Jack_Stone Вторник, 18.10.2016, 11:14 | Сообщение # 2679


Сообщений: 142
Награды: 1
Замечания: 0%
 
вот что получилось:

Код
--------------------Configuration: GameMP - Win32 Release--------------------
Linking...
   Creating library Release/GameMP.lib and object Release/GameMP.exp
CompModels.obj : error LNK2001: unresolved external symbol "void __cdecl Particles_AirElemental_Comp(class CModelObject *,float,float,class CPlacement3D)" (?Particles_AirElemental_Comp@@YAXPAVCModelObject@@MMVCPlacement3D@@@Z)
CompModels.obj : error LNK2001: unresolved external symbol "void __cdecl Particles_Burning_Comp(class CModelObject *,float,class CPlacement3D)" (?Particles_Burning_Comp@@YAXPAVCModelObject@@MVCPlacement3D@@@Z)
Computer.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall CPlayer::GetStats(class CTString &,enum CompStatType,long)" (__imp_?GetStats@CPlayer@@QAEXAAVCTString@@W4CompStatType@@J@Z)
Game.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall CPlayer::GetStats(class CTString &,enum CompStatType,long)" (__imp_?GetStats@CPlayer@@QAEXAAVCTString@@W4CompStatType@@J@Z)
Computer.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) class CPlayer * cmp_ppenDHPlayer" (__imp_?cmp_ppenDHPlayer@@3PAVCPlayer@@A)
Computer.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) class CPlayer * cmp_ppenPlayer" (__imp_?cmp_ppenPlayer@@3PAVCPlayer@@A)
WEDInterface.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) class CPlayer * cmp_ppenPlayer" (__imp_?cmp_ppenPlayer@@3PAVCPlayer@@A)
Computer.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int cmp_bUpdateInBackground" (__imp_?cmp_bUpdateInBackground@@3HA)
Computer.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int cmp_bInitialStart" (__imp_?cmp_bInitialStart@@3HA)
Game.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl ctl_ComposeActionPacket(class CPlayerCharacter const &,class CPlayerAction &,int)" (__imp_?ctl_ComposeActionPacket@@YAXABVCPlayerCharacter@@AAVCPlayerAction@@H@
Z)
Game.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) void * ctl_pvPlayerControls" (__imp_?ctl_pvPlayerControls@@3PAXA)
Game.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) long const ctl_slPlayerControlsSize" (__imp_?ctl_slPlayerControlsSize@@3JB)
Game.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) long plr_iHiScore" (__imp_?plr_iHiScore@@3JA)
Release/GameMP.dll : fatal error LNK1120: 11 unresolved externals
Error executing link.exe.

GameMP.dll - 14 error(s), 0 warning(s)

Добавлено (18.10.2016, 11:14)
---------------------------------------------
Я нашел совет по этому поводу:

Цитата
Похоже на проблему с зависимостями. Project -> Dependencies -> убедись, что для GameMP стоит галочка напротив EntitiesMP.


Я так и сделал, но компилируется не GameMP.dll, а EntitiesMP.dll!

Почему так??


seriously_petr Вторник, 18.10.2016, 11:30 | Сообщение # 2680


Сообщений: 446
Награды: 4
Замечания: 0%
 
Jack_Stone, Открою тебе страшную тайну. GameMP нельзя собрать без EntitiesMP потому что в GameMP находится код, который зависит от EntitiesMP. :\

Нетрикса может вылетать, если ты, например, добавлял новые поля в класс игрока. Чтобы исправить вылет при открытии Нетриксы тебе нужно собрать GameMP.

А насчёт ошибок сборки GameMP. Они указывают на то, что у тебя .lib файл EntitiesMP.lib кладётся не в то место, либо у тебя прописаны пути к библиотекам неправильно в Options -> Directories. <_<
Сообщение отредактировал seriously_petr - Вторник, 18.10.2016, 11:34


Jack_Stone Среда, 19.10.2016, 00:18 | Сообщение # 2681


Сообщений: 142
Награды: 1
Замечания: 0%
 
Я знаю, что GameMP зависит от EntitiesMP. Для устранения ошибки надо прописать в GameMP все изменения, сделанные в EntitiesMP? И как нужно расставить галочки в Dependencies правильно? у меня было так: GameMP - ничего, GameGUIMP - на EntitiesMP, EntitiesMP - на GameMP. И вот с такой расстановкой компиляция GameMP.dll хотя бы начиналась, потом шли ошибки. А вот с такой расстановкой -
Цитата
Похоже на проблему с зависимостями. Project -> Dependencies -> убедись, что для GameMP стоит галочка напротив EntitiesMP.
- компилируется EntitiesMP.

Добавлено (18.10.2016, 20:43)
---------------------------------------------
Я попробовал скомпилировать на "чистом" SDK - то же самое, пути к библиотекам прописаны правильно, я проверял. EntitiesMP то компилируется, с этой библиотекой всё нормально.

Добавлено (19.10.2016, 00:18)
---------------------------------------------

Цитата
Они указывают на то, что у тебя .lib файл EntitiesMP.lib кладётся не в то место


а где он вообще расположен то, EntitiesMP.lib, я не могу найти его.


art-serious Среда, 14.12.2016, 10:44 | Сообщение # 2682


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Пробую, значит, уменьшить размер иконки.

// reduce the size of icon slightly
_fCustomScaling = ClampDn( _fCustomScaling*0.8f, 0.5f);
...

_fCustomScaling = ClampDn( _fCustomScaling*0.5f, 0.5f)*_fCustomScaling; //reduce icon size 0.5
HUD_DrawIcon( fCol, fRow+fMoverY, *_aaiAmmo[i].ai_ptoAmmo, colIcon, fNormValue, FALSE);
_fCustomScaling = ClampDn( _fCustomScaling*0.8f, 0.5f);


С основными иконками, как HSuper, Armor, Weapons, прокатило. При изменении размера интерфейса через /hud_fScaling, эти иконки успешно меняют размер (вплоть до 1.0f. Выше - вылезают за рамки). Начиная с рендера всех видов патронов и далее (попытками) - размер то больше, то меньше, то не зависим от Scaling, последний вид патронов (включая супер бомбу) больше предыдущих иконок.

Или я это не так делаю и есть более простой способ ресайзнуть иконки.

В ССРани, размер иконки фиксированный, какое бы разрешение у неё не было.
Сообщение отредактировал art-serious - Среда, 14.12.2016, 16:41


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
Jack_Stone Воскресенье, 29.01.2017, 18:21 | Сообщение # 2683


Сообщений: 142
Награды: 1
Замечания: 0%
 
Доброго времени суток :) подскажите, пожалуйста, где прописано оружие, имеющееся при появлении на уровне.

CAHEK Воскресенье, 29.01.2017, 18:48 | Сообщение # 2684


Сообщений: 794
Награды: 16
Замечания: 0%
 
Может быть в Player start, нет ?

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Jack_Stone Воскресенье, 29.01.2017, 22:05 | Сообщение # 2685


Сообщений: 142
Награды: 1
Замечания: 0%
 
я смотрел там, но что-то не нашел

Добавлено (29.01.2017, 22:05)
---------------------------------------------
я имею в виду - где приписывается то, что у Сэма при появлении нож и пистолет. Хочу добавить еще оружие.

art-serious Вторник, 31.01.2017, 12:53 | Сообщение # 2686


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Наверное, где-то в Player.es
А так, это делается уже в SED. У Player marker есть Give Weapons


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
Heming_Hitrowski Вторник, 31.01.2017, 14:13 | Сообщение # 2687


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
В PlayerWeapons.es, если ты поищешь по всему документу "0x03", то рано или поздно наткнешься на эту строчку в InitializeWeapons

m_iAvailableWeapons |= 0x03|iGiveWeapons;

0x03 - это нож и кольт. Можешь попробовать поиграться с этим значением, но по идее это в СЕД'е делается, да.

(но потом там таки из плеер старта берутся параметры, так что этот вариант подходит разве что для того, чтобы изначально дать только один нож, проставив здесь 0x01 и в плеерстарте в параметре Give Weapons единичку)
Сообщение отредактировал Heming_Hitrowski - Вторник, 31.01.2017, 14:50


art-serious Вторник, 31.01.2017, 15:07 | Сообщение # 2688


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Цитата STPROD ()
Я б завел каких-нибудь переменных (ну или использовал en_fHealth, m_fArmor и прочее)

Их в PlayerWeapons.es надо, я так понял
Сообщение отредактировал art-serious - Вторник, 31.01.2017, 18:37


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
art-serious Вторник, 31.01.2017, 17:17 | Сообщение # 2689


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
С кодом помог Heming_Hitrowski, пока займусь расстановкой элементов...

Прикрепления: 0950370.jpg (8.9 Kb)


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
Jack_Stone Вторник, 31.01.2017, 19:22 | Сообщение # 2690


Сообщений: 142
Награды: 1
Замечания: 0%
 
Heming_Hitrowski, большое спасибо :) да, нашел :)

art-serious Воскресенье, 05.02.2017, 20:48 | Сообщение # 2691


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Player.es

Как/Чем можно взять значение оставшегося времени паверапа в секундах?


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
ST27 Воскресенье, 05.02.2017, 21:24 | Сообщение # 2692


Сообщений: 457
Награды: 7
Замечания: 0%
 
m_tmInvisibility
m_tmInvulnerability
m_tmSeriousDamage
m_tmSeriousSpeed


<что-то из вышеперечисленного> - _pTimer->CurrentTick();

А если хочешь целые секунды, то используешь функции типа Floor(float) или Ceil(float) (если такие имеются)


- My Personal Site -
art-serious Понедельник, 06.02.2017, 09:35 | Сообщение # 2693


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Отпишусь о результатах...




О божечки, оно работает!

Теперь трабла с лупингом анимационной текстуры на моделе, в том же Player.es

Пишу
sdicon.mo_toTexture.PlayAnim(iSDIcon, 1);
либо
sdicon.mo_toTexture.PlayAnim(iSDIcon, TRUE);

Оба бестолку
Сообщение отредактировал art-serious - Понедельник, 06.02.2017, 10:24


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
ST27 Понедельник, 06.02.2017, 10:41 | Сообщение # 2694


Сообщений: 457
Награды: 7
Замечания: 0%
 
void PlayAnim(INDEX iNew, ULONG ulFlags);

Там флаги, а не TRUE/FALSE. Если поставить 0, то наверняка повторяться не будет, а чтобы повторялось, нужно вписать AOF_LOOPING.


- My Personal Site -
art-serious Понедельник, 06.02.2017, 10:56 | Сообщение # 2695


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Всё стопорится на первом кадре анимации

[ zc-lab.org ] [ Операция "Новый год" - 40% ]
ST27 Понедельник, 06.02.2017, 11:32 | Сообщение # 2696


Сообщений: 457
Награды: 7
Замечания: 0%
 
Может неправильно что-то в первом аргументе? В том же ModelHolder2 все работает (наверное? просто я никогда не использовал это) и написано mo_toTexture.PlayAnim(m_iTextureAnimation, AOF_LOOPING);

Добавлено (06.02.2017, 11:32)
---------------------------------------------
Или попробуй вписать "AOF_LOOPING|!AOF_PAUSED"

- My Personal Site -
art-serious Понедельник, 06.02.2017, 11:37 | Сообщение # 2697


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Результат тот же - первый кадр.

[ zc-lab.org ] [ Операция "Новый год" - 40% ]
Heming_Hitrowski Понедельник, 06.02.2017, 21:23 | Сообщение # 2698


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
Артем, попробуй AOF_LOOPING|AOF_NORESTART. В твоем случае, скорее всего, эта анимация устанавливается каждый тик, поэтому она всегда на первом кадре. Возможно, вышеупомянутые флаги помогут решить проблему.
Сообщение отредактировал Heming_Hitrowski - Понедельник, 06.02.2017, 21:23


art-serious Понедельник, 06.02.2017, 21:51 | Сообщение # 2699


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Тут всплыла очевидная хрень, которая не даёт раскрыть анимацию...

[ zc-lab.org ] [ Операция "Новый год" - 40% ]
art-serious Среда, 08.02.2017, 15:43 | Сообщение # 2700


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Player.es
Как можно сослаться на конкретный вид боеприпасов?
Сообщение отредактировал art-serious - Среда, 08.02.2017, 16:15


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
Поиск:

Статистика