.| Autor | Beitrag |
|---|---|
|
000 03.12.2001, 16:12 Bobby |
Hallo, weiß jemand, wie ich ein Entity mache, mit dem ich dann für eine kurze einstellbare Zeit bzw. bis es erneut getriggert wird die Steuerung des Spielers deaktivieren kann? (er soll sich nicht umschauen, bewegen, springen und ducken können). In welchen Dateien (wo genau) muss ich was ändern. |
|
Profil || Suche |
|
001 03.12.2001, 16:23 RirA |
vielleicht hilft das: pPlayer->EnableControl(FALSE); -- |
|
Profil || Suche |
|
002 03.12.2001, 16:52 Bobby |
Wie erstelle ich ein ganz einfaches Entity, das eine Funktion aufruft? Falls es das schon gibt: Ein einfaches Tut über die Grundlagen der Erstellung eigener Entities (fgd + quellcode) wäre natürlich auch ok. -- |
|
Profil || Suche |
|
003 05.12.2001, 15:58 Bobby |
Ich habe es ausprobiert, funktioniert aber leider nicht - oder Fehler in meinem Code (Bin noch neu im HL-Coding). Deshalb hier mein Code: In meiner fgd-Datei steht folgendes: Dann hab ich im Projekt für die hl.dll eine cpp-Datei 'player_control' hinzugefügt: LINK_ENTITY_TO_CLASS( player_control, CPlayerControl ); void CPlayerControl::KeyValue(KeyValueData *pkvd) void CPlayerControl :: Spawn( CBasePlayer *pPlayer ) Beim compilen hat er aber keine Fehler angezeigt. |
|
Profil || Suche |
|
004 05.12.2001, 18:42 Metew |
diablecontrol? edit: oder pPlayer->movetype = none oder so, musst halt suchen wo es sonst im code vorkommen --SWCOOPFORCE-TEAM NEUE HOMEPAGE/SCREENS: SWCOOPFORCE-MOD | Helft mit für Legalisierung! Dieser Beitrag wurde am 05.12.2001 um 18:44 von Metew bearbeitet. |
|
Profil || Suche |
|
005 05.12.2001, 19:08 hausi |
Ich würde zuerst mal überprüfen, ob das Entity wirklich dann aufgerufen wird, wenn du es willst. Mach doch einfach mal anstatt dem EnableControls ein |
|
Profil || Suche |
|
006 05.12.2001, 19:24 Another1 |
seit wann kann ne spawn function nen argument haben? kann sie zwar, wird dann aber natürlich nicht aufgerufen, also deinen player pointer musst du schon irgendwo anders herbekommen. die spawn muss void sein, evtl packst du das lieber in ne Use function (wenn das entity getriggert wird oso) -- Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
007 10.12.2001, 19:18 Bobby |
Für was ist die Spawn-Funktion (Constructor?) |
|
Profil || Suche |
|
008 26.12.2001, 12:46 Bobby |
Ich habe meine Code jetzt etwas überarbeitet. Der Spieler kann jetzt schon nicht mehr laufen, springen, ducken. Doch wie kann ich verhindern, dass er sich umschauen kann? #include "extdll.h" class CPlayerControl : public CBaseEntity void CPlayerControl::KeyValue(KeyValueData *pkvd) void CPlayerControl :: Use ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) PS: Wozu ist eigentlich das save und restore - Zeugs in manchen Dateien? --Dieser Beitrag wurde am 26.12.2001 um 14:00 von Bobby bearbeitet. |
|
Profil || Suche |
|
009 26.12.2001, 14:09 Rockefeller |
oh je... :D Das Save- und Restore-Zeugs ist für den Single-Player, wenn du von einer Entity mehr Sachen speichern musst als nur die pev-Daten. D.h. wenn z.B. ein Spieler auf einem Train steht und ihn bedient, muss dieser nach dem Laden (=Restore :D) den Train ja immer noch bedienen, und das musst du extra speichern (war glaub ich nen doofes Beispiel :-) -- |
|
Profil || Suche |
|
010 26.12.2001, 15:21 Bobby |
Ich habe jetzt in player.h folgendes eingefügt: BOOL m_locked; Was genau und wo in player.cpp muss ich das mit dem pev->angles einfügen? --Dieser Beitrag wurde am 26.12.2001 um 15:22 von Bobby bearbeitet. |
|
Profil || Suche |
|
011 26.12.2001, 20:28 Rockefeller |
Ich bin mal nett heute :D Also ich würde das hier zu CBasePlayer hinzufügen: BOOL m_locked; und dann in CBasePlayer::PreThink(), am besten direkt vor dem Zeug mit den Trains: if (m_locked) Und dann musst du in deiner Entity nur noch beim Einfrieren |
|
Profil || Suche |
|
012 27.12.2001, 09:25 Bobby |
Ich habe es ausprobiert und bekam eine Fehlermeldung; war schnell behoben in meinem Entity statt pPlayer->angles musste ich wohl pPlayer->pev->angles schreiben. Fehlermeldung bekam ich keine mehr, hat aber trotzdem nicht funktioniert. Dieser Beitrag wurde am 27.12.2001 um 09:26 von Bobby bearbeitet. |
|
Profil || Suche |
|
013 27.12.2001, 14:37 Rockefeller |
ups ja da hab ich das pev vergessen, aber wieso geht das nicht? hmm mal überlegen.... oh ich dussel: if (m_locked) Das bitte noch einfügen. -- |
|
Profil || Suche |
|
014 27.12.2001, 21:31 Bobby |
Vielen Dank hat funtioniert!
Dieser Beitrag wurde am 27.12.2001 um 21:40 von Bobby bearbeitet. |
|
Profil || Suche |
|
015 31.12.2001, 18:43 Bobby |
Weis niemand wie sowas geht (bei env_shake auch den view einer Kamera erschüttern)? Funktioniert mein Ansatz? Irgendwelche Ideen, Vorschläge oder Anregungen? -- |
|
Profil || Suche |
|
016 02.01.2002, 02:12 Rockefeller |
Ich weiss nich ob das überhaupt mit Cams geht, aber du könntest in UTIL_ScreenShake überprüfen, ob ein Spieler grad "in" einer Kamera steckt, und dann anstatt Aber wie gesagt, das kann sein, dass das mit Cams garnicht geht. -- |
|
Profil || Suche |
|
017 02.01.2002, 10:50 Bobby |
Wie bekomme ich in util.cpp einen Pointer auf die aktivierte Kamera? Klingt für euch vielleicht blöd, aber ich hab echt keinen Schimmer. -- |
|
Profil || Suche |
|
018 02.01.2002, 16:14 Rockefeller |
Ich auch nich, musst du dir wohl bei Aktivierung der Cam nen Pointer auf die Cam merken. -- |
|
Profil || Suche |
|
019 02.01.2002, 16:35 Bobby |
Hab ich mir auch gedacht, habs aber nicht hinbekommen. Könntest du mir vielleicht mal als Hilfe sagen, was in die player.h rein muss (Definition des Pointers)? Wäre echt nett! -- |
|
Profil || Suche |
|
020 03.01.2002, 00:28 Rockefeller |
Ja da machste die halt ein Und dann setzt du in CTriggerCamera::Use() das Ding auf this und dann wenn die Camera deaktiviert wird halt wieder auf NULL. Und dann musst du nur noch testen, ob (m_PlayerView != NULL) ist, und wenn ja ist m_PlayerView die Camera-Entity. --Dieser Beitrag wurde am 03.01.2002 um 00:28 von Rockefeller bearbeitet. |
|
Profil || Suche |

