Beiträge von Jeffry

    Möglicherweise, je nach dem wie der Rest vom Code aussieht
    if(Postfuhr_Stationen[p][p_benutzt][playerid] == 1)
    zu:
    if(Postfuhr_Stationen[p][p_benutzt][playerid] == 0)

    Schaut so aus @Jeffry , aber das Problem ist immer noch vorhanden

    Versuche es so:
    public OnPlayerSpawn(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(specID[i] == playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    TogglePlayerSpectating(i,1);
    PlayerSpectatePlayer(i,playerid);
    SetPlayerInterior(i,GetPlayerInterior(playerid));
    SetPlayerVirtualWorld(i,GetPlayerVirtualWorld(playerid));
    }
    else
    {
    TogglePlayerSpectating(i,1);
    PlayerSpectateVehicle(i,GetPlayerVehicleID(playerid));
    SetPlayerInterior(i,GetPlayerInterior(playerid));
    SetPlayerVirtualWorld(i,GetPlayerVirtualWorld(playerid));
    }
    }
    }



    Warum kommt diese Warning-Meldung?

    Scheint so, als sei die Verbindung nicht mehr aktiv. Entferne die Zeile mal und schaue, ob der Fehler weiterhin auftritt, oder dann weg ist.

    Versuche es so:
    stock ChangeVehicle(playerid,vmodell)
    {
    new Float:pos[4],seed[3],vID = GetPlayerVehicleID(playerid),newveh, engine, lights, alarm, doors, bonnet, boot, objective, bool:pSeatid[0xF],
    seatmodel, seatcount, seatx;
    seatmodel = GetVehicleModel(vID);
    seatcount = GetVehicleSeatCount(seatmodel)+1;
    if(!seatmodel) return -1;
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    GetVehicleZAngle(vID,pos[3]);
    GetVehicleVelocity(vID,speed[1],speed[2],speed[3]);
    DestroyVehicle(vID);
    for(new p; p<MAX_PLAYERS; p++)
    {
    if(!IsPlayerConnected(p) || IsPlayerNPC(p)) continue;
    if(GetPlayerVehicleID(p) == vID) pSeatid[GetPlayerVehicleSeat(p)] = true,seatx++;
    if(seatx >= seatcount) return -1;
    for(new i; i<sizeof pSeatid; i++) if(!pSeatid[i]) return i;
    PutPlayerInVehicle(p,newveh,pSeatid[i]);
    return -1;
    newveh = CreateVehicle(vmodell,pos[0],pos[1],pos[2]+0.5,pos[3],1,1,-1);
    PutPlayerInVehicle(playerid,newveh,0);
    SetVehicleVelocity(newveh,speed[0],speed[1],speed[2]);
    GetVehicleParamsEx(newveh, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(newveh, 1, lights, alarm, doors, bonnet, boot, objective);
    }
    return 1;
    }



    stock ChangeVehicle(playerid,vmodell)//@Jeffry
    {
    new Float:pos[4],seed[3],vID = GetPlayerVehicleID(playerid),newveh, engine, lights, alarm, doors, bonnet, boot, objective, seat[MAX_PLAYERS] = {-1, ...};
    new seatcount = GetVehicleSeatCount(GetVehicleModel(vID));
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    GetVehicleZAngle(vID,pos[3]);
    GetVehicleVelocity(vID,speed[1],speed[2],speed[3]);
    DestroyVehicle(vID);
    for(new i = 0; i < MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vID) seat[i] = GetPlayerVehicleSeat(i);
    newveh = CreateVehicle(vmodell,pos[0],pos[1],pos[2]+0.5,pos[3],1,1,-1);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(seat[i] != -1)
    {
    if(seat[i] < seatcount) PutPlayerInVehicle(i, newveh, seat[i]);
    else SetPlayerPos(i,pos[0],pos[1],pos[2]);
    }
    }
    PutPlayerInVehicle(playerid,newveh,0);
    SetVehicleVelocity(newveh,speed[0],speed[1],speed[2]);
    GetVehicleParamsEx(newveh, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(newveh, 1, lights, alarm, doors, bonnet, boot, objective);
    return 1;
    }

    Den kannst du fast so lassen, den Code von mir fügst du vor (das vor dem Kommentar) und nach (das nach dem Kommentar) deiner CreateVehicle Zeile ein.

    Dann unter den Includes:
    new specID[MAX_PLAYERS] = {-1, ...};


    Im Befehl:
    specID[playerid] = playerID;


    Beim beenden:
    specID[playerid] = -1;


    Und bei OnPlayerSpawn:
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(specID[i] == playerid)
    {
    //Spectate für "i" neu starten, auf "playerid".
    }
    }

    Das kannst du so machen:

    new seat[MAX_PLAYERS] = {-1, ...};
    for(new i = 0; i < MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vID) seat[i] = GetPlayerVehicleSeat(i);
    //Fahrzeug neu erstellen...
    for(new i = 0; i < MAX_PLAYERS; i++) if(seat[i] != -1) PutPlayerInVehicle(i, newveh, seat[i]);


    Beachte aber, dass das neue Fahrzeug nicht weniger Sitze haben sollte, als das vorherige (Bus -> Motorrad), wenn mehr Sitze belegt sind, als dass neue Fahrzeug hat.

    Du bist aber noch im spectate Modus, oder? Wenn ja, dann ist das ein bekannter Fehler. Ich habe den bei mir auf dem Server damals so umgangen, dass ich den spectate Modus automatisch neu gestartet habe, wenn der gestorbene Spieler wieder gespawnt ist (OnPlayerSpawn).

    Du darfst den Index (idx) auch nur im Index (das was zwischen [ ] steht) von VehicleInfo nutzen, nicht als vehicleid.
    vehicleid != Index


    GetVehicleParamsEx(idx, engine, lights, alarm, doors, bonnet, boot, objective);
    zu:
    GetVehicleParamsEx(vID, engine, lights, alarm, doors, bonnet, boot, objective);
    Gleiches beim Set... .

    Soll ich idx durch i ersetzen oder den stock benutzen den du mir erstellt hast?

    Ersetze es durch "i".



    Das hier soll ich dann durch GetVehiclePos(vID, VehicleInfo[idx][v_X], VehicleInfo [idx][v_Y], VehicleInfo[idx][v_Z]); im public TachoTimer ersetzen?
    Fehler: Sobald ich in ein Fahrzeug einsteige wird der Kilometerstand automatisch hochgezählt.

    Da bin ich mit den Variablen durcheinander gekommen.
    Nutze
    GetVehiclePos(vehicleid, VehicleInfo[idx][v_KMX], VehicleInfo[idx][v_KMY], VehicleInfo[idx][v_KMZ]);
    Diese Werte müssen aktualisiert werden.
    Mit idx, ja.




    Soll ich im Befehl den Index von vID zu idx ersetzen?

    Ja, für die Indexe ([vID]) jeweils.

    Ist "sql10" auch die richtige Datenbank, also heißt deine Datenbank so?
    Ansonsten benenne mal die Tabellen um zu "Tor" und "TimeBan" also von den Großbuchstaben her. Das MySQL Plugin hat da zum Teil (nicht immer) Probleme, ich hatte das schon mit "id" und "ID", dass es das nicht genommen hat.

    Die Tabellen "Tor" und "TimeBan" existieren in deiner Datenbank "sql10" nicht.
    Möglicherweise wurden sie nicht exportiert, oder nicht mehr importiert.