Nachricht an alle Fraktionsmember/Admins + Rangnamen

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
  • Guten Tag!
    Ich habe einige Scripting-Probleme und Fragen.
    Ich habe mir einen /spawnvehicle erstellt, welcher es dem Spieler ermöglicht, sich ein Fahrzeug zu spawnen.
    Zudem möchte Ich eine Nachricht an alle Administratoren senden, dass der Spieler sich ein Fahrzeug gespawnt hat.
    Leider klappt das bei mir nicht.
    Außerdem hätte Ich da noch eine Frage:
    Ich will das System so machen, dass der Adminrang immer mit ausgelesen wird (Rang 1: Supporter, Rang 2: Moderator etc...)
    Wie kann man das machen?



    format(string, sizeof(string), "* Admin %s hat sich ein Fahrzeug (ID: %i) gespawnt.", name, vID);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))return 0;
    if(!IsPlayerAnAdmin(i, 1))return 0;
    SendClientMessage(i, COLOR_ORANGE, string);
    }


    stock IsPlayerAnAdmin(playerid, Adminlevel)
    {
    if(pInfo[playerid][pAdmin] >= Adminlevel)return 1;
    return 0;
    }


    Ich hätte da noch eine Frage: Ich kann keinen Spieler kicken, auch wenn Ich im Script Kick(playerid) reinschreibe.
    Wie kann Ich das beheben bzw. weiß einer, warum das nicht klappt?

  • Code
    format(string, sizeof(string), "* Admin %s hat sich ein Fahrzeug (ID: %i) gespawnt.", name, vID);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(!IsPlayerConnected(i))continue;
            if(!IsPlayerAnAdmin(i, 1))continue;
            SendClientMessage(i, COLOR_ORANGE, string);
        }

    Beim format, "name", hast du auch dafür eine Variable für den Spielernamen etc? Müsste ja z.B mit einer Variable dann "name(playerid)" sein...

  • Code
    format(string, sizeof(string), "* Admin %s hat sich ein Fahrzeug (ID: %i) gespawnt.", name, vID);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(!IsPlayerConnected(i))continue;
            if(!IsPlayerAnAdmin(i, 1))continue;
            SendClientMessage(i, COLOR_ORANGE, string);
        }

    Beim format, "name", hast du auch dafür eine Variable für den Spielernamen etc? Müsste ja z.B mit einer Variable dann "name(playerid)" sein...

    Ja, also das mit Name habe ich hier:



    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));

  • Ich will das System so machen, dass der Adminrang immer mit ausgelesen wird (Rang 1: Supporter, Rang 2: Moderator etc...)

    Hier:


    Mit freundlichen Grüßen,
    Kaiserle

  • Hier:

    Und wenn Ich das habe, wie frage Ich es ab? Also wie kann Ich z.B. bei einem format machen:
    format(string, sizeof(string), "Supporter/Admin/Moderator %s hat ... gemacht", name);


    Also gefragt ist, dass man auch Supporter etc. auch ablesen soll. Aber wie mache Ich das? Genau sowas wollte Ich haben also in Form eines Stock's, aber wie frage Ich das ab bzw. wie kann Ich es jetzt auslesen?


    Habe noch eine Frage, wegen meinem /spawnvehicle Befehls.
    Wenn Ich die for-Schleife rausnehme, erhalte Ich zwar keine Nachricht, jedoch wird das Fahrzeug erfolgreich gespawnt.
    Wenn Ich die for-Schleife nicht rausnehme, dann erhalte Ich zwar eine Nachricht, jedoch wird das Fahrzeug nicht gespawnt.
    Kann mir da einer helfen? Das genau wollte Ich wissen. Ich füge mal am liebsten den kompletten Code von mir ein, damit ihr euch da einen besseren Überblick verschaffen könnt. Übrigens benutze Ich OCMD + Sscanf in Form eines Stocks (denn die Plugin-Version klappt bei mir nicht).



    ocmd:spawnvehicle(playerid, params[])
    {
    new vID, car, Float:Pos_X, Float:Pos_Y, Float:Pos_Z, Float:Pos_R, string[128], name[MAX_PLAYER_NAME];
    if(!IsPlayerAnAdmin(playerid, 5))return 0;
    if(sscanf(params, "i", vID))return SendClientMessage(playerid, COLOR_ORANGE, "* Tippe: /spawnvehicle [Fahrzeug-ID]");
    if(vID < 400 || vID > 611)return SendClientMessage(playerid, COLOR_RED, "** Die Fahrzeug-ID ist ungültig.");
    GetPlayerPos(playerid, Pos_X, Pos_Y, Pos_Z);
    GetPlayerFacingAngle(playerid, Pos_R);
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "* Admin %s hat sich ein Fahrzeug (ID: %i) gespawnt.", name, vID);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))return 0;
    if(!IsPlayerAnAdmin(i))return 0;
    SendClientMessage(i, COLOR_LIGHTBLUE, string);


    }
    car = AddStaticVehicle(vID, Pos_X, Pos_Y, Pos_Z, Pos_R, 0, 0);
    PutPlayerInVehicle(playerid, car, 0);
    return 1;
    }

  • Code
    format(string, sizeof(string), "%s %s hat ... gemacht",Adminrang(playerid), name);


    füg das unten ein:


    Code
    stock SendAdminMessage(color,const string[])
    {
    	for(new i; i<MAX_PLAYERS; i++)
    	{
    		if(pInfo[i][pAdmin] >0 ) SendClientMessage(i,color,string);
    	}
    	return 1;
    }

    und dann mach es so

    Mit freundlichen Grüßen,
    Kaiserle

  • Versuche mal diese Variante (habe das nicht getestet!)


    und der Stock dazu: