HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Несколько вопросов о коддинге
Помогите новичку
Страницы (5): « 1 [2] 3 4 5 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
GuNsHiP
Sneekls!

Дата регистрации: Apr 2009
Проживает: Украина, Мариуполь
Сообщений: 348
Возраст: 31

Рейтинг



Проверь плиз


C++ Source Code:
1
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
2
//
3
// Purpose:
4
//
5
// $NoKeywords: $
6
//=============================================================================
7
 
8
// Triangle rendering, if any
9
 
10
#include "hud.h"
11
//#include "gl_main.h"
12
#include "cl_util.h"
13
 
14
// Triangle rendering apis are in gEngfuncs.pTriAPI
15
 
16
#include "const.h"
17
#include "entity_state.h"
18
#include "cl_entity.h"
19
#include "triangleapi.h"
20
 
21
// Triangle rendering apis are in gEngfuncs.pTriAPI
22
 
23
#include "const.h"
24
#include "entity_state.h"
25
#include "cl_entity.h"
26
#include "triangleapi.h"
27
#include <windows.h>
28
#include <gl/gl.h>
29
//#include <gl/glext.h>
30
//#include <cg/cg.h>
31
//#include <cg/cgGL.h>
32
 
33
#define DLLEXPORT __declspec( dllexport )
34
 
35
extern "C"
36
{
37
  void DLLEXPORT HUD_DrawNormalTriangles( void );
38
  void DLLEXPORT HUD_DrawTransparentTriangles( void );
39
};
40
 
41
//#define TEST_IT
42
#if defined( TEST_IT )
43
 
44
/*
45
=================
46
Draw_Triangles
47
 
48
Example routine.  Draws a sprite offset from the player origin.
49
=================
50
*/
51
 
52
void Draw_Triangles( void )
53
{
54
  cl_entity_t *player;
55
  vec3_t org;
56
 
57
  // Load it up with some bogus data
58
  player = gEngfuncs.GetLocalPlayer();
59
  if ( !player )
60
    return;
61
 
62
  org = player->origin;
63
 
64
  org.x += 50;
65
  org.y += 50;
66
 
67
  if (gHUD.m_hsprCursor == 0)
68
  {
69
    char sz[256];
70
    sprintf( sz, "sprites/cursor.spr" );
71
    gHUD.m_hsprCursor = SPR_Load( sz );
72
  }
73
 
74
  if ( !gEngfuncs.pTriAPI->SpriteTexture( (struct model_s *)gEngfuncs.GetSpritePointer( gHUD.m_hsprCursor ), 0 ))
75
  {
76
    return;
77
  }
78
 
79
  // Create a triangle, sigh
80
  gEngfuncs.pTriAPI->RenderMode( kRenderNormal );
81
  gEngfuncs.pTriAPI->CullFace( TRI_NONE );
82
  gEngfuncs.pTriAPI->Begin( TRI_QUADS );
83
  // Overload p->color with index into tracer palette, p->packedColor with brightness
84
  gEngfuncs.pTriAPI->Color4f( 1.0, 1.0, 1.0, 1.0 );
85
  // UNDONE: This gouraud shading causes tracers to disappear on some cards (permedia2)
86
  gEngfuncs.pTriAPI->Brightness( 1 );
87
  gEngfuncs.pTriAPI->TexCoord2f( 0, 0 );
88
  gEngfuncs.pTriAPI->Vertex3f( org.x, org.y, org.z );
89
 
90
  gEngfuncs.pTriAPI->Brightness( 1 );
91
  gEngfuncs.pTriAPI->TexCoord2f( 0, 1 );
92
  gEngfuncs.pTriAPI->Vertex3f( org.x, org.y + 50, org.z );
93
 
94
  gEngfuncs.pTriAPI->Brightness( 1 );
95
  gEngfuncs.pTriAPI->TexCoord2f( 1, 1 );
96
  gEngfuncs.pTriAPI->Vertex3f( org.x + 50, org.y + 50, org.z );
97
 
98
  gEngfuncs.pTriAPI->Brightness( 1 );
99
  gEngfuncs.pTriAPI->TexCoord2f( 1, 0 );
100
  gEngfuncs.pTriAPI->Vertex3f( org.x + 50, org.y, org.z );
101
 
102
  gEngfuncs.pTriAPI->End();
103
  gEngfuncs.pTriAPI->RenderMode( kRenderNormal );
104
}
105
 
