Problem mit /fpark und /carrespawn

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
  • Moooin.


    Und zwar habe ich folgendes Problem.. (Habe im Forum schon geschaut und nichts passendes gefunden)




    Sobald ich Fraktionsfahrzeuge hinzufüge, und diese mit /fpark an einer bestimmten stelle parken möchte, und dann alle Fahrzeuge respawne, spawnen sie nicht an der Stelle wo ich sie geparkt habe, sondern dort wo ich sie erstellt habe.. sie stehen erst an der geparken stelle, wenn ich den Server Restarte.. was natürlich nicht sinn und zweck der sache ist..



    Hier einmal ein Paar Ausschnitte aus meinem Script..


    #define MAX_FRAKTIONSDATEI 40
    #define MAX_FRAKTCARS 500
    #define MAX_FRACS 16
    new Fracs[MAX_FRACS][30] =
    {
    "LSPD", //1 STAAT
    "Regierung", //2 STAAT
    "Cripz", //3 GANG
    "Bloodz", //4 GANG
    "Vagos", //5 GANG
    "Varrios_Aztecas", //6 GANG
    "Yakuza", //7 MAFIA
    "Terroristen", //8 ORGANISATION
    "LCN", //9 MAFIA
    "Army", //10 STAAT
    "Hitman", //11 ORGANISATION
    "FBI", //12 STAAT
    "Medic", //13 STAAT
    "SRF", //14 ORGANISATION
    "News", //15 STAAT
    "Fahrschule" //16 STAAT
    };
    new LSPDcar[MAX_FRAKTCARS];
    new SecretServicecar[MAX_FRAKTCARS];
    new Cripzcar[MAX_FRAKTCARS];
    new Bloodzcar[MAX_FRAKTCARS];
    new Vagoscar[MAX_FRAKTCARS];
    new Aztecascar[MAX_FRAKTCARS];
    new Yakuzacar[MAX_FRAKTCARS];
    new Terrorcar[MAX_FRAKTCARS];
    new LCNcar[MAX_FRAKTCARS];
    new Armycar[MAX_FRAKTCARS];
    new Hitmancar[MAX_FRAKTCARS];
    new FBIcar[MAX_FRAKTCARS];
    new Mediccar[MAX_FRAKTCARS];
    new SRFcar[MAX_FRAKTCARS];
    new Newscar[MAX_FRAKTCARS];
    new Fahrschulcar[MAX_FRAKTCARS];
    enum Fraktcars
    {
    modelid,
    Float:fposx,
    Float:fposy,
    Float:fposz,
    Float:fposa,
    cc1,
    cc2,
    }
    new Fraktautos[MAX_FRAKTCARS][250][Fraktcars];


    public OnGameModeInit()
    {
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/LSPD/%d.ini",i);
    if(dini_Exists(Fraktauto))
    {
    Fraktautos[i][1][modelid] = dini_Int(Fraktauto,"modelid");
    Fraktautos[i][1][fposx] = dini_Float(Fraktauto,"FPosX");
    Fraktautos[i][1][fposy] = dini_Float(Fraktauto,"FPosY");
    Fraktautos[i][1][fposz] = dini_Float(Fraktauto,"FPosZ");
    Fraktautos[i][1][fposa] = dini_Float(Fraktauto,"FPosA");
    Fraktautos[i][1][cc1] = dini_Int(Fraktauto,"cc1");
    Fraktautos[i][1][cc2] = dini_Int(Fraktauto,"cc2");
    LSPDcar[i] = AddStaticVehicleEx(Fraktautos[i][1][modelid],Fraktautos[i][1][fposx],Fraktautos[i][1][fposy],Fraktautos[i][1][fposz],Fraktautos[i][1][fposa],Fraktautos[i][1][cc1],Fraktautos[i][1][cc2],-1);
    SetVehicleNumberPlate(LSPDcar[i],"LSPD");
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[i] = false;
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/SecretService/%d.ini",i);
    if(dini_Exists(Fraktauto))
    {
    Fraktautos[i][2][modelid] = dini_Int(Fraktauto,"modelid");
    Fraktautos[i][2][fposx] = dini_Float(Fraktauto,"FPosX");
    Fraktautos[i][2][fposy] = dini_Float(Fraktauto,"FPosY");
    Fraktautos[i][2][fposz] = dini_Float(Fraktauto,"FPosZ");
    Fraktautos[i][2][fposa] = dini_Float(Fraktauto,"FPosA");
    Fraktautos[i][2][cc1] = dini_Int(Fraktauto,"cc1");
    Fraktautos[i][2][cc2] = dini_Int(Fraktauto,"cc2");
    SecretServicecar[i] = AddStaticVehicleEx(Fraktautos[i][2][modelid],Fraktautos[i][2][fposx],Fraktautos[i][2][fposy],Fraktautos[i][2][fposz],Fraktautos[i][2][fposa],Fraktautos[i][2][cc1],Fraktautos[i][2][cc2],-1);
    SetVehicleNumberPlate(SecretServicecar[i],"SeSe");
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[i] = false;
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/Cripz/%d.ini",i);
    if(dini_Exists(Fraktauto))
    {
    Fraktautos[i][3][modelid] = dini_Int(Fraktauto,"modelid");
    Fraktautos[i][3][fposx] = dini_Float(Fraktauto,"FPosX");
    Fraktautos[i][3][fposy] = dini_Float(Fraktauto,"FPosY");
    Fraktautos[i][3][fposz] = dini_Float(Fraktauto,"FPosZ");
    Fraktautos[i][3][fposa] = dini_Float(Fraktauto,"FPosA");
    Fraktautos[i][3][cc1] = dini_Int(Fraktauto,"cc1");
    Fraktautos[i][3][cc2] = dini_Int(Fraktauto,"cc2");
    Cripzcar[i] = AddStaticVehicleEx(Fraktautos[i][3][modelid],Fraktautos[i][3][fposx],Fraktautos[i][3][fposy],Fraktautos[i][3][fposz],Fraktautos[i][3][fposa],Fraktautos[i][3][cc1],Fraktautos[i][3][cc2],-1);
    SetVehicleNumberPlate(Cripzcar[i],"Cripz");
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[i] = false;
    }
    }Und so weiter


    public OnGameModeExit()
    {
    //--------------------------------FRAKTIONSSYSTEM-------------------------------
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/LSPD/%d.ini",i);
    if(dini_Exists(Fraktauto))
    {
    dini_IntSet(Fraktauto,"modelid",Fraktautos[i][1][modelid]);
    dini_FloatSet(Fraktauto,"FPosX",Fraktautos[i][1][fposx]);
    dini_FloatSet(Fraktauto,"FPosY",Fraktautos[i][1][fposy]);
    dini_FloatSet(Fraktauto,"FPosZ",Fraktautos[i][1][fposz]);
    dini_FloatSet(Fraktauto,"FPosA",Fraktautos[i][1][fposa]);
    dini_IntSet(Fraktauto,"cc1",Fraktautos[i][1][cc1]);
    dini_IntSet(Fraktauto,"cc2",Fraktautos[i][1][cc2]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/SecretService/%d.ini",i); //Solltet ihr wissen ;)
    if(dini_Exists(Fraktauto))
    {
    dini_IntSet(Fraktauto,"modelid",Fraktautos[i][2][modelid]);
    dini_FloatSet(Fraktauto,"FPosX",Fraktautos[i][2][fposx]);
    dini_FloatSet(Fraktauto,"FPosY",Fraktautos[i][2][fposy]);
    dini_FloatSet(Fraktauto,"FPosZ",Fraktautos[i][2][fposz]);
    dini_FloatSet(Fraktauto,"FPosA",Fraktautos[i][2][fposa]);
    dini_IntSet(Fraktauto,"cc1",Fraktautos[i][2][cc1]);
    dini_IntSet(Fraktauto,"cc2",Fraktautos[i][2][cc2]);
    }
    }


    if(!strcmp(cmdtext,"/rac",true))
    {
    if(sDatei[playerid][pAdmin] >= 2)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    for(new v = 0; v < MAX_VEHICLES; v++)
    {
    if(!IsPlayerInVehicle(i,v)) SetVehicleToRespawn(v);
    }
    break;
    }
    SendClientMessage(playerid,COLOR_GRÜN,"Ein Admin respawnt alle Fahrzeuge auf diesem Server.");
    }
    return 1;
    }
    if(strcmp(cmdtext,"/fpark",true) == 0 || strcmp(cmdtext,"/fparken",true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh=GetPlayerVehicleID(playerid);
    new Float:x,Float:y,Float:z,Float:a;
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(veh==LSPDcar[i])
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/LSPD/%d.ini",i);
    GetVehiclePos(LSPDcar[i],x,y,z);
    GetVehicleZAngle(LSPDcar[i],a);
    Fraktautos[i][1][fposx]=x;
    Fraktautos[i][1][fposy]=y;
    Fraktautos[i][1][fposz]=z;
    Fraktautos[i][1][fposa]=a;
    dini_FloatSet(Fraktauto,"FPosX",Fraktautos[i][1][fposx]);
    dini_FloatSet(Fraktauto,"FPosY",Fraktautos[i][1][fposy]);
    dini_FloatSet(Fraktauto,"FPosZ",Fraktautos[i][1][fposz]);
    dini_FloatSet(Fraktauto,"FPosA",Fraktautos[i][1][fposa]);
    SendClientMessage(playerid,COLOR_GANGFARBE,"Fraktionsfahrzeug erfolgreich geparkt!");
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(veh==SecretServicecar[i])
    {
    new Fraktauto[200];
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/SecretService/%d.ini",i);
    GetVehiclePos(SecretServicecar[i],x,y,z);
    GetVehicleZAngle(SecretServicecar[i],a);
    Fraktautos[i][2][fposx]=x;
    Fraktautos[i][2][fposy]=y;
    Fraktautos[i][2][fposz]=z;
    Fraktautos[i][2][fposa]=a;
    dini_FloatSet(Fraktauto,"FPosX",Fraktautos[i][2][fposx]);
    dini_FloatSet(Fraktauto,"FPosY",Fraktautos[i][2][fposy]);
    dini_FloatSet(Fraktauto,"FPosZ",Fraktautos[i][2][fposz]);
    dini_FloatSet(Fraktauto,"FPosA",Fraktautos[i][2][fposa]);
    SendClientMessage(playerid,COLOR_GANGFARBE,"Fraktionsfahrzeug erfolgreich geparkt!");
    }
    }


    stock CreateFCar(playerid,fraktid,mid,c1,c2)
    {
    new Fraktauto[200];
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z); //Findet die Position für den Spieler heraus damit er weiß wo das auto hin muss
    GetPlayerFacingAngle(playerid,a); //Da die Blickrichtung auch für das Auto
    if(fraktid!=0) //Damit es nicht geht als Zivicar
    {
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(fraktid==1)
    {
    format(Fraktauto,sizeof(Fraktauto),"/Fraktionen/Fraktionsautos/LSPD/%d.ini",i);
    if(!dini_Exists(Fraktauto)) //Wenn die Fahrzeugid noch nicht vergeben ist
    {
    dini_Create(Fraktauto); //Er Createt die Datei
    dini_IntSet(Fraktauto,"modelid",mid);
    dini_FloatSet(Fraktauto,"FPosX",x);
    dini_FloatSet(Fraktauto,"FPosY",y);
    dini_FloatSet(Fraktauto,"FPosZ",z);
    dini_FloatSet(Fraktauto,"FPosA",a);
    dini_IntSet(Fraktauto,"cc1",c1);
    dini_IntSet(Fraktauto,"cc2",c2);
    Fraktautos[i][1][modelid] = dini_Int(Fraktauto,"modelid");
    Fraktautos[i][1][fposx] = dini_Float(Fraktauto,"FPosX");
    Fraktautos[i][1][fposy] = dini_Float(Fraktauto,"FPosY");
    Fraktautos[i][1][fposz] = dini_Float(Fraktauto,"FPosZ");
    Fraktautos[i][1][fposa] = dini_Float(Fraktauto,"FPosA");
    Fraktautos[i][1][cc1] = dini_Int(Fraktauto,"cc1");
    Fraktautos[i][1][cc2] = dini_Int(Fraktauto,"cc2");
    LSPDcar[i] = CreateVehicle(mid,x,y,z,a,c1,c2,-1);
    PutPlayerInVehicle(playerid,LSPDcar[i],0);
    return 1;
    }
    }



    Woran könnte das liegen? mein Latein ist dort leider am ende.. hab schon sämtliche sachen versucht..


    Danke schonmal für eure Hilfe

  • Das liegt daran, dass das Auto nicht neu erstellt wurde. Setze einfach nach dem Respawn die Position an die der gespeicherten Position.


    if(!IsPlayerInVehicle(i,v)) SetVehicleToRespawn(v);


    zu:
    if(!IsPlayerInVehicle(i,v))
    {
    SetVehicleToRespawn(v);
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==LSPDcar[i])
    {
    SetVehiclePos(LSPDcar[i],Fraktautos[i][1][fposx],Fraktautos[i][1][fposy],Fraktautos[i][1][fposz]);
    SetVehicleZAngle(LSPDcar[i],Fraktautos[i][1][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(veh==SecretServicecar[i])
    {
    SetVehiclePos(LSPDcar[i],Fraktautos[i][2][fposx],Fraktautos[i][2][fposy],Fraktautos[i][2][fposz]);
    SetVehicleZAngle(LSPDcar[i],Fraktautos[i][2][fposa]);
    }
    }
    }

  • Code in PN geschickt:


    if(!strcmp(cmdtext,"/rac",true))
    {
    if(sDatei[playerid][pAdmin] >= 2)
    {
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    for(new v = 0; v < MAX_VEHICLES; v++)
    {
    if(!IsPlayerInVehicle(p,v))
    {
    SetVehicleToRespawn(v);
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==LSPDcar[i])
    {
    SetVehiclePos(LSPDcar[i],Fraktautos[i][1][fposx],Fraktautos[i][1][fposy],Fraktautos[i][1][fposz]);
    SetVehicleZAngle(LSPDcar[i],Fraktautos[i][1][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==SecretServicecar[i])
    {
    SetVehiclePos(SecretServicecar[i],Fraktautos[i][2][fposx],Fraktautos[i][2][fposy],Fraktautos[i][2][fposz]);
    SetVehicleZAngle(SecretServicecar[i],Fraktautos[i][2][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Cripzcar[i])
    {
    SetVehiclePos(Cripzcar[i],Fraktautos[i][3][fposx],Fraktautos[i][3][fposy],Fraktautos[i][3][fposz]);
    SetVehicleZAngle(Cripzcar[i],Fraktautos[i][3][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Bloodzcar[i])
    {
    SetVehiclePos(Bloodzcar[i],Fraktautos[i][4][fposx],Fraktautos[i][4][fposy],Fraktautos[i][4][fposz]);
    SetVehicleZAngle(Bloodzcar[i],Fraktautos[i][4][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Vagoscar[i])
    {
    SetVehiclePos(Vagoscar[i],Fraktautos[i][5][fposx],Fraktautos[i][5][fposy],Fraktautos[i][5][fposz]);
    SetVehicleZAngle(Vagoscar[i],Fraktautos[i][5][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Aztecascar[i])
    {
    SetVehiclePos(Aztecascar[i],Fraktautos[i][6][fposx],Fraktautos[i][6][fposy],Fraktautos[i][6][fposz]);
    SetVehicleZAngle(Aztecascar[i],Fraktautos[i][6][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Yakuzacar[i])
    {
    SetVehiclePos(Yakuzacar[i],Fraktautos[i][7][fposx],Fraktautos[i][7][fposy],Fraktautos[i][7][fposz]);
    SetVehicleZAngle(Yakuzacar[i],Fraktautos[i][7][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Terrorcar[i])
    {
    SetVehiclePos(Terrorcar[i],Fraktautos[i][8][fposx],Fraktautos[i][8][fposy],Fraktautos[i][8][fposz]);
    SetVehicleZAngle(Terrorcar[i],Fraktautos[i][8][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==LCNcar[i])
    {
    SetVehiclePos(LCNcar[i],Fraktautos[i][9][fposx],Fraktautos[i][9][fposy],Fraktautos[i][9][fposz]);
    SetVehicleZAngle(LCNcar[i],Fraktautos[i][9][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Armycar[i])
    {
    SetVehiclePos(Armycar[i],Fraktautos[i][10][fposx],Fraktautos[i][10][fposy],Fraktautos[i][10][fposz]);
    SetVehicleZAngle(Armycar[i],Fraktautos[i][10][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Hitmancar[i])
    {
    SetVehiclePos(Hitmancar[i],Fraktautos[i][11][fposx],Fraktautos[i][11][fposy],Fraktautos[i][11][fposz]);
    SetVehicleZAngle(Hitmancar[i],Fraktautos[i][11][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==FBIcar[i])
    {
    SetVehiclePos(FBIcar[i],Fraktautos[i][12][fposx],Fraktautos[i][12][fposy],Fraktautos[i][12][fposz]);
    SetVehicleZAngle(FBIcar[i],Fraktautos[i][12][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Mediccar[i])
    {
    SetVehiclePos(Mediccar[i],Fraktautos[i][13][fposx],Fraktautos[i][13][fposy],Fraktautos[i][13][fposz]);
    SetVehicleZAngle(Mediccar[i],Fraktautos[i][13][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==SRFcar[i])
    {
    SetVehiclePos(SRFcar[i],Fraktautos[i][14][fposx],Fraktautos[i][14][fposy],Fraktautos[i][14][fposz]);
    SetVehicleZAngle(SRFcar[i],Fraktautos[i][14][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Newscar[i])
    {
    SetVehiclePos(Newscar[i],Fraktautos[i][15][fposx],Fraktautos[i][15][fposy],Fraktautos[i][15][fposz]);
    SetVehicleZAngle(Newscar[i],Fraktautos[i][15][fposa]);
    }
    }
    for(new i=0;i<MAX_FRAKTCARS;i++)
    {
    if(v==Fahrschulcar[i])
    {
    SetVehiclePos(Fahrschulcar[i],Fraktautos[i][16][fposx],Fraktautos[i][16][fposy],Fraktautos[i][16][fposz]);
    SetVehicleZAngle(Fahrschulcar[i],Fraktautos[i][16][fposa]);
    }
    }
    }
    }
    break;
    }
    SendClientMessage(playerid,COLOR_GRÜN,"Ein Admin respawnt alle Fahrzeuge auf diesem Server.");
    }
    return 1;
    }


    So sollte es passen.
    Allerdings ist das nicht wirklich schön wie du das geschrieben hast. Du kannst die ganzen if's unter eine for(new i... Schleife packen.