Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
Jack_Stone Понедельник, 17.10.2016, 22:39 | Сообщение # 2641


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

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


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

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


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

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


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

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


Сообщений: 146
Награды: 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 | Сообщение # 2646


Сообщений: 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 | Сообщение # 2647


Сообщений: 146
Награды: 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 | Сообщение # 2648


Старый маппер
Сообщений: 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 | Сообщение # 2649


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

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


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

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


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

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

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


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


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


Double Jumper
Сообщений: 888
Награды: 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 | Сообщение # 2654


Старый маппер
Сообщений: 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 | Сообщение # 2655


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

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


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


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

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


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

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


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


Сообщений: 461
Награды: 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 | Сообщение # 2659


Старый маппер
Сообщений: 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 | Сообщение # 2660


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

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


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


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

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


Сообщений: 461
Награды: 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 | Сообщение # 2663


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

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


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


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


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

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


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


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
ST27 Среда, 08.02.2017, 16:48 | Сообщение # 2667


Сообщений: 461
Награды: 7
Замечания: 0%
 
GetPlayerWeapons()->iAmmo;

Где вместо iAmmo может быть:
m_iShells, m_iBullets, m_iRockets, m_iGrenades, m_iNapalm, m_iSniperBullets, m_iElectricity, m_iIronBalls
Которые объявлены, очевидно, в PlayerWeapons


- My Personal Site -
art-serious Среда, 08.02.2017, 16:55 | Сообщение # 2668


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

То есть узнать текущий тип патронов игрока
Сообщение отредактировал art-serious - Среда, 08.02.2017, 17:06


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
ST27 Среда, 08.02.2017, 17:26 | Сообщение # 2669


Сообщений: 461
Награды: 7
Замечания: 0%
 
Переменной нет, но можно сделать что-то типа такого:
Код
CTString iAmmo = -1;
switch (GetPlayerWeapons()->m_iCurrentWeapon) {
  case WEAPON_SINGLESHOTGUN: iAmmo = AMMO_SHELLS; break;
  case WEAPON_TOMMYGUN: iAmmo = AMMO_BULLETS; break;
  ..
  default: iAmmo = -1;
}

И потом использовать везде iAmmo
И если оно равно -1, то ничего не рендерить

Прочие "AMMO_" можно найти в файле Common/Common.h

Добавлено (08.02.2017, 17:26)
---------------------------------------------
А еще я почему-то написал тип CTString вместо INDEX, ошибочка

- My Personal Site -
art-serious Среда, 08.02.2017, 17:58 | Сообщение # 2670


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Если INDEX, то вместо AMMO_SHELLS в переменную iAmmo заносится "1", судя по Common.h, я так понимаю...




Решено.
Сообщение отредактировал art-serious - Среда, 08.02.2017, 20:42


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