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



Naja ich habe jetzt nach knappen 7 Wochen C++ Coding mal gedacht ein bisschen was für HL zu versuchen. Ich weiss nicht ob ich schon bereit dafür bin aber will es halt versuchen.

Ich habe mir überlegt eine MiniMod im "Arkanoid" Style zu basteln.
Die Steine könnte man leicht mit func_walls machen, den Player selber halt als Model. Das man sich nicht nach vorne und hinten bewegen kann wäre leicht mit unsichtbaren Wänden getan. Soweit nur Mapping Arbeit.

Ich glaube ich weiss wie ich ein Punkte-Zähl System einbauen kann (durch Hilfe des Geld-Tuts von DHCC) aber wo ich kaum eine Idee habe ist die Kugel.
Klar ich kann einfach eine "unsichtbare" (kein Model) Waffe nehmen und der als Bullet halt diese Kugel geben. Dann noch den Speed der Bullet runterstellen und okay ist. Aber wie mache ich, dass sie von bestimmten Wänden dann abprallt und zurückfliegt? Ich meine mich erinnern zu können, dass die eine Alien Waffe in HL von Wänden abprallt.. Ausserdem darf der Player sie ja nur beim ersten Start "abschiessen" und danach müsste gleich mit dem Player eine Wand "gespawnt" werden von der die Kugel dann auch abfliegt. Die Frage ist wie bekomm ich da die richtige Physik rein? :D

Eine Idee wie ich das "sterben" des Spielers beim Verlassen der Kugel am unteren Bildrand hinbekomme habe ich auch schon. Einfach nochmal eine unsichtbare func_wall welche aber KEINE Punkte gibt und den Player auf "death" triggert. Aber wie könnte ich mehrere Leben einbauen?

Meine Fragen nun :

1) Ist die Mod so wie ich sie mir vorstelle möglich?
2) Idee zum "Zurückfliegen der Kugel"?
3) Wie mehrere Leben einbauen?

mfg :)

--

---
Leader von Move In!
---


Dieser Beitrag wurde am 17.04.2003 um 04:03 von k47 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
17.04.2003, 09:42
Gott



du kannst ein enity mit nem movetyp erstellen das es sich bewegen kann aber von der schwerkraft nicht erfasst wird musst dann halt nur den schussvektor parallel zum boden machen. mir is das mal aufgefallen als ich aus versehen nen flummi gecodet habe

--

millirem und bequerel , kleine kinder sterben schnell

Arsch für alles bei War in Europe
www.warineuropemod.com

zum Seitenanfang zum Seitenende Profil || Suche
002
17.04.2003, 13:50
k47



uhm das versteh ich jetzt gerade nicht. Dieser dumme Ball ist das Problem was ich habe. Den Rest bin ich gerade dran und es läuft eigentlich recht gut.. Hat da wer ne gute Idee oder kann mir wer erläutern wie Gott das "genauer" meint ? :D (sorry für die "nubität" dieses threads :D)

--

---
Leader von Move In!
---

zum Seitenanfang zum Seitenende Profil || Suche
003
17.04.2003, 14:32
k47



Okay. Soweit verstanden.
Jetzt nur noch par Fragen :

1. Wenn ich das mit der Granate mache dann muss ich den Player ja als "abprallbar" einstellen. Schliesslich explodiert die Granate sonst auf mir. Muss ich das beim Player oder in der Granatenfunktion machen? (mal suchen...)

2. Ich habe jetzt mal ein Punktesystem erstellt. In der Die Funktion von einem func_breakable wollte ich jetzt Punkte adden. Aber das funktioniert nicht wirklich.
"
pAttacker->AddPoints(1000);
"

Damit will ich dem Attacker halt 1000 Punkte geben. Ich glaube der Fehler ist dass das pAttacker nicht deklariert ist, aber in der Funktion genauer darüber (TakeDamage) gibt es ein pevAttacker.. Habe es mit dem probiert geht auch nicht.. Was ist da jetzt der Fehler?

--

---
Leader von Move In!
---

