Beiträge von Jeffry

    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i;i<MAX_FACTION_CARS ;i++)
    {
    if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611 && vehicleid == FactionCars[i][fCarid])
    {
    GetVehiclePos(FactionCars[i][fCarid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z]);
    GetVehicleZAngle(FactionCars[i][fCarid], FactionCars[i][v_A]);
    format(query, sizeof(query), "UPDATE fraktionsautos SET FVehid = '%d', Fv_aX = '%f', Fv_aY = '%f', Fv_aZ = '%f', Fv_aA = '%f', FCol1 = '%d', FCol2 = '%d', FracID = '%d' WHERE id = '%d'",
    FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCol][0], FactionCars[i][fCol][1], FactionCars[i][fFaction], FactionCars[i][fdb_id]);
    mysql_tquery(dbhandle, query);
    return 1;
    }
    }
    return 0;
    }


    Du darfst die fVehid und fCarid nicht durcheinander bringen. Das hast du etwas schlecht benannt.
    fVehid = Model
    fCarid = vehicleid

    In 529 hat die Überschrift des Dialogs gefehlt und am Ende des Callbacks hat eine Klammer gefehlt.
    So:

    Spoiler anzeigen
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/spieler/%s.ini", pname);

    switch(dialogid)
    {
    case DIALOG_REGISTER1:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    new pwlength = strlen(inputtext);
    if(pwlength > 0)
    {

    dini_Create(path); //i
    dini_Set(path, "password", inputtext);
    ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_LIST, "Sex", "male\r\female", "OK", "Cancel");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_NOPW1, DIALOG_STYLE_MSGBOX, "Register", "You have to enter a password!", "OK", "Cancel");
    }
    }
    }
    case DIALOG_REGISTER2:
    {
    if(!response)
    {
    dini_Remove(path);
    Kick(playerid);
    }
    else
    {
    dini_IntSet(path, "sex", listitem);
    ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Register", "Your Age?", "OK", "Cancel");
    }
    }
    case DIALOG_REGISTER3:
    {
    if(!response)
    {
    dini_Remove(path);
    Kick(playerid);
    }
    else
    {
    dini_Set(path, "age", inputtext);
    ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_MSGBOX, "Register", "Your Register is complete!", "OK", "OK");
    }
    }
    case DIALOG_REGISTER4:
    {
    pInfo[playerid][sex] = dini_Int(path, "sex");
    pInfo[playerid][age] = dini_Int(path, "age");
    pInfo[playerid][logged] = 1;
    }
    case DIALOG_LOGIN1:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    new pwlength = strlen(inputtext);
    if(pwlength > 0)
    {
    new pw[200];
    format(pw, sizeof(pw), "%s", dini_Get(path, "password"));
    if(strcmp(inputtext, pw) == 0)
    {
    pInfo[playerid][sex] = dini_Int(path, "sex");
    pInfo[playerid][age] = dini_Int(path, "age");
    pInfo[playerid][logged] = 1;
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "Login", "Wrong Password!", "OK", "Cancel");
    }
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "SYou have to enter a password!", "OK", "Cancel");
    }
    }
    }
    case DIALOG_NOPW1:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Register", "Your Password", "OK", "Cancel");
    }
    }
    case DIALOG_NOPW2:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Your Password:", "OK", "Abbrechen");
    }
    }
    case DIALOG_WRONGPW:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Your Password:", "OK", "Cancel");
    }
    }
    }
    return 1;
    }

    SetTimerEx("CreateFire", random(60000) + 80000, false, "i", random(MAX_FIRES));
    Da haben wir doch das Problem.


    Füge bei CreateFire direkt als erstes das ein:
    if(!IsFWDuty()) return 1;


    Dann sollte kein Feuer mehr ausbrechen.

    Du scheinst "id" als A_I zu verwenden.
    forward LoadFactionCars();
    public LoadFactionCars()
    {
    if(!cache_num_rows())return 1;
    for(new fc = 0; fc < cache_num_rows(); fc++)
    {
    FactionCars[fc][db_id] = cache_get_field_content_int(fc, "id", dbhandle);
    FactionCars[fc][fVehid] = cache_get_field_content_int(fc, "FVehId", dbhandle);
    FactionCars[fc][fFaction] = cache_get_field_content_int(fc, "FFaction", dbhandle);
    FactionCars[fc][v_X] = cache_get_field_content_float(fc, "Fv_aX", dbhandle);
    FactionCars[fc][v_Y] = cache_get_field_content_float(fc, "Fv_aY", dbhandle);
    FactionCars[fc][v_Z] = cache_get_field_content_float(fc, "Fv_aZ", dbhandle);
    FactionCars[fc][v_A] = cache_get_field_content_float(fc, "Fv_aA", dbhandle);
    FactionCars[fc][fCol][0] = cache_get_field_content_int(fc, "FCol1", dbhandle);
    FactionCars[fc][fCol][1] = cache_get_field_content_int(fc, "FCol2", dbhandle);
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][v_X],FactionCars[fc][v_Y],FactionCars[fc][v_Z],FactionCars[fc][v_A],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    }
    return 1;
    }


    Und dann:
    forward SaveAllFactionCars();
    public SaveAllFactionCars()
    {
    new query[256];
    for(new i;i<sizeof(FactionCars);i++)
    {
    if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
    {
    GetVehiclePos(FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z]);
    GetVehicleZAngle(FactionCars[i][fVehid], FactionCars[i][v_A]);
    format(query, sizeof(query), "UPDATE fraktionsautos SET FVehid = '%d', Fv_aX = '%f', Fv_aY = '%f', Fv_aZ = '%f', Fv_aA = '%f', FCol1 = '%d', FCol2 = '%d', FracID = '%d' WHERE id = '%d'",
    FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCol][0], FactionCars[i][fCol][1], FactionCars[i][fFaction], FactionCars[i][db_id]);
    mysql_tquery(dbhandle, query);
    }
    }
    return 1;
    }


    Die db_id musst du dann noch im enum anlegen.

    Was steht so im Server Log?
    stock SavePlayer(playerid)
    {
    new query[500];
    #define SA SpielerInfo[playerid]
    format(query, sizeof(query), "UPDATE `accounts` SET Adminlevel='%d',Score='%d',Sprache='%d',Geld='%d',Erfahrung='%d' WHERE `Name`='%s';",SA[uAdmin],SA[uScore],SA[uSprache],SA[uGeld],SA[uEP],PlayerName(playerid));
    printf("Speichere: %s", query);
    mysql_tquery(MysqlConnection, query, "","");
    #undef SA
    }


    Und steht etwas im MySQL Log?

    Ja, ich meinte außer diesem Code.


    Du hast ja den CheckFeuer-Timer, der ruft - mit print - das CreateFire Callback auf.
    Jetzt erstellt es dir ja ein Feuer ohne den Print. Daher die Frage wo du CreateFire noch aufrufst (außer in dem Timer), oder wo du noch ein Feuer erstellst, außer in CreateFire.

    Dann ändere mal:
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerColor(playerid, weiß);
    return 1;
    }
    zu:
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetPlayerPos(playerid,1766.2850,-1895.8571,13.5629);
    SetPlayerColor(playerid, weiß);
    return 1;
    }