106
#endif
107
 
108
/*
109
=================
110
HUD_DrawNormalTriangles
111
 
112
Non-transparent triangles-- add them here
113
=================
114
*/
115
void DLLEXPORT HUD_DrawNormalTriangles( void )
116
{
117
 
118
  gHUD.m_Spectator.DrawOverview();
119
 
120
#if defined( TEST_IT )
121
  //	Draw_Triangles();
122
#endif
123
}
124
 
125
/*
126
=================
127
HUD_DrawTransparentTriangles
128
 
129
Render any triangles with transparent rendermode needs here
130
=================
131
*/
132
void DLLEXPORT HUD_DrawTransparentTriangles( void )
133
{
134
 
135
#if defined( TEST_IT )
136
  //	Draw_Triangles();
137
#endif
138
}
139
 
140
/*
141
=================
142
Real-Time TRON
143
 
144
Glow
145
=================
146
*/
147
 
148
#include "r_studioint.h"
149
 
150
extern engine_studio_api_t IEngineStudio;
151
 
152
bool g_bInitialised = false;
153
 
154
extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
155
extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
156
 
157
CGcontext g_cgContext;
158
CGprofile g_cgVertProfile;
159
CGprofile g_cgFragProfile;
160
 
161
CGprogram g_cgVP_GlowDarken;
162
CGprogram g_cgFP_GlowDarken;
163
 
164
CGprogram g_cgVP_GlowBlur;
165
CGprogram g_cgFP_GlowBlur;
166
 
167
CGprogram g_cgVP_GlowCombine;
168
CGprogram g_cgFP_GlowCombine;
169
 
170
CGparameter g_cgpVP0_ModelViewMatrix;
171
CGparameter g_cgpVP1_ModelViewMatrix;
172
CGparameter g_cgpVP1_XOffset;
173
CGparameter g_cgpVP1_YOffset;
174
CGparameter g_cgpVP2_ModelViewMatrix;
175
 
176
unsigned int g_uiSceneTex;
177
unsigned int g_uiBlurTex;
178
 
179
bool LoadProgram(CGprogram* pDest, CGprofile profile, const char* szFile)
180
{
181
  const char* szGameDir = gEngfuncs.pfnGetGameDirectory();
182
  char file[512];
183
  sprintf(file, "%s/%s", szGameDir, szFile);
184
 
185
  *pDest = cgCreateProgramFromFile(g_cgContext, CG_SOURCE, file, profile, "main", 0);
186
  if (!(*pDest)) {
187
    MessageBox(NULL, cgGetErrorString(cgGetError()), NULL, NULL);
188
    return false;
189
  }
190
 
191
  cgGLLoadProgram(*pDest);
192
 
193
  return true;
194
}
195
 
196
void InitScreenGlow(void)
197
{
198
  if (IEngineStudio.IsHardware() != 1)
199
    return;
200
 
201
  gEngfuncs.pfnRegisterVariable("cg_blur_steps", "4", 0);
202
 
203
  // OPENGL EXTENSION LOADING
204
 
205
  glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)wglGetProcAddress("glActiveTextureARB");
206
 
207
  // TEXTURE CREATION
208
 
209
  unsigned char* pBlankTex = new unsigned char[ScreenWidth*ScreenHeight*3];
210
  memset(pBlankTex, 0, ScreenWidth*ScreenHeight*3);
211
 
212
  glGenTextures(1, &g_uiSceneTex);
213
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiSceneTex);
214
  glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
215
  glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
216
  glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB8, ScreenWidth, ScreenHeight, 0, GL_RGB8, GL_UNSIGNED_BYTE, pBlankTex);
217
 
218
  glGenTextures(1, &g_uiBlurTex);
219
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiBlurTex);
220
  glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
221
  glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
222
  glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB8, ScreenWidth/2, ScreenHeight/2, 0, GL_RGB8, GL_UNSIGNED_BYTE, pBlankTex);
223
 
224
  delete[] pBlankTex;
225
 
226
  g_bInitialised = true;
227
 
228
  // CG INITIALISATION
229
 
230
  g_cgContext = cgCreateContext();
231
  if (!g_cgContext) {
232
    MessageBox(NULL, "Couldn't make Cg context", NULL, NULL);
233
    return;
234
  }
235
 
236
  // VERTEX PROFILE
237
 
238
  g_cgVertProfile = cgGLGetLatestProfile(CG_GL_VERTEX);
239
  if (g_cgVertProfile == CG_PROFILE_UNKNOWN) {
240
    MessageBox(NULL, "Couldn't fetch valid VP profile", NULL, NULL);
241
    return;
242
  }
243
 
244
  cgGLSetOptimalOptions(g_cgVertProfile);
245
 
246
  // VP LOADING
247
 
248
  if (!LoadProgram(&g_cgVP_GlowDarken, g_cgVertProfile, "cgprograms/glow_darken_vp.cg"))
249
    return;
250
 
251
  if (!LoadProgram(&g_cgVP_GlowBlur, g_cgVertProfile, "cgprograms/glow_blur_vp.cg"))
252
    return;
253
 
254
  if (!LoadProgram(&g_cgVP_GlowCombine, g_cgVertProfile, "cgprograms/glow_combine_vp.cg"))
255
    return;
256
 
257
  // VP PARAM GRABBING
258
 
259
  g_cgpVP0_ModelViewMatrix = cgGetNamedParameter(g_cgVP_GlowDarken, "ModelViewProj");
260
 
261
  g_cgpVP1_ModelViewMatrix = cgGetNamedParameter(g_cgVP_GlowBlur, "ModelViewProj");
262
  g_cgpVP1_XOffset = cgGetNamedParameter(g_cgVP_GlowBlur, "XOffset");
263
  g_cgpVP1_YOffset = cgGetNamedParameter(g_cgVP_GlowBlur, "YOffset");
264
 
265
  g_cgpVP2_ModelViewMatrix = cgGetNamedParameter(g_cgVP_GlowCombine, "ModelViewProj");
266
 
267
  // FRAGMENT PROFILE
268
 
269
  g_cgFragProfile = cgGLGetLatestProfile(CG_GL_FRAGMENT);
270
  if (g_cgFragProfile == CG_PROFILE_UNKNOWN) {
271
    MessageBox(NULL, "Couldn't fetch valid FP profile", NULL, NULL);
272
    return;
273
  }
274
 
275
  cgGLSetOptimalOptions(g_cgFragProfile);
276
 
277
  // FP LOADING
278
 
279
  if (!LoadProgram(&g_cgFP_GlowDarken, g_cgFragProfile, "cgprograms/glow_darken_fp.cg"))
280
    return;
281
 
282
  if (!LoadProgram(&g_cgFP_GlowBlur, g_cgFragProfile, "cgprograms/glow_blur_fp.cg"))
283
    return;
284
 
285
  if (!LoadProgram(&g_cgFP_GlowCombine, g_cgFragProfile, "cgprograms/glow_combine_fp.cg"))
286
    return;
287
}
288
void DrawQuad(int width, int height)
289
{
290
  glBegin(GL_QUADS);
291
 
292
  glTexCoord2f(0,0);
293
  glVertex3f(0, 1, -1);
294
  glTexCoord2f(0,height);
295
  glVertex3f(0, 0, -1);
296
  glTexCoord2f(width,height);
297
  glVertex3f(1, 0, -1);
298
  glTexCoord2f(width,0);
299
  glVertex3f(1, 1, -1);
300
 
301
  glEnd();
302
}
303
 
