HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Xash 0.91 build 1832 open beta-testing (https://hlfx.ru/forum/showthread.php?threadid=3257)
Отправлено fire64 13-04-2012 в 18:35:
C++ Source Code:
1 | signed int __cdecl Initialize(const void *a1, int a2) |
3 | signed int result; // eax@2 |
4 | const CHAR *v3; // esi@3 |
13 | HMODULE v12; // eax@25 |
15 | int v14; // [sp+Ch] [bp-400h]@17 |
16 | const CHAR LibFileName; // [sp+20Ch] [bp-200h]@11 |
18 | memcpy(&dword_1A21BA0, a1, 0x214u); |
23 | v3 = "filesystem_stdio.dll"; |
24 | if ( dword_1A21C5C("-steam", 0) ) |
25 | v3 = "filesystem_steam.dll"; |
26 | v4 = (HMODULE)sub_1959EA0(v3); |
33 | dword_1A21DB8 = ((int (__cdecl *)(_DWORD, _DWORD))v5)("VFileSystem009", 0); |
36 | if ( dword_1A21D0C("cl_dlls/particleman.dll", &LibFileName, 512) ) |
38 | v6 = (HMODULE)sub_1959EA0(&LibFileName); |
43 | v8 = ((int (__cdecl *)(_DWORD, _DWORD))v7)("create_particleman", 0); |
47 | (*(void (__thiscall **)(_DWORD, _DWORD))(*(_DWORD *)v8 + 4))(v8, &dword_1A21BA0); |
48 | (*(void (__stdcall **)(_DWORD))(*(_DWORD *)dword_1A21DE0 + 24))(276); |
49 | (*(void (__stdcall **)(_DWORD))(*(_DWORD *)dword_1A21DE0 + 24))(304); |
63 | if ( dword_1A21D0C("cl_dlls\\GameUI.dll", &v14, 512) ) |
65 | v9 = (HMODULE)sub_1959EA0((LPCSTR)&v14); |
69 | v10 = sub_1959F00(v9); |
73 | dword_1A21DC8 = ((int (__cdecl *)(_DWORD, _DWORD))v10)("GameConsole003", 0); |
74 | dword_1A21DC4 = ((int (__cdecl *)(_DWORD, _DWORD))v11)("GameUI007", 0); |
75 | dword_1A21DC0 = ((int (__cdecl *)(_DWORD, _DWORD))v11)("CareerUI001", 0); |
76 | dword_1A21DCC = ((int (__cdecl *)(_DWORD, _DWORD))v11)("MusicManager001", 0); |
77 | if ( dword_1A21D0C("Bin/TrackerUI.dll", &v14, 512) ) |
79 | v12 = (HMODULE)sub_1959EA0((LPCSTR)&v14); |
81 | v13 = sub_1959F00(v12); |
84 | dword_1A21DD8 = ((int (__cdecl *)(_DWORD, _DWORD))v13)("FriendsUser001", 0); |
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 13-04-2012 в 18:44:
Ну в целом - да. Весьма похоже, что контра пользует этот gameUI.
Но скажитъе пожалуйста, почему же в таком случае мы про унутреннее устройство этого GameUi не знаем вообще ничего? Ведь по идее это пользовательская библиотека. Ну, раз уж она лежит в папке cl_dlls.
Да и particleman.dll вообщем-то тоже. Но у нас к ней нету не то чтобы сорцев. У нас даже описаний интерфейсов нету. По-моему это самое натуральное издевательство.
ЗЫ. FiEctro как-то доставал описание интерфейса от GameUI, оно должно лежать где-то здесь, в соседних темах. Хотя этот gameUI наверняка захочет волшебную дллку filesystem_steam.dll ну или что-то в этом роде.
Учитывая, что это уже новый дизайн, в стиле хл2 и все библиотеки линкуются динамически.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено qpAHToMAS 13-04-2012 в 19:21:
Отправлено a-kush-er 13-04-2012 в 20:08:
Дядя Миша
билд 1874, в других билдах такого у меня не было.
Отправлено marikcool 13-04-2012 в 20:21:
Цитата:
qpAHToMAS писал:
particleman.dll в новых версиях клиента CS 1.6 даже не присутствует. На старых его еще удаляли — дым от дымовой гранаты пропадал, а сейчас все без него тип-то
он находится в valve/cl_dlls, и некуда не делся.
а если initilizite не вызывать а напрямую структуру закопировать
в &gEngfuncs (то есть в &dword_1A21BA0 - если это относительный адресс) ?
Отправлено Дядя Миша 14-04-2012 в 12:24:
a-kush-er у меня сейчас 1892 билд.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено underworlddemon 15-04-2012 в 12:49:
Цитата:
Дядя Миша писал:
у меня сейчас 1892 билд.
пока не выкладывал ?
в шапке темы гораздо более маленький билд
Отправлено Дядя Миша 15-04-2012 в 13:08:
Цитата:
underworlddemon писал:
пока не выкладывал ?
пока нет.
Да там мало что изменилось. Починил баг в меню, прикрутил раздельные регуляторы громкости для музыки и звуков, т.е. регулятор музыки больше не зависит от громкости звука в игре (как в хл). Исправил баг в звуковом движке, благодаря которому некоторые звуки внезапно начинали играть совсем не оттуда (например на карте e1m5 в римейке кваки) ну и выполнил первичную имплементацию расширенного клиентского интерфейса.
Из имплиминтированных функций:
pfnGetCvarList
pfnGetCmdList
pfnCvarName
pfnCmdName
pfnGetServerTime
pfnGetGravity
pfnPrecacheSprite
pfnSPR_DrawGeneric
LocalPlayerInfo_ValueForKey
pfnStartDynamicSound
pfnMP3_InitStream (флаг 1 я принял как LOOP)
pfnSys_FloatTime
pfnStartDynamicSound2
pfnFillRGBA2
вот такие пирожки.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 15-04-2012 в 17:00:
Цитата:
Дядя Миша писал:
Ну в целом - да. Весьма похоже, что контра пользует этот gameUI.
На этом GameUI.dll очень сильно завязаны всё менюшки в КС. Ну там настройки прицела и всякие другие мультиплеерные настроечки, отображение менюшек карьеры в Кондишн Зеро и проч.
Цитата:
Дядя Миша писал:
Но скажитъе пожалуйста, почему же в таком случае мы про унутреннее устройство этого GameUi не знаем вообще ничего? Ведь по идее это пользовательская библиотека. Ну, раз уж она лежит в папке cl_dlls.
Ну как бы если Валвэ ни то что не выпустили ни одного СДК под стим-версию, даже инфы о новых функциях не дали, то следовательно нет ничего и про GameUI. Там видимо всё тесно переплетено со стимовским интерфейсом, вот они и бояться, что чего-нибудь хакнут. Вообще странный подход - делать так много зависимостей пользовательских библиотек от библиотек системы цифровой дистрибьюции. Да ещё и таким образом, что от версии к версии что-нибудь изламывается, и клиент билда контры 2007 года не работает в движке версии 2008 года. При том, что кардинальных изменений в сам движок, как это было с ВОН-хл внесено не было.
Отправлено Дядя Миша 15-04-2012 в 17:31:
ну вот этот почерк - делать несовместимые версии, херить старые зависимости, вводить идиотские функции косвенно указывает на тот факт, что valve обновила состав погроммиздов, набрав молодых дурачков.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 15-04-2012 в 17:39:
>> ЗЫ. FiEctro как-то доставал описание интерфейса от GameUI, оно должно лежать где-то здесь, в соседних темах. Хотя этот gameUI наверняка захочет волшебную дллку filesystem_steam.dll ну или что-то в этом роде.
Оно лежит в единственном месте - у меня на винте. Я предлагал включить в СДК мол "чтобы было", но как грится интерфейс к успеху шел. А там не только для КС там и для КСКЗ было.
C++ Source Code:
1 | //======================================================================= |
2 | // Copyright XashXT Group 2010 © |
3 | //======================================================================= |
5 | class IGameUI007 : public IBaseInterface |
8 | // virtual destructor from IBaseInterface |
11 | // Phil: Implementation detail: actual factorys are from unknown, |
12 | // vgui2.dll, filesystem.dll, gameui.dll, client.dll |
13 | virtual bool Init( CreateInterfaceFn *factoryList, int numFactories ) = 0; |
16 | virtual void Start( struct cl_enginefuncs_s *enginefuncs, int interfaceVersion, IAppSystem *system ) = 0; |
19 | virtual void Shutdown() = 0; |
22 | // Assuming this is the same as HL2 version... |
23 | // Activates the menus, returns 0 if it doesn't want to handle it |
24 | virtual int ActivateGameUI() = 0; |
27 | virtual void ActivateDemoUI() = 0; |
30 | virtual bool HasExclusiveInput() = 0; |
33 | // Assuming this is the same as HL2 version... |
34 | virtual void RunFrame() = 0; |
37 | virtual void ConnectToServer( const char *game, int IP, int port ) = 0; |
40 | virtual void DisconnectFromServer() = 0; |
43 | // Assuming this is the same as HL2 version... |
44 | virtual void HideGameUI() = 0; |
47 | // Assuming this is the same as HL2 version... |
48 | virtual bool IsGameUIActive() = 0; |
51 | virtual void LoadingStarted( const char *resourceType, const char *resourceName ) = 0; |
54 | virtual void LoadingFinished( const char *resourceType, const char *resourceName ) = 0; |
57 | virtual void StartProgressBar( const char *progressType, int numProgressPoints ) = 0; |
60 | virtual int ContinueProgressBar( int progressPoint, float progressFraction ) = 0; |
63 | virtual void StopProgressBar( bool bError, const char *failureReasonIfAny, const char *extendedReason ) = 0; |
66 | virtual int SetProgressBarStatusText( const char *statusText ) = 0; |
69 | virtual void Unknown1( void *u1 ) = 0; |
72 | // Maybe progress bar image/time left? |
73 | virtual void Unknown2( void *u1 ) = 0; |
76 | virtual void Unknown3( void *u1, void *u2 ) = 0; |
79 | virtual void Unknown4( void *u1, void *u2 ) = 0; |
82 | //----------------------------------------------------------------------------- |
83 | // Purpose: interface to game/dev console |
84 | // Phil: Only one difference between Source and GoldSrc versions. |
85 | //----------------------------------------------------------------------------- |
86 | class IGameConsole : public IBaseInterface |
89 | // activates the console, makes it visible and brings it to the foreground |
90 | virtual void Activate() = 0; |
92 | virtual void Initialize() = 0; |
95 | virtual void Hide() = 0; |
98 | virtual void Clear() = 0; |
100 | // return true if the console has focus |
101 | virtual bool IsConsoleVisible() = 0; |
103 | // prints a message to the console |
104 | virtual void Printf(const char *format, ...) = 0; |
106 | // printes a debug message to the console |
107 | virtual void DPrintf(const char *format, ...) = 0; |
109 | // printes a debug message to the console |
110 | // Phil: This function is not present in GoldSrc |
111 | // virtual void ColorPrintf( Color& clr, const char *format, ...) = 0; |
113 | virtual void SetParent( VPANEL parent ) = 0; |
116 | #define GAMECONSOLE_INTERFACE_VERSION "GameConsole003" |
118 | //----------------------------------------------------------------------------- |
120 | //----------------------------------------------------------------------------- |
121 | class IMusicManager : public IBaseInterface |
124 | // virtual destructor from IBaseInterface |
126 | // param1 must be one of [2, 3, 4, 5, 6, 7] |
127 | // param2 is "looping" if non-zero |
128 | #define MUSICMANAGER_NOT_LOOPING 0 |
129 | #define MUSICMANAGER_LOOPING 1 |
130 | virtual void StartTrack( int track, char looping ) = 0; |
132 | virtual void StopTrack() = 0; |
134 | virtual void FadeoutTrack() = 0; |
136 | virtual bool IsPlayingTrack( int track ) = 0; |
138 | // Returns whether current track is number 1 ??? |
139 | virtual bool Unknown1() = 0; |
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 15-04-2012 в 17:43:
Цитата:
FiEctro писал:
//=======================================================================
// Copyright XashXT Group 2010 ©
//=======================================================================
ХРЕНАСЕ 
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 15-04-2012 в 17:45:
Дядя Миша
Это я добавил, внадежде что дурачки буржуи скопипастят
.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено manuel 15-04-2012 в 20:42:
что, если мы объединим xash в GlQrack http://quakeone.com/qrack/download.php как это modificasion половины жизни (xash) двухлетний Quake1, хотя и выглядит немного технологии Quake 2

__________________
: Patsak:
Отправлено Дядя Миша 15-04-2012 в 20:52:
QRack - это самая обычная первоквака с парой занимательных эффектов.
Рядом с ксашем и близко не валялась. Нечего там объединять.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'