Script fehler bei "Statistikbefehl"

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 Leute , Bin hier neu im Forum!


    Und hätte direkt eine Frage an euch alle, Könnt ihr mir eventuell bei meiner Statistik Befehl weiter helfen ?


    Bekomme ständig den Fehler , Unbekannte Funktion !


    Ich zeig euch den Ganzen OnPlayerCommandText am besten...


    Für jede Hilfe wäre ich Dankbar,


    mfg Ahmad El-Zain


    Siehe Unten:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    //BEFEHLE
    dcmd(heal,4,cmdtext);
    dcmd(kick,4,cmdtext);
    dcmd(makeadmin, 9, cmdtext);
    dcmd(makeleader, 10, cmdtext);
    return 1;
    }
    //DCMD BEFEHLE
    //Makeleader Befehl
    dcmd_makeleader(playerid,params[])
    {
    new pid, frakid;
    if(sscanf(params,"ud",pid,frakid))
    {
    return SendClientMessage(playerid,GELB,"Verwendung : /makeleader [ID] [Fraktions ID]");


    }
    if(frakid > 17)
    {
    return SendClientMessage(playerid,ROT,"Es gibt nicht mehr als 17 Fraktionen");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Ungültiger Spieler!");
    }
    if(IstSpielerInFraktion(pid,frakid) == frakid)
    {
    return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist schon in der Fraktion!");
    }
    else
    {
    sSpieler[pid][Fraktion] = frakid;
    SendClientMessage(pid,BLUE,"Du bist nun in einer Fraktion!");
    SendClientMessage(pid,ORANGE,"Du hast den Spieler zu einer Fraktion eingeladen!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
    }
    return 1;
    }


    //Makeadmin Befehl
    dcmd_makeadmin(playerid, params[])
    {
    new pid,level;
    if(sscanf(params,"ud", pid, level))
    {
    return SendClientMessage(playerid, GELB,"Verwendung : /makeadmin [ID] [Level]");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Ungültiger Spieler!");
    }
    if(IstSpielerAdmin(pid,level) == level)
    {
    return SendClientMessage(playerid, LILA,"Der Spieler hat schon das angegebene Adminlevel!");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid, ORANGE, "Du bist nun ein Administrator!");
    SendClientMessage(playerid,ROSA,"Du hast den angegeben Spieler zum Administrator gemacht!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
    }
    return 1;
    }


    //BEFEHL ZUM HEILEN


    dcmd_heal(playerid,params[])
    {
    new i;
    if(strlen(params))
    {
    i = strval(params);
    if(IsPlayerConnected(i))
    {
    SetPlayerHealth(i,100.0);
    SendClientMessage(i,ROT,"Du wurdest geheilt");
    SendClientMessage(playerid,GREEN,"Du hast den Spieler erfolgreich geheilt");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Der spieler ist nicht Online");
    }
    }
    return 1;
    }


    //BEFEHL ZUM KICKEN
    dcmd_kick(playerid,params[])
    {
    new pid, str[64];
    if(sscanf(params, "uS(Kein Grund) [128]", pid, str))
    return SendClientMessage(playerid,RED,"Befehl:/kick [id] [Grund]");
    if(pid ==playerid) return SendClientMessage(playerid,ORANGE,"Du kannst dich nicht Selber kicken");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ORANGE,"Der spieler ist nicht Online");
    if(IsPlayerAdmin(playerid))
    {
    new Spieler[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pid,Spieler,sizeof(Spieler));
    format(str2,sizeof(str2),"%s wurde vom Server gekickt! Grund :%S",Spieler,str);
    SendClientMessageToAll(ROT,str2);
    Kick(pid);
    }
    else return SendClientMessage(playerid,RED,"Du bist kein Admin");
    return 1;
    }
    if(strcmp(cmdtext,"/stats,true)==0)
    {
    //1 Reihe
    new fraktname[64];
    switch(GetsSpieler(playerid,"Fraktion"))
    {
    case 0;{fraktname="Keine"}
    }
    format(string,sizeof(string),"[Name: %s][level: %i][Adminlevel: %i][Fraktion: %s]",SpielerName),GetPlayerScore(playerid),GetsSpieler(playerid,"Adminlevel"),fraktname);
    SendClientMessage(playerid,BLAU,string);
    //2 Reihe
    return 1;
    }

  • @Exod, hier:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    //BEFEHLE
    dcmd(heal,4,cmdtext);
    dcmd(kick,4,cmdtext);
    dcmd(makeadmin, 9, cmdtext);
    dcmd(makeleader, 10, cmdtext);
    return 1;
    }
    //DCMD BEFEHLE
    //Makeleader Befehl
    dcmd_makeleader(playerid,params[])
    {
    new pid, frakid;
    if(sscanf(params,"ud",pid,frakid))
    {
    return SendClientMessage(playerid,GELB,"Verwendung : /makeleader [ID] [Fraktions ID]");


    }
    if(frakid > 17)
    {
    return SendClientMessage(playerid,ROT,"Es gibt nicht mehr als 17 Fraktionen");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Ungültiger Spieler!");
    }
    if(IstSpielerInFraktion(pid,frakid) == frakid)
    {
    return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist schon in der Fraktion!");
    }
    else
    {
    sSpieler[pid][Fraktion] = frakid;
    SendClientMessage(pid,BLUE,"Du bist nun in einer Fraktion!");
    SendClientMessage(pid,ORANGE,"Du hast den Spieler zu einer Fraktion eingeladen!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
    }
    return 1;
    }


    //Makeadmin Befehl
    dcmd_makeadmin(playerid, params[])
    {
    new pid,level;
    if(sscanf(params,"ud", pid, level))
    {
    return SendClientMessage(playerid, GELB,"Verwendung : /makeadmin [ID] [Level]");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Ungültiger Spieler!");
    }
    if(IstSpielerAdmin(pid,level) == level)
    {
    return SendClientMessage(playerid, LILA,"Der Spieler hat schon das angegebene Adminlevel!");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid, ORANGE, "Du bist nun ein Administrator!");
    SendClientMessage(playerid,ROSA,"Du hast den angegeben Spieler zum Administrator gemacht!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
    }
    return 1;
    }


    //BEFEHL ZUM HEILEN


    dcmd_heal(playerid,params[])
    {
    new i;
    if(strlen(params))
    {
    i = strval(params);
    if(IsPlayerConnected(i))
    {
    SetPlayerHealth(i,100.0);
    SendClientMessage(i,ROT,"Du wurdest geheilt");
    SendClientMessage(playerid,GREEN,"Du hast den Spieler erfolgreich geheilt");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Der spieler ist nicht Online");
    }
    }
    return 1;
    }


    //BEFEHL ZUM KICKEN
    dcmd_kick(playerid,params[])
    {
    new pid, str[64];
    if(sscanf(params, "uS(Kein Grund) [128]", pid, str))
    return SendClientMessage(playerid,RED,"Befehl:/kick [id] [Grund]");
    if(pid ==playerid) return SendClientMessage(playerid,ORANGE,"Du kannst dich nicht Selber kicken");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ORANGE,"Der spieler ist nicht Online");
    if(IsPlayerAdmin(playerid))
    {
    new Spieler[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pid,Spieler,sizeof(Spieler));
    format(str2,sizeof(str2),"%s wurde vom Server gekickt! Grund :%S",Spieler,str);
    SendClientMessageToAll(ROT,str2);
    Kick(pid);
    }
    else return SendClientMessage(playerid,RED,"Du bist kein Admin");
    return 1;
    }
    if(strcmp(cmdtext,"/stats,true)==0)
    {
    //1 Reihe
    new fraktname[64];
    switch(GetsSpieler(playerid,"Fraktion"))
    {
    case 0;{fraktname="Keine"}
    }
    format(string,sizeof(string),"[Name: %s][level: %i][Adminlevel: %i][Fraktion: %s]",SpielerName),GetPlayerScore(playerid),GetsSpieler(playerid,"Adminlevel"),fraktname);
    SendClientMessage(playerid,BLAU,string);
    //2 Reihe
    return 1;
    }

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    //BEFEHLE
    dcmd(heal,4,cmdtext);
    dcmd(kick,4,cmdtext);
    dcmd(makeadmin, 9, cmdtext);
    dcmd(makeleader, 10, cmdtext);
    return 1;
    }
    //DCMD BEFEHLE
    //Makeleader Befehl
    dcmd_makeleader(playerid,params[])
    {
    new pid, frakid;
    if(sscanf(params,"ud",pid,frakid))
    {
    return SendClientMessage(playerid,GELB,"Verwendung : /makeleader [ID] [Fraktions ID]");

    }
    if(frakid > 17)
    {
    return SendClientMessage(playerid,ROT,"Es gibt nicht mehr als 17 Fraktionen");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Ungültiger Spieler!");
    }
    if(IstSpielerInFraktion(pid,frakid) == frakid)
    {
    return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist schon in der Fraktion!");
    }
    else
    {
    sSpieler[pid][Fraktion] = frakid;
    SendClientMessage(pid,BLUE,"Du bist nun in einer Fraktion!");
    SendClientMessage(pid,ORANGE,"Du hast den Spieler zu einer Fraktion eingeladen!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
    }
    return 1;
    }


    //Makeadmin Befehl
    dcmd_makeadmin(playerid, params[])
    {
    new pid,level;
    if(sscanf(params,"ud", pid, level))
    {
    return SendClientMessage(playerid, GELB,"Verwendung : /makeadmin [ID] [Level]");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Ungültiger Spieler!");
    }
    if(IstSpielerAdmin(pid,level) == level)
    {
    return SendClientMessage(playerid, LILA,"Der Spieler hat schon das angegebene Adminlevel!");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid, ORANGE, "Du bist nun ein Administrator!");
    SendClientMessage(playerid,ROSA,"Du hast den angegeben Spieler zum Administrator gemacht!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
    }
    return 1;
    }


    //BEFEHL ZUM HEILEN


    dcmd_heal(playerid,params[])
    {
    new i;
    if(strlen(params))
    {
    i = strval(params);
    if(IsPlayerConnected(i))
    {
    SetPlayerHealth(i,100.0);
    SendClientMessage(i,ROT,"Du wurdest geheilt");
    SendClientMessage(playerid,GREEN,"Du hast den Spieler erfolgreich geheilt");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Der spieler ist nicht Online");
    }
    }
    return 1;
    }


    //BEFEHL ZUM KICKEN
    dcmd_kick(playerid,params[])
    {
    new pid, str[64];
    if(sscanf(params, "uS(Kein Grund) [128]", pid, str))
    return SendClientMessage(playerid,RED,"Befehl:/kick [id] [Grund]");
    if(pid ==playerid) return SendClientMessage(playerid,ORANGE,"Du kannst dich nicht Selber kicken");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ORANGE,"Der spieler ist nicht Online");
    if(IsPlayerAdmin(playerid))
    {
    new Spieler[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pid,Spieler,sizeof(Spieler));
    format(str2,sizeof(str2),"%s wurde vom Server gekickt! Grund :%S",Spieler,str);
    SendClientMessageToAll(ROT,str2);
    Kick(pid);
    }
    else return SendClientMessage(playerid,RED,"Du bist kein Admin");
    return 1;
    }
    if(strcmp(cmdtext,"/stats,true)==0)
    {
    //1 Reihe
    new fraktname[64];
    switch(GetsSpieler(playerid,"Fraktion"))
    {
    case 0;{fraktname="Keine"}
    }
    format(string,sizeof(string),"[Name: %s][level: %i][Adminlevel: %i][Fraktion: %s]",SpielerName),GetPlayerScore(playerid),GetsSpieler(playerid,"Adminlevel"),fraktname);
    SendClientMessage(playerid,BLAU,string);
    //2 Reihe
    return 1;
    }

  • Ich nehme mal an du arbeitest mit dini und hast die SpielerDaten mit nem Enum erstellt..


    forward ShowStats(playerid,targetid); // oben ins Script einfügen.



    if(strcmp(cmdtext,"/stats",true) == 0)
    {
    new targetid;
    showstats(playerid,targetid);
    return 1;
    }



    public ShowStats(playerid,targetid)//Unten ins Script und bitte alles ANPASSEN!
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new statsstring[128];
    new level = sSpieler[playerid][Score];
    new admin = sSpieler[playerid][Admin];
    new ftext[20];
    if(sSpieler[playerid][Fraktion] == 0 { ftext = "Keine"; }
    else if(sSpieler[playerid][Fraktion] == 1 { ftext = "LSPD"; }
    else if(sSpieler[playerid][Fraktion] == 2 { ftext = "Ballas"; }
    else if(sSpieler[playerid][Fraktion] == 3 { ftext = "Grove"; }
    else if(sSpieler[playerid][Fraktion] == 4 { ftext = "Yakuza"; }
    else if(sSpieler[playerid][Fraktion] == 5 { ftext = "Army"; }

    format(statsstring,sizeof(statsstring),"Name: [%s]",name);
    SendClientMessage(playerid,COLOR_GRAU,statsstring);
    format(statsstring,sizeof(statsstring),"Level: [%d] Adminlevel: [%d] Fraktion: [%s]",level,admin,ftext);
    SendClientMessage(playerid,COLOR_GRAU,statsstring);
    return 1;
    }


    Ungetestet und keine garantie das es auf anhib klappt.

  • Ja, Ich bin noch Anfänger arbeiten noch mit dini !
    Will später natürlich umsteigen auf MySQL ...


    Aber will mich Erst mal anpassen sitze leider schon seit 4 Tagen an meinem Script, Hab nicht so Hohe Erfahrungen damit, Aber bin halt ein Sturkopf :)


    Danke ich teste es sofort mal an , Wo soll ich es unten rein tuen ?


    mfg :whistling: