Gangjail Befehl mit OCMD

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
  • dcmd_setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,ROT,"Du bist kein Administator!");
    new pid, frakid, string[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /setfraktion [ID][Fraktions ID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ROT,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pid,frakid)) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in der Fraktion");
    sSpieler[pid][Fraktion] = frakid;
    GetPlayerName(pid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dem Spieler %s (ID: %d) die Fraktion %s zugewiesen.", name, playerid, fInfo[frakid][f_name]);
    SendClientMessage(playerid,HELLBLAU,string);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du wurdest der Fraktion %s von %s zugewiesen!", fInfo[frakid][f_name], name);
    SendClientMessage(pid,HELLBLAU,string);
    return 1;
    }

  • mit frakid



    aber moment habe es grad nochmal probiert es wurde grad komischerweise auf 100 gesetzt also das ich in Fraktion 100 bin....


    Naja mit FrakJail bekomme ich den Warning:


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3413) : warning 203: symbol is never used: "Fraktionsid"



    Und das ist die Zeile:
    FrakJail(playerid, Fraktionsid)//3413
    {
    if(sSpieler[playerid][Fraktion]>3) return 1;
    return 0;
    }

  • FrakJail(playerid, Fraktionsid)//3413
    {
    if(sSpieler[playerid][Fraktion]>3) return 1;
    return 0;
    }


    ändern zu


    FrakJail(playerid)//3413
    {
    if(sSpieler[playerid][Fraktion]>3) return 1;
    return 0;
    }



    ocmd:gangjail(playerid, params[])
    {
    new pID, Level, string[100], playername[64];
    if(FrakJail(playerid,3))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,204.48158, -235.56549, 0.56437)) return SendClientMessage(playerid,ROT,"Du bist nicht mein Gangjail!");
    if(sscanf(params, "ud", pID, Level)) return SendClientMessage(playerid,GELB, "Tippe: /gangjail [Spielername / ID]");
    GetPlayerName(playerid, playername); //2950
    format(string, sizeof(string), "* %s hat dich ins Gangjail gesteckt!", playername);
    SendClientMessage(pID, ROT, string);
    GetPlayerName(pID, playername); //2953
    format(string, sizeof(string), "* Du hast den Spieler %s ins Gangjail gesteckt!", playername);
    SendClientMessage(playerid, GELB, string);
    Gangjailticket[pID] = 1;
    }
    else
    {
    return SendClientMessage(playerid,Rot,"Du bist in keiner Gang/Mafia);
    }
    return 1;
    }


    ändern zu



    ocmd:gangjail(playerid, params[])
    {
    new pID, Level, string[100], playername[64];
    if(!FrakJail(playerid,3))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,204.48158, -235.56549, 0.56437)) return SendClientMessage(playerid,ROT,"Du bist nicht mein Gangjail!");
    if(sscanf(params, "ud", pID, Level)) return SendClientMessage(playerid,GELB, "Tippe: /gangjail [Spielername / ID]");
    GetPlayerName(playerid, playername); //2950
    format(string, sizeof(string), "* %s hat dich ins Gangjail gesteckt!", playername);
    SendClientMessage(pID, ROT, string);
    GetPlayerName(pID, playername); //2953
    format(string, sizeof(string), "* Du hast den Spieler %s ins Gangjail gesteckt!", playername);
    SendClientMessage(playerid, GELB, string);
    Gangjailticket[pID] = 1;
    }
    else
    {
    return SendClientMessage(playerid,Rot,"Du bist in keiner Gang/Mafia);
    }
    return 1;
    }

  • Kriege diesen Warning
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2946) : warning 202: number of arguments does not match definition



    ocmd:gangjail(playerid, params[])
    {
    new pID, Level, string[100], playername[64];
    if(FrakJail(playerid,3)) //2946
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,204.48158, -235.56549, 0.56437)) return SendClientMessage(playerid,ROT,"Du bist nicht mein Gangjail!");
    if(sscanf(params, "ud", pID, Level)) return SendClientMessage(playerid,GELB, "Tippe: /gangjail [Spielername / ID]");
    GetPlayerName(playerid, playername); //2950
    format(string, sizeof(string), "* %s hat dich ins Gangjail gesteckt!", playername);
    SendClientMessage(pID, ROT, string);
    GetPlayerName(pID, playername); //2953
    format(string, sizeof(string), "* Du hast den Spieler %s ins Gangjail gesteckt!", playername);
    SendClientMessage(playerid, GELB, string);
    Gangjailticket[pID] = 1;
    }
    else
    {
    return SendClientMessage(playerid,Rot,"Du bist in keiner Gang/Mafia);
    }
    return 1;
    }

  • Vergiss den FrakJail. Wie doof von mir geht auch anders.




    ocmd:gangjail(playerid, params[])
    {
    new pID, Level, string[100], playername[64];
    if(sSpieler[playerid][Fraktion] >= 3 || PlayerInfo[playerid][Fraktion] <= 6)
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,204.48158, -235.56549, 0.56437)) return SendClientMessage(playerid,ROT,"Du bist nicht mein Gangjail!");
    if(sscanf(params, "ud", pID, Level)) return SendClientMessage(playerid,GELB, "Tippe: /gangjail [Spielername / ID]");
    GetPlayerName(playerid, playername); //2950
    format(string, sizeof(string), "* %s hat dich ins Gangjail gesteckt!", playername);
    SendClientMessage(pID, ROT, string);
    GetPlayerName(pID, playername); //2953
    format(string, sizeof(string), "* Du hast den Spieler %s ins Gangjail gesteckt!", playername);
    SendClientMessage(playerid, GELB, string);
    Gangjailticket[pID] = 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Diesen Befehl darfst du nicht verwenden da du nicht in einer Fraktion zwischen 3 und 7 bist");
    }
    return 1;
    }

  • Nachdem ich das eingefügt habe:
    ocmd:gangjail(playerid, params[])
    {
    new pID, Level, string[100], playername[64];
    if(sSpieler[playerid][Fraktion] >= 3 || PlayerInfo[playerid][Fraktion] <= 6)
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,204.48158, -235.56549, 0.56437)) return SendClientMessage(playerid,ROT,"Du bist nicht mein Gangjail!");
    if(sscanf(params, "ud", pID, Level)) return SendClientMessage(playerid,GELB, "Tippe: /gangjail [Spielername / ID]");
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string, sizeof(string), "* %s hat dich ins Gangjail gesteckt!", playername);
    SendClientMessage(pID, ROT, string);
    GetPlayerName(pID, playername, sizeof(playername));
    format(string, sizeof(string), "* Du hast den Spieler %s ins Gangjail gesteckt!", playername);
    SendClientMessage(playerid, GELB, string);
    Gangjailticket[pID] = 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Gang/Mafia");
    }
    return 1;
    }


    kam dies:
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2946) : error 017: undefined symbol "PlayerInfo"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2946) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2946) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2946) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2946) : fatal error 107: too many error messages on one line


    /edit @robbi2304 vielleicht kannst du ja Helfen @Jeffry :)

    2 Mal editiert, zuletzt von KinGRaPTiiC ()

  • Brauchst du ja nicht mehr. Wir Fragen das ja nun anders ab. Also löschen.



    Ganz einfach mal etwas nachdenken.


    if(sSpieler[playerid][Fraktion] >= 3 || PlayerInfo[playerid][Fraktion] <= 6)


    ersetzen durch


    if(sSpieler[playerid][Fraktion] >= 3 || sSpieler[playerid][Fraktion] <= 6)


    100% achte ich auch nicht auf alles beim anpassen xD

    Einmal editiert, zuletzt von robbi2304 ()

  • @robbi2304


    So leider kann ich es nicht ausprobieren da wenn ich z.B /setfraktion 0 (z.b 3) eingebe steht da das ich bei den Ballas bin kann mich aber nicht mehr auf
    z.b 1,2 setzen da kommt ständig Spieler ist bereits in der Fraktion seit dem ich diesen Befehl drin habe...



    /edit klappt auch ohne Befehl nicht mehr.... :D

  • Ich kann dir auch sagen warum das nicht Richtig geht, falsche Funktion in deinem Code.



    Hier bitte sehr



    dcmd_setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,ROT,"Du bist kein Administator!");
    new pid, frakid, string[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /setfraktion [ID][Fraktions ID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ROT,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pid,frakid)) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in der Fraktion");
    if(frakid == PlayerInfo[playerid][fInfo]) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist schon in der Fraktion");
    sSpieler[pid][Fraktion] = frakid;
    GetPlayerName(pid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dem Spieler %s (ID: %d) die Fraktion %s zugewiesen.", name, playerid, fInfo[frakid][f_name]);
    SendClientMessage(playerid,HELLBLAU,string);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du wurdest der Fraktion %s von %s zugewiesen!", fInfo[frakid][f_name], name);
    SendClientMessage(pid,HELLBLAU,string);
    return 1;
    }

  • Hoffe das ist der aller letzte Error :DDD :
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(2889) : error 033: array must be indexed (variable "fInfo")



    dcmd_setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,ROT,"Du bist kein Administator!");
    new pid, frakid, string[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /setfraktion [ID][Fraktions ID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ROT,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pid,frakid)) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in der Fraktion");
    if(frakid == sSpieler[playerid][fInfo]) return SendClientMessage(playerid,ROT,"Dieser Spieler ist schon in der Fraktion");//2889
    sSpieler[pid][Fraktion] = frakid;
    GetPlayerName(pid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dem Spieler %s (ID: %d) die Fraktion %s zugewiesen.", name, playerid, fInfo[frakid][f_name]);
    SendClientMessage(playerid,HELLBLAU,string);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du wurdest der Fraktion %s von %s zugewiesen!", fInfo[frakid][f_name], name);
    SendClientMessage(pid,HELLBLAU,string);
    return 1;
    }


    Danke für die ganze Hilfe @robbi2304 und an alle anderen!

  • Ah da war ich zu schnell und hab falsch gelesen.


    Nun aber



    dcmd_setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,ROT,"Du bist kein Administator!");
    new pid, frakid, string[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /setfraktion [ID][Fraktions ID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ROT,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pid,frakid)) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in der Fraktion");
    if(frakid == sSpieler[playerid][Fraktion]) return SendClientMessage(playerid,ROT,"Dieser Spieler ist schon in der Fraktion");//2889
    sSpieler[pid][Fraktion] = frakid;
    GetPlayerName(pid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dem Spieler %s (ID: %d) die Fraktion %s zugewiesen.", name, playerid, fInfo[frakid][f_name]);
    SendClientMessage(playerid,HELLBLAU,string);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du wurdest der Fraktion %s von %s zugewiesen!", fInfo[frakid][f_name], name);
    SendClientMessage(pid,HELLBLAU,string);
    return 1;
    }

  • ich weiß nicht was du machst. Setfraktion die Zeile mit der Abfrage habe ich selber getestet die ist save.


    Gangjail fragt ab ob der Spieler über Fraktion 3 ist und unter Fraktion 6. Wenn ja soll er den Vode daunter ausführen. Wenn nicht dann den else.


    Also das sollte gehen