Anhänger Respawn

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Leute,


    ich wollte fragen wie ich es machen kann, dass wenn ein Anhänger irgendwo auf der Straße steht den ein Spieler verloren hat nach 1 Minute respawnt wird und wenn der Anhänger an einer Zugmaschine angeschlossen ist nicht
    respawnt wird.


    MfG


    Skynox

    Nexus Reallife: ts1.gta4.me:4014
    Schaut vorbei!

  • Hast du einen sekündlichen Timer ?
    Wenn ja würde ich es so machen


    Würde das Abfragen ob der Trailer abgekoppelt ist und wenn er es ist ein settimerex erstellen der ihn dann spawnt


    Wenn er angehangen wird löscht du den Timer wieder und alles bleibt so wie es ist

  • Versuche es so:


    1.)
    Einen Timer erstellen, der alle 10 Sekunden aufgerufen wird (OnGameModeInit):
    SetTimer("CheckTrailers", 10000, true);


    2.)
    Der Timer:
    forward CheckTrailers();
    public CheckTrailers()
    {
    static checked[MAX_VEHICLES] = {-2,...}, Float:x[MAX_VEHICLES], Float:y[MAX_VEHICLES], Float:z[MAX_VEHICLES];
    new model, Float:tmpx, Float:tmpy, Float:tmpz;
    //Schleife durch alle Fahrzeuge
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
    model = GetVehicleModel(i);
    switch(model)
    {
    //Wenn Trailer
    case 435,450 /*weitere hier*/ :
    {
    GetVehiclePos(i, tmpx, tmpy, tmpz);
    if(tmpx != x[i] || tmpy != y[i] || tmpz != z[i])
    {
    //Trailer steht nicht mehr an der Position vom letzten Timeraufruf
    //(-2 = neu erstellt bzw. respawnt / -1 = am Spawn / 0 = wird bewegt / >0 = steht nicht am Spawn, aber steht)
    if(checked[i] == -2) checked[i] = -1;
    checked[i] = 0;
    }
    else
    {
    //Trailer steht noch an der gleichen Position
    if(checked[i] != -1)
    {
    checked[i]++;
    if(checked[i] > 5)
    {
    //Trailer steht eine Minute lang an der gleichen Position und hat kein Fahrzeug
    if(GetTrailerVehicle(i) == -1)
    {
    //Respawn
    SetVehicleToRespawn(i);
    checked[i] = -2;
    }
    }
    }
    }
    x[i] = tmpx;
    y[i] = tmpy;
    z[i] = tmpz;
    }
    }
    }
    return 1;
    }


    3.) Die GetTrailerVehicle Funktion:
    stock GetTrailerVehicle(trailerid)
    {
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
    if(GetVehicleTrailer(i) == trailerid) return i;
    }
    return -1;
    }