HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 18 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Проблема с огнеметом Ghoul [BB] (https://hlfx.ru/forum/showthread.php?threadid=1681)


Отправлено Frest 11-01-2009 в 15:52:

Проблема с огнеметом Ghoul [BB]

Привет всем!
Просьба помочь мне в проблеме с огнеметом Ghoul [BB].ТУТОРИАЛ

Дело в том что во время компиляции "клиента" ( сам "сервер" компилился без ошибок ), как только наступает Linking...
Выходит ряд ошибок:

Цитата:

flame.obj : error LNK2005: "public: void __thiscall CFlame::Explode(class Vector ,class Vector)" (?Explode@CFlame@@QAEXVVector@@0@Z) already defined in hl_baseentity.obj
flame.obj : error LNK2005: "public: void __thiscall CFlame::Explode(struct Trace
Result *,int)" (?Explode@CFlame@@QAEXPAUTraceResult@@H@Z) already defined in hl_
baseentity.obj
flame.obj : error LNK2005: "public: virtual void __thiscall CFlame::Killed(struc
t entvars_s *,int)" (?Killed@CFlame@@UAEXPAUentvars_s@@H@Z) already defined in h
l_baseentity.obj
flame.obj : error LNK2005: "public: virtual void __thiscall CFlame::BounceSound(
void)" (?BounceSound@CFlame@@UAEXXZ) already defined in hl_baseentity.obj
flame.obj : error LNK2005: "public: virtual void __thiscall CFlame::Spawn(void)"
(?Spawn@CFlame@@UAEXXZ) already defined in hl_baseentity.obj
flame.obj : error LNK2005: "public: static class CFlame * __cdecl CFlame::ShootF
lame(struct entvars_s *,class Vector,class Vector)" (?ShootFlame@CFlame@@SAPAV1@
PAUentvars_s@@VVector@@1@Z) already defined in hl_baseentity.obj
flame.obj : warning LNK4006: "public: void __thiscall CFlame::Explode(class Vect
or,class Vector)" (?Explode@CFlame@@QAEXVVector@@0@Z) already defined in hl_base
entity.obj; second definition ignored
flame.obj : warning LNK4006: "public: void __thiscall CFlame::Explode(struct Tra
ceResult *,int)" (?Explode@CFlame@@QAEXPAUTraceResult@@H@Z) already defined in h
l_baseentity.obj; second definition ignored
flame.obj : warning LNK4006: "public: virtual void __thiscall CFlame::Killed(str
uct entvars_s *,int)" (?Killed@CFlame@@UAEXPAUentvars_s@@H@Z) already defined in
hl_baseentity.obj; second definition ignored
flame.obj : warning LNK4006: "public: virtual void __thiscall CFlame::BounceSoun
d(void)" (?BounceSound@CFlame@@UAEXXZ) already defined in hl_baseentity.obj; sec
ond definition ignored
flame.obj : warning LNK4006: "public: virtual void __thiscall CFlame::Spawn(void
)" (?Spawn@CFlame@@UAEXXZ) already defined in hl_baseentity.obj; second definiti
on ignored
flame.obj : warning LNK4006: "public: static class CFlame * __cdecl CFlame::Shoo
tFlame(struct entvars_s *,class Vector,class Vector)" (?ShootFlame@CFlame@@SAPAV
1@PAUentvars_s@@VVector@@1@Z) already defined in hl_baseentity.obj; second defin
ition ignored
Creating library .\Release/client.lib and object .\Release/client.exp
flame.obj : error LNK2001: unresolved external symbol "short g_sModelIndexFlame"
(?g_sModelIndexFlame@@3FA)
flame.obj : error LNK2001: unresolved external symbol "int __cdecl UTIL_PointCon
tents(class Vector const &)" (?UTIL_PointContents@@YAHABVVector@@@Z)
flame.obj : error LNK2001: unresolved external symbol "short g_sModelIndexSmoke"
(?g_sModelIndexSmoke@@3FA)
flame.obj : error LNK2001: unresolved external symbol "void __cdecl UTIL_Bubbles
(class Vector,class Vector,int)" (?UTIL_Bubbles@@YAXVVector@@0H@Z)
flame.obj : error LNK2001: unresolved external symbol "struct TraceResult __cdec
l UTIL_GetGlobalTrace(void)" (?UTIL_GetGlobalTrace@@YA?AUTraceResult@@XZ)
.\Release\client.dll : fatal error LNK1120: 5 unresolved externals
"Dll compiling failed!"


Использую движок Spirit из CSM Half-Life SDK (который входил в комплект с ним)
Я перечитал статью 4 раза, пересмотрел [BB].форум, безполезно.При попытке удалить из hl_baseentity.cpp эти строки, выходят уже только 4 ошибки.Но уже вообще о другой теме.Вроде бы в форуме не было у всех подобных ошибок как у меня.
Сразу говорю, что я сперва компилировал сервер а потом клиент.
Как было сказано:
Цитата:

Внимание! Компилировать клиент нужно только после компиляции сервера! Т.е. в первой части надо просто внести изменения на клиенте и сохранить их, иначе будут ошибки типа: error C2653: 'CFlame' : is not a class or namespace name.


Прошу помочь!
Заранее благодарен.


Отправлено Pain 11-01-2009 в 16:56:

У меня тоже не получалось скомпилить огнемёт под спиритом. Незнаю, возможно это от версии спирита зависит. Не пробовал другую юзать?


Отправлено Дядя Миша 11-01-2009 в 18:42:

Frest заглушек туда понаставь, да и всего делов.
вот допустим есть у тебя функция CFlame::KIlled - копируешь её на клиент, а весь код из функции удаляешь. Это и есть заглушка.
ЗЫ. а что физика не pozubam оказалась?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Frest 12-01-2009 в 02:11:

Дядя Миша спасибо, а на клиент это куда? какой файл? hl_weapon.h??


Отправлено Дядя Миша 12-01-2009 в 06:08:

а к остальным заглушкам пихай - в hl_baseentity.cpp

__________________
My Projects: download page

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

Цитата:

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


Отправлено Frest 12-01-2009 в 09:52:

Спасибо Дядя Миша!


Отправлено Дядя Миша 12-01-2009 в 16:29:

Frest чего "Спасибо"-то ? ты ясно пиши, помогло или нет.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Frest 13-01-2009 в 02:45:

нет не помогло, но все равно спасибо! (бросил это оружие, ибо он сильно багнуто)
Тему можно закрыть...


Отправлено Дядя Миша 13-01-2009 в 08:29:

>>бросил это оружие, ибо он сильно багнуто
пффф. Это как в басне про Лису и Виноград - достать не смогла, так и говорит - да это виноград хреновый какой-то.

__________________
My Projects: download page

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

Цитата:

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


Отправлено morfin 18-02-2009 в 10:40:

У него просто редефайны просто можно имена изменить везде и должно работать
P.S

code:
flame.obj : error LNK2005: "public: void __thiscall CFlame::Explode(class Vector ,class Vector)" (?Explode@CFlame@@QAEXVVector@@0@Z) already defined in hl_baseentity.obj

ТИпа CFlame::Explode уже задефайнен в hl_baseentity у меня уже было такое только с HSPRITE(в винде есть такой уже)


Отправлено Ku2zoff 24-02-2009 в 08:55:

morfin а какой смысл менять редефайны? Может просто сделать оружие чисто серверным? Или отключить систему предиктинга оружий, чтобы вообще отказаться от клиентских пушек? Если второй вариант, то смотри тутор Дяди Миши по Xash Weapon System.


Отправлено fire64 09-03-2009 в 19:40:

а нафиг вобще помещать огнемет в клиент ?

я его сделал на сервере и все ок

меня другая проблема волнует

я этот огнемет присобачил к серверу халфы

так вот, в момент выстрелов трафик достигает 1,5 мбит, а если у клиента слабый канал то он отваливается

в плане геймплея огнемет то же не очень, как правило оба игрока палят друг в друга и оба трупы

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 09-03-2009 в 20:16:

Цитата:
fire64 писал:
я его сделал на сервере и все ок

Цитата:
fire64 писал:
в момент выстрелов трафик достигает 1,5 мбит, а если у клиента слабый канал то он отваливается

Вот за этим огнемет надо помещать в клиент.
Ты сделал его на сервере и, как видишь, нифига у тебя не ок.

__________________

xaerox on Vivino


Отправлено fire64 09-03-2009 в 20:38:

XaeroX, дело не в том что я его на клиент не поместил, а в коде самого огнемета

вот что XWider писал

Цитата:

Kstai, kod ya tvoi nemnogo poizuchal...
1) Zrya ty v odin frame stolko CFlame::ShootFlame stavish. Na traffic posmotri.
2) DangerSoundThink() v tvoem sluchae sovsem bassmyslenna.
kak i void CFlame::* v hl_baseentity.cpp. Dostatochno v PrimaryAttack() postavit' #ifndef CLIENT_DLL pered CFlame::ShootFlame().
3) SLISHKOM MNOGO SVC_TEMPENTITY. Ty luche by sdelal pev->effects |= EF_BRIGHTLIGHT!

Koroche, po seti ne poigraesh. A tak, voobshe, ochen', ochen' neplogho.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 09-03-2009 в 22:05:

fire64 клиентский огнемет обсуждался много раз.
Смысл прост - тот огонь, который вызывается из CFlame :: Shoot должен иметь галочку pev->effects |= EF_NODRAW;
После чего он будет по прежнему наносить дамагу и перестанет влиять на траффик, поскольку станет невидимым.
А на клиенте надо будет прикрутить собственно огонь видимый, например партиклы из спирита.

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 05:29. Страницы (2): [1] 2 »
Показать все 18 сообщений этой темы на одной странице

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