Adminabfrage

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
  • COMMAND:fix(playerid, params[])
    {
    if(PlayerActionForbidden(playerid)) //Abfrage, ob der Spieler den CMD benutzen darf, unabhängig vom Spielerrang, also irrelevant für mein momentanes Problem
    return 1;


    if(pInfo[playerid][AdminLevel] == 0)
    return SendLanguageMessage(playerid, C_RED, "»ERROR« Du bist kein Admin.", "»ERROR« You are not an admin.");


    else if(pInfo[playerid][AdminLevel] > 0 && pInfo[playerid][AdminLevel] < 5)
    return SendLanguageMessage(playerid, C_RED, "»ERROR« Du hast einen zu niedrigen Adminlevel, um diese Aktion auszuführen!", "»ERROR« Your admin level is too low to execute this action!");


    else if(pInfo[playerid][AdminLevel] == 5 || IsPlayerAdmin(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new Float:VehicleAngle,
    Vehicle = GetPlayerVehicleID(playerid);
    RepairVehicle(Vehicle);
    SetVehicleHealth(Vehicle, 1000.0);
    GetVehicleZAngle(Vehicle, VehicleAngle);
    SetVehicleZAngle(Vehicle, VehicleAngle);
    PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
    SendLanguageMessage(playerid, C_TURQUOISE, "»ADMININFO« Das Fahrzeug wurde repariert.", "»ADMININFO« The vehicle has been repaired.");
    }
    else SendLanguageMessage(playerid, C_RED, "»ERROR« Du bist in keinem Fahrzeug!", "»ERROR« You are not in a vehicle!");
    }
    return 1;
    }


    Also, wie ihr bestimmt sehen könnt, möchte ich, dass Spieler mit dem Level 0 bis 4 diesen Befehl nicht nutzen dürfen.
    Ist der Spieler Level 5 ODER als RCON eingeloggt, soll er den CMD nutzen können. Das mit dem Level klappt, aber, wenn ich z.B. Level 0 bin, und RCON bin, dann klappt die ganze Geschichte nicht mehr. Was mache ich falsch?


    Vielen Dank!

  • Du fragst hier ab:
    else if(pInfo[playerid][AdminLevel] > 0 && pInfo[playerid][AdminLevel] < 5)
    return SendLanguageMessage(playerid, C_RED, "»ERROR« Du hast einen zu niedrigen Adminlevel, um diese Aktion auszuführen!", "»ERROR« Your admin level is too low to execute this action!");


    Ist das Adminlevel vom Spieler größer als 0 und unter 5..


    So würds gehen:


    else if( pInfo[playerid][AdminLevel] < 5)

  • Ich hab gedacht, das wäre doppelt gemoppelt, deswegen hab ich es eingegrenzt.
    Einmal eine Abfrage ob = 0 für eine bestimmte ClientMessage.
    Und zum Zweiten eine Abfrage, ob des größer 0 und kleiner 5 ist, also 1 bis 4, für eine weitere ClientMessage.


    EDIT: Das ist nicht des Rätsels Lösung.

    Einmal editiert, zuletzt von Manyula ()

  • COMMAND:fix(playerid, params[])
    {
    if(PlayerActionForbidden(playerid)) //Abfrage, ob der Spieler den CMD benutzen darf, unabhängig vom Spielerrang, also irrelevant für mein momentanes Problem
    return 1;


    if(pInfo[playerid][AdminLevel] == 0 && !IsPlayerAdmin(playerid))
    return SendLanguageMessage(playerid, C_RED, "»ERROR« Du bist kein Admin.", "»ERROR« You are not an admin.");


    if(pInfo[playerid][AdminLevel] > 0 && pInfo[playerid][AdminLevel] < 5)
    return SendLanguageMessage(playerid, C_RED, "»ERROR« Du hast einen zu niedrigen Adminlevel, um diese Aktion auszuführen!", "»ERROR« Your admin level is too low to execute this action!");

    if(!IsPlayerInAnyVehicle(playerid))
    return SendLanguageMessage(playerid, C_RED, "»ERROR« Du bist in keinem Fahrzeug!", "»ERROR« You are not in a vehicle!");

    new Float:VehicleAngle,
    Vehicle = GetPlayerVehicleID(playerid);
    RepairVehicle(Vehicle);
    SetVehicleHealth(Vehicle, 1000.0);
    GetVehicleZAngle(Vehicle, VehicleAngle);
    SetVehicleZAngle(Vehicle, VehicleAngle);
    PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
    SendLanguageMessage(playerid, C_TURQUOISE, "»ADMININFO« Das Fahrzeug wurde repariert.", "»ADMININFO« The vehicle has been repaired.");
    return 1;
    }