Beiträge von Kaliber

    Schreibe es mal so:


    if(!strcmp("/stats", cmdtext, true)) {
    new string[256],ftext[20];
    switch(sSpieler[playerid][Fraktion]) {
    case 0: ftext="Zivilist";
    case 1: ftext="LPSD";
    case 2: ftext="FBI";
    case 3: ftext="Bundeswehr";
    case 4: ftext="Notdienst";
    }
    format(string,sizeof(string),"{00ff6e}[Account]\n{fff4eb}Level: %d\nAdmin Level: %d\nID: %d\n\n{00ff6e}[Finanzen]\n{fff4eb}Geld: %d",sSpieler[playerid][Level],sSpieler[playerid][Adminlevel],playerid,GetPlayerMoney(playerid));
    format(string,sizeof(string),"%s{00ff6e}[Berufsleben]\n{fff4eb}Fraktion: %s",string,ftext);
    return ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Deine Statistiken",string,"Fertig","");
    }


    mfg. :thumbup:

    Schreibe es so:


    COMMAND:stats(playerid, params[])
    {
    if(IsPlayerAFK[playerid]) return SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du bist AFK. Du kannst keine Aktion durchführen.", "»WARNING« You are AFK. You can't take any action.");
    new ID, stringDE[256], stringEN[256];
    sscanf(params, "U(-1)", ID);
    if(ID == -1) ID = playerid;
    if(!IsPlayerConnected(ID)) return SendLanguageMessage(playerid, C_RED, "»WARNUNG« Dieser Spieler ist nicht online!", "»WARNING« This player is not online!");
    new pName[MAX_PLAYER_NAME],
    pAdminLevel = pInfo[ID][AdminLevel],
    pMoney = pInfo[ID][Money] + pInfo[ID][Bank],
    pScore = pInfo[ID][Score],
    pKills = pInfo[ID][Kills],
    pDeaths = pInfo[ID][Deaths],
    Float:pRatio = Float:pInfo[ID][Kills] / Float:pInfo[ID][Deaths];
    GetPlayerName(ID, pName, sizeof(pName));
    format(stringDE, sizeof(stringDE), ""#C_WHITE_E"Name: "#C_LIGHT_BLUE_E"%s"#C_WHITE_E"\nRang: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nGeld: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nScore: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nKills: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nTode: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nRatio: "#C_LIGHT_BLUE_E"%0.2f", pName, pAdminLevel, pMoney, pScore, pKills, pDeaths, pRatio);
    format(stringEN, sizeof(stringEN), ""#C_WHITE_E"Name: "#C_LIGHT_BLUE_E"%s"#C_WHITE_E"\nRank: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nMoney: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nScore: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nKills: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nDeaths: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nRatio: "#C_LIGHT_BLUE_E"%0.2f", pName, pAdminLevel, pMoney, pScore, pKills, pDeaths, pRatio);
    ShowLanguageDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Spielerstatistik", "Player Statistics", stringDE, stringEN, "OK", "OK", "", "");
    return 1;
    }


    mfg. :thumbup:

    Oke ich hatte noch ein Problem beim dialog wenn ich jemanden invite wird der dialog angezeigt der Spieler auch aber Sa steht dann in die Fraktion Zivilist eingeladen und nicht die Fraktion in der der Spieler eingeladen wird


    Stimmt, weil im format was falsches steht:


    Zitat

    fInfo[pID][f_name]


    Das muss zu:


    fInfo[playerid][f_name]


    mfg. :thumbup:

    static kann sogar noch mehr.


    Angenommen wir haben ein Include, sollte man da Variablen mit static deklarieren, da sie dann vom Gamemode aus nicht aufgerufen werden können.


    Dadurch verhindert man z.B. doppelte Variablennamen-Nutzung ;)


    mfg. :thumbup:

    Wie kann ich dass beheben?


    Du solltest eigentlich ne Menge Warnings erhalten :rolleyes:


    Naja, schreib es so:


    ocmd:stats(playerid)
    {
    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,Rot,"Du bist nicht Eingeloggt");
    new string[500] ="--------------[Allgemeines]--------------\n";
    format(string,sizeof string,"%sName: %s\nLevel: %i\nGeld: %i\n",string,
    sInfo[playerid][username],sInfo[playerid][level],GetPlayerMoney(playerid));
    ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
    return 1;
    }


    mfg. :thumbup:

    L.G.


    Man könnte, um es sparender zu machen, sich die globale Variable mit 500cells auch sparen und es so machen:


    new Float:p[3];
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    SetTimerEx("@des",1000*30,0,"i",CreatePickup(1240,2,p[0],p[1],p[2],-1));


    //und dann irgendwo ins skript:
    @des(x);@des(x) return DestroyPickup(x);


    mfg. :thumbup: