SpielerEingabe = Alle Spieler?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,


    ich möchte gerne in einem Dialog zB einen Spieler Geld geben..
    Dann gebe zB "1" ein für ID 1.. Oder "Sh12", wenn ich mich auswähle.
    Nun wollte ich es so machen, dass wenn ich "alle" eingebe, dass ALLE
    Spieler Geld bekommen, aber ich bekomms iwie nicht hin, bzw. es klappt
    nicht so ganz..


    So sieht nun mein Code aus.. Name auslesen und ID geht wunderbar, aber
    das mit dem "alle" funktioniert irgendwie nicht :/


    stock GetPlayerByString( const string[] )
    {
    if(strcmp(string,"alle",true,10)==0) return ALL_PLAYERS;
    if(IsNumeric(string)){
    if(IsPlayerConnected(strval(string))) return strval(string);
    }
    else
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    new _name[32];
    GetPlayerName(i,_name,32);
    if(strcmp(_name,string,true,10)==0) return i;
    else continue;
    }
    }
    return PLAYER_NULL;
    }

  • stock GetPlayerByString( const string[] )
    {
    if(strcmp(string,"alle",true)==0) return ALL_PLAYERS;
    if(IsNumeric(string)){
    if(IsPlayerConnected(strval(string))) return strval(string);
    }
    else
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    new _name[32];
    GetPlayerName(i,_name,32);
    if(strcmp(_name,string,true)==0) return i;
    else continue;
    }
    }
    return PLAYER_NULL;
    }

  • stock GetPlayerByString( const string[] )
    {
    if(strcmp(string,"alle",true)==0) return ALL_PLAYERS;
    if(IsNumeric(string)){
    if(IsPlayerConnected(strval(string))) return strval(string);
    }
    else
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    new _name[32];
    GetPlayerName(i,_name,32);
    if(strcmp(_name,string,true)==0) return i;
    else continue;
    }
    }
    return INVALID_PLAYER_ID;
    }


    Das ist komisch.. Wenn ich nun irgendein Mist reinschreibe, zB "sjfioJIOahsF", dann müsste eigentlich INVALID_PLAYER_ID rauskommen.
    Dann mache ich so eine Abfrage:


    if(GetPlayerByString(inputtext)==INVALID_PLAYER_ID){
    SendClientMessage(playerid,-1,"Der eingegebene Spieler ist nicht online.");
    }



    Aber es passiert nichts o: