Beiträge von Jeffry

    Das sieht erneut nach einem Klammerfehler aus, zumindest geht eine Klammer mehr zu. Ist dieser Teil in dem ganzen Gamemode den du mir geschickt hast auch drin und auch ausgeklammert?
    Wenn nicht, schicke mir bitte nochmal den Code, und klammere es nicht aus.

    stock GetJobName(id)
    {
    new jName[32];
    switch(id)
    {
    case 1: jName = "Busfahrer";
    case 2: jName = "Taxifahrer";
    //...
    default: jName = "Unbekannt";
    }
    return jName;
    }


    Und dann eben:
    GetJobName(sInfo[playerid][job])
    Und im format mit %s anstatt %d.

    ocmd:stats(playerid)
    {
    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht Eingeloggt");
    new string[500] ="{00FFD2} [Allgemeines] \n\n";
    format(string,sizeof string,"%sName: {FFC800}%s\n {00FFD2}Level: {FFC800}%i\n {00FFD2}Geld: {FFC800}%i\n{00FFD2}Respektpunkte: {FFC800}%d/%d\nPayDay: %i\nSpielstunden: %i\nKills: %i\nTode: %i",string,
    SpielerName(playerid),sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][respektpunkte],sInfo[playerid][level]*6,sInfo[playerid][paydaytime],sInfo[playerid][spielstunden],sInfo[playerid][kills],sInfo[playerid][deaths]);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
    return 1;
    }


    public PayDayTimer()
    {
    new rpunkte;//Hier wird eine Variable erstellt, um die Respektpunkte mit dem Level zu berechnen
    new string[145]; //Für die Nachricht des Paydays
    //Wir gehen eine Schleife durch alle Spieler durch
    for(new i;i<MAX_PLAYERS;i++)
    {
    //Hier werden die Spieler "aussortiert" bzw. übersprungen, die entweder nicht mit dem Server verbunden, ein NPC oder nicht eingeloggt sind
    if(!IsPlayerConnected(i) || IsPlayerNPC(i) || sInfo[i][eingeloggt] == 0)continue;
    sInfo[i][paydaytime] ++;//Hier wird die Variable paydaytime immer um eins addiert
    if(sInfo[i][paydaytime] >= 60)//Ist die Variable == 60 (60 Minuten), dann ist PayDay
    {
    format(string,sizeof string,"{FFFFFF}=========*{F5FF00}Gehaltscheck{FFFFFF}*==========");
    SendClientMessage(i,COLOR_WHITE,string);
    format(string,sizeof string,"Du hast einen Gehaltscheck von deinem Chef bekommen.");
    SendClientMessage(i,COLOR_WHITE,string);
    format(string,sizeof string,"Respektpunkte:{05D900} +1 || Spielstunden:{05D900} +1 || Aktuelles Level:{05D900} %i",sInfo[i][level]);
    SendClientMessage(i,COLOR_WHITE,string);
    sInfo[i][respektpunkte] ++;//Respektpunkte wird um eins addiert
    sInfo[i][paydaytime] = 0;//paydaytime wird wieder auf 0 gesetzt, damit das ganze von vorne anfangen kann
    rpunkte = sInfo[i][level] * 6;
    sInfo[i][spielstunden] ++;
    sInfo[i][gehaltschecknummer] ++;
    if(sInfo[i][jobgeld] > 0)
    {
    format(string,sizeof string,"Verdientes Geld:{05D900} %i$ || Gehaltschecknummer:{05D900} %i",sInfo[i][jobgeld],sInfo[i][gehaltschecknummer]);
    SendClientMessage(i, COLOR_WHITE,string);
    GivePlayerMoney(i,sInfo[i][jobgeld]);
    sInfo[i][jobgeld] = 0;
    }
    if(sInfo[i][jobgeld] < 1 || sInfo[i][jobgeld] == 0)
    {
    format(string,sizeof string,"Arbeitslosengeld:{05D900} 400$ || Gehaltschecknummer:{05D900} %i",sInfo[i][gehaltschecknummer]);
    SendClientMessage(i, COLOR_WHITE,string);
    GivePlayerMoney(i,400);
    }
    if(sInfo[i][respektpunkte] == rpunkte)
    {
    //Das Level kann um eins erhöht werden => Level Up
    sInfo[i][level] ++;//Das Level wird hier um eins addiert
    SetPlayerScore(i,sInfo[i][level]);//Das Level wird neu gesetzt
    sInfo[i][respektpunkte] = 0;
    }
    }
    }
    return 1;
    }


    Versuche es so.
    Beachte aber, dass du 60 Minuten warten musst, bis du einen PayDay bekommst, eben bis paydaytime auf 60 ist.

    if(dialogid==DIALOG_EDIT_CAR_COLOR_2)
    {
    if(response==1)
    {
    new vID = GetPlayerVehicleID(playerid);
    new Color2 = strval(inputtext);
    for(new i=0; i<sizeof vInfo; i++)
    {
    if(vInfo[i][v_id_x]!=vID)continue;
    vInfo[i][v_color_2]=Color2;
    ChangeVehicleColor(vID, vInfo[i][v_color_1], vInfo[i][v_color_2]);
    break;
    }
    SendClientMessage(playerid,grün,"Du hast die Lackierung des Wagens Geändert!");
    PlayerTextDrawShow(playerid,carlabel_background[playerid]);
    PlayerTextDrawShow(playerid,carlabel_heading[playerid]);
    PlayerTextDrawShow(playerid,carlabel_owner[playerid]);
    PlayerTextDrawShow(playerid,carlabel_color[playerid]);
    PlayerTextDrawShow(playerid,carlabel_delete[playerid]);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast den Vorgang Abgebrochen!");
    }
    }
    if(dialogid==DIALOG_EDIT_CAR_COLOR)
    {
    if(response==1)
    {
    new vID = GetPlayerVehicleID(playerid);
    new Color1 = strval(inputtext);
    for(new i=0; i<sizeof vInfo; i++)
    {
    if(vInfo[i][v_id_x]!=vID)continue;
    vInfo[i][v_color_1]=Color1;
    break;
    }
    ShowPlayerDialog(playerid,DIALOG_EDIT_CAR_COLOR_2,DIALOG_STYLE_INPUT,"Farbe aendern","Bitte gib Farbe 2 an\nVon 0-255","Abbrechen","Weiter");
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast den Vorgang Abgebrochen!");
    }
    }


    Ändere die beiden Dialoge dazu ab.

    Versuche es so:
    dcmd_efa(playerid,params[])
    {

    if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL)
    {

    new vehid,col1,col2,faction[5];
    if(!sscanf(params,"ddddD(0)D(0)D(0)D(0)",vehid,col1,col2,faction[0],faction[1],faction[2],faction[3],faction[4]))
    {
    if(vehid < 400 || vehid > 611) return SendClientMessage(playerid,WEIS,"Vehicle-ID nur von 400 bis 611.");
    if(col1 < 0 || col1 > 255) return SendClientMessage(playerid,WEIS,"Falsche Farbe(1)!");
    if(col2 < 0 || col2 > 255) return SendClientMessage(playerid,WEIS,"Falsche Farbe(2)!");
    if(faction[0] && faction[0] <= MAX_FACTIONS)
    {

    for(new f;f<5;f++)
    {

    if(faction[f] <= 0 || faction[f] > MAX_FACTIONS)
    {

    faction[f] = -255;
    }

    }

    for(new fc;fc<sizeof(FactionCars);fc++)
    {

    if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611)
    {

    FactionCars[fc][fVehid] = vehid;
    new Float:fX,Float:fY,Float:fZ,Float:fA;
    GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA);
    FactionCars[fc][fPos][0] = fX;
    FactionCars[fc][fPos][1] = fY;
    FactionCars[fc][fPos][2] = fZ;
    FactionCars[fc][fPos][3] = fA;
    FactionCars[fc][fCol][0] = col1;
    FactionCars[fc][fCol][1] = col2;
    for(new f;f<5;f++)
    {

    FactionCars[fc][fFaction][f] = faction[f];
    }

    FactionCars[fc][fPrice] = 0;
    for(new mod;mod<14;mod++)
    FactionCars[fc][fTuning][mod] = 0;
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    #if defined FACTION_CARS_LOCKABLE
    FactionCars[fc][fLock] = true;
    #endif
    SendClientMessage(playerid,WEIS,"Du hast das Fraktionsfahrzeug erfolgreich erstellt.");
    SendClientMessage(playerid,WEIS,"Vergesse es nicht mit '/fpark' umzuparken.");
    PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
    return true;
    }

    }
    SendClientMessage(playerid,WEIS,"Die Maximale Anzahl von Fraktionsfahrzeugen wurde bereits erreicht.");
    }
    else SendClientMessage(playerid,WEIS,"Falsche Fraktion!");
    }
    else SendClientMessage(playerid,WEIS,"Benutze: '/efa [Model] [Farbe(1)] [Farbe(2)] [Hauptfraktion]'.");
    }
    else SendClientMessage(playerid,WEIS,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
    return true;
    }

    Dann musst du den Befehl und die Speicherung mal debuggen:

    Spoiler anzeigen
    ocmd:caredit(playerid,params[])
    {
    printf("Start");
    if(sInfo[playerid][Adminlevel]>=ADMIN_HIGH_ADMIN)
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,rot,"Du bist in keinem Fahrzeug!");
    if(GetPVarInt(playerid,"CarEdit")==0)
    {
    SetPVarInt(playerid,"CarEdit",1);
    PlayerTextDrawShow(playerid,carlabel_background[playerid]);
    PlayerTextDrawShow(playerid,carlabel_heading[playerid]);
    PlayerTextDrawShow(playerid,carlabel_owner[playerid]);
    PlayerTextDrawShow(playerid,carlabel_color[playerid]);
    PlayerTextDrawShow(playerid,carlabel_delete[playerid]);
    SelectTextDraw(playerid,blau);
    return 1;
    }
    else if(GetPVarInt(playerid,"CarEdit")==1)
    {
    SetPVarInt(playerid,"CarEdit",0);
    new vID = GetPlayerVehicleID(playerid);
    printf("ok");
    for(new i=0; i<sizeof(vInfo); i++)
    {
    if(vInfo[i][v_id_x]!=vID)continue;
    printf("cmd: vID: %d", vID);
    SaveCar(vID);
    DestroyVehicle(vInfo[i][v_id_x]);
    vInfo[i][v_id_x]=0;
    LoadCar(Info[i][v_db_id]);
    printf("Geladen.");
    PlayerTextDrawHide(playerid,carlabel_background[playerid]);
    PlayerTextDrawHide(playerid,carlabel_heading[playerid]);
    PlayerTextDrawHide(playerid,carlabel_owner[playerid]);
    PlayerTextDrawHide(playerid,carlabel_color[playerid]);
    PlayerTextDrawHide(playerid,carlabel_delete[playerid]);
    return 1;
    }
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Du darfst diesen Befhel nicht nutzen!");
    }
    return 1;
    }

    Spoiler anzeigen
    SaveCar(vID)
    {
    for(new i=0; i<sizeof(vInfo); i++)
    {
    if(vInfo[i][v_id_x]!=vID)continue;
    printf("In SaveCar: %d -> DB: %d", i, vInfo[i][v_db_id]);
    new string[64];
    format(string,sizeof string,"/autos/car %i.txt",vInfo[i][v_db_id]);
    new color1,color2;
    GetVehicleColor(vInfo[i][v_id_x], color1,color2);
    printf("GetVehicleColor: %d / %d", color1, color2);
    vInfo[i][v_color_1]=color1;
    vInfo[i][v_color_2]=color2;
    vInfo[i][v_spoiler]=GetVehicleComponentInSlot(vInfo[i][v_id_x],0);
    vInfo[i][v_hood]=GetVehicleComponentInSlot(vInfo[i][v_id_x],1);
    vInfo[i][v_roof]=GetVehicleComponentInSlot(vInfo[i][v_id_x],2);
    vInfo[i][v_sideskirt]=GetVehicleComponentInSlot(vInfo[i][v_id_x],3);
    vInfo[i][v_lamps]=GetVehicleComponentInSlot(vInfo[i][v_id_x],4);
    vInfo[i][v_nitro]=GetVehicleComponentInSlot(vInfo[i][v_id_x],5);
    vInfo[i][v_exhaust]=GetVehicleComponentInSlot(vInfo[i][v_id_x],6);
    vInfo[i][v_wheels]=GetVehicleComponentInSlot(vInfo[i][v_id_x],7);
    vInfo[i][v_stereo]=GetVehicleComponentInSlot(vInfo[i][v_id_x],8);
    vInfo[i][v_hydraulics]=GetVehicleComponentInSlot(vInfo[i][v_id_x],9);
    vInfo[i][v_front_bumper]=GetVehicleComponentInSlot(vInfo[i][v_id_x],10);
    vInfo[i][v_rear_bumper]=GetVehicleComponentInSlot(vInfo[i][v_id_x],11);
    vInfo[i][v_vent_left]=GetVehicleComponentInSlot(vInfo[i][v_id_x],12);
    vInfo[i][v_vent_right]=GetVehicleComponentInSlot(vInfo[i][v_id_x],13);
    ChangeVehiclePaintjob(vInfo[i][v_id_x],vInfo[i][v_paintjob]);
    dini_IntSet(string,"Color_1",vInfo[i][v_color_1]);
    dini_IntSet(string,"Color_2",vInfo[i][v_color_2]);
    dini_IntSet(string,"v_spoiler",vInfo[i][v_spoiler]);
    dini_IntSet(string,"v_hood",vInfo[i][v_hood]);
    dini_IntSet(string,"v_roof",vInfo[i][v_roof]);
    dini_IntSet(string,"v_sideskirt",vInfo[i][v_sideskirt]);
    dini_IntSet(string,"v_lamps",vInfo[i][v_lamps]);
    dini_IntSet(string,"v_nitro",vInfo[i][v_nitro]);
    dini_IntSet(string,"v_exhaust",vInfo[i][v_exhaust]);
    dini_IntSet(string,"v_wheels",vInfo[i][v_wheels]);
    dini_IntSet(string,"v_stereo",vInfo[i][v_stereo]);
    dini_IntSet(string,"v_hydraulics",vInfo[i][v_hydraulics]);
    dini_IntSet(string,"v_front_bumper",vInfo[i][v_front_bumper]);
    dini_IntSet(string,"v_rear_bumper",vInfo[i][v_rear_bumper]);
    dini_IntSet(string,"v_vent_left",vInfo[i][v_vent_left]);
    dini_IntSet(string,"v_vent_right",vInfo[i][v_vent_right]);
    dini_IntSet(string,"v_paintjob",vInfo[i][v_paintjob]);
    dini_FloatSet(string,"Tank",vInfo[i][v_tank]);
    printf("Gespeichert.");
    return 1;
    }
    return 1;
    }


    Was steht dann im Server Log, wenn du den Befehl eingibst?

    Versuche es so:
    ocmd:caredit(playerid,params[])
    {
    if(sInfo[playerid][Adminlevel]>=ADMIN_HIGH_ADMIN)
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,rot,"Du bist in keinem Fahrzeug!");
    if(GetPVarInt(playerid,"CarEdit")==0)
    {
    SetPVarInt(playerid,"CarEdit",1);
    PlayerTextDrawShow(playerid,carlabel_background[playerid]);
    PlayerTextDrawShow(playerid,carlabel_heading[playerid]);
    PlayerTextDrawShow(playerid,carlabel_owner[playerid]);
    PlayerTextDrawShow(playerid,carlabel_color[playerid]);
    PlayerTextDrawShow(playerid,carlabel_delete[playerid]);
    SelectTextDraw(playerid,blau);
    return 1;
    }
    else if(GetPVarInt(playerid,"CarEdit")==1)
    {
    SetPVarInt(playerid,"CarEdit",0);
    new vID = GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(vInfo); i++)
    {
    if(vInfo[i][v_id_x]!=vID)continue;
    SaveCar(vID);
    DestroyVehicle(vInfo[i][v_id_x]);
    vInfo[i][v_id_x]=0;
    LoadCar(Info[i][v_db_id]);
    PlayerTextDrawHide(playerid,carlabel_background[playerid]);
    PlayerTextDrawHide(playerid,carlabel_heading[playerid]);
    PlayerTextDrawHide(playerid,carlabel_owner[playerid]);
    PlayerTextDrawHide(playerid,carlabel_color[playerid]);
    PlayerTextDrawHide(playerid,carlabel_delete[playerid]);
    return 1;
    }
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Du darfst diesen Befhel nicht nutzen!");
    }
    return 1;
    }

    Während ich die Debug Meldungen eingebaut habe und den Timer etwas aufgeräumt habe ist mir der Fehler aufgefallen.
    Du hast die Textdraws immer gehidet, wenn man nicht nahe einem Haus war das existiert, sprich wenn man nicht am letzten Haus war, hat man kein Textdraw gezeigt bekommen.


    So sollte es passen:


    //Eine Sekunden Timer
    forward GrandTimer();
    public GrandTimer()
    {
    printf("Starte GrandTimer.");
    new string[300], query[128];
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(IsPlayerNPC(i))continue;
    printf("i: %d", i);
    //Haussystem Textdraw
    new bool:shown;
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    printf("haus: %d", haus);
    if(HausInfo[haus][hauscreatet] != 0)
    {
    printf("Haus existiert. Range: %d", IsPlayerInRangeOfPoint(i,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]));
    if(IsPlayerInRangeOfPoint(i,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    printf("Zeige Haus %d an.", haus);
    if(GetString(HausInfo[haus][haus_besitzer],"Niemand"))
    {
    format(string,sizeof(string),"Besitzer: ~w~Haus zum Verkauf");
    }
    else
    {
    format(string,sizeof(string),"Besitzer: ~w~%s",HausInfo[haus][haus_besitzer]);
    }
    PlayerTextDrawSetString(i,HausLabelTD[i][1],string);
    format(string,sizeof(string),"Hausnummer: %i",haus);
    PlayerTextDrawSetString(i,HausLabelTD[i][9],string);
    format(string,sizeof(string),"Kosten: ~w~%i$",HausInfo[haus][haus_preis]);
    PlayerTextDrawSetString(i,HausLabelTD[i][2],string);
    format(string,sizeof(string),"Miete: ~w~%i$",HausInfo[haus][haus_miete]);
    PlayerTextDrawSetString(i,HausLabelTD[i][3],string);
    format(string,sizeof(string),"Level: ~w~%i",HausInfo[haus][haus_level]);
    PlayerTextDrawSetString(i,HausLabelTD[i][4],string);
    format(string,sizeof(string),"Mieter Slots: ~w~%i/%i",HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
    PlayerTextDrawSetString(i,HausLabelTD[i][5],string);
    mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE `HausMieter` = '%d'", haus);
    mysql_function_query(MySqlConnection,query,true,"LoadHouseRentFinish","siii",query,_SQL_HOUSEMIETER_LOAD,0,MySqlConnection);
    for(new x = 0; x < 10; x++) PlayerTextDrawShow(i,HausLabelTD[i][x]);
    shown = true;
    break;
    }
    }
    }
    if(!shown)
    {
    printf("Verstecke Textdraws.");
    for(new x = 0; x < 10; x++) PlayerTextDrawHide(i,HausLabelTD[i][x]);
    }
    }
    for(new i = 0;i < MAX_BOMBS; i ++)
    {
    if(i < MAX_BOMBS)
    {
    BombTimerTL(i);
    }
    }
    return 1;
    }


    Wenn nicht, poste bitte was im Server Log steht.
    Wenn es klappt, dann kannst du die printf's wieder entfernen.