.| Autor | Beitrag |
|---|---|
|
000 24.02.2004, 17:18 -[Phoenix]- |
Ja, ich weiss, so ein Thema wurde hier schonmal erstellt. Ich hab mir das auch mal durchgelesen, bin aber nicht wirklich schlau daraus geworden. Außerdem: 1. Eine neue MonsterKilled - Funktion einzubauen find ich ein bischen heftig P.S. Ich hab nach dem Tut. von "http://hlpp.cjb.net/" ( Experience Tutorial Habt ihr eventuell ne' Idee ? -- |
|
Profil || Suche |
|
001 24.02.2004, 17:45 Onkel Dittmeyer |
Ja du musst schon mit der CBaseMonster::Killed arbeiten. Hol dir den Class pointer von den pevAttacker entvars und prüf mit IsPlayer ab ob es ein Player ist. Wenn dem so ist mach nen Cast und stopf den Pointer in ein CBasePlayer* |
|
Profil || Suche |
|
002 24.02.2004, 18:47 -[Phoenix]- |
Erstmal vielen Dank für deine Hilfe. Sorry, is für mich bischen schwierig zu verstehen, bin zwar nich mehr so der C++ Noob, aber is doch ein wenig haarig bei mir. Ich versuchs mal mit deiner Methode ich glaub nämlich ein wenig das verstanden zu haben, mal sehen, was dabei herauskommt. -- |
|
Profil || Suche |
|
003 24.02.2004, 21:43 -[Phoenix]- |
Is zwar sowieso falsch aber das war meine Planung so hab ich mir das gedacht. Bitte nich lachen: CBaseEntity *pPlayer = CBaseEntity::Instance(pevAttacker); m_IdealMonsterState = MONSTERSTATE_DEAD; if( pPlayer && pPlayer->IsPlayer() ) // <- Das sollte die IsPlayer - Prüfung sein. Ich versuch ja gerade so den Kramm wieder zu lernen, is ne Ewigkeit her, als ich das letzte Mal mich mit HL - Coding befasst habe. Zur Zeit is bei mir mehr Learning by Doing. Modifiziere ein paar Sachen aus Tuts. und so, damit ich mehr davon verstehe. Klappt auch fast immer. -- |
|
Profil || Suche |
|
004 25.02.2004, 06:58 Onkel Dittmeyer |
|
|
Profil || Suche |
|
005 25.02.2004, 14:21 -[Phoenix]- |
Aha, jetzt versteh ich was du meinst. Wieder etwas dazugelernt. Danke !!! Also es kann nur am Aufruf: "pPlayer->exp_level;" liegen, der ist eigentlich Am Rest kann es ja nicht liegen, da ich meine Frags durch den neuen Code |
|
Profil || Suche |
|
006 25.02.2004, 14:32 Exec |
wo testest du,welchen level du hast? "selbermachen rockt am meisten :D" - -LeJean- |
|
Profil || Suche |
|
007 25.02.2004, 14:58 -[Phoenix]- |
Also ich bekomme eine Hud - Text - Nachricht, die mich über meinen Levelaufstieg informiert: ClientPrint(pPlayer->pev, HUD_PRINTCENTER, "Your Experience Level Is 1"); Außerdem bekomm ich ja neue Items beim Aufstieg in ein neues Level, daran |
|
Profil || Suche |
|
008 25.02.2004, 15:05 Exec |
und wo regelst du das? also das du items/message bekommst? --"selbermachen rockt am meisten :D" - -LeJean- |
|
Profil || Suche |
|
009 25.02.2004, 16:14 Onkel Dittmeyer |
"pPlayer->exp_level;" ist _kein_ Aufruf, das ist gar nichts - es ist ne Variable und keine Funktion. Das ist so als ob du irgendwo in den Code "1337;" schreibst, es tut nichts. |
|
Profil || Suche |
|
010 25.02.2004, 20:55 -[Phoenix]- |
@ Exec: if (pPlayer->exp_level == EXP_LEVEL_1) und später muss ich noch wat in der PlayerKilled() machen. @ Onkel Dittmeyer: |
|
Profil || Suche |
|
011 25.02.2004, 22:19 -[Phoenix]- |
Ok, ich hab jetzt des Rätsels Lösung gefunden, der Kram muss so aussehen: CBaseEntity* pKiller = GetClassPtr((CBasePlayer*)pevAttacker); m_IdealMonsterState = MONSTERSTATE_DEAD; if (pKiller && pKiller->IsPlayer()) CBasePlayer* peKiller = (CBasePlayer*)pKiller; Zuerst hatte ich noch ein paar Probs. weil ich es mit pPlayer->exp_level versucht habe, aber mit peKiller->exp_level ... funzt es wunderbar. Dann hatte ich ein Problem mit : peKiller->GiveAmmo( BUCKSHOT_MAX_CARRY, "buckshot", BUCKSHOT_MAX_CARRY ); ... da er sich gegen "BUCKSHOT_MAX_CARRY" streubte. Aber dann habe Welche Lösung hättet ihr denn so gehabt? :) -- |
|
Profil || Suche |

