Beiträge von Jeffry

    Schreibe es zuerst mal so:


    dcmd_kennzeichen(playerid,params[])
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist in keinem Fahrzeug!");
    if(KennzeichenErlaubnis[playerid] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "Du hast kein Kennzeichen in der ZulassungsStelle gekauft!");
    if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new vehiclefid = GetPlayerVehicleID(playerid);
    SetVehicleNumberPlate(vehiclefid, name);
    SetVehicleToRespawn(vehiclefid);
    new Float: X,Float: Y,Float: Z;
    GetPlayerPos(playerid,X,Y,Z);
    SetVehiclePos(vehiclefid,X,Y,Z);
    PutPlayerInVehicle(playerid,vehiclefid,0);
    new str[128];
    format(str, sizeof str, "/Autos/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    dini_Set(str, "Plate", name);
    format(PlayerCar[playerid][Dtc_PlayerKey[playerid]][Plate],15,name);
    KennzeichenErlaubnis[playerid] = 0;
    }
    return 1;
    }


    Du hattest in deinem Code der Variable "kz" nie einen Wert zugewiesen, daher dürfte auch nichts in der Datei gestanden haben.
    Wenn es dann noch immer nicht geht, poste bitte den Code, mit dem du dem Fahrzeug das Nummernschild nach dem Relog gibst, also wie du die PlayerCars lädst.

    Debugge es bitte mal so:


    for(new i = 0; i < sizeof(GangfightSystemInfo); i++)
    {
    printf("Start: i: %d Owner: %d", i, GangfightSystemInfo[i][GFOwnerID]);
    new GANGZONE_COLOR;
    if(GangfightSystemInfo[i][GFOwnerID] == 5) { GANGZONE_COLOR = GANGCOLOR_LCN; }
    if(GangfightSystemInfo[i][GFOwnerID] == 6) { GANGZONE_COLOR = GANGCOLOR_YAKUZA; }
    if(GangfightSystemInfo[i][GFOwnerID] == 17) { GANGZONE_COLOR = GANGCOLOR_CAMORA; }
    if(GangfightSystemInfo[i][GFOwnerID] == 18) { GANGZONE_COLOR = GANGCOLOR_ATZTECAS; }
    if(GangfightSystemInfo[i][GFOwnerID] == 19) { GANGZONE_COLOR = GANGCOLOR_GROVESTREET; }
    if(GangfightSystemInfo[i][GFOwnerID] == 20) { GANGZONE_COLOR = GANGCOLOR_BALLAS; }
    if(GangfightSystemInfo[i][GFOwnerID] == 22) { GANGZONE_COLOR = GANGCOLOR_RIFA; }
    if(GangfightSystemInfo[i][GFOwnerID] == 23) { GANGZONE_COLOR = GANGCOLOR_REDSOLDIER; }
    if(GangfightSystemInfo[i][GFOwnerID] == 24) { GANGZONE_COLOR = GANGCOLOR_VAGOS; }
    if(GangfightSystemInfo[i][GFOwnerID] == 25) { GANGZONE_COLOR = GANGCOLOR_GUERILLA; }
    if(GangfightSystemInfo[i][GFOwnerID] == 26) { GANGZONE_COLOR = GANGCOLOR_KARTEL; }
    printf("Color: %d / playerid: %d / Zone: %d / Gegner: %d", GANGZONE_COLOR, playerid, GangfightSystemInfo[i][GFGangZoneID], GangfightSystemInfo[i][GFGegnerID]);
    GangZoneShowForPlayer(playerid, GangfightSystemInfo[i][GFGangZoneID], GANGZONE_COLOR);
    if(GangfightSystemInfo[i][GFGegnerID] != -1)
    {
    if(GangfightSystemInfo[i][GFGegnerID] == 5) { GANGZONE_COLOR = GANGCOLOR_LCN; }
    if(GangfightSystemInfo[i][GFGegnerID] == 6) { GANGZONE_COLOR = GANGCOLOR_YAKUZA; }
    if(GangfightSystemInfo[i][GFGegnerID] == 17) { GANGZONE_COLOR = GANGCOLOR_CAMORA; }
    if(GangfightSystemInfo[i][GFGegnerID] == 18) { GANGZONE_COLOR = GANGCOLOR_ATZTECAS; }
    if(GangfightSystemInfo[i][GFGegnerID] == 19) { GANGZONE_COLOR = GANGCOLOR_GROVESTREET; }
    if(GangfightSystemInfo[i][GFGegnerID] == 20) { GANGZONE_COLOR = GANGCOLOR_BALLAS; }
    if(GangfightSystemInfo[i][GFGegnerID] == 22) { GANGZONE_COLOR = GANGCOLOR_RIFA; }
    if(GangfightSystemInfo[i][GFGegnerID] == 23) { GANGZONE_COLOR = GANGCOLOR_REDSOLDIER; }
    if(GangfightSystemInfo[i][GFGegnerID] == 24) { GANGZONE_COLOR = GANGCOLOR_VAGOS; }
    if(GangfightSystemInfo[i][GFGegnerID] == 25) { GANGZONE_COLOR = GANGCOLOR_GUERILLA; }
    if(GangfightSystemInfo[i][GFGegnerID] == 26) { GANGZONE_COLOR = GANGCOLOR_KARTEL; }
    printf("Flashing: %d", GANGZONE_COLOR);
    GangZoneFlashForPlayer(playerid, GangfightSystemInfo[i][GFGangZoneID], GANGZONE_COLOR);
    }
    }


    Poste außerdem dazu, wie du die Gangzonen erstellst, das hast du nämlich noch nicht gemacht.

    Nach diesem Prinzip musst du es machen.
    Ich weiß nicht ob das mit dem FileManager Plugin genau so funktioniert, laut der Dokumentation sollte es, probiere es einfach mal aus.


    stock EnterToLog(string[], logname[])
    {
    new stunde, minute, sec, jahr, monat, tag, string[256];
    gettime(stunde, minute, sec);
    getdate(jahr, monat, tag);
    format(string, sizeof(string), "scriptfiles/Logs/%d_%02d_%02d/%s.txt", jahr, monat, tag, logname);
    if(!dir_exists(string))
    {
    format(string, sizeof(string), "scriptfiles/Logs/%d_%02d_%02d", jahr, monat, tag);
    dir_create(string);
    }
    format(string, sizeof(string), "/Logs/%d_%02d_%02d/%s.txt", jahr, monat, tag, logname);
    new File:logfile=fopen(string, io_append);
    format(string, sizeof(string), "%02d.%02d.%d [%02d:%02d:%02d] %s\r\n",tag, monat, jahr, stunde, minute, sec, logtext);
    fwrite(logfile, string);
    fclose(logfile);
    return 1;
    }

    So zum Beispiel:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i = 0; i<sizeof(grovestreetcar); i++)
    {
    if(GetPlayerVehicleID(playerid) == grovestreetcar[i])
    {
    if(!SpielerFraktion(playerid,1))
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
    }
    }
    }
    for(new i = 0; i<sizeof(vagoscar); i++)
    {
    if(GetPlayerVehicleID(playerid) == vagoscar[i])
    {
    if(!SpielerFraktion(playerid,2))
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
    }
    }
    }
    }
    return 1;
    }


    Einrückung ist sehr wichtig, achte darauf.

    Na also, dann doch so:
    if(PlayerInfo[playerid][pLeader] == 1)
    {
    for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
    {
    if(!IsAnyPlayerInVehicle(PolizeiVehs[pv]))
    {
    SetVehicleToRespawn(PolizeiVehs[pv]);
    }
    }
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
    {
    if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid))
    {
    if(!IsAnyPlayerInVehicle(FactionCars[fc][fCarid]))
    {
    DestroyAndCreateFactionCar(fc);
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    return 1;
    }

    Da du mich in PN gefragt hast, ob ich es mir anschauen kann, und ich dir nicht mehr antworten kann hier die Frage:
    Was genau funktioniert denn eigentlich nicht so ganz? Kannst du das mal beschreiben?


    Zu der zweiten Frage:
    Da musst du mit OnPlayerUpdate arbeiten, und abfragen ob die Fahrzeug Health vom letzten Update noch gleich ist oder nicht. Wenn nicht, setzt du sie wieder hoch, allerdings kannst du natürlich nicht unterscheiden, ob der Spieler etwas gerammt hat oder angeschossen wurde, das müsste man berechnen, ob ein Spieler in dem Umkreis in deine Richtung geschossen hat.

    So sollte es passen:
    if(dialogid == DIALOG_TOT)
    {
    if(response)
    {
    SendClientMessage(playerid, COLOR_GREEN, "Ein Notartz wurde Informiert.");
    SendClientMessage(playerid, COLOR_GREEN, "Sollte er es nicht schaffen wirst du am Krankenhaus spawnen.");
    new string[145];
    new spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, spielername, MAX_PLAYER_NAME);
    format(string, sizeof(string), "HQ: Der Spieler %s Ist gestorben Nutze /khilfe [ID] um ihn zu orten.", spielername);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInFrac(i, 4))
    {
    SendClientMessage(i, COLOR_RED, string);
    }
    }


    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du brauchst also keinen Arzt.");
    SendClientMessage(playerid, COLOR_RED, "Du wirst nach 2-3 Minuten Am Krankenhaus Spawnen.");
    }
    }


    Wenn nicht, poste bitte die Errors und die Zeilen dazu.

    Funktioniert es, wenn du es so schreibst?
    format(KDTextdraw, sizeof(KDTextdraw), "Aktuelle K/D: ~y~%i", SpielerInfo[playerid][pRundenKills]/SpielerInfo[playerid][pRundenTode]);
    zu:
    new tmp = SpielerInfo[playerid][pRundenTode];
    if(tmp == 0) tmp = 1;
    format(KDTextdraw, sizeof(KDTextdraw), "Aktuelle K/D: ~y~%i", SpielerInfo[playerid][pRundenKills]/tmp);

    So in der Art:
    if(dialogid == DIALOG_TOT)
    {
    if(response)
    {
    SendClientMessage(playerid, COLOR_GREEN, "Ein Notartz wurde Informiert.");
    SendClientMessage(playerid, COLOR_GREEN, "Sollte er es nicht schaffen wirst du am Krankenhaus spawnen.");
    new string[145];
    format(string, sizeof(string), "HQ: Der Spieler %d Ist gestorben Nutze /khilfe [ID] um ihn zu orten.", SpielerName(playerid));
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInFrac(i, 4))
    {
    SendClientMessage(i, COLOR_RED, string);
    }
    }

    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du brauchst also keinen Artzt.");
    SendClientMessage(playerid, COLOR_RED, "Du wirst nach 2-3 Minuten Am Krankenhaus Spawnen.");

    }
    }

    Problem 1:
    Setze es zu 1?
    CheckEroberungMap1A[playerid] = 1;
    Ich verstehe nicht wirklich was du machen willst, bzw. wo das Problem ist.


    Problem 2:
    Setze mal zwischen jede Zeile einen print, bis zu welcher Zeile printet er? Also, welche Zeile ist die erste, die nicht mehr ausgeführt wird?

    Nein Nein Nein Nein ... :pinch:


    Lest doch mal, die Funktion ist diese:
    stock IsAnyPlayerInVehicle(vehicleid)
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vehicleid) return 1;
    return 0;
    }


    Also muss es so sein:
    if(!IsAnyPlayerInVehicle(FactionCars[fc][CarID]))
    Das "CarID" musst du mit dem ersetzen, das vor CreateVehicle beim Fraktionscar-erstellen steht. Wenn du nicht weißt was, poste dein enum das zu FactionCars gehört, bzw. poste wie du die Fahrzeuge erstellst.



    EDIT:
    Saphire: Zitat, im Falle du es nicht siehst, da der Post nicht mehr auf der neusten Seite ist.

    So:
    if(PlayerInfo[playerid][pLeader] == 1)
    {
    for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
    {
    if(!IsAnyPlayerInVehicle(PolizeiVehs[pv]))
    {
    SetVehicleToRespawn(PolizeiVehs[pv]);
    }
    }
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
    {
    if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid))
    {
    if(!IsAnyPlayerInVehicle(FactionCars[fc][fCarid])) //fCarid eventuell anpassen
    {
    DestroyAndCreateFactionCar(fc);
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    return 1;
    }


    Mit:
    stock IsAnyPlayerInVehicle(vehicleid)
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vehicleid) return 1;
    return 0;
    }