304
void DoBlur(unsigned int uiSrcTex, unsigned int uiTargetTex, int srcTexWidth, int srcTexHeight, int destTexWidth, int destTexHeight, float xofs, float yofs)
305
{
306
  cgGLBindProgram(g_cgVP_GlowBlur);
307
  cgGLBindProgram(g_cgFP_GlowBlur);
308
 
309
  glActiveTextureARB(GL_TEXTURE0_ARB);
310
  glEnable(GL_TEXTURE_RECTANGLE_NV);
311
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, uiSrcTex);
312
 
313
  glActiveTextureARB(GL_TEXTURE1_ARB);
314
  glEnable(GL_TEXTURE_RECTANGLE_NV);
315
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, uiSrcTex);
316
 
317
  glActiveTextureARB(GL_TEXTURE2_ARB);
318
  glEnable(GL_TEXTURE_RECTANGLE_NV);
319
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, uiSrcTex);
320
 
321
  glActiveTextureARB(GL_TEXTURE3_ARB);
322
  glEnable(GL_TEXTURE_RECTANGLE_NV);
323
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, uiSrcTex);
324
 
325
  cgGLSetParameter1f(g_cgpVP1_XOffset, xofs);
326
  cgGLSetParameter1f(g_cgpVP1_YOffset, yofs);
327
 
328
  glViewport(0, 0, destTexWidth, destTexHeight);
329
 
330
  DrawQuad(srcTexWidth, srcTexHeight);
331
 
332
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, uiTargetTex);
333
  glCopyTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB, 0, 0, destTexWidth, destTexHeight, 0);
334
}
335
 
336
void RenderScreenGlow(void)
337
{
338
  if (IEngineStudio.IsHardware() != 1)
339
    return;
340
 
341
  if (!g_bInitialised)
342
    InitScreenGlow();
343
 
344
  if ((int)gEngfuncs.pfnGetCvarFloat("cg_blur_steps") == 0)
345
    return;
346
 
347
  // STEP 1: Grab the screen and put it into a texture
348
 
349
  glActiveTextureARB(GL_TEXTURE0_ARB);
350
  glEnable(GL_TEXTURE_RECTANGLE_NV);
351
 
352
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiSceneTex);
353
  glCopyTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB, 0, 0, ScreenWidth, ScreenHeight, 0);
354
 
355
  // STEP 2: Set up an orthogonal projection
356
 
357
  glMatrixMode(GL_MODELVIEW);
358
  glPushMatrix();
359
  glLoadIdentity();
360
 
361
  glMatrixMode(GL_PROJECTION);
362
  glPushMatrix();
363
  glLoadIdentity();
364
  glOrtho(0, 1, 1, 0, 0.1, 100);
365
 
366
  glColor3f(1,1,1);
367
 
368
  // STEP 3: Initialize Cg programs and parameters for darkening mid to dark areas of the scene
369
 
370
  cgGLEnableProfile(g_cgVertProfile);
371
  cgGLEnableProfile(g_cgFragProfile);
372
 
373
  cgGLBindProgram(g_cgVP_GlowDarken);
374
  cgGLBindProgram(g_cgFP_GlowDarken);
375
 
376
  cgGLSetStateMatrixParameter(g_cgpVP0_ModelViewMatrix, CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);
377
 
378
  // STEP 4: Render the current scene texture to a new, lower-res texture, darkening non-bright areas of the scene
379
 
380
  glViewport(0, 0, ScreenWidth/2, ScreenHeight/2);
381
 
382
  glActiveTextureARB(GL_TEXTURE0_ARB);
383
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiSceneTex);
384
 
385
  DrawQuad(ScreenWidth, ScreenHeight);
386
 
387
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiBlurTex);
388
  glCopyTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB, 0, 0, ScreenWidth/2, ScreenHeight/2, 0);
389
 
390
  // STEP 5: Initialise Cg programs and parameters for blurring
391
 
392
  cgGLBindProgram(g_cgVP_GlowBlur);
393
  cgGLBindProgram(g_cgFP_GlowBlur);
394
 
395
  cgGLSetStateMatrixParameter(g_cgpVP1_ModelViewMatrix, CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);
396
 
397
  // STEP 6: Apply blur
398
 
399
  int iNumBlurSteps = (int)gEngfuncs.pfnGetCvarFloat("cg_blur_steps");
400
  for (int i = 0; i < iNumBlurSteps; i++) {
401
    DoBlur(g_uiBlurTex, g_uiBlurTex, ScreenWidth/2, ScreenHeight/2, ScreenWidth/2, ScreenHeight/2, 1, 0);
402
    DoBlur(g_uiBlurTex, g_uiBlurTex, ScreenWidth/2, ScreenHeight/2, ScreenWidth/2, ScreenHeight/2, 0, 1);
403
  }
404
 
405
  // STEP 7: Set up Cg for combining blurred glow with original scene
406
 
407
  cgGLBindProgram(g_cgVP_GlowCombine);
408
  cgGLBindProgram(g_cgFP_GlowCombine);
409
 
410
  cgGLSetStateMatrixParameter(g_cgpVP2_ModelViewMatrix, CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);
411
 
412
  glActiveTextureARB(GL_TEXTURE0_ARB);
413
  glEnable(GL_TEXTURE_RECTANGLE_NV);
414
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiSceneTex);
415
 
416
  glActiveTextureARB(GL_TEXTURE1_ARB);
417
  glEnable(GL_TEXTURE_RECTANGLE_NV);
418
  glBindTexture(GL_TEXTURE_RECTANGLE_NV, g_uiBlurTex);
419
 
420
  // STEP 8: Do the combination, rendering to the screen without grabbing it to a texture
421
 
422
  glViewport(0, 0, ScreenWidth, ScreenHeight);
423
 
424
  DrawQuad(ScreenWidth/2, ScreenHeight/2);
425
 
426
  // STEP 9: Restore the original projection and modelview matrices and disable rectangular textures on all units
427
 
428
  glMatrixMode(GL_PROJECTION);
429
  glPopMatrix();
430
 
431
  glMatrixMode(GL_MODELVIEW);
432
  glPopMatrix();
433
 
434
  cgGLDisableProfile(g_cgVertProfile);
435
  cgGLDisableProfile(g_cgFragProfile);
436
 
437
  glActiveTextureARB(GL_TEXTURE0_ARB);
438
  glDisable(GL_TEXTURE_RECTANGLE_NV);
439
 
440
  glActiveTextureARB(GL_TEXTURE1_ARB);
441
  glDisable(GL_TEXTURE_RECTANGLE_NV);
442
 
443
  glActiveTextureARB(GL_TEXTURE2_ARB);
444
  glDisable(GL_TEXTURE_RECTANGLE_NV);
445
 
446
  glActiveTextureARB(GL_TEXTURE3_ARB);
447
  glDisable(GL_TEXTURE_RECTANGLE_NV);
448
 
449
  glActiveTextureARB(GL_TEXTURE0_ARB);
450
}
451
 
452
void DLLEXPORT HUD_DrawNormalTriangles( void )
453
{
454
  if (g_HardwareCapable)
455
  {
456
    glPushAttrib(GL_ALL_ATTRIB_BITS);
457
    glActiveTextureARB(GL_TEXTURE1_ARB);
458
    glClientActiveTextureARB(GL_TEXTURE1_ARB);
459
 
460
    glDisable(GL_TEXTURE_2D);
461
 
462
    glActiveTextureARB(GL_TEXTURE0_ARB);
463
    glClientActiveTextureARB(GL_TEXTURE0_ARB);
464
 
465
    GL_Render(false);
466
 
467
    glPopAttrib();
468
  }
469
 
470
  gHUD.m_Spectator.DrawOverview();
471
}
472
 
473
/*
474
=================
475
HUD_DrawTransparentTriangles
476
 
477
Render any triangles with transparent rendermode needs here
478
=================
479
*/
480
void DLLEXPORT HUD_DrawTransparentTriangles( void )
481
{
482
  if (g_HardwareCapable)
483
    GL_Render(true);
484
}

За это сообщение GuNsHiP получил предупреждение за оверквотинг

Сообщить модератору | | IP: Записан
Сообщение: 43950

Старое сообщение 13-04-2009 15:21
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



йолки-моталки. ну сколько раз говорено: большой исходник - в аттач.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 43952

Старое сообщение 13-04-2009 15:37
-
GuNsHiP
Sneekls!

Дата регистрации: Apr 2009
Проживает: Украина, Мариуполь
Сообщений: 348
Возраст: 31

Рейтинг



Прошу свои извинения, в следующий раз - учту

Добавлено 13-04-2009 в 20:43:

Ладно, глоу не нужен...

Главное это как сделать базуку без прицела и
как сделать так, чтобы оружие стреляло только там, где есть небо


И ещё, добавил в раздел туториалы - туториал по созданию ПлазмаГана

Вложение: glow.zip (5.7 кб)
Этот файл был скачан 597 раз.

Сообщить модератору | | IP: Записан
Сообщение: 43953

Старое сообщение 13-04-2009 16:43
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



//#include <cg/cg.h>
//#include <cg/cgGL.h>

Это зря закоментил. У тебя есть glow_darken_fp.cg , glow_blur_fp.cg , glow_combine_fp.cg файлы ?

Сообщить модератору | | IP: Записан
Сообщение: 43957

Старое сообщение 13-04-2009 17:14
- За что?
GuNsHiP
Sneekls!

Дата регистрации: Apr 2009
Проживает: Украина, Мариуполь
Сообщений: 348
Возраст: 31

Рейтинг



Нет ниодного...если у тебя есть, скинь.(и скажи куда их вставлять)

Сообщить модератору | | IP: Записан
Сообщение: 43959

Старое сообщение 13-04-2009 17:20
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Имхо глоу нафиг не надо, я например на эту фигню забил. У меня впечатление, что FiEctro всё ещё пытается что-то замутить с граф.рендерером Паранойи, который я изуродовал

Цитата:
#include "gl_main.h"
Точно не знаю, можно ли провести проверку на присутствие неба в точке стрельбы, но если сделать некий триггер, при нахождении игрока в котором пушка стреляет, а вне него нет, то такой
вариант вполне реализуем.

Сообщить модератору | | IP: Записан
Сообщение: 43966

Старое сообщение 13-04-2009 18:01
- За что?
GuNsHiP
Sneekls!

Дата регистрации: Apr 2009
Проживает: Украина, Мариуполь
Сообщений: 348
Возраст: 31

Рейтинг



Да, с глоу покончено....Мне и на этих длл подходит
Но всё вавно FiEctro спасибо

Ku2zoff
Кстати, ты мне напомнил - помнишь ты(или нет) искал исходники паработов на хл1.Ты их себе ставил?Если да, то как. Я скачал исходники и что с ними делать не имею представления.

Сообщить модератору | | IP: Записан
Сообщение: 43967

Старое сообщение 13-04-2009 18:10
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Ku2zoff
Ничего я не пытаюсь. Это из исходников Оттис мода еще.

Сообщить модератору | | IP: Записан
Сообщение: 43968

Старое сообщение 13-04-2009 18:18
- За что?
GuNsHiP
Sneekls!

Дата регистрации: Apr 2009
Проживает: Украина, Мариуполь
Сообщений: 348
Возраст: 31

Рейтинг



Так что, кто-нибудь знает как добавить ботов в Халф-лайф1?

Сообщить модератору | | IP: Записан
Сообщение: 43970

Старое сообщение 13-04-2009 18:43
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Точно не знаю, можно ли провести проверку на присутствие неба в точке стрельбы

теоретически возможно писать некую инфу в амбиентные звуки лифов, которые в хл не используются. Но дело в том, что звук не отвечает за прямую видимость, soundpvs.cpp придется серъезно переписать

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 43971

Старое сообщение 13-04-2009 20:09
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



GuNsHiP ставил я паработов. Если мод чисто сетевой, то вполне можно навесить их внешней дллкой. А вот если мод ещё и сингловый, то тут трабла: глюки после сохранения и последующей загрузки, тогда их надо интегрировать в дллку мода, а это трудновато для новичка, хотя бы потому, что придётся переписывать "обертки" для некоторых движковых функций, в основном использующихся для передачи мессаг на клиент.

Сообщить модератору | | IP: Записан
Сообщение: 43975

Старое сообщение 14-04-2009 03:43
- За что?
AlMod
Ленивый кодер

Дата регистрации: Jun 2008
Проживает: Саратов
Сообщений: 172
Возраст: 34

Рейтинг



По поводу неба - я уже не помню как в сдк, но в AMXX была функция TraceLine. Так вот, все что на самом деле нужно это пустить трейс вертикально вверх и проверить текстуру потолка - SKY = Улица, другая текстура - помещение. Вариант не идеален (под навесами на улице например не будет работать) но я думаю сгодится

__________________
Сайт поддержки кодеров на AMX Mod X

Сообщить модератору | | IP: Записан
Сообщение: 43976

Старое сообщение 14-04-2009 05:19
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Не только под навесами, но и вот, скажем, под лампой фонаря. Тогда хотя бы трейса 4 пускать со слегка разными отклонениями от "вверх".

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 43977

Старое сообщение 14-04-2009 05:29
-
AlMod
Ленивый кодер

Дата регистрации: Jun 2008
Проживает: Саратов
Сообщений: 172
Возраст: 34

Рейтинг



2XaeroX, согласен - 4 трейса безусловно будет пустить лучше

add к посту моему:
вот нашел немного кода

code:
PassAimTest(id) { new origin[3] new Float:Orig[3] get_user_origin(id, origin, 3) Orig[0]=float(origin[0]) Orig[1]=float(origin[1]) Orig[2]=float(origin[2]) new AimAt = PointContents(Orig) if (AimAt == CONTENTS_SKY && !get_cvar_num("batgirl_hooksky")) { client_print(id,print_chat,"[SH](BatGirl) You cannot hook to the sky") return false } return true }


из одного плагина

__________________
Сайт поддержки кодеров на AMX Mod X

Сообщить модератору | | IP: Записан
Сообщение: 43978

Старое сообщение 14-04-2009 05:42
- За что?
GuNsHiP
Sneekls!

Дата регистрации: Apr 2009
Проживает: Украина, Мариуполь
Сообщений: 348
Возраст: 31

Рейтинг



Цитата:
GuNsHiP ставил я паработов. Если мод чисто сетевой, то вполне можно навесить их внешней дллкой. А вот если мод ещё и сингловый, то тут трабла: глюки после сохранения и последующей загрузки, тогда их надо интегрировать в дллку мода, а это трудновато для новичка, хотя бы потому, что придётся переписывать "обертки" для некоторых движковых функций, в основном использующихся для передачи мессаг на клиент.


Жаль что у меня сингл...хотелось бы посмотреть как в меня будут стрелять и плазменной пушки

Цитата:
вот нашел немного кода


Расскажите подробней о том как мне интегрировать код в код обычной гранаты(на этом принципе будет основано оружие),тоесть граната взрывалась только там, где есть небо. Возможно это будет SatchelCharge.

А ещё лучше, если бы в руках был пульт.При нажатии на кнопку под игроком создавалсь объект,который через 10 сек. взрывался.

Сейчас пойду делать основу ионного маяка и с нетерпением жду ваших отзывов.

Цитата:
client_print(id,print_chat,"[SH](BatGirl) You cannot hook to the sky")


Вот и отлично, если б граната "говорила", что здесь нет неба

Обещаю выложить туториал этого оружия, если мы его сделаем.
А пока могу выложить туториал взрывов в ХЛ1(таких как у меня).

Сообщить модератору | | IP: Записан
Сообщение: 43993

Старое сообщение 14-04-2009 17:05
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 09:30. Новая тема    Ответить
Страницы (5): « 1 [2] 3 4 5 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Несколько вопросов о коддинге
Помогите новичку
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024