MTA Pickup Frage : VehicleChange

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
  • Hey,


    ich wollte mal fragen:
    Wie kann ich bei VehicleChange machen, dass, wenn das auto wechselt, der immernich in der gleichen GSW weiterfährt?
    Momentan sieht mein Code so aus::


    Spoiler anzeigen
    stock Nitro(Float:X, Float:Y, Float:Z)
    {
    CreatePickup(1252,1,X,Y,Z);
    return 1;
    }
    stock Repair(Float:X, Float:Y, Float:Z)
    {
    CreatePickup(1240,1,X,Y,Z);
    return 1;
    }
    stock VehChange(Float:X, Float:Y, Float:Z, veh)
    {
    new veh = GetPlayerVehicleID(playerid);
    new Float:px,Float:py,Float:pz,Float:pa;
    GetPlayerPos(playerid,px,py,pz);
    GetPlayerFacingAngle(playerid,pa);
    DestroyVehicle(veh);
    new carid = CreateVehicle(veh, px, py, pz, pa, -1, -1, 60000);
    PutPlayerInVehicle(playerid, carid, 0);
    return 1;
    }

  • Ich würde bei den Pickups Den Typ nur Für Autos benutzen und Bei VehChange das Model sogesagt nur ändern.
    Also Velocity auch aubfragen!


    /e

    stock ChangeVehicleModel(vehicleid, modellid, color1, color2)
    {
    if(GetVehicleModell(vehicleid) == modellid))return 1;//Habe ich gefixxt
    new Float:C[7];
    GetVehiclePos(vehicleid, C[0], C[1], C[2]);
    GetVehicleZAngle(vehicleid, C[3]);
    GetVehicleVelocity(vehicleid, C[4], C[5], C[6]);
    DestroyVehicle(vehicleid);
    vehicleid = CreateVehicle(modellid, C[0], C[1], C[2], C[3], color1, color2, -1);
    SetVehicleVelocity(vehicleid, C[4], C[5], C[6]);
    return vehicleid;
    }


    MFG Piet

  • Mit GetVehicleVelocity und SetVehicleVelocity.


    Wenn der Spieler in den Checkpoint reinfährt die Geschwindigkeit mit GetVehicleVelocity abfragen und nachdem das Fahrzeug gewechselt wurde mit SetVehicleVelocity auf die zuvor gemessene Geschwindigkeit setzen.

  • Ich würde bei den Pickups Den Typ nur Für Autos benutzen und Bei VehChange das Model sogesagt nur ändern.
    Also Velocity auch aubfragen!


    MFG Piet


    Welcher Typ ist denn nur für Autos? ^^



    Mit GetVehicleVelocity und SetVehicleVelocity.


    Wenn der Spieler in den Checkpoint reinfährt die Geschwindigkeit mit GetVehicleVelocity abfragen und nachdem das Fahrzeug gewechselt wurde mit SetVehicleVelocity auf die zuvor gemessene Geschwindigkeit setzen.


    So?:


    GetVehicleVelocity(oldveh, vx,vy,vz);
    SetVehicleVelocity(newveh, vx,vy,vz);

  • also müsste es so jetzt gehen?


    new veh = GetPlayerVehicleID(playerid);
    new Float:px,Float:py,Float:pz,Float:pa;
    new Float:vx,Float:vy,Float:vz,Float:va;
    GetPlayerPos(playerid,px,py,pz);
    GetPlayerFacingAngle(playerid,pa);
    GetVehicleVelocity(veh, vx,vy,vz);
    DestroyVehicle(veh);
    new carid = CreateVehicle(veh, px, py, pz, pa, -1, -1, 60000);
    PutPlayerInVehicle(playerid, carid, 0);
    SetVehicleVelocity(carid, vx,vy,vz);
    return 1;

  • also ich habe es jetzt so einigermaßen gemacht, aber es passiert überall nix...


    Spoiler anzeigen

    //GamemodeInit
    nos[0] = Nitro(1549.0024,-2258.1736,13.5469);

    rep[0] = Repair(1543.9928,-2246.1135,13.5469);

    vehc[0] = VehChange(1536.2899,-2223.8933,13.5469);

    Spoiler anzeigen
    //stocks
    stock Nitro(Float:X, Float:Y, Float:Z)
    {
    CreatePickup(1252,14,X,Y,Z);
    return 1;
    }
    stock Repair(Float:X, Float:Y, Float:Z)
    {
    CreatePickup(1240,14,X,Y,Z);
    return 1;
    }
    stock VehChange(Float:X, Float:Y, Float:Z)
    {
    CreatePickup(1247,14,X,Y,Z);
    /*new veh = GetPlayerVehicleID(playerid);
    new Float:px,Float:py,Float:pz;
    new Float:vx,Float:vy,Float:vz,Float:va;
    GetPlayerPos(playerid,px,py,pz);
    GetVehicleVelocity(veh, vx,vy,vz);
    GetVehicleZAngle(veh,va);
    DestroyVehicle(veh);
    new carid = CreateVehicle(veh, px, py, pz, pa, -1, -1, 60000);
    PutPlayerInVehicle(playerid, carid, 0);
    SetVehicleVelocity(carid, vx,vy,vz);*/
    return 1;
    }

    Spoiler anzeigen
    //PlayerPickupPickup
    for(new n=0; n<sizeof(nos); n++) { if(pickupid==nos[n]) {AddVehicleComponent(GetPlayerVehicleID(playerid),1024); return 1; } }
    for(new r=0; r<sizeof(rep); r++) { if(pickupid==rep[r]) {RepairVehicle(GetPlayerVehicleID(playerid)); SetVehicleHealth(GetPlayerVehicleID(playerid),1000); return 1; }}
    for(new i=0; i<sizeof(vehc); i++)
    {
    if(pickupid == vehc[i])
    {
    if(vehc[i] == vehc[0])
    {
    new veh = GetPlayerVehicleID(playerid);
    new Float:vx,Float:vy,Float:vz,Float:va;
    GetVehicleVelocity(veh, vx,vy,vz);
    GetVehicleZAngle(veh,va);
    DestroyVehicle(veh);
    new carid = CreateVehicle(veh, vx, vy, vz, va, -1, -1, 60000);
    PutPlayerInVehicle(playerid, carid, 0);
    SetVehicleVelocity(carid, vx,vy,vz);
    }
    return 1;
    }
    }


    //edit: Die Pickups werden erstellt, aber bewirken nichts

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen