Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
31.10.2001, 12:24
Lord_bluetooth



Hi @ all

Ich habe ein Problem(wer hätte es gedacht).
Und Zwar kann ich keine mp.dll erstellen wenn ich die Änderungen für die TeamplayOptionen aus dem Tutorial in der multiplayergamerules.cpp mache.
Ich benutze den MingW32 Compiler glaube aber nicht das dass ein Problem ist.

Ich will hier erstmal posten was ich in die multiplayergamerules.cpp reingeschreiben habe bzw. verändert habe.

//=========================================================
void CHalfLifeMultiplay :: PlayerSpawn( CBasePlayer *pPlayer )
{
BOOL addDefault;
CBaseEntity *pWeaponEntity = NULL;

pPlayer->pev->weapons |= (1<<WEAPON_SUIT);

addDefault = TRUE;

while ( pWeaponEntity = UTIL_FindEntityByClassname( pWeaponEntity, "game_player_equip" ))
{
pWeaponEntity->Touch( pPlayer );
addDefault = FALSE;
}

if ( addDefault )
{
if (pPlayer->m_iPlayerClass < 1 || pPlayer->m_iPlayerClass > 6) //hier habe ich die pplayer aus dem Turorial zu pPlayer geändert
pPlayer->m_iPlayerClass = 3;

pPlayer->GiveNamedItem( "weapon_crowbar" );
pPlayer->GiveNamedItem( "weapon_handgrenade" );
pPlayer->GiveNamedItem( "weapon_handgrenade" );

if (pPlayer->m_iPlayerClass == 1)
{
pPlayer->GiveNamedItem( "weapon_9mmhandgun" );
pPlayer->GiveAmmo( 68, "9mm", _9MM_MAX_CARRY );
g_engfuncs.pfnSetClientKeyValue( pPlayer->entindex(), g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model", "merc" );
pPlayer->pev->armorvalue=30;
g_engfuncs.pfnSetClientMaxspeed( ENT( pPlayer->pev ), 900);
ClientPrint(pPlayer->pev, HUD_PRINTTALK, "Du bist jetzt Freak");
}
else if (pPlayer->m_iPlayerClass == 2)
{
pPlayer->GiveNamedItem( "weapon_crossbow" );
pPlayer->GiveAmmo( AMMO_CROSSBOWCLIP_GIVE, "bolts", BOLT_MAX_CARRY );
pPlayer->GiveNamedItem( "weapon_9mmhandgun" );

g_engfuncs.pfnSetClientKeyValue( pPlayer->entindex(), g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model", "hgrunt" );
pPlayer->pev->armorvalue=20;
g_engfuncs.pfnSetClientMaxspeed( ENT( pPlayer->pev ), 700);
ClientPrint(pPlayer->pev, HUD_PRINTTALK, "Du bist jetzt HandGunFreak");
}
else if (pPlayer->m_iPlayerClass == 3)
{
pPlayer->GiveNamedItem( "weapon_shotgun" );
pPlayer->GiveNamedItem( "weapon_rpg" );
pPlayer->GiveAmmo( AMMO_RPGCLIP_GIVE, "rockets", ROCKET_MAX_CARRY );

g_engfuncs.pfnSetClientKeyValue( pPlayer->entindex(), g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model", "zombie" );
pPlayer->pev->armorvalue=50;
g_engfuncs.pfnSetClientMaxspeed( ENT( pPlayer->pev ), 400);
ClientPrint(pPlayer->pev, HUD_PRINTTALK, "Du bist jetzt Handgun Freak.");
}
else if (pPlayer->m_iPlayerClass == 4)
{
pPlayer->GiveNamedItem( "weapon_handgrenade" );
pPlayer->GiveNamedItem( "weapon_satchel" );
pPlayer->GiveNamedItem( "weapon_tripmine" );
pPlayer->GiveNamedItem( "weapon_handgrenade" );
pPlayer->GiveNamedItem( "weapon_satchel" );
pPlayer->GiveNamedItem( "weapon_tripmine" );

g_engfuncs.pfnSetClientKeyValue( pPlayer->entindex(), g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model", "robo" );
pPlayer->pev->armorvalue=50;
g_engfuncs.pfnSetClientMaxspeed( ENT( pPlayer->pev ), 500);
ClientPrint(pPlayer->pev, HUD_PRINTTALK, "Du bist jetzt Rocket Freak");
}
else if (pPlayer->m_iPlayerClass == 5)
{
pPlayer->GiveNamedItem( "weapon_shotgun" );
pPlayer->GiveNamedItem( "weapon_mp5" );
pPlayer->GiveAmmo( 68, "9mm", _9MM_MAX_CARRY );

g_engfuncs.pfnSetClientKeyValue( pPlayer->entindex(), g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model", "yodan" );
pPlayer->pev->armorvalue=200;
g_engfuncs.pfnSetClientMaxspeed( ENT( pPlayer->pev ), 300);
ClientPrint(pPlayer->pev, HUD_PRINTTALK, "Du bist jetzt RealFreak");
}
else if (pPlayer->m_iPlayerClass == 6)
{
//AntiFreak
pPlayer->GiveNamedItem( "weapon_9mmhandgun" );
pPlayer->GiveAmmo( 68, "9mm", _9MM_MAX_CARRY );

g_engfuncs.pfnSetClientKeyValue( pPlayer->entindex(), g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model", "gman" );
pPlayer->pev->armorvalue=15;
g_engfuncs.pfnSetClientMaxspeed( ENT( pPlayer->pev ), 800);
ClientPrint(pPlayer->pev, HUD_PRINTTALK, "Du bist jetzt AntiFreak.");
}

}
}

//=========================================================

DAS WAREN DIE VERÄNDERUNGEN!

Jetzt kommt der Fehler von MingW32(leider konnte ich nicht den gesamten Compilevorgang kopieren da ich nicht weiß wie´s geht).

ACHTUNG UND JETZT:

//=========================================================

multiplay_gamerules.cpp: In method `void CHalfLifeMultiplay::PlayerSpawn(class C
BasePlayer *)':
multiplay_gamerules.cpp:481: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:481: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:482: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:488: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:497: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:508: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:519: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:533: `class CBasePlayer' has no member named `m_iPlayerC
lass'
multiplay_gamerules.cpp:544: `class CBasePlayer' has no member named `m_iPlayerC
lass'
C:\WINDOWS\DESKTOP\WORLDC~1\MING\MINGW32\BIN\MAKE.EXE: *** [multiplay_gamerules.
o] Error 1

//=========================================================

DAS WAR DER FEHLER VON MINGW32!

Ich schätze ich habe CBaseplayer oder m_iPlayerC nicht definiert weiß aber nicht wo der Fehler ist.

Hat einer eine multiplayergamerules.cpp die eine Teamfunktion besitzt und mit MingW32 kompatibel ist.

cya all

--

zum Seitenanfang zum Seitenende Profil || Suche
001
31.10.2001, 12:44
afrobnullsiebenelf



schau mal in deine Player.h da müsste sowas in der art drinstehen...

virtual void UpdateKills( CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor );

/\
BEISPIEL!!!!

--

$> su -c "rm -rf /"
Tu es!

zum Seitenanfang zum Seitenende Profil || Suche
002
31.10.2001, 12:58
Lord_bluetooth



Es könnte schon sein aber wo is den der Fehler??? Oder anders gesagt was muss ich verändern damits funzt???

Danke im Voraus

cu

--

zum Seitenanfang zum Seitenende Profil || Suche
003
31.10.2001, 13:03
afrobnullsiebenelf



Quellcode:class CBasePlayer' has no member named `m_iPlayerC
bedeutet dass die Classe CBasePlayer keine Member mit dem namen n_iPlayer hat.

Schau mal nach ob du alles richtig geschrieben hast. Hast du dich vertippt? etwas vergessen zu declahieren?

Wenn du den Code irgend wo kopiert hast dann schau ihn trotzdem nochmal genau an ob rechtschreibfehler drin sind... vielleicht ist auch eine { nicht richtig gesetzt? ein ; fehlt? einen teil ausgelassen? variablen falsch geschrieben?

Mehr kann ich dazu auch nicht sagen.

--

$> su -c "rm -rf /"
Tu es!


Dieser Beitrag wurde am 31.10.2001 um 13:05 von AFROB0711 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
31.10.2001, 13:18
Lord_bluetooth



okay das hat mir ja schon mehr geholfen ich werd dann mal auf fehlersuche gehen ;)

Vielleicht eine Farge am Rande: Könnte es an MingW32 liegen?

Ich schätze ich muss in die multiplayergamerules.cpp und die player.h gehen oder???

Wiedermal Danke im Voraus.

cu

--

zum Seitenanfang zum Seitenende Profil || Suche
005
31.10.2001, 16:03
bbjoker



Nein wenn du MingW32 bedienen kannst kann es nicht daran liegen!

--

zum Seitenanfang zum Seitenende Profil || Suche
006
31.10.2001, 16:09
Archangel



arrrrg.. die fehlermeldung is doch nun wirklich selbsterklärend, und n bissl coden sollte man auch können... man muss ne membervariable m_iPlayerClass in der CBasePlayer deklarieren, WTF is an der fehlermeldung so undeutlich?

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
007
31.10.2001, 16:14
thinktank



Ausserdem warum die m_iPlayerClass deklarieren, wenns auch die pev->playerclass gibt ;) ?

--

zum Seitenanfang zum Seitenende Profil || Suche
008
31.10.2001, 16:53
m0rgu3



es gibt eine pev->playerclass NEIINN! Soll das heißen, dass jeder, der das Tut mach unter umständen 1000000 Zeilen umsonst codet?!? NARF *totumfall*

--

Man brauchte drei C64 um zum Mond zu fliegen. Win2k braucht mindestens einen PII 350. Irgendwas stimmt doch da nicht!

zum Seitenanfang zum Seitenende Profil || Suche
009
31.10.2001, 17:14
Lord_bluetooth



@Archangel

Ja das ist ja sehr schön das ich eine "membervariable deklarieren" soll.
Nur leider bin erst ein Newbie im Coden und was macht ein Newbie ->
GENAU: Tutorials angucken und ausprobieren! Blöd nur wenn das Tutorial irgendwie nicht funzt oder meinst du nicht auch??? Nach deiner Antwort fragt sich dann ein Newbie(wie zum Beispiel ich) wie man ein "Membervariable deklariert". Jetzt würde es einen Newbie freuen wenn ein freundlicher Mensch (welcher du sicherlich bist) eine genaue Vorgehensweise beschreibt wie man soetwas macht.

Ich möchte mich im Voraus schon Bedanken

cu

PS: Wenn´s ein anderer weiß bitte auch posten

--

zum Seitenanfang zum Seitenende Profil || Suche
010
31.10.2001, 17:27
Archangel



du gehst in die player.h, und fügst dann direkt nach der Zeile nach der geschweiften Klammer unter class CBasePlayer : public CBaseMonster die zeile int m_iPlayerClass; ein...

Sorry, aber das sind coding-grundkentnisse, kauf dir erstmal nen vernünftiges c++ buch, und schau dir tutorials nur an, statt gleich alles per c&p zu machen...

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
011
31.10.2001, 17:39
m0rgu3



copy & pasé...

--

Man brauchte drei C64 um zum Mond zu fliegen. Win2k braucht mindestens einen PII 350. Irgendwas stimmt doch da nicht!

zum Seitenanfang zum Seitenende Profil || Suche
012
31.10.2001, 17:56
Lord_bluetooth



ICH ENTSCHULDIGE MICH!
ASCHE ÜBER MEIN HAUPT!

ICH HABE MEINEN (BLÖDEN) FEHLER GEFUNDEN!

ES STAND IM TUTORIAL DAS MAN IN DER PLAYER.H ...

Jedoch habe ich einen neuen Fehler *heul*

HIER KOMMT ER:

Couldn't get GiveFnptrsToDll in C:\...\MEINMOD\dlls\mp.dll
Last 32 messages parsed
0 000 svc_bad
{das kommt jetzt schätzungweise 32mal}
BAD: -1:svc_bad
Wrote erroneous message to buffer.dat
Host_Error: Couldn't get DLL API from C:\...\MeinMod\dlls\mp.dll

ja was ist dazu noch zusagen: ich habe den Fehler im Game bekommen nicht beim compliemieren(oder so ähnlich)

WIE IMMER DANKE IM VORAUS

cu

--

zum Seitenanfang zum Seitenende Profil || Suche
013
31.10.2001, 19:52
hausi



Scheint ein Fehler beim Compilen sein. Überprüfe mal mit einem MingW32-Tut, wie du alles genau konfigurieren musst, oder saug dir eine bereits vorkonfigurierte Version. Falls das nichts hilft, dann solltest du nochmal schreiben.
P.S: Schau dir auch mal die Datei buffer.dat an. Dort drin stehen z.T. andere Informationen...

--

zum Seitenanfang zum Seitenende Profil || Suche
014
01.11.2001, 16:36
Lord_bluetooth



Ich habe schon in die Buffer.dat geguckt da steht aber nur Mist nicht ein Buchstabe sondern nur Zeichen. Mit welchem Programm muss ich die Datei denn öffnen?Ich habe eigentlich alles umkonfiguriert damit ming es lesen kann.

cu

--

zum Seitenanfang zum Seitenende Profil || Suche