Beiträge von Kaliber

    Naja...z.B. so:


    #define MAX_EVENT_CARS 5
    new g_vehicles[MAX_EVENT_CARS],g_data[MAX_EVENT_CARS]; //Oben ins Skript


    //Unter OnGameModeInit
    g_vehicles[0] = CreateVehicle(...);
    //usw


    //Dann im Command, der die Leute in die Autos setzen soll:
    for(new i,idx; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    PutPlayerInVehicle(i,g_vehicles[idx],0),TogglePlayerControllable(i,0),g_data[idx]=i,idx++;
    if(idx ==MAX_EVENT_CARS) break;
    }


    //Dann der Command zum starten:
    @s_event(5);


    //Dann irgendwo im Skirpt (in keinem Callback / Funktion)
    @s_event(x);@s_event(x) {
    if(!x) {
    for(new i; i<MAX_EVENT_CARS; i++) if(IsPlayerConnected(g_data[i])) TogglePlayerControllable(g_data[i],1),GameTextForPlayer(g_data[i],"~g~Gogogo!",1000,5);
    return 0;
    }
    for(new i,tmp[32]; i<MAX_EVENT_CARS; i++) {
    if(!IsPlayerConnected(g_data[i])) continue;
    format(tmp,32,"Event startet in %dsek!",x),GameTextForPlayer(g_data[i],tmp,1000,5);
    }
    return SetTimerEx("@s_event",1000,0,"i",x--);
    }


    mfg. :thumbup:

    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: