HLFX.Ru Forum
Показать все 4 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Ошибка LINK (https://hlfx.ru/forum/showthread.php?threadid=1106)


Отправлено Frest 15-01-2008 в 02:24:

Exclamation Ошибка LINK

Кто нить помогите пожалуйста, вот короче сделал я так, когда будет взрываться граната появиться эффект дополнительного взрыва(спрайты), но вот появилась ошибка в LINK:
Creating library .\Releasehl/hl.lib and object .\Releasehl/hl.exp
ggrenade.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFireballC"(?g_sModelIndexFireballC@@3FA)
ggrenade.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFireballB"(?g_sModelIndexFireballB@@3FA)
ggrenade.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFireballA"(?g_sModelIndexFireballA@@3FA)
.\Releasehl/hl.dll : fatal error LNK1120: 3 unresolved externals
"Dll compiling failed!"

Если что в архиве (снизу) есть код файлов ggrenade.cpp,weapons.cpp,weapons.h которых я изменил.


Отправлено XaeroX 15-01-2008 в 04:24:

Frest кто тебя вообще надоумил такое писать:

C++ Source Code:
1
MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
2
WRITE_BYTE( TE_EXPLOSION );		// This makes a dynamic light and the explosion sprites/sound
3
WRITE_COORD( pev->origin.x );	// Send to PAS because of the sound
4
WRITE_COORD( pev->origin.y );
5
WRITE_COORD( pev->origin.z );
6
if (iContents != CONTENTS_WATER)
7
{
8
  WRITE_SHORT( g_sModelIndexFireball );
9
  WRITE_SHORT( g_sModelIndexFireballA );
10
  WRITE_SHORT( g_sModelIndexFireballB );
11
  WRITE_SHORT( g_sModelIndexFireballC );
12
}
13
else
14
{
15
  WRITE_SHORT( g_sModelIndexWExplosion );
16
}
17
WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
18
WRITE_BYTE( 15  ); // framerate
19
WRITE_BYTE( TE_EXPLFLAG_NONE );
20
MESSAGE_END();


Даже если ты это скомпилируешь, в игре получишь в лучшем случае баги, в худшем - вылет. У стандартной мессаги TE_EXPLOSION есть свой формат, и добавлять туда свои данные нельзя.
По поводу ошибки - проверь правильность написания имен переменных во всех файлах. Возможно, где-то закралась русская буква или что-то в этом роде. Ну и Rebuild All иногда помогает.

__________________

xaerox on Vivino


Отправлено Ku2zoff 15-01-2008 в 09:57:

Frest если хочешь сделать взрыв с несколькими спрайтами делай так:

C++ Source Code:
1
if (iContents != CONTENTS_WATER)
2
{
3
  MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
4
  WRITE_BYTE( TE_EXPLOSION );// This makes a dynamic light and the explosion sprites/sound
5
  WRITE_COORD( pev->origin.x );// Send to PAS because of the sound
6
  WRITE_COORD( pev->origin.y );
7
  WRITE_COORD( pev->origin.z );
8
  WRITE_SHORT( g_sModelIndexFireball );
9
  WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
10
  WRITE_BYTE( 15  ); // framerate
11
  WRITE_BYTE( TE_EXPLFLAG_NONE );
12
  MESSAGE_END();
13
 
14
  MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
15
  WRITE_BYTE( TE_EXPLOSION );// This makes a dynamic light and the explosion sprites/sound
16
  WRITE_COORD( pev->origin.x );// Send to PAS because of the sound
17
  WRITE_COORD( pev->origin.y );
18
  WRITE_COORD( pev->origin.z );
19
  WRITE_SHORT( g_sModelIndexFireballA );
20
  WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
21
  WRITE_BYTE( 15  ); // framerate
22
  WRITE_BYTE( TE_EXPLFLAG_NONE );
23
  MESSAGE_END();
24
 
25
  MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
26
  WRITE_BYTE( TE_EXPLOSION );// This makes a dynamic light and the explosion sprites/sound
27
  WRITE_COORD( pev->origin.x );// Send to PAS because of the sound
28
  WRITE_COORD( pev->origin.y );
29
  WRITE_COORD( pev->origin.z );
30
  WRITE_SHORT( g_sModelIndexFireballB );
31
  WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
32
  WRITE_BYTE( 15  ); // framerate
33
  WRITE_BYTE( TE_EXPLFLAG_NONE );
34
  MESSAGE_END();
35
 
36
  MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
37
  WRITE_BYTE( TE_EXPLOSION );// This makes a dynamic light and the explosion sprites/sound
38
  WRITE_COORD( pev->origin.x );// Send to PAS because of the sound
39
  WRITE_COORD( pev->origin.y );
40
  WRITE_COORD( pev->origin.z );
41
  WRITE_SHORT( g_sModelIndexFireballC );
42
  WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
43
  WRITE_BYTE( 15  ); // framerate
44
  WRITE_BYTE( TE_EXPLFLAG_NONE );
45
  MESSAGE_END();
46
}
47
else
48
{
49
  MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, pev->origin );
50
  WRITE_BYTE( TE_EXPLOSION );// This makes a dynamic light and the explosion sprites/sound
51
  WRITE_COORD( pev->origin.x );// Send to PAS because of the sound
52
  WRITE_COORD( pev->origin.y );
53
  WRITE_COORD( pev->origin.z );
54
  WRITE_SHORT( g_sModelIndexWExplosion );
55
  WRITE_BYTE( (pev->dmg - 50) * .60  ); // scale * 10
56
  WRITE_BYTE( 15  ); // framerate
57
  WRITE_BYTE( TE_EXPLFLAG_NONE );
58
  MESSAGE_END();
59
}
60
 


Добавлено 15-01-2008 в 15:57:

А по поводу

ggrenade.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFireballC"(?g_sModelIndexFireballC@@3FA)
ggrenade.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFireballB"(?g_sModelIndexFireballB@@3FA)
ggrenade.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFireballA"(?g_sModelIndexFireballA@@3FA)

Ты объявил индексы новых спрайтов в weapons.h?


Отправлено Frest 15-01-2008 в 10:32:

Спасибо!
Как всегда вы лучшие коддеры по HL1 которых я в жизни видел
Щас проверю...

Добавлено 15-01-2008 в 13:32:

Ура!!! ошибка LINK исчезла.Спасибо!


Временная зона GMT. Текущее время 01:04.
Показать все 4 сообщений этой темы на одной странице

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