.
|
|
| Autor | Beitrag |
|---|---|
|
000 12.01.2001, 17:22 RocketCoder |
Gibt es einen Befehl zur Abfrage wieviele Player noch leben ? Ich hab nähmlich 'n RundenSystem und wenn der Player tot ist, soll er erst respawnen, entweder wenn die Zeit vorbei ist, oder wenn nur noch ein oder kein player mehr lebt... bei mir respawnt er erst, wenn die zeit vorbei ist... also brauch ich den Befehl... --cu |
|
Profil || Suche |
|
001 12.01.2001, 17:39 Prefect |
Nein, gibt's nicht, aber es sollte eine einfach Übung sein, es einzubauen. Mach eine Schleife durch alle Player durch (such am Besten nach UTIL_PlayerByIndex() um ein Beispiel zu kriegen).
cu,
Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
002 12.01.2001, 17:50 RocketCoder |
thx, aber ich hab eins net beachtet, ich hab 2 teams... wie geht das mit teams ? ob mindestens einer au einem team lebt...
cu |
|
Profil || Suche |
|
003 12.01.2001, 18:00 calle |
Ich habe bei mir auch das Rundensystem eingebaut, und habe das gleiche Proplem wie du !
cu all Calle -- |
|
Profil || Suche |
|
004 12.01.2001, 18:27 Another1 |
int iTeam1Alive = 0;
for(int i = 0;i<gpGlobals->maxClients;i++)
} // hier kann man nun iTeam1Alive und iTeam2Alive für den code benutzen!!
das sollte reichen! ich glaub ich habe den code schon 1000000000000 mal gecodet!!!
Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
005 12.01.2001, 18:32 Buy-Menu-Man |
Und mal wieder hilft uns Another1 bei unserem MOD......das wird mir ja langsam peinlich...... -- |
|
Profil || Suche |
|
006 12.01.2001, 18:40 RocketCoder |
thx Another1... =) --cu |
|
Profil || Suche |
|
007 12.01.2001, 20:34 Another1 |
no problem, btw: was is daran peinlich ? dazu is ein forum doch da *g* --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
008 13.01.2001, 03:12 calle |
Hallo Leute !
int iTeam1Alive = 0;
for(int i = 0;i<gpGlobals->maxClients;i++)
} und was ich noch einbauen muss, damit das auch bei mir mit dem Rundensystem klappt ! Danke Calle -- |
|
Profil || Suche |
|
009 13.01.2001, 12:44 Another1 |
naja, in die CYourGamerules::Think() damit es jedes frame getestet wird, außerdem musst du auch noch die gesamte anzahl von spielern testen die schon ein team gewählt haben, denk mal was sonst passieren würde, wenn nur ein spieler spielt: Der PC denkt, das andere team is tot und fängt ununterbrochen die neue runde an! --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
010 13.01.2001, 13:17 RocketCoder |
In welcher Datei findet man denn die CYourGamerules::Think() ?!!! Kann man den code nicht in die void CBasePlayer::PlayerDeathThink(void) einfügen ? --cu |
|
Profil || Suche |
|
011 13.01.2001, 13:47 Another1 |
Muss ich alles erklären ??
Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
012 13.01.2001, 16:52 RocketCoder |
Gibts einen speziellen Befehl für das Respawnen nach dem tot ? Spawn(); funzt nähmlich net wenn man gestorben ist... =( --cu |
|
Profil || Suche |
|
013 13.01.2001, 17:22 Another1 |
gibt ne respawn function --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
014 13.01.2001, 17:35 RocketCoder |
hat sich schon erledigt... du kannst aber doch auch normales Spawn(); benutzen... --cu |
|
Profil || Suche |
|
015 14.01.2001, 01:46 calle |
Hallo Leute !
int iTeam1Alive = 0;
teamplay_gamerules.cpp(102) : warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
RocketCoder ! wie sieht deine Spawn funktion aus ! BITTE HELFT MIR ! DANKE
|
|
Profil || Suche |
|
016 14.01.2001, 04:07 Another1 |
tu mal das ";" hinter den if(pPlayer->IsAlive()) .... weg, da es sonst kein "sinn" macht, das if zu testen, da ja dananch eine leere anweisung ausgeführt wird, nämlich ;
Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
017 14.01.2001, 05:55 calle |
die Fehler sind weg ! Danke .
// hier kann man nun iTeam1Alive und iTeam2Alive für den code benutzen!!
was du gepostet hast !
Es ist auch irgenwie sehr spät ! oder früh ! vieleich habe ich desshalb auch kein Peilung mehr ! Danke für eure Hilfe ! calle -- |
|
Profil || Suche |
|
018 14.01.2001, 12:27 RocketCoder |
ich hab den code ans Ende der void CBasePlayer::PlayerDeathThink(void) (in der player.cpp) eingebaut... den code den du da hast bauste auch einfach mal ans Ende ein, und fügst diese stück dann noch hinzu:
dann entfernst du über deinem code noch "pev->nextthink = -1;" So, ich hab aber auch noch ein Problem =(
cu |
|
Profil || Suche |
|
019 14.01.2001, 12:34 Another1 |
weil der code vor deinem code immer die function abbricht, wenn keine taste gedrückt wurde! schau mal nach! --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
020 14.01.2001, 13:33 RocketCoder |
meine respanw function liegt aber in der UpdateClientData funktion... und wenns NewRnd true ist dann wird das respanw in der UpdateCLietn Data ausgeführt... aber dazu muss ich noch diese scheiß taste drücken =( ich hba die PlayerDeathThink nach button... (down) abgesucht und ne menge gelöscht... es hat sich aber net verändert --cu |
|
Profil || Suche |
|
021 14.01.2001, 15:09 Another1 |
mmmh, ich würd das, wie schon gesagt, in CHalfLifeMultiplay::Think() einbauen (wenn nur normales deathmatch, nicht teamplay als grundlage benutzt wird, bei teamplay is dann CHalfLifeTeamplay::Think() nötig), also einfach unten ranbauen.
for(int i = 0;i<gpGlobals->maxClients;i++)
}; if(((!iTeam1Alive && iTeam2Alive) || (iTeam1Alive && !iTeam2Alive)) && (iValidPlayers > 1))
UTIL_ClientPrintAll(HUD_PRINTCENTER,"%s Won the round! RoundRestart!\n",szWinner);
[c=red]ps: der code funzt nur ab 2 spieler oder höher! und beide müssen in verschiedenen teams sein![/c] --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
022 14.01.2001, 16:00 calle |
Hallo Another1 !
DANKE Calle
|
|
Profil || Suche |
|
023 14.01.2001, 16:09 RocketCoder |
for(int i = 0;i<gpGlobals->maxClients;i++)
for(i = 0;i<gpGlobals->maxClients;i++)
------------------------------------
cu |
|
Profil || Suche |
|
024 14.01.2001, 16:16 calle |
Hier noch ein Nachtrag bezüglich "Credits" Another1 !
Calle -- |
|
Profil || Suche |
|

