Mehrere Fehler im Punktesystem

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
  • Hallo,
    Ich habe mehrere Fehler in meinem Skriptabteil:

    Spoiler anzeigen
    //PUNKTESYSTEM ORDNUNGSAMT
    ocmd:punkte(playerid,params[]){
    new pID,reason[64],string[144],punkte,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(sscanf(params,"uis[64]",pID,punkte,reason))return SendClientMessage(playerid,COLOR_GREY,"Tippe: /punkte [ID][Anzahl][Grund]");
    if(!PlayerInfo[name][pMember] == 24 )return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht beim Ordnungsamt!");
    format(string,144,"Ordnungsbeamter %s hat dir %d Strafpunkte eingetragen! Grund: %s",NAME(playerid),punkte,reason),SendClientMessage(pID,TEAM_BLUE_COLOR,string); //FEHLERZEILE 58488
    format(string,144,"Du hast %s %d Strafpunkte eingetragen! Grund: %s",NAME(pID),punkte,reason),SendClientMessage(playerid,TEAM_BLUE_COLOR,string);
    format(string,144,"(( HQ: %s hat %s %d Strafpunkte eingetragen! Grund: %s ))",NAME(playerid),NAME(pID),punkte,reason);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i) && (PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24))
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,string);
    }
    }
    Log("PunkteLog", string);
    return 1;
    }
    ocmd:clearpunkte(playerid,params[]){
    new pID,reason[64],string[144],punkte,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(sscanf(params,"uis[64]",pID,punkte,reason))return SendClientMessage(playerid,COLOR_GREY,"Tippe: /clearpunkte [ID][Anzahl][Grund]");
    if(!PlayerInfo[name][pMember] == 24 )return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht beim Ordnungsamt!");
    if(!PlayerInfo[name][pRank] == 6 )return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht Rank 5!");
    format(string,144,"Ordnungsbeamter %s hat dir %d Strafpunkte gelöscht! Grund: %s",NAME(playerid),punkte,reason),SendClientMessage(pID,TEAM_BLUE_COLOR,string);
    format(string,144,"Du hast %s %d Strafpunkte gelöscht! Grund: %s",NAME(pID),punkte,reason),SendClientMessage(playerid,TEAM_BLUE_COLOR,string);
    format(string,144,"(( HQ: %s hat %s %d Strafpunkte gelöscht! Grund: %s ))",NAME(playerid),NAME(pID),punkte,reason);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i) && (PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24))
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,string);
    }
    }
    Log("PunkteLog", string);
    return 1;
    }
    //PUNKTESYSTEMORDNUNGSAMT


    Fehlercode:

    Code
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58487) : error 033: array must be indexed (variable "name")C:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : error 029: invalid expression, assumed zeroC:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : warning 215: expression has no effectC:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : warning 215: expression has no effectC:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : warning 215: expression has no effectC:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : error 001: expected token: ";", but found ")"C:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : error 029: invalid expression, assumed zeroC:\Users\Patrick\Desktop\IRP-City\gamemodes\T2R.pwn(58488) : fatal error 107: too many error messages on one line


    Ich hoffe ihr könnt helfen.

  • Probier es mal so:


    ocmd:punkte(playerid,params[]){
    new pID,reason[64],string[144],punkte,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(sscanf(params,"uis[64]",pID,punkte,reason))return SendClientMessage(playerid,COLOR_GREY,"Tippe: /punkte [ID][Anzahl][Grund]");
    if(!PlayerInfo[name][pMember] == 24 )return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht beim Ordnungsamt!");
    format(string,144,"Ordnungsbeamter %s hat dir %d Strafpunkte eingetragen! Grund: %s",NAME(playerid),punkte,reason);
    SendClientMessage(pID,TEAM_BLUE_COLOR,string);
    format(string,144,"Du hast %s %d Strafpunkte eingetragen! Grund: %s",NAME(pID),punkte,reason);
    SendClientMessage(playerid,TEAM_BLUE_COLOR,string);
    format(string,144,"(( HQ: %s hat %s %d Strafpunkte eingetragen! Grund: %s ))",NAME(playerid),NAME(pID),punkte,reason);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i) && (PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24))
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,string);
    }
    }
    Log("PunkteLog", string);
    return 1;
    }
    ocmd:clearpunkte(playerid,params[]){
    new pID,reason[64],string[144],punkte,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(sscanf(params,"uis[64]",pID,punkte,reason))return SendClientMessage(playerid,COLOR_GREY,"Tippe: /clearpunkte [ID][Anzahl][Grund]");
    if(!PlayerInfo[name][pMember] == 24 )return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht beim Ordnungsamt!");
    if(!PlayerInfo[name][pRank] == 6 )return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht Rank 5!");
    format(string,144,"Ordnungsbeamter %s hat dir %d Strafpunkte gelöscht! Grund: %s",NAME(playerid),punkte,reason);
    SendClientMessage(pID,TEAM_BLUE_COLOR,string);
    format(string,144,"Du hast %s %d Strafpunkte gelöscht! Grund: %s",NAME(pID),punkte,reason);
    SendClientMessage(playerid,TEAM_BLUE_COLOR,string);
    format(string,144,"(( HQ: %s hat %s %d Strafpunkte gelöscht! Grund: %s ))",NAME(playerid),NAME(pID),punkte,reason);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i) && (PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24))
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,string);
    }
    }
    Log("PunkteLog", string);
    return 1;
    }

  • Hi,


    ich weiß nicht ob das der Fehler ist aber du kannst es mal versuchen.
    Oben hast du Name so definiert "name" aber verwendest es immer "NAME"
    Änder das mal, vielleicht hilft es ja ^^



    Mit freundlichen Grüßen


    //Edit:


    Und übrigens musst du es so machen ^^
    new pID,reason[64],string[144],punkte,name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name, sizeof(name));



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Hey! ;)


    @FerienFreak:
    Du musst das ganze so schreiben:
    //PUNKTESYSTEM ORDNUNSGAMT
    ocmd:punkte(playerid,params[])
    {
    new pID,reason[64],string[145],punkte,name[MAX_PLAYER_NAME][2];
    if(sscanf(params,"uis[64]",pID,punkte,reason))return SendClientMessage(playerid,COLOR_GREY,"Tippe: /punkte [ID][Anzahl][Grund]");
    if(PlayerInfo[pID][pMember] != 24)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht beim Ordnungsamt!");
    GetPlayerName(playerid,name[0],MAX_PLAYER_NAME);
    GetPlayerName(pID,name[1],MAX_PLAYER_NAME);
    format(string,sizeof string,"Ordnungsbeamter %s hat dir %d Strafpunkte eingetragen! Grund: %s",name[0],punkte,reason);
    SendClientMessage(pID,TEAM_BLUE_COLOR,string);
    format(string,sizeof string,"Du hast %s %d Strafpunkte eingetragen! Grund: %s",name[1],punkte,reason);
    SendClientMessage(playerid,TEAM_BLUE_COLOR,string);
    format(string,sizeof string,"(( HQ: %s hat %s %d Strafpunkte eingetragen: Grund: %s ))",name[0],name[1],punkte,reason);
    for(new i;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && (PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24))
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,string);
    }
    }
    Log("PunkteLog",string);
    return 1;
    }
    ocmd:clearpunkte(playerid,params[])
    {
    new pID,reason[64],string[145],punkte,name[MAX_PLAYER_NAME][2];
    if(sscanf(params,"uis[64]",pID,punkte,reason))return SendClientMessage(playerid,COLOR_GREY,"Tippe: /clearpunkte [ID][Anzahl][Grund]");
    if(PlayerInfo[pID][pMember] != 24)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht beim Ordnungsamt!");
    if(PlayerInfo[pID][pRank] < 5)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht Rank 5!");
    GetPlayerName(playerid,name[0],MAX_PLAYER_NAME);
    GetPlayerName(pID,name[1],MAX_PLAYER_NAME);
    format(string,sizeof string,"Ordnungsbeamter %s hat dir %d Strafpunkte gelöscht! Grund: %s",name[0],punkte,reason);
    SendClientMessage(pID,TEAM_BLUE_COLOR,string);
    format(string,sizeof sring,"Du hast %s %d Strafpunkte gelöscht! Grund: %s",name[1],punkte,reason);
    SendClientMessage(pID,TEAM_BLUE_COLOR,string);
    format(string,sizeof string,"(( HQ: %s hat %s %d Strafpunkte gelöscht! Grund: %s ))",name[0],name[1],punkte,reason);
    for(new i;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && (PlayerInfo[i][pMember] == 24 || PlayerInfo[i][pLeader] == 24))
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,string);
    }
    }
    Log("PunkteLog",string);
    return 1;
    }
    Den Namen kannst du natürlich erst auslesen, wenn du die ID bzw. den Namen vom Spieler eingegeben hast, ansonsten wäre der Name immer von ID 0.
    @_iPit_:
    Man braucht 2 Arrays um 2 Namen auszulesen. :D


    Mencent :thumbup:

    Einmal editiert, zuletzt von AirM4X ()