000
16.09.2005, 15:38
LaLaLa
|
Hey, ich kann CBaseEntity in meinem Plugin teilweise verwenden aber z.B dies klappt nicht:
CBaseEntity *PlayerBase = pEntity->GetUnknown()->GetBaseEntity(); CBasePlayer *pCBPlayer = (CBasePlayer*) PlayerBase; if(pCBPlayer && PlayerBase) { pCBPlayer->Event_Killed( CTakeDamageInfo( pCBPlayer, pCBPlayer, 0, DMG_CLUB ) ); }
PatiAdmin error LNK2019: unresolved external symbol "public: __thiscall CTakeDamageInfo::CTakeDamageInfo(class CBaseEntity *,class CBaseEntity *,float,int,int)" (??0CTakeDamageInfo@@QAE@PAVCBaseEntity@@0MHH@Z) referenced in function "public: virtual enum PLUGIN_RESULT __thiscall PatiAdmin::ClientCommand(struct edict_t *)" (?ClientCommand@PatiAdmin@@UAE?AW4PLUGIN_RESULT@@PAUedict_t@@@Z)
Vielleicht wiss ihr wie ich das beheben kann...
Danke
Gruß
--
|
|
Profil || Suche
|
001
16.09.2005, 16:22
Adrian_Broher
Admin
|
Gibt es überhaupt einen Konstruktor von CTakeDamageInfo der diese Signatur implementiert hat?
CTakeDamageInfo::CTakeDamageInfo(class CBaseEntity *,class CBaseEntity *,float,int,int)
--
There is nothing wrong with high standards. It's your problem that you don't meet them. If you think it's simple, then you have misunderstood the problem. When a customer says "nothing has changed", assume they're lying.
Dieser Beitrag wurde am 16.09.2005 um 16:23 von Adrian_Broher bearbeitet.
|
|
Profil || Suche
|
002
16.09.2005, 16:48
HammerBlade
|
Adrian_Broher, ja die gibt es in: src\game_shared\takedamageinfo.h src\game_shared\takedamageinfo.cpp
LaLaLa, LNK2019 besagt soviel wie: Die Funktion/Methode ist deklariert, aber der Linker kann die Implementierung nicht finden, weil sie z.B. nicht compilert wurde, aber in Sourcecode vorliegt.
Du musst also nach der Implementierung der Klasse CTakeDamageInfo suchen und dafür sorgen, dass sie mitcompilert wird. Teilweise sind .cpp-Datein von der Compilierung ausgeschlossen, dies kann man unter den Eigensaften der jeweiligen Datei einstellen.
--
"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium. -- Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way
Dieser Beitrag wurde am 16.09.2005 um 16:50 von HammerBlade bearbeitet.
|
|
Profil || Suche
|
003
16.09.2005, 17:00
LaLaLa
|
Danke, ich hab nun einfach die Datein: takedamageinfo.h und takedamageinfo.cpp in mein Projekt mit eingebunden nun geschiet das was ich erwartet habe es gibt nun statt einem Linker Error eben 37 Errors :-/ Ich kann das nicht so einfach in mein Projekt einbinden, da es eben ein Server Plugin ist :-(
Noch irgendwelche Ideen wie ich das trotzdem benutzen kann ?
Danke
Gruß
EDIT: Von der Erstellung sind diese Datein auch nicht ausgeschlossen...
--
Dieser Beitrag wurde am 16.09.2005 um 17:02 von LaLaLa bearbeitet.
|
|
Profil || Suche
|
004
16.09.2005, 18:01
HammerBlade
|
Du kannst die Klassenhierachie ja nicht einfach so zerpflücken. Ich nehme mal an, dass dadurch, dass du jetzt den src für CTakeDamageInfo hinzugenommen hast wieder neue Abhängigkeiten entstanden sind.
Was sind das denn für 37 neue Errors?
--
"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium. -- Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way
|
|
Profil || Suche
|
005
16.09.2005, 18:11
LaLaLa
|
Hallo, also wenn ich die Datein nicht ins Projekt einbinde gibts halt nur einen Linker Error includiere bzw. binde ich "takedamageinfo" ein schaut das sdann o aus:
f:\PatiAdmin\game_shared\playernet_vars.h(69): error C2061: syntax error : identifier 'ent' f:\PatiAdmin\dlls\basecombatcharacter.h(406): error C2061: syntax error : identifier 'm_hActiveWeapon' f:\PatiAdmin\dlls\player.h(843): error C2061: syntax error : identifier 'm_hConstraintEntity' f:\PatiAdmin\dlls\baseentity.h(1495): error C2061: syntax error : identifier 'm_hEffectEntity' f:\PatiAdmin\dlls\baseentity.h(1514): error C2061: syntax error : identifier 'm_hGroundEntity' f:\PatiAdmin\dlls\baseanimating.h(333): error C2061: syntax error : identifier 'm_hLightingOrigin' f:\PatiAdmin\dlls\baseentity.h(1483): error C2061: syntax error : identifier 'm_hMoveParent' f:\PatiAdmin\dlls\player.h(704): error C2061: syntax error : identifier 'm_hObserverTarget' f:\PatiAdmin\game_shared\baseviewmodel_shared.h(156): error C2061: syntax error : identifier 'm_hOwner' f:\PatiAdmin\dlls\baseentity.h(1494): error C2061: syntax error : identifier 'm_hOwnerEntity' f:\PatiAdmin\dlls\player.h(687): error C2061: syntax error : identifier 'm_hVehicle' f:\PatiAdmin\game_shared\baseentity_shared.h(109): error C2065: 'm_hEffectEntity' : undeclared identifier f:\PatiAdmin\dlls\baseanimating.h(371): error C2065: 'm_hLightingOrigin' : undeclared identifier f:\PatiAdmin\dlls\baseentity.h(1733): error C2065: 'm_hMoveParent' : undeclared identifier f:\PatiAdmin\game_shared\baseentity_shared.h(104): error C2065: 'm_hOwnerEntity' : undeclared identifier f:\PatiAdmin\dlls\player.h(945): error C2065: 'm_hVehicle' : undeclared identifier f:\PatiAdmin\dlls\baseentity.h(1733): error C2228: left of '.Get' must have class/struct/union type f:\PatiAdmin\game_shared\baseentity_shared.h(104): error C2228: left of '.Get' must have class/struct/union type f:\PatiAdmin\game_shared\baseentity_shared.h(109): error C2228: left of '.Get' must have class/struct/union type f:\PatiAdmin\dlls\player.h(945): error C2228: left of '.Get' must have class/struct/union type f:\PatiAdmin\dlls\player.h(951): error C2228: left of '.Get' must have class/struct/union type f:\PatiAdmin\dlls\player.h(956): error C2228: left of '.Get' must have class/struct/union type f:\PatiAdmin\dlls\baseentity.h(1494): error C2535: 'int CBaseEntity::CNetworkHandle(CBaseEntity)' : member function already defined or declared f:\PatiAdmin\dlls\baseentity.h(1483) : see declaration of 'CBaseEntity::CNetworkHandle' f:\PatiAdmin\dlls\baseentity.h(1495): error C2535: 'int CBaseEntity::CNetworkHandle(CBaseEntity)' : member function already defined or declared f:\PatiAdmin\dlls\baseentity.h(1483) : see declaration of 'CBaseEntity::CNetworkHandle' f:\PatiAdmin\dlls\player.h(704): error C2535: 'int CBasePlayer::CNetworkHandle(CBaseEntity)' : member function already defined or declared f:\PatiAdmin\dlls\player.h(843): error C2535: 'int CBasePlayer::CNetworkHandle(CBaseEntity)' : member function already defined or declared f:\PatiAdmin\dlls\baseentity.h(1483): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\baseentity.h(1494): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\baseentity.h(1495): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\baseanimating.h(333): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\basecombatcharacter.h(406): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\game_shared\playernet_vars.h(69): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\player.h(687): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\player.h(704): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\player.h(843): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\game_shared\baseviewmodel_shared.h(156): warning C4183: 'CNetworkHandle': missing return type; assumed to be a member function returning 'int' f:\PatiAdmin\dlls\baseentity.h(1514): warning C4183: 'CNetworkHandleInternal': missing return type; assumed to be a member function returning 'int'
`
Wie gesagt wenn ich takedamageinfo nicht includiere oder einbinde dann gibts halt nur nen Linker Error...
Zeilen wie:
basePlayer->SetModel(...); Klappen ohne Probleme...
SetAbsOrigin(); Das gibt übrigens nen ähnlichen Linker Error
Danke
Gruß
PS: Hoffe der Post ist nun nicht zu stark mit Informationen überfüllt :-)
--
|
|
Profil || Suche
|