HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- проблема с туманом (https://hlfx.ru/forum/showthread.php?threadid=956)
Отправлено NorthWanderer 23-10-2007 в 13:34:
проблема с туманом
делал туман по тутору на http://www.game-lab.com/index.php?s...n=showtut&id=15
так возникает ошибка при компиляции:
fatal error C1083: Cannot open include file: 'glgl.h': No such file or directory
opengl32.lib подключил
Отправлено XaeroX 23-10-2007 в 14:08:
NorthWanderer ссылка не пашет...
Подозреваю, что пропущен слеш между gl и gl.h
__________________
Отправлено NorthWanderer 23-10-2007 в 14:40:
когда я пишу "gl/gl.h"
вылазиет ошибка:
single-player source\common\r_studioint.h(136) : error C2629: unexpected 'void ('
single-player source\common\r_studioint.h(136) : error C2238: unexpected token(s) preceding ';'
да вот та статья похоже она на француском:
Отправлено XaeroX 23-10-2007 в 15:10:
NorthWanderer тебе надо писать вопервых #include <gl/gl.h>, а вовторых, покажи код, который выдает ошибки. Либо ты чтото там испортил сам, либо у тебя глючный gl.h
__________________
Отправлено NorthWanderer 23-10-2007 в 15:35:
это в R_STUDIOINT.H
C++ Source Code:
1 | void ( *SV_StudioSetupBones )( struct model_s *pModel, |
6 | const byte *pcontroller, |
9 | const edict_t *pEdict ); |
10 | } sv_blending_interface_t; |
Добавлено 23-10-2007 в 21:35:
gl.h дифаултный с Visual C++ 6.0
Отправлено XaeroX 23-10-2007 в 16:00:
NorthWanderer у тебя какая то чушь в R_STUDIOINT.H. Замени на оригинал из СДК.
__________________
Отправлено NorthWanderer 23-10-2007 в 16:28:
я покзал где ошика возникает вот полный фаил
C++ Source Code:
1 | //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ |
6 | //============================================================================= |
8 | #if !defined( R_STUDIOINT_H ) |
14 | #define STUDIO_INTERFACE_VERSION 1 |
16 | typedef struct engine_studio_api_s |
18 | // Allocate number*size bytes and zero it |
19 | void *( *Mem_Calloc ) ( int number, size_t size ); |
20 | // Check to see if pointer is in the cache |
21 | void *( *Cache_Check ) ( struct cache_user_s *c ); |
22 | // Load file into cache ( can be swapped out on demand ) |
23 | void ( *LoadCacheFile ) ( char *path, struct cache_user_s *cu ); |
24 | // Retrieve model pointer for the named model |
25 | struct model_s *( *Mod_ForName ) ( const char *name, int crash_if_missing ); |
26 | // Retrieve pointer to studio model data block from a model |
27 | void *( *Mod_Extradata ) ( struct model_s *mod ); |
28 | // Retrieve indexed model from client side model precache list |
29 | struct model_s *( *GetModelByIndex ) ( int index ); |
30 | // Get entity that is set for rendering |
31 | struct cl_entity_s * ( *GetCurrentEntity ) ( void ); |
32 | // Get referenced player_info_t |
33 | struct player_info_s *( *PlayerInfo ) ( int index ); |
34 | // Get most recently received player state data from network system |
35 | struct entity_state_s *( *GetPlayerState ) ( int index ); |
37 | struct cl_entity_s * ( *GetViewEntity ) ( void ); |
38 | // Get current frame count, and last two timestampes on client |
39 | void ( *GetTimes ) ( int *framecount, double *current, double *old ); |
40 | // Get a pointer to a cvar by name |
41 | struct cvar_s *( *GetCvar ) ( const char *name ); |
42 | // Get current render origin and view vectors ( up, right and vpn ) |
43 | void ( *GetViewInfo ) ( float *origin, float *upv, float *rightv, float *vpnv ); |
44 | // Get sprite model used for applying chrome effect |
45 | struct model_s *( *GetChromeSprite ) ( void ); |
46 | // Get model counters so we can incement instrumentation |
47 | void ( *GetModelCounters ) ( int **s, int **a ); |
48 | // Get software scaling coefficients |
49 | void ( *GetAliasScale ) ( float *x, float *y ); |
51 | // Get bone, light, alias, and rotation matrices |
52 | float ****( *StudioGetBoneTransform ) ( void ); |
53 | float ****( *StudioGetLightTransform )( void ); |
54 | float ***( *StudioGetAliasTransform ) ( void ); |
55 | float ***( *StudioGetRotationMatrix ) ( void ); |
57 | // Set up body part, and get submodel pointers |
58 | void ( *StudioSetupModel ) ( int bodypart, void **ppbodypart, void **ppsubmodel ); |
59 | // Check if entity's bbox is in the view frustum |
60 | int ( *StudioCheckBBox ) ( void ); |
61 | // Apply lighting effects to model |
62 | void ( *StudioDynamicLight ) ( struct cl_entity_s *ent, struct alight_s *plight ); |
63 | void ( *StudioEntityLight ) ( struct alight_s *plight ); |
64 | void ( *StudioSetupLighting ) ( struct alight_s *plighting ); |
67 | void ( *StudioDrawPoints ) ( void ); |
69 | // Draw hulls around bones |
70 | void ( *StudioDrawHulls ) ( void ); |
71 | // Draw bbox around studio models |
72 | void ( *StudioDrawAbsBBox ) ( void ); |
74 | void ( *StudioDrawBones ) ( void ); |
75 | // Loads in appropriate texture for model |
76 | void ( *StudioSetupSkin ) ( void *ptexturehdr, int index ); |
77 | // Sets up for remapped colors |
78 | void ( *StudioSetRemapColors ) ( int top, int bottom ); |
79 | // Set's player model and returns model pointer |
80 | struct model_s *( *SetupPlayerModel ) ( int index ); |
81 | // Fires any events embedded in animation |
82 | void ( *StudioClientEvents ) ( void ); |
83 | // Retrieve/set forced render effects flags |
84 | int ( *GetForceFaceFlags ) ( void ); |
85 | void ( *SetForceFaceFlags ) ( int flags ); |
86 | // Tell engine the value of the studio model header |
87 | void ( *StudioSetHeader ) ( void *header ); |
88 | // Tell engine which model_t * is being renderered |
89 | void ( *SetRenderModel ) ( struct model_s *model ); |
91 | // Final state setup and restore for rendering |
92 | void ( *SetupRenderer ) ( int rendermode ); |
93 | void ( *RestoreRenderer ) ( void ); |
95 | // Set render origin for applying chrome effect |
96 | void ( *SetChromeOrigin ) ( void ); |
98 | // True if using D3D/OpenGL |
99 | int ( *IsHardware ) ( void ); |
101 | // Only called by hardware interface |
102 | void ( *GL_StudioDrawShadow ) ( void ); |
103 | void ( *GL_SetRenderMode ) ( int mode ); |
104 | } engine_studio_api_t; |
106 | typedef struct server_studio_api_s |
108 | // Allocate number*size bytes and zero it |
109 | void *( *Mem_Calloc ) ( int number, size_t size ); |
110 | // Check to see if pointer is in the cache |
111 | void *( *Cache_Check ) ( struct cache_user_s *c ); |
112 | // Load file into cache ( can be swapped out on demand ) |
113 | void ( *LoadCacheFile ) ( char *path, struct cache_user_s *cu ); |
114 | // Retrieve pointer to studio model data block from a model |
115 | void *( *Mod_Extradata ) ( struct model_s *mod ); |
116 | } server_studio_api_t; |
120 | typedef struct r_studio_interface_s |
123 | int ( *StudioDrawModel ) ( int flags ); |
124 | int ( *StudioDrawPlayer ) ( int flags, struct entity_state_s *pplayer ); |
125 | } r_studio_interface_t; |
127 | extern r_studio_interface_t *pStudioAPI; |
130 | #define SV_BLENDING_INTERFACE_VERSION 1 |
132 | typedef struct sv_blending_interface_s |
136 | void ( *SV_StudioSetupBones )( struct model_s *pModel, |
141 | const byte *pcontroller, |
142 | const byte *pblending, |
144 | const edict_t *pEdict ); |
145 | } sv_blending_interface_t; |
147 | #endif // R_STUDIOINT_H |
Отправлено XaeroX 23-10-2007 в 16:30:
нет тут никаких ошибок, оно обязано компилироваться. 
__________________
Отправлено NorthWanderer 23-10-2007 в 17:15:
Так тогда обьясню как я вставлял туман по порядку:
1. создал fog.cpp с таким кодом
C++ Source Code:
3 | * Copyright © 1996-2001, Valve LLC. All rights reserved. |
5 | * this product contains software technology licensed from Id |
6 | * Software, Inc. ("Id Technology"). Id Technology © 1996 Id Software, Inc. |
9 | * Use, distribution, and modification of this source code and/or resulting |
10 | * object code is restricted to non-commercial enhancements to products from |
11 | * Valve LLC. All other use, distribution, or modification is prohibited |
12 | * without written permission from Valve LLC. |
18 | // implementation of CHudFog class |
21 | #define WIN32_LEAN_AND_MEAN |
26 | #include "r_studioint.h" |
27 | extern engine_studio_api_t IEngineStudio; |
39 | DECLARE_MESSAGE(m_Fog, Fog) |
41 | int CHudFog::Init(void) |
44 | gHUD.AddHudElem(this); |
49 | int CHudFog::VidInit(void) |
54 | int CHudFog:: MsgFunc_Fog(const char *pszName, int iSize, void *pbuf ) |
56 | m_iFlags |= HUD_ACTIVE; |
59 | BEGIN_READ( pbuf, iSize ); |
71 | int CHudFog::Draw(float flTime) |
73 | if( r == 0 && g == 0 && b == 0 )//si c'est noir on affiche pas car on ne verrait rien |
75 | if ( IEngineStudio.IsHardware() != 1) |
80 | float fDensity = 0.5, fStart = s, fEnd = e; |
84 | fogColor[0] = ((GLfloat)r)/255.0f; |
85 | fogColor[1] = ((GLfloat)g)/255.0f; |
86 | fogColor[2] = ((GLfloat)b)/255.0f; |
87 | fogColor[3] = ((GLfloat)a)/255.0f; |
89 | glFogi(GL_FOG_MODE, GL_LINEAR); |
90 | glFogfv(GL_FOG_COLOR, fogColor); |
91 | glFogf(GL_FOG_DENSITY, fDensity); |
92 | glHint(GL_FOG_HINT, GL_NICEST); |
93 | glFogf( GL_FOG_START, fStart); |
94 | glFogf( GL_FOG_END, fEnd ); |
потом в hud.h
после этого
C++ Source Code:
2 | //----------------------------------------------------- |
9 | int m_iFlags; // active, moving, |
10 | virtual ~CHudBase() {} |
11 | virtual int Init( void ) {return 0;} |
12 | virtual int VidInit( void ) {return 0;} |
13 | virtual int Draw(float flTime) {return 0;} |
14 | virtual void Think(void) {return;} |
15 | virtual void Reset(void) {return;} |
16 | virtual void InitHUDData( void ) {} // called every time a server is connected to |
28 | //----------------------------------------------------- |
30 | #include "..\game_shared\voice_status.h" |
31 | #include "hud_spectator.h" |
35 | //----------------------------------------------------- |
это:
C++ Source Code:
2 | //----------------------------------------------------- |
4 | class CHudFog : public CHudBase |
9 | int Draw(float flTime); |
10 | int MsgFunc_Fog(const char *pszName, int iSize, void *pbuf ); |
потом ниже и там же после этого:
C++ Source Code:
это:
C++ Source Code:
в hud.cpp
C++ Source Code:
3 | m_Fog.Init(); //новая сторчка |
ниже
C++ Source Code:
3 | m_Fog.VidInit(); //новая сторчка |
по тутариалу все вроде там еше на сервере описано не много но сервер компелится нормально
Отправлено XaeroX 23-10-2007 в 17:18:
Rebuild All пробовал?
__________________
Отправлено Дядя Миша 23-10-2007 в 17:58:
Цитата:
// server blending
#define SV_BLENDING_INTERFACE_VERSION 1
Эээээ, это еще что за лажа?
Отправлено Government-Man 23-10-2007 в 18:27:
Дядя Миша это какая-то дурацкая и неуместная пародия на сорсовские интерфейсы и их версии.
У меня в c3d почти также... =)
Отправлено XaeroX 23-10-2007 в 18:34:
Дядя Миша это какой то продвинутый блендинг, типа как в КС, наверное...
__________________
Отправлено NorthWanderer 23-10-2007 в 18:37:
Цитата:
Дядя Миша писал:
Эээээ, это еще что за лажа?
я не знаю это стандартный фаил в sdk 2.3
Добавлено 24-10-2007 в 00:37:
тут чето написано
Grâce au nouveau SDK (2.2 et plus),
мож код для sdk 2.2 а на 2.3 не идет
Отправлено Тренсфер 24-10-2007 в 07:08:
Ты случайно не про тот французский тутор ? Если он в нём ничего не работает, у меня есть мой рабочий тутор по туману в 80% готовности. Тем боле при подкючении опенгл иногда приисходит ругань на 4 строчки -надо их закомментировать. Подожди пару дней и выложу норамальный тутор по этому делу, а то в том я как минимум нашёл одну ошибку в С++ и несколько ошибок по опенгл (в результате которых туман не прозрацный
).
__________________
Хотелось бы, чтобы не только хотелось...