Hallo liebe Leute.
Ich habe eine - wahrscheinlich einfache - Frage.
Wie kann ich eine Nachricht an bestimmte Personen schicken? Beispielsweise bei "/taxi" eine Nachricht an alle, die nur in der Fraktion Taxi sind.
Danke im Vorraus!
Mfg,
Bosei
Hallo liebe Leute.
Ich habe eine - wahrscheinlich einfache - Frage.
Wie kann ich eine Nachricht an bestimmte Personen schicken? Beispielsweise bei "/taxi" eine Nachricht an alle, die nur in der Fraktion Taxi sind.
Danke im Vorraus!
Mfg,
Bosei
Ne Schleife die alle Spieler durchgeht erstellen und dann abfragen welche davon in der Taxifraktion ist,
halt mit deiner Methode wie du abfragst ob jemand in einer Fraktion ist.
Ist so die erste Methode die mir in den Sinn gekommen ist.
Ne Schleife die alle Spieler durchgeht erstellen und dann abfragen welche davon in der Taxifraktion ist,
halt mit deiner Methode wie du abfragst ob jemand in einer Fraktion ist.
Ist so die erste Methode die mir in den Sinn gekommen ist.
Bei mir wäre dass dann so:
//Taxi
if(strcmp("/taxi", cmdtext, true, 10) == 0)
{
if(IstSpielerInFraktion(playerid, 6))
{
//Was passiert dann hier?!
}
}
Wie oben geschrieben - was dann?
Wie heißt denn deine SpielerVariable in der die Fraktion gespeichert werden?
So könntest du es machen:
ocmd:texi(playerid, params[])
{
SendClientMessage(playerid, FARBE, "Warte auf eine Antwort!");
new str[180];
format(str, sizeof str, "%s benötigt ein Taxi!", SpielerName(playerid));
for(new i = 0; i < MAX_PLAYERS; i++) {
if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str);
}
return 1;
}
Alles anzeigenWie heißt denn deine SpielerVariable in der die Fraktion gespeichert werden?
So könntest du es machen:
ocmd:texi(playerid, params[])
{
SendClientMessage(playerid, FARBE, "Warte auf eine Antwort!");
new str[180];
format(str, sizeof str, "%s benötigt ein Taxi!", SpielerName(playerid));
for(new i = 0; i < MAX_PLAYERS; i++) {
if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str);
}
return 1;
}
Oke das versteh ich jetzt alles. Erstmal danke... aber kannst du das etwas erklären? Möchte ja auch was daraus lernen...
if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str);
Klar.
ocmd:texi(playerid, params[]) // Solltest du wissen, Befehl :D
{
SendClientMessage(playerid, FARBE, "Warte auf eine Antwort!"); // Hier wird der Person die Information geschickt das er warten soll
new str[180]; // Ein String wird erstellt
format(str, sizeof str, "%s benötigt ein Taxi!", SpielerName(playerid)); // Hier formatiere ich den String um
for(new i = 0; i < MAX_PLAYERS; i++) { // Das hier ist eine sogenannte Schleife, die geht so oft durch wie du sie angibst, in diesem Fall geht er alle Spieler durch, dass heißt, sind 5 Leute auf dem Server so geht die Schleife 5 mal
if(SpielerVariable[i][FraktionX] == FraktionTaxi) SendClientMessage(i, FARBE, str); // Hier wird abgefragt ob der Spieler in der Fraktion ist, dass musst du zu deinen Informationen ändern
}
return 1;
}
Also geht das so? (Errors bekomm ich ja nicht...)
if(strcmp("/taxi", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, Gelb, "Warte bitte auf eine Antwort.");
new str[180];
format(str, sizeof str, "%s benötigt ein Taxi!\nSchreibe '/accept taxi' zum annehmen des Auftrags.", SpielerName(playerid));
for(new i= 0; i < MAX_PLAYERS; i++)
{
if(IstSpielerInFraktion(playerid, 6))
{
SendClientMessage(i,Hell_Blau,str);
}
}
return 1;
}
Alles anzeigenformat(str, sizeof str, "%s benötigt ein Taxi!\nSchreibe '/accept taxi' zum annehmen des Auftrags.", SpielerName(playerid));
for(new i= 0; i < MAX_PLAYERS; i++)
{
if(IstSpielerInFraktion(playerid, 6))
{
SendClientMessage(i,Hell_Blau,str);
}
bei if(IstSpielerInFraktion(playerid, 6))
musst du playerid zu i ändern
if(IstSpielerInFraktion(i, 6))
Ich bin mir nicht sicher, aber soweit ich weiß kannst du keine Zeilenumbrüche in String hervorrufen.
format(str, sizeof str, "%s benötigt ein Taxi! Schreibe '/accept taxi' zum annehmen des Auftrags.",
Ok - vielen, vielen Dank!