Hey,
Auf meinem Server habe ich 2 Modes, Copsn Robbers und freeroam.
Jetzt wollte ich es so machen das eine Nachricht z.B.
Cops'n Robbers: 5 Spieler | Freeroam: 7 Spieler
kommt.
Nur wie genau..?
Wie zählt man das ab?
Hey,
Auf meinem Server habe ich 2 Modes, Copsn Robbers und freeroam.
Jetzt wollte ich es so machen das eine Nachricht z.B.
Cops'n Robbers: 5 Spieler | Freeroam: 7 Spieler
kommt.
Nur wie genau..?
Wie zählt man das ab?
du setzt doch bestimmt eine spielervariabel und die frägst du ab, zu dem benötigst du noch zwei variabeln um das zu zählen.
Beispiel:
CountPlayerInMode(string[],len = sizeof(string)){
new i, count[2];
for(; i != MAX_PLAYERS; ++i){
switch(PlayerInfo[i][pMode]){
case 1: ++count[0];
case 2: ++count[1];
}
}
format(string,len ,"Cops'n Robbers: %d Spieler | Freeroam: %d Spieler",count[0],count[1]);
return 1;
}
Könntest du vielleicht noch die Schritte erklären?
CountPlayerInMode(string[]) ?
Sonst lerne ich nichts
Ja das ist möglich:
CountPlayerInMode(string[],len = sizeof(string)){
Zur Verwendung
new string[40];
CountPlayerInMode(string);
SendClientMessage(playerid,-1,string);
oder
new string[40];
CountPlayerInMode(string,40);
SendClientMessage(playerid,-1,string);
Die Länge des strings habe ich einfach mal als optionaler parameter gemacht
len = sizeof(string) durch das zuweißen eines wertes wird der parameter immer optional.
Bei strings die man formatieren lässt in der Funktion wird den inhalt enthalten das gilt nicht für variabeln.
um dort einen wert zurück zu geben muss man ein & Zeichen anhängen.
Kernpunkt deiner Frage ist die schleife
new i, count[2];
for(; i != MAX_PLAYERS; ++i){
switch(PlayerInfo[i][pMode]){
case 1: ++count[0];
case 2: ++count[1];
}
}
Dort möchtest du doch die Anzahl der Leute haben die in dem jeweiligen Mode spielen daher musst du zwei variabel hochzählen lassen was wir hier tun. Da ich mal davon ausgehe das du auch aufgrund des spawns abfrägst in welchem Modus er ist und das dem spieler zuordnest beim auswählen.
Daher musst du den auch Abfragen das kannst du so machen via switch +case oder mit eine if-abfrage je nachdem was vllt von vorteil ist,
ist das du danach schaust das du 3 Werte benutzt 0, 1, 2 wobei 0 der Default(Standart-) Wert ist, vielleicht machst du das auch nicht dann solltest du noch abprüfen ob der spieler online ist am besten noch eingeloggt oder nicht.
Das ganze kann auch so aussehen
for(; i != MAX_PLAYERS; ++i){
if(!IsPlayerConected(i))continue;
!PlayerInfo[i][pMode] && ++count[0] || ++count[1];
}
letztendlich wird das ganze in den string gepackt und du kannst es verwenden.
IPrototypeI:
In deiner Funktion ist ein Klammerfehler. So wäre es richtig:
CountPlayerInMode(string[],len = sizeof(string)){
new i, count[2];
for(; i != MAX_PLAYERS; ++i){
switch(PlayerInfo[i][pMode]){
case 1: ++count[0];
case 2: ++count[1];
}
}
format(string,len ,"Cops'n Robbers: %d Spieler | Freeroam: %d Spieler",count[0],count[1]);
return 1;
}
Danke, wenn ich nachher am Scripten bin, werde ich das ganze mal versuchen
IPrototypeI:
In deiner Funktion ist ein Klammerfehler. So wäre es richtig:
Danke ist mir gerade nicht aufgefallen .