Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » C++ Hürde in einem Spiel

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.12.2005, 14:09 Uhr
~And1
Gast


Hi alle zusammen.

Also ich poste hier auch, weil ihr mir vllt helfen könntet.

Ich möchte für ein Spiel eine kleine Mod. selber machen.

Und zwar geht es um Call of Duty 2 im Capture the Flag Modus.

Kurze Erklärung:

2 Teams jedes Team eine Flagge.
Ein Spieler(Nennen wir ihn Hans) von Team A klaut die Flagge von Team B und punktet wenn Flagge B auf Flagge A ist. (Flagge A muss dabei in der Home_Position sein)

Jetzt möchte ich es so machen, dass wenn Hans im Radius von X m um die eigene Flagge (in dem Fall A, da er Spieler von Team A ist), die Flagge B verliert, dass dann ein Sound ertönt. (Um den Sound geht es erstmal nicht.)
Wenn er ausserhalb des Radius ist, passiert nichts.

Für die Spieler unter euch. Ich möchte den "Holy Shit" in Call of Duty 2 einbauen. :-)


So ich habe mir sagen lassen, dass ich Distanzen mit "distance(flagge,spieler) überprüfen kann.
C++ Kenntnisse hab ich aber die sind schon ziemlich eingerostet.

Es gibt verschiedene Funktionen die ich für relevant halte.

Die Funktion dropFlag() www.foxserver.de/files/dropflag.txt
Und die Funktion createwaypoint() die, wie es mir scheint, die Postition der verlorenen Flagge angibt, wenn dropflag() ausgeführt wird. www.foxserver.de/files/flagwaypoint.txt

Jetzt hab ich mir in etwa das so vorgestellt:

if(distance(createflagwaypoint,allied_flag.home_origin) < 20)
{ Tu Sound abspielen; }


if(distance(createflagwaypoint,axis_flag.home_origin) < 20)
{ Tu Sound abspielen; }


Einen Auszug aus der ctf Script Datei gibt es hier:
www.foxserver.de/files/ctf.txt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.12.2005, 15:55 Uhr
0xdeadbeef
Gott
(Operator)


So einfach wirste in diesem Fall nicht davonkommen, es sei denn, du hast kein Problem damit, dass der Sound bei jedem Bewegungsevent innerhalb dieses Radius wieder gespielt wird. Wenn ich mal davon ausgehe, dass du auf ein Bewegungsevent reagierst, und dass du da zwei Punkte hast (von wo und wohin), dann wäre der Trigger "der vorherige Punkt war außerhalb des Radius und der neue ist innerhalb."

Denkbar wäre auch, dem entsprechenden Spieler ein Flag zuzuordnen und bei jedem Event abzuprüfen, etwa so:

C++:
if(ich_bin_noch_nicht_innerhalb_des_radius && distance(point, allied_flag.home_origin) < 20) {
  ich_bin_noch_nicht_innerhalb_des_radius = false;
  play_sound();
} else if(distance(point, allied_flag.home_origin) > 21) {
  ich_bin_noch_nicht_innerhalb_des_radius = true;
}


Dir wird auffallen, dass ich 21 statt 20 als Entfernung genommen habe. Der Grund ist, dass ich vermeiden will, dass, wenn jemand genau auf der Grenze z.B. in einen Kampf verwickelt wird, der Sound wieder und wieder und wieder und wieder abgespielt wird.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: