Ругается на:
C++ Source Code:
Пробывал все варианты добавления в конце к дисплеёеру буквы "r", но не помогло.
Код Дисплейсера:
C++ Source Code:
4 | * Code by Shambler Team. |
5 | * Op4-realm modify by Demiurge. |
12 | //========================================================= |
14 | // CODE PART FOR CLIENT SIDE |
16 | //====================== |
18 | //====================== |
29 | void EV_SpinDisplacer(event_args_t *args)//Original code idea by Xwider |
31 | if (EV_IsLocal(args->entindex)) |
33 | gEngfuncs.pEventAPI->EV_WeaponAnimation(DISPLACER_SPINUP, 2); |
34 | cl_entity_t *view = gEngfuncs.GetViewModel(); |
39 | gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x2000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0); |
40 | gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x3000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0); |
41 | gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x4000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0); |
45 | if (args->bparam2 == 0)// sound mode |
46 | gEngfuncs.pEventAPI->EV_PlaySound(args->entindex, args->origin, CHAN_WEAPON, "weapons/displacer_spin.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); |
48 | gEngfuncs.pEventAPI->EV_PlaySound(args->entindex, args->origin, CHAN_WEAPON, "weapons/displacer_spin2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); |
51 | //====================== |
53 | //====================== |
67 | #define SF_DISP_MODE 128 //G-Cont. use for makes alternative displacer - debug features |
80 | class CDisplacer : public CBasePlayerWeapon |
84 | void Precache( void ); |
85 | int iItemSlot( void ) { return 6; } |
86 | int GetItemInfo(ItemInfo *p); |
87 | int AddToPlayer( CBasePlayer *pPlayer ); |
90 | void Holster( int skiplocal = 0 ); |
92 | void PrimaryAttack( void ); |
93 | void SecondaryAttack (void); |
94 | void EXPORT SpinUp( void ); |
95 | // void EXPORT Spin( void ); |
96 | void EXPORT Teleport( void ); |
97 | void EXPORT Fire( void ); |
98 | void WeaponIdle( void ); |
100 | int m_iAttackMode;//no need save/restore this |
102 | unsigned short m_usDisplacer; |
107 | LINK_ENTITY_TO_CLASS( weapon_displacer, CDisplacer ); |
109 | LINK_ENTITY_TO_CLASS( info_xen, CPointEntity ); |
110 | LINK_ENTITY_TO_CLASS( info_earth, CPointEntity ); |
112 | // displacer teleball code |
114 | class CDispBall : public CBaseEntity//Special for Ghoul [BB] |
118 | void Precache( void ); |
119 | void Explode( TraceResult *pTrace ); |
120 | void RemoveBall (void); |
121 | void EXPORT ExplodeTouch( CBaseEntity *pOther ); |
123 | void EXPORT BallThink( void ); |
124 | static CDispBall *CreateDispBall( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CDisplacer *pLauncher ); |
130 | LINK_ENTITY_TO_CLASS( dispball, CDispBall ); |
132 | CDispBall *CDispBall::CreateDispBall( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CDisplacer *pLauncher ) |
134 | CDispBall *pDispBall = GetClassPtr( (CDispBall *)NULL ); |
136 | UTIL_SetOrigin( pDispBall->pev, vecOrigin ); |
137 | pDispBall->pev->angles = vecAngles; |
139 | pDispBall->SetTouch( CDispBall::ExplodeTouch ); |
140 | pDispBall->pev->owner = pOwner->edict(); |
145 | void CDispBall :: Spawn( void ) |
148 | pev->movetype = MOVETYPE_FLY; |
149 | pev->solid = SOLID_BBOX; |
151 | SET_MODEL(ENT(pev), "sprites/exit1.spr"); |
154 | UTIL_SetSize(pev, Vector ( 0, 0, 0 ), Vector ( 0, 0, 0 ) ); |
155 | UTIL_SetOrigin( pev, pev->origin ); |
156 | pev->rendermode = kRenderTransAdd; |
157 | pev->renderamt = 255; |
159 | pev->classname = MAKE_STRING("dispball"); |
161 | SetThink( BallThink ); |
162 | SetTouch( ExplodeTouch ); |
165 | UTIL_MakeVectors( pev->angles ); |
166 | pev->angles.x = -(pev->angles.x + 0); |
167 | pev->velocity = gpGlobals->v_forward * 500; |
168 | pev->nextthink = 0.5; |
173 | void CDispBall :: Precache( void ) |
175 | PRECACHE_MODEL("sprites/exit1.spr"); |
176 | PRECACHE_MODEL ("sprites/plasma.spr"); |
178 | PRECACHE_SOUND("weapons/displacer_teleport.wav"); |
179 | m_iDispRing = PRECACHE_MODEL ("sprites/disp_ring.spr"); |
182 | void CDispBall :: BallThink( void ) |
189 | for (int i = 0; i < 10; i++) |
191 | Vector vecDir = Vector( RANDOM_FLOAT( -1.0, 1.0 ), RANDOM_FLOAT( -1.0, 1.0 ),RANDOM_FLOAT( -1.0, 1.0 ) ); |
192 | vecDir = vecDir.Normalize(); |
194 | UTIL_TraceLine( pev->origin, pev->origin + vecDir * 1024, ignore_monsters, ENT(pev), &tr1 ); |
195 | if (flDist > tr1.flFraction) |
198 | flDist = tr.flFraction; |
202 | if ( flDist == 1.0 ) return; |
204 | pBeam = CBeam::BeamCreate("sprites/plasma.spr",200); |
205 | pBeam-><img src="images/smilies/pp2.gif" border="0" alt="">ointEntInit( tr.vecEndPos, entindex() ); |
206 | pBeam->SetStartPos( tr.vecEndPos ); |
207 | pBeam->SetEndEntity( entindex() ); |
208 | pBeam->SetColor( 90, 170, 16 ); |
209 | pBeam->SetNoise( 65 ); |
210 | pBeam->SetBrightness( 255 ); |
211 | pBeam->SetWidth( 30 ); |
212 | pBeam->SetScrollRate( 35 ); |
213 | pBeam->LiveForTime( 1 ); |
215 | pev->frame += 1; //animate teleball |
217 | pev->frame = fmod( pev->frame, 24 ); |
219 | pev->nextthink = gpGlobals->time + 0.1; |
222 | void CDispBall::ExplodeTouch( CBaseEntity *pOther ) |
225 | Vector vecSpot;// trace starts here! |
227 | pev->enemy = pOther->edict(); |
229 | vecSpot = pev->origin - pev->velocity.Normalize() * 32; |
230 | UTIL_TraceLine( vecSpot, vecSpot + pev->velocity.Normalize() * 64, dont_ignore_monsters, ENT(pev), &tr ); |
235 | void CDispBall::Explode( TraceResult *pTrace ) |
237 | if(!LockRing)//for partially fix strange bug in HL engine (for full fix teleball MUST be moved to client side). g-cont |
239 | MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, pev->origin ); |
240 | WRITE_BYTE( TE_BEAMCYLINDER ); |
241 | WRITE_COORD( pev->origin.x); |
242 | WRITE_COORD( pev->origin.y); |
243 | WRITE_COORD( pev->origin.z); |
244 | WRITE_COORD( pev->origin.x); |
245 | WRITE_COORD( pev->origin.y); |
246 | WRITE_COORD( pev->origin.z + 800); |
247 | WRITE_SHORT( m_iDispRing ); |
248 | WRITE_BYTE( 0 ); // startframe |
249 | WRITE_BYTE( 10 ); // framerate |
250 | WRITE_BYTE( 3 ); // life |
251 | WRITE_BYTE( 20 ); // width |
252 | WRITE_BYTE( 0 ); // noise |
253 | WRITE_BYTE( 255 ); // r, g, b |
254 | WRITE_BYTE( 255 ); // r, g, b |
255 | WRITE_BYTE( 255 ); // r, g, b |
256 | WRITE_BYTE( 255 ); //brightness |
257 | WRITE_BYTE( 0 ); // speed |
260 | MESSAGE_BEGIN( MSG_BROADCAST, SVC_TEMPENTITY ); |
261 | WRITE_BYTE(TE_DLIGHT); |
262 | WRITE_COORD(pev->origin.x); // X |
263 | WRITE_COORD(pev->origin.y); // Y |
264 | WRITE_COORD(pev->origin.z); // Z |
265 | WRITE_BYTE( 8 ); // radius * 0.1 |
266 | WRITE_BYTE( 243 ); // r |
267 | WRITE_BYTE( 231 ); // g |
268 | WRITE_BYTE( 16 ); // b |
269 | WRITE_BYTE( 20 ); // time * 10 |
270 | WRITE_BYTE( 0 ); // decay * 0.1 |
273 | MESSAGE_BEGIN( MSG_BROADCAST, SVC_TEMPENTITY ); |
274 | WRITE_BYTE(TE_DLIGHT); |
275 | WRITE_COORD(pev->origin.x); // X |
276 | WRITE_COORD(pev->origin.y); // Y |
277 | WRITE_COORD(pev->origin.z); // Z |
278 | WRITE_BYTE( 4 ); // radius * 0.1 |
279 | WRITE_BYTE( 240 ); // r |
280 | WRITE_BYTE( 140 ); // g |
281 | WRITE_BYTE( 12 ); // b |
282 | WRITE_BYTE( 20 ); // time * 10 |
283 | WRITE_BYTE( 0 ); // decay * 0.1 |
288 | pev->velocity = g_vecZero; |
290 | SetThink (RemoveBall); |
291 | pev->nextthink = gpGlobals->time + 0.6; |
295 | void CDispBall::RemoveBall( void ) |
297 | EMIT_SOUND(ENT(pev), CHAN_VOICE, "weapons/displacer_teleport.wav", 0.9, ATTN_NORM); |
298 | pev->effects |= EF_NODRAW; |
302 | pevOwner = VARS( pev->owner ); |
308 | ::RadiusDamage( pev->origin, pev, pevOwner, pev->dmg, 200, CLASS_NONE, DMG_ENERGYBEAM ); |
311 | //----------------------- |
313 | //----------------------- |
315 | void CDisplacer::Spawn( ) |
318 | m_iId = WEAPON_DISPLACER; |
319 | SET_MODEL(ENT(pev), "models/w_displacer.mdl"); |
322 | FallInit();// get ready to fall down. |
325 | int CDisplacer::AddToPlayer( CBasePlayer *pPlayer ) |
327 | if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) ) |
329 | MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev ); |
337 | BOOL CDisplacer::Deploy( void ) |
339 | return DefaultDeploy( "models/v_displacer.mdl", "models/p_displacer.mdl", DISPLACER_DRAW, "gauss" ); |
342 | void CDisplacer::Holster( int skiplocal ) |
344 | m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.5; |
345 | SendWeaponAnim( DISPLACER_HOLSTER ); |
348 | int CDisplacer::GetItemInfo(ItemInfo *p) |
350 | p->pszName = STRING(pev->classname); |
351 | p->pszAmmo1 = "uranium"; |
352 | p->iMaxAmmo1 = URANIUM_MAX_CARRY; |
355 | p->iMaxClip = WEAPON_NOCLIP; |
358 | p->iId = m_iId = WEAPON_DISPLACER; |
365 | void CDisplacer::Precache( void ) |
367 | PRECACHE_MODEL("models/w_displacer.mdl"); |
368 | PRECACHE_MODEL("models/v_displacer.mdl"); |
369 | PRECACHE_MODEL("models/p_displacer.mdl"); |
371 | PRECACHE_SOUND("weapons/displacer_fire.wav"); |
372 | PRECACHE_SOUND ("buttons/button10.wav"); |
373 | PRECACHE_SOUND ("weapons/displacer_self.wav"); |
375 | UTIL_PrecacheOther( "dispball" ); |
377 | m_iBeam = PRECACHE_MODEL("sprites/plasma.spr"); |
378 | m_usDisplacer = PRECACHE_EVENT( 1, "events/displacer.sc" ); |
381 | void CDisplacer::SpinUp ( void ) |
386 | if (!m_iAttackMode) SetThink (CDisplacer::Fire); |
387 | else SetThink (CDisplacer::Teleport); |
390 | PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usDisplacer, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, 0, m_iBeam, 0, m_iAttackMode); |
392 | pev->nextthink = gpGlobals->time + 1.1; |
393 | m_flTimeWeaponIdle = gpGlobals->time + 1.15; |
397 | void CDisplacer::PrimaryAttack( void ) |
399 | if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] < 20)//Check for ammo |
401 | EMIT_SOUND( edict(), CHAN_BODY, "buttons/button10.wav", 1, ATTN_NORM ); |
402 | m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0; |
406 | m_iAttackMode = FALSE; //We set attack mode in first mode |
408 | SetThink (CDisplacer::SpinUp); |
410 | m_flNextPrimaryAttack = gpGlobals->time + 4.0; |
411 | m_flTimeWeaponIdle = gpGlobals->time + 1.5; |
412 | pev->nextthink = gpGlobals->time + 0.1; |
415 | void CDisplacer::SecondaryAttack ( void ) |
417 | if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] < 60) |
419 | EMIT_SOUND( edict(), CHAN_BODY, "buttons/button10.wav", 1, ATTN_NORM ); |
420 | m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0; |
424 | if (m_iAttackMode) return; |
425 | m_iAttackMode = TRUE; //We set attack mode in second mode |
427 | SetThink (CDisplacer::SpinUp); |
429 | m_flNextSecondaryAttack = gpGlobals->time + 4.0; |
430 | m_flTimeWeaponIdle = gpGlobals->time + 1.5; |
431 | pev->nextthink = gpGlobals->time + 0.1; |
434 | void CDisplacer::Fire (void) |
436 | SendWeaponAnim( DISPLACER_FIRE ); |
437 | m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); |
439 | Vector vecSrc = m_pPlayer->GetGunPosition( ) + gpGlobals->v_forward * 16 + gpGlobals->v_right * 2 + gpGlobals->v_up * -5; |
440 | m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 20; |
442 | EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/displacer_fire.wav", 0.9, ATTN_NORM ); |
443 | CDispBall *pDispBall = CDispBall::CreateDispBall( vecSrc, m_pPlayer->pev->v_angle, m_pPlayer, this ); |
447 | void CDisplacer:: Teleport ( void ) |
449 | m_iPlace = !m_iPlace; |
451 | CBaseEntity *pSpot = NULL; |
452 | m_iAttackMode = FALSE;//reset firemode |
454 | if ( m_iPlace ) //Xen and earth target |
455 | pSpot = UTIL_FindEntityByClassname( pSpot, "info_xen" ); |
457 | pSpot = UTIL_FindEntityByClassname( pSpot, "info_earth" ); |
461 | UTIL_ScreenFade( m_pPlayer, Vector(0, 200, 0), 0.5, 0.5, 255, FFADE_IN ); |
463 | m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 60; |
464 | Vector tmp = pSpot->pev->origin; |
465 | tmp.z -= m_pPlayer->pev->mins.z; |
467 | UTIL_SetOrigin( m_pPlayer->pev, tmp ); |
469 | m_pPlayer->pev->angles = pSpot->pev->angles; |
470 | m_pPlayer->pev->velocity = m_pPlayer->pev->basevelocity = g_vecZero; |
472 | EMIT_SOUND( edict(), CHAN_BODY, "weapons/displacer_self.wav", 1, ATTN_NORM ); |
473 | SendWeaponAnim( DISPLACER_FIRE ); |
477 | SendWeaponAnim( DISPLACER_SPINUP ); |
478 | EMIT_SOUND( edict(), CHAN_BODY, "buttons/button10.wav", 1, ATTN_NORM ); |
479 | m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.3; |
482 | m_flNextSecondaryAttack = gpGlobals->time + 2.0; |
483 | m_flTimeWeaponIdle = gpGlobals->time + 1.0; |
486 | void CDisplacer::WeaponIdle( void ) |
490 | m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES ); |
492 | if ( m_flTimeWeaponIdle > gpGlobals->time ) |
495 | float flRand = RANDOM_FLOAT(0,1); |
499 | iAnim = DISPLACER_IDLE1; |
500 | m_flTimeWeaponIdle = gpGlobals->time + RANDOM_FLOAT(10,15); |
504 | iAnim = DISPLACER_IDLE2; |
505 | m_flTimeWeaponIdle = gpGlobals->time + 3; |
508 | SendWeaponAnim( iAnim ); |
Отправлено Дядя Миша 08-06-2010 в 18:50:
Продавец_Кошмаров не надо его добавлять на клиент.
Это чисто серверная пушка
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 09-06-2010 в 01:32:
Дядя Миша, помоги тогда. У меня пушка не появляется в HUD'e, что делать?
Вроде и слот и всё указал. Спрайт и координаты из Op4 взял.
Отправлено maxbars 09-06-2010 в 04:38:
Продавец_Кошмаров
А позицию в слоте правильно указал?
Там в слотах ведь типо если ставишь 0 то у тебя будет 1 слот...И т.д.
И позицию в слоте тот же самый принцип 1 -2 2-3.
Продавец_Кошмаров
__________________
ьфч
Отправлено GSen 09-06-2010 в 04:40:
Ну вон же в коде написано:
C++ Source Code:
Получается слот 5 - после снарков должно быть.
Отправлено maxbars 09-06-2010 в 04:46:
А в weapons.h после снарков добавил оружие?
__________________
ьфч
Отправлено GSen 09-06-2010 в 04:49:
Да, естественно.
Отправлено Дядя Миша 09-06-2010 в 06:37:
Продавец_Кошмаров ищи. Значит что-то сделал неправильно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 09-06-2010 в 13:02:
ну и ладно..
Добавлено 09-06-2010 в 13:45:
Попробывал переделать. Теперь у меня оружие даже через GIVE не вызывается.
Я очень туп в кодинге, по этому помогите:
Вот что я делаю:
1. Добавляю файл displacer.cpp в проект сервера.
2. Изменяю в нём:
C++ Source Code:
На:
C++ Source Code:
Открываю weapons.cpp
После:
C++ Source Code:
UTIL_PrecacheOtherWeapon( "weapon_crowbar" ); |
Пишу:
C++ Source Code:
UTIL_PrecacheOtherWeapon( "weapon_displacer" ); |
Перехожу к weapons.h:
Дефайню оружие после снарков:
C++ Source Code:
#define WEAPON_DISPLACER 16 |
Классы Дисплейсера у меня в самом коде оружия.
Компилится без ошибок. Мб я не так задефайнил номер?
Добавлено 09-06-2010 в 15:44:
в импульс 101 я прописывал, забыл в посте это указать )
Добавлено 09-06-2010 в 17:02:
чё в клиенте писать?
Отправлено Дядя Миша 09-06-2010 в 13:13:
Цитата:
Продавец_Кошмаров писал:
уга-уга-уга - кошу под Дядю Мишу
Ты эти штучъке брось
файлик weapon_displacer.txt положил в папку sprites ?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 09-06-2010 в 13:25:
Да, естественно. И эвенты есть
Отправлено Дядя Миша 09-06-2010 в 14:34:
Продавец_Кошмаров убедись что ты выбрал слот, незанятый другим оружием.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено maxbars 09-06-2010 в 14:54:
Цитата:
Дядя Миша писал:
На:
C++ Source Code:
p->iSlot = 0;
p->iPosition = 1;
Этот слот уже занят в этом ошибка по идеи.
А в ev_hldm всё прописал?__________________
ьфч
Отправлено GSen 09-06-2010 в 15:35:
Ну по идее сдот 1 позиция 2 - после лома. Ошибка была не в этом ибо я и другие слоты пробывал
Отправлено maxbars 09-06-2010 в 15:35:
А у тебя сколько максимально слотов ставить можно?
__________________
ьфч
Отправлено GSen 09-06-2010 в 15:41:
Блин да прехали со слотами. У меня ошибки теперь на клиенте снова:
C++ Source Code:
1 | displacer.obj : error LNK2001: unresolved external symbol "public: void __thiscall CBeam::SetEndEntity(int)" (?SetEndEntity@CBeam@@QAEXH@Z) |
2 | displacer.obj : error LNK2001: unresolved external symbol "void __cdecl UTIL_ScreenFade(class CBaseEntity *,class Vector const &,float,float,int,int)" (?UTIL_ScreenFade@@YAXPAVCBaseEntity@@ABVVector@@MMHH@Z) |
3 | displacer.obj : error LNK2001: unresolved external symbol "class CBaseEntity * __cdecl UTIL_FindEntityByClassname(class CBaseEntity *,char const *)" (?UTIL_FindEntityByClassname@@YAPAVCBaseEntity@@PAV1@PBD@Z) |
4 | displacer.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CPointEntity::Spawn(void)" (?Spawn@CPointEntity@@UAEXXZ) |
5 | hl_events.obj : error LNK2001: unresolved external symbol _EV_FireDisplacer |
6 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDisplaser::WeaponIdle(void)" (?WeaponIdle@CDisplaser@@UAEXXZ) |
7 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDisplaser::SecondaryAttack(void)" (?SecondaryAttack@CDisplaser@@UAEXXZ) |
8 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDisplaser::PrimaryAttack(void)" (?PrimaryAttack@CDisplaser@@UAEXXZ) |
9 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDisplaser::Holster(int)" (?Holster@CDisplaser@@UAEXH@Z) |
10 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CDisplaser::Deploy(void)" (?Deploy@CDisplaser@@UAEHXZ) |
11 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CDisplaser::GetItemInfo(struct ItemInfo *)" (?GetItemInfo@CDisplaser@@UAEHPAUItemInfo@@@Z) |
12 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CDisplaser::AddToPlayer(class CBasePlayer *)" (?AddToPlayer@CDisplaser@@UAEHPAVCBasePlayer@@@Z) |
13 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDisplaser::Precache(void)" (?Precache@CDisplaser@@UAEXXZ) |
14 | hl_weapons.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDisplaser::Spawn(void)" (?Spawn@CDisplaser@@UAEXXZ) |
Отправлено Дядя Миша 09-06-2010 в 16:35:
Продавец_Кошмаров тебе русским ртом говорят - не суй файл диспласера на клиент.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 09-06-2010 в 16:53:
Чудеса. Переделал ещё раз заного - всё получилось.
Остался такой баг:
Допустим у меня выбрано оружие(например снарки)
После них выбираю - дисплейсер. И у меня хад снарков остаётся. То бишь дисплейсер показывает снарков.
Как пофиксить?
Отправлено BeFore 09-06-2010 в 17:30:
Продавец_Кошмаров
Засунуть текстовик со спрайтами дисплейсера в папку sprites наверно.
Отправлено GSen 10-06-2010 в 04:36:
Блин
Цитата:
Дядя Миша писал:
файлик weapon_displacer.txt положил в папку sprites ?
Цитата:
Продавец_Кошмаров писал:
Да, естественно. И эвенты есть
Читайте внимательнее. Всё это есть
Отправлено Дядя Миша 10-06-2010 в 04:43:
Продавец_Кошмаров а имя дисплейсера (которое в LINK_ENTITY_TO_CLASS) совпадает с именем текстового файлика?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 10-06-2010 в 05:21:
Да, конечно
Добавлено 10-06-2010 в 09:19:
Теперь ещё и после дисплейсера выбираешь например лом. После лома - дисплейсер. И лом остаётся всё таки
Добавлено 10-06-2010 в 09:21:
Мож у мя файл кривой?
C++ Source Code:
2 | ammo 320 320hud2 18 16 18 18 |
3 | crosshair 320 ofch1 48 0 24 24 |
4 | autoaim 320 crosshairs 24 72 24 24 |
5 | weapon 320 320hudof01 0 160 80 20 |
6 | weapon_s 320 320hudof01 0 180 80 20 |
7 | ammo 640 640hud7 24 72 24 24 |
8 | crosshair 640 ofch1 48 0 24 24 |
9 | autoaim 640 crosshairs 24 72 24 24 |
10 | weapon 640 640hudof01 0 180 170 45 |
11 | weapon_s 640 640hudof02 0 180 170 45 |
Отправлено GSen 11-06-2010 в 09:32:
Поможет кто нить или нет? Кстати в вашем серверном оружие в начале закоменченный код клиента, мб его таки надо куда нить пихать?
Отправлено Дядя Миша 11-06-2010 в 10:36:
Нет это уму нерастяжымо. Сотни тысяч человек успешно скопипастили себе этот дисплейсер безо всяких вопросов и проблем. Даже maxbars скопипастил. И только Продавец_Кошмаров никак не может.
Позоризче!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 11-06-2010 в 10:59:
Позорище, позорище. А то что никто не может сказать в чём ошибка и почему хад не работает нормально, хотя я всё подробно описал и лишь говорят об txt файле спрайте - это не позорище?
Добавлено 11-06-2010 в 14:59:
Кстати тут нет упоминания что maxbars взял и сам всё сделал и у него всё всё заработало
Отправлено Дядя Миша 11-06-2010 в 12:52:
Цитата:
Продавец_Кошмаров писал:
А то что никто не может сказать в чём ошибка и почему хад не работает нормально, хотя я всё подробно описал и лишь говорят об txt файле спрайте
потому что всё дело в нём. Ну еще в hud.txt быть может.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено GSen 11-06-2010 в 15:22:
Если проблемы с txt файлом оружия, то я видел, как должно быть:
В слоте с оружием - огромный слот с серыми спрайтами других оружий. А у меня спрайт дисплейсера явно виден, но когда выбираеся - не меняется сам hud и моделька. А при повторном выборе даже стрелять нельзя, оружие не выбирается
Отправлено XaeroX 11-06-2010 в 15:40:
Цитата:
Продавец_Кошмаров писал:
А то что никто не может сказать в чём ошибка и почему хад не работает нормально, хотя я всё подробно описал и лишь говорят об txt файле спрайте - это не позорище?
Посмотрел всю тему с начала и не могу сказать, в чем ошибка.
Я бы просто переписал код дисплейсера с нуля, если бы столкнулся с подобным. В любом случае, очевидно, что код кривой и не рассчитан на СДК 2.3.
Либо перепиши его правильно, либо найди себе в мод кодера, либо просто забей.
Добавлено 11-06-2010 в 22:40:
Да, и кстати.
Цитата:
Продавец_Кошмаров писал:
int iItemSlot( void ) { return 6; }
Цитата:
Продавец_Кошмаров писал:
p->iSlot = 4;

__________________
Отправлено GSen 11-06-2010 в 15:49:
Ну у меня не высокие знания C++ по этому не надо фэйспалмить, т.к. я пробывал разные значения в Возвращении, но хз мб что-то не так. По этому подскажи, что сделать с этой функцией?
Отправлено XaeroX 11-06-2010 в 15:57:
Значение в iItemSlot должно быть на единицу больше, чем в p->iSlot, в котором в свою очередь порядковый номер слота (начиная с 0). Знание С++ тут абсолютно не требуется, достаточно внимательно посмотреть код имеющегося оружия.
__________________
Отправлено GSen 11-06-2010 в 16:35:
Спасибо.