Benötige hilfe bei der Fehlersuche ....

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
  • Moin Leute,


    ich habe da nen kleines Problem und finde denn fehler nicht.
    Das ist wie die Nadel im Heuhaufen zusuchen und hoffe das Ihr mir helfen könnt.


    Also das Script ist ein Selfmade und basiert auf MySql.
    Nun schildere ich euch das Problem:


    Spoiler anzeigen


    enum sDaten
    {
    pLogin
    };

    Spoiler anzeigen
    new sInfo[MAX_PLAYERS][sDaten];

    Spoiler anzeigen
    public OnPlayerSpawn(playerid)
    {
    sInfo[playerid][pLogin] = 1;
    }

    Spoiler anzeigen
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/test", cmdtext, true, 10) == 0)
    {
    new String[60];
    format(String,sizeof(String),"sInfo[playerid][pLogin]steht auf %d",sInfo[playerid][pLogin]);
    SendClientMessage(playerid,Grau,String);
    return 1;
    }
    dcmd(kick,4,cmdtext);
    dcmd(makeleader,10,cmdtext);

    Spoiler anzeigen
    dcmd_kick(playerid,params[])
    {
    new pID,Grund[128];
    if(sInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Grau," Du bist kein Admin!");
    if(sscanf(params,"us",pID,Grund)) return SendClientMessage(playerid,Grau," Benutzung: /kick [playerid/Name] [Grund]");
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Grau," Kein Spieler mit dieser ID Online!");
    if(sInfo[playerid][pLogin] == 1 && sInfo[pID][pLogin] == 1)
    {
    if(sInfo[playerid][pAdminlevel] >= 1)
    {
    new String[280];
    new Sname[MAX_PLAYER_NAME],Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    GetPlayerName(pID,Pname,sizeof(Pname));
    format(String,sizeof(String),"AdmCmd: %s wurde von %s gekickt. Grund: %s",Pname,Sname,Grund);
    SendClientMessageToAll(LeuchtRot,String);
    SavePlayer(pID);
    TogglePlayerControllable(pID,0);
    Kick(pID);
    }
    else
    {
    SendClientMessage(playerid,Grau," Du hast nicht genug Rechte um diesen Befehl ausführen zudürfen!");
    }
    }
    else
    {
    SendClientMessage(playerid,Grau," Du oder der angegebene Spieler ist nicht eingeloggt!");
    }
    return 1;
    }

    Spoiler anzeigen
    dcmd_makeleader(playerid,params[])
    {
    new pID,frakID,frakText[128];
    if(sInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Grau," Du bist kein Admin");
    if(sscanf(params,"ud",pID,frakID)) return SendClientMessage(playerid,Grau," Benutzung: /makeleader [playerid/Name] [Fraktions ID]");
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Grau," Kein Spieler mit diesem Name oder ID Online!");
    if(frakID > 10) return SendClientMessage(playerid,Grau," Es gibt nur 10 Fraktionen!");
    if(sInfo[playerid][pLogin] == 1 && sInfo[pID][pLogin] == 1)
    {
    if(sInfo[playerid][pAdminlevel] >= 1337)
    {
    if(sInfo[pID][pFraktion] == 0 || sInfo[pID][pLeader] == 0)
    {
    new String[128],String2[128];
    new Sname[MAX_PLAYER_NAME],Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    GetPlayerName(pID,Pname,sizeof(Pname));
    if(frakID == 0){frakText = "Zivilist";}
    else if(frakID == 1){frakText = "Los Santos Police Department";}
    else if(frakID == 2){frakText = "Federal Bureau of Investigation";}
    else if(frakID == 3){frakText = "Los Santos Fahrschule";}
    format(String,sizeof(String),"* Admin %s hat dich als Leader in der Fraktion %s eingetragen.",Sname,frakText);
    format(String2,sizeof(String2),"* Du hast %s in die Fraktion %s als Leader eingetragen.",Pname,frakText);
    SendClientMessage(pID,HellBlau,String);
    SendClientMessage(playerid,HellBlau,String2);
    SetPlayerHealth(pID,0);
    ResetPlayerWeapons(pID);
    ForceClassSelection(pID);
    sInfo[pID][pLeader] = frakID;
    sInfo[pID][pFraktion] = frakID;
    sInfo[pID][pRank] = 6;
    SavePlayer(pID);
    }
    else
    {
    SendClientMessage(playerid,Grau," Dieser Spieler ist bereits Leader oder Mitglied einer Fraktion!");
    }
    }
    else
    {
    SendClientMessage(playerid,Grau," Du hast nicht genug Rechte um diesen Befehl ausführen zudürfen!");
    }
    }
    else
    {
    SendClientMessage(playerid,Grau," Du oder der angegebene Spieler ist nicht eingeloggt!");
    }
    return 1;
    }
    return 0;
    }

    Spoiler anzeigen
    public OnGameModeExit()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    sInfo[i][pLogin] = 0;
    SavePlayer(i);
    }
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerDisconnect(playerid, reason)
    {
    sInfo[playerid][pLogin] = 0;
    SavePlayer(playerid);
    return 1;
    }

    Spoiler anzeigen
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, sInfo[playerid][pName], MAX_PLAYER_NAME);
    sInfo[playerid][pLogin] = mysql_GetInt("accounts", "Login", "Name", sInfo[playerid][pName]);
    sInfo[playerid][pLogin] = 1;
    }
    return 1;
    }

    Spoiler anzeigen
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(sInfo[playerid][pLogin] == 1)
    {
    mysql_SetInt("accounts", "Login", sInfo[playerid][pLogin], "Name", sInfo[playerid][pName]);
    }
    }
    return 1;
    }


    So das sind alle Sachen die nicht Funktionieren gibt natürlich nochmehr aber alles das gleiche.
    Also die Variable sInfo[playerid][pLogin] steht auf 1 nachdem ich gespawnt bin mit dem Befehl Test nachzusehen.
    Nun sagt mir aber das Script bei /kick ID Grund ServeR: Unknow Command. Bei MAkeleader ist es anders rum er setzt
    mich egal welche Fraktions id ich eingebe setzt die auf 0 also Zivilist. Wenn ich bei /kick ID GRUND nur Id eingebe also z.B. /kick 0
    Dann steht ingame das ich nicht eingeloggt bin oder die angegebene ID. Kann mir jemand helfen? : (


    Grüße

  • if(pID == playerid)return SendClientMessage(playerid,YOURCOLOR,"Was ist daran so schwer o.O");