problem mit mein stats system

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
  • if(strcmp(strget(cmdtext,0),"/status",true) == 0)
    {
    if(Spieler[playerid][team] == 2)
    SendClientMessage(playerid,COLOR_GREEN,"|_____Dein Status_____|");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

    {
    new name[MAX_PLAYER_NAME];
    new msg[200];
    GetPlayerName(i,name,sizeof(name));
    format(msg,sizeof(msg),"•Geld:[%d$] bank:[%d$] Wanteds:[%d] " ,Geld, bank, wanted);
    format(msg,sizeof(msg),"•team:[%d] " ,team );
    SendClientMessage(playerid,COLOR_WHITE,msg);
    return 1;
    }
    }
    return 1;
    }


    es wird nur team angezeigt und da auch nur die zahl 11 obwohl ich in team 2 bin
    warnings oder so bekomme ich keine
    was ist hier falsch
    (kein GF)!

    Einmal editiert, zuletzt von Optiimal ()


  • if(strcmp(strget(cmdtext,0),"/status",true) == 0)
    {
    if(Spieler[playerid][team] == 2)
    SendClientMessage(playerid,COLOR_GREEN,"|_____Dein Status_____|");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

    {
    new name[MAX_PLAYER_NAME];
    new msg[200];
    GetPlayerName(i,name,sizeof(name));
    format(msg,sizeof(msg),"•Geld:[%d$] bank:[%d$] Wanteds:[%d] " ,Geld, bank, wanted);
    SendClientMessage(playerid,COLOR_WHITE,msg);
    format(msg,sizeof(msg),"•team:[%d] " ,team );
    SendClientMessage(playerid,COLOR_WHITE,msg);
    return 1;
    }
    }
    return 1;
    }


    So ist es richtig, du hast den wert formatiert und dann nochmal formatiert, die Sendclientmessage gibt dann auch nur die letzte formatierung wieder.


    Zitat

    es wird nur team angezeigt und da auch nur die zahl 11 obwohl ich in team 2 bin

    Entweder werden die Werte falsch gespeichert / geladen oder falsch gesetzt. Da kann ich dir nicht helfen, weil meine GlasKugel kaputt ist ^^



    LG


    €dit :


    Jetzt wo ich's sehe muss ich sagen das der CMD VIEL zu VIEL Resourcen braucht 8|
    Jetzt wird der PaintoErklärFux mal wieder erklären :)


    Wenn man Neue Variblen erstellt gibt es unterschiede,
    1. String & Integer Werte
    2. Global & Für alle


    Du hast den fehler gemacht, globale Werte zu nutzen. Für jeden Spieler gibt es jedoch Geld etc.
    Man könnte nun alle Werte erstellen :



    new Geld[MAX_PLAYERS];
    new shit[MAX_PLAYERS];


    so das ist aber auch nicht gerade Resourcen schonend, eine enum ist da schon besser :

    enum Spieler
    {
    Geld,
    shit,
    }
    new PlayA[MAX_PLAYERS][Spieler];
    So nun kann man die einzelnen Werte verwenden und jeder Spieler hat eine eigene Variable. Toll oder ?
    Nun heißt es diese Werte uach zu leeren bei jedem neuen connect da vllt jemand die daten von jemanden bekommen könnte und evtl die selbe playerid wie derandere haben könnte.
    Daher unter OnPlayerConnect :

    PlayA[playerid][Geld] = 0;
    PlayA[playerid][shit] = 0;
    Und nun kommen wir mal zur verwendung der Variablen :
    if(strcmp(strget(cmdtext,0),"/kacken",true) == 0)
    {
    PlayA[playerid][shit]++;
    new string[128];
    format(string,sizeof(string),"Du hast bereits : %d geschissen und hast %d Gled dabei",PlayA[playerid][shit],PlayA[playerid][Geld]);
    SendClientMessage(playerid,FARBE,string);
    return 1;
    }


    Jetzt weißt du immer wie viel mal du geschissen hast!
    Und so kann man einen einfachen Status CMD machen :



    if(strcmp(strget(cmdtext,0),"/status",true) == 0)
    {
    new string[128];
    SendClientMessage(playerid,FARBE,"|_____Status_____|");
    format(string,sizeof(string),"Geschissen[%d] Geld[%d$]",PlayA[playerid][shit],PlayA[playerid][Geld]);
    SendClientMessage(playerid,FARBE,"|_______________|");
    return 1;
    }


    Und ich brauchte keine einzige Schleife :O



    LG


    2 Mal editiert, zuletzt von Guest- ()

  • format(msg,sizeof(msg),"•Geld:[%d$] bank:[%d$] Wanteds:[%d] " ,Geld, bank, wanted);
    format(msg,sizeof(msg),"•team:[%d] " ,team );
    SendClientMessage(playerid,COLOR_WHITE,msg);

    gegen
    format(msg,sizeof(msg),"•Geld:[%d$] bank:[%d$] Wanteds:[%d] " ,Geld, bank, wanted);
    SendClientMessage(playerid,COLOR_WHITE,msg);
    format(msg,sizeof(msg),"•team:[%d] " ,team );
    SendClientMessage(playerid,COLOR_WHITE,msg);


    edit: etwas zu spät

  • aber wenn ich das jetzt richtig verstanden habe ist es mit ein enum besser ich habe es aber mit ein enum


    enum spieler_daten
    {
    reg,
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt,
    Admin,
    leader,
    job,
    tot,
    team,
    versicherung,
    pduty,
    grab,
    perso,
    bank,
    jail,
    jailtime,
    eccard,
    tut,
    Geld,
    aFuhrerschein,
    harziv,
    }


    new Spieler[MAX_PLAYERS][spieler_daten];
    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    dini_IntSet(accFormat, "skin", GetPlayerSkin(playerid));


    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"grab",Spieler[playerid][grab]);
    dini_IntSet(accFormat,"reg",Spieler[playerid][reg]);
    dini_IntSet(accFormat,"jail",Spieler[playerid][jail]);
    dini_IntSet(accFormat,"jailtime",Spieler[playerid][jailtime]);
    dini_IntSet(accFormat,"tot",Spieler[playerid][tot]);
    dini_IntSet(accFormat,"job",Spieler[playerid][job]);
    dini_IntSet(accFormat,"team",Spieler[playerid][team]);
    dini_IntSet(accFormat,"versicherung",Spieler[playerid][versicherung]);
    dini_IntSet(accFormat,"leader",Spieler[playerid][leader]);
    dini_IntSet(accFormat,"aFuhrerschein",Spieler[playerid][aFuhrerschein]);
    dini_IntSet(accFormat,"harziv",Spieler[playerid][harziv]);
    dini_IntSet(accFormat,"perso",Spieler[playerid][perso]);
    dini_IntSet(accFormat,"bank",Spieler[playerid][bank]);
    dini_IntSet(accFormat,"eccard",Spieler[playerid][eccard]);
    dini_IntSet(accFormat,"tut",Spieler[playerid][tut]);
    dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
    dini_IntSet(accFormat, "skin", GetPlayerSkin(playerid));
    dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
    dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
    dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    }
    Spieler[playerid][Admin] = 0;
    Spieler[playerid][tut] = 0;
    Spieler[playerid][grab] = 0;
    Spieler[playerid][reg] = 0;
    Spieler[playerid][eccard] = 0;
    Spieler[playerid][jail] = 0;
    Spieler[playerid][bank] = 0;
    Spieler[playerid][jailtime] = 0;
    Spieler[playerid][tot] = 0;
    Spieler[playerid][job] = 0;
    Spieler[playerid][team] = 0;
    Spieler[playerid][versicherung] = 0;
    Spieler[playerid][leader] = 0;
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][aFuhrerschein] = 0;
    Spieler[playerid][harziv] = 0;
    Spieler[playerid][perso] = 0;
    Spieler[playerid][wanted] = 0;
    Spieler[playerid][skin] = GetPlayerSkin(playerid);
    Spieler[playerid][lastx] = (0.0);
    Spieler[playerid][lasty] = (0.0);
    Spieler[playerid][lastz] = (0.0);
    Player[playerid][haus_schau] = 0;
    Player[playerid][h_schaux] = (0.0);
    Player[playerid][h_schauy] = (0.0);
    Player[playerid][h_schauz] = (0.0);
    Player[playerid][last_int] = 0;
    Player[playerid][last_vw] = 0;
    Player[playerid][haus_zahl] = 0;
    MFG Mipu


    EDIT: HABE ES GESCHAFT VIELEN DANK DU HAST MIR SEHR GEHOLFEN :D:D:D

    Einmal editiert, zuletzt von Optiimal ()

  • *hust* sag das doch gleich, meinste ich kann Hellsehen ? :D



    if(strcmp(strget(cmdtext,0),"/status",true) == 0)
    {
    if(Spieler[playerid][team] == 2)
    SendClientMessage(playerid,COLOR_GREEN,"|_____Dein Status_____|");
    new name[MAX_PLAYER_NAME];
    new msg[200];
    GetPlayerName(i,name,sizeof(name));
    format(msg,sizeof(msg),"•Geld:[%d$] bank:[%d$] Wanteds:[%d] " ,Spieler[playerid][Geld],Spieler[playerid][bank],Spieler[playerid][wanted]);
    SendClientMessage(playerid,COLOR_WHITE,msg);
    format(msg,sizeof(msg),"•team:[%d] " ,Spieler[playerid][team]);
    SendClientMessage(playerid,COLOR_WHITE,msg);
    return 1;
    }


    Dann aber bitte so, ohne Schleife ;)


    LG