zum Seitenanfang zum Seitenende Profil || Suche
004
17.04.2003, 14:34
Killing Me Softly



So richtig 'Nubihaft' ist der Thread nicht. Da hast du dir als Anfangsprojekt aber nicht gerade was einfaches einfallen lassen (normalerweise codet man zuerst ne einfache Waffe, aber nein, k47 muss mal wieder aus der Reihe tanzen *g*)

Also: jedes Entity besitzt eine Eigenschaft pev->movetype welches bestimmt, wie sich das Entity im Level bewegt. bei MOVETYPE_FLY fliegt es , bei MOVETYPE_TOSS fällt es nach unten und bleibt liegen und bei MOVETYPE_BOUNCE fällt es ebenfalls nach unten und hüpft wie ein Tennisball. Neben den gerade genannten gibt es noch einige mehr u.a. MOVETYPE_BOUNCEMISSILE welches das Entity veranlasst überall abzuprallen wo es dagegendotzt (also genau das, was du haben willst).

Das Einzige, was du nun brauchst ist ein sympatisches Entity, welches du als Ball missbrauchen möchtest (nimm z.B. die Granate und gewöhn ihr das Explodieren ab, dann brauchst du z.B. nur das Model zu ersetzen), änderst in der Spawn-Funktion pev->movetype in MOVETYPE_BOUNCEMISSILE und gibst dem Ding einen Schups.

Nur so als Tipp: such mal CGrenade:: ShootTimed(...) (zu finden in ggrenade.cpp); setzte irgendwo in der Funktion ein
pGrenade->pev->movetype = MOVETYPE_BOUNCEMISSILE;
rein und kommentiere die beiden Zeilen
pGrenade->SetTouch( BounceTouch ); und
pGrenade->SetThink( TumbleThink );
aus. Danach das Game starten, ne Handgranate werfen und schauen, was passiert.

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
005
17.04.2003, 14:38
Onkel Dittmeyer



Geht noch einfacher:
sv_cheats 1
give grenade
Und schon haste nen Flummi der nicht explodiert ^^

--

zum Seitenanfang zum Seitenende Profil || Suche
006
17.04.2003, 14:50
k47



Okay das mit dem Player hab ich jetzt.. Die Frage ist jetzt nurnoch wegen der Punktezählung erstmal.

--

---
Leader von Move In!
---

zum Seitenanfang zum Seitenende Profil || Suche
007
17.04.2003, 15:49
Killing Me Softly



Jetzt hab ich zwei Fragen *g*:

1. Wie regelst du es, das dein func_breakable "stirbt"? Durch Berührung durch den Ball?
2. hast du die Handgranate als Ball genommen oder etwas anderes?

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
008
17.04.2003, 15:53
k47



1. Das das func_breakable stirbt ist ganz normal im Code drin.

Quellcode:void CBreakable::Die( void ) Das umschreiben mit dem durch Berührung wollte ich dann noch machen.

2. Ja ich benutzte die Handgranate

--

---
Leader von Move In!
---

zum Seitenanfang zum Seitenende Profil || Suche
009
17.04.2003, 16:00
Killing Me Softly



schreib mal deine BreakTouch-Funktion wie folgt um (nicht getestet *g*)
Quellcode:void CBreakable::BreakTouch( CBaseEntity *pOther )
{
    // kontrolliert, ob das func_breakable von einer Granate getriffen wurde
    if (FClassnameIs(pOther->pev,"grenade"))    
    {    DamageSound();

          SetThink ( Die );        // damit das func_breakable "zerbricht"
          SetTouch( NULL );
        
          if ( m_flDelay == 0 )
              m_flDelay = 0.1;

          pev->nextthink = pev->ltime + m_flDelay;

          if (pOther->pev->owner)    // pOther ist der "Ball" und owner ist der Spieler, der den Ball geschossen hat
          {    CBaseEntity *pPlayer = CBaseEntity::Instance(pOther->pev->owner);

       if (pPlayer)
           pPlayer->AddPoints(1000, TRUE);
          }
     }
}

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche