Geht das übersichtlicher?

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:ls(playerid, params[])
    {
    if(UseTeleports[playerid] == false && IsPlayerAFK[playerid] == false) return SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Da kannst im Moment keine Teleports nutzen!");
    if(UseTeleports[playerid] == true && IsPlayerAFK[playerid] == false)
    {
    if(GetPlayerMoney(playerid) >= 3000)
    {
    new string[128],
    pName[MAX_PLAYER_NAME],
    pVehicle = GetPlayerVehicleID(playerid),
    Float:VehicleAngle;
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "[TELEPORTINFO] {%06x}%s "#COLOR_GOLD_EMBED"hat sich nach Los Santos teleportiert! (/LS)", GetPlayerColor(playerid) >>> 8, pName);
    SendClientMessageToAll(COLOR_GOLD, string);
    SetPlayerPos(playerid, 2492.7268, -1668.3849, 13.3438);
    SetPlayerFacingAngle(playerid, 0);
    SetVehiclePos(pVehicle, 2492.7268, -1668.3849, 13.3438);
    GetVehicleZAngle(playerid, VehicleAngle);
    SetVehicleZAngle(playerid, VehicleAngle);
    PutPlayerInVehicle(playerid, pVehicle, 0);
    GivePlayerMoney(playerid,-3000);
    }
    else SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Du hast nicht genug Geld!");
    }
    else if(IsPlayerAFK[playerid] == true) SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Du bist AFK. Du kannst keine Aktion durchführen. Melde dich mit /back zurueck!");
    return 1;
    }


    Ich finde diese Verschachtelung von "UseTeleports" und "IsPlayerAFK" ein wenig unübersichtlich. Lässt es sich irgendwie geschickter überprüfen, ob Teleports erlaubt sind und der Spieler nicht AFK ist?


    Danke!

  • if(UseTeleports[playerid] == true && IsPlayerAFK[playerid] == false)


    wow die Abfrage bringt ja auch was...
    Außerdem warum == true 0der == false?


    aus
    if(UseTeleports[playerid] == false && IsPlayerAFK[playerid] == false)
    wird
    if(!UseTeleports[playerid] && !IsPlayerAFK[playerid])


    Oder
    if(UseTeleports[playerid] && !IsPlayerAFK[playerid])
    Ist doch schöner als immer == true oder so

    All in all it's just another brick in the wall

  • COMMAND:ls(playerid, params[])
    {
    if(!UseTeleports[playerid])
    return SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Da kannst im Moment keine Teleports nutzen!");

    if(IsPlayerAFK[playerid])
    return SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Du bist AFK. Du kannst keine Aktion durchführen. Melde dich mit /back zurueck!");


    if(GetPlayerMoney(playerid) >= 3000)
    {
    new string[128],
    pName[MAX_PLAYER_NAME],
    pVehicle = GetPlayerVehicleID(playerid),
    Float:VehicleAngle;
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "[TELEPORTINFO] {%06x}%s "#COLOR_GOLD_EMBED"hat sich nach Los Santos teleportiert! (/LS)", GetPlayerColor(playerid) >>> 8, pName);
    SendClientMessageToAll(COLOR_GOLD, string);
    SetPlayerPos(playerid, 2492.7268, -1668.3849, 13.3438);
    SetPlayerFacingAngle(playerid, 0);
    SetVehiclePos(pVehicle, 2492.7268, -1668.3849, 13.3438);
    GetVehicleZAngle(playerid, VehicleAngle);
    SetVehicleZAngle(playerid, VehicleAngle);
    PutPlayerInVehicle(playerid, pVehicle, 0);
    GivePlayerMoney(playerid,-3000);
    }
    else SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Du hast nicht genug Geld!");
    return 1;
    }


    Hab die Abfragen jetzt in einzelne Blöcke unterteilt. So müssts klappen.
    Noch Verbesserungsvorschläge?

  • COMMAND:ls(playerid, params[])
    {
    if(!UseTeleports[playerid] && !IsPlayerAFK[playerid])return SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Da kannst im Moment keine Teleports nutzen!");
    if(UseTeleports[playerid] && IsPlayerAFK[playerid])
    {
    if(GetPlayerMoney(playerid) >= 3000)
    {
    new string[128],pName[MAX_PLAYER_NAME],pVehicle = GetPlayerVehicleID(playerid),Float:VehicleAngle;
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "[TELEPORTINFO] {%06x}%s "#COLOR_GOLD_EMBED"hat sich nach Los Santos teleportiert! (/LS)", GetPlayerColor(playerid) >>> 8, pName);
    SendClientMessageToAll(COLOR_GOLD, string);
    SetPlayerPos(playerid, 2492.7268, -1668.3849, 13.3438);
    SetPlayerFacingAngle(playerid, 0);
    SetVehiclePos(pVehicle, 2492.7268, -1668.3849, 13.3438);
    GetVehicleZAngle(playerid, VehicleAngle);
    SetVehicleZAngle(playerid, VehicleAngle);
    PutPlayerInVehicle(playerid, pVehicle, 0);
    GivePlayerMoney(playerid,-3000);
    }
    else SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Du hast nicht genug Geld!");
    }
    else if(IsPlayerAFK[playerid])SendClientMessage(playerid, COLOR_RED, "[WARNUNG] Du bist AFK. Du kannst keine Aktion durchführen. Melde dich mit /back zurueck!");
    return 1;
    }


    So, weiter weiß ich auch nicht. Ich habe es aus meiner Sicht so kurz und übersichtlich geschrieben, wie möglich.