Ganz ganz kleine Fragen

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
  • ocmd:boost(playerid,params[])
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du bist nicht in einem Auto!");
    new Float:vx,Float:vy,Float:vz;
    GetVehicleVelocity(GetPlayerVehicleID(playerid),vx,vy,vz);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), vx + 0.2, vy +0.2, vz + 0.2);
    return 1;
    }


    Ich möchte, dass das Auto nach vorne "geboostet" wird. Allerdings klappt das mit dem "+0.2" nicht ganz wie ich mir das vorstelle. Denn es wir anhand der Koordinaaten das Auto nach Rechts oder Links gedrückt. Ich möchte es aber so, dass das Auto nach vorne gepostet wird je nachdem wie es steht. Kann mir jemand helfen?

  • So hab ichs und funktioniert einwandfrei :)



    new Float:vx,Float:vy,Float:vz;
    GetVehicleVelocity(GetPlayerVehicleID(playerid),vx,vy,vz);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), vx * 1.8, vy * 1.8, vz * 1.8);

    ~~ Motorradfahrer aus Leidenschaft :love: ~~


    ~~ Supermoto ~~

  • Je nach dem wie das auto sich bewegt, sind die x,y und z Geschwindigkeit anders..
    Nur mit nem Multiplikator würds richtig funktionieren.. Oder mit umständlichen Rechnungen.


    Mit
    new Float:vx,Float:vy,Float:vz;
    GetVehicleVelocity(GetPlayerVehicleID(playerid),vx,vy,vz);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), vx*1.5, vy*1.5, vz*1.5);
    Würde das Auto z.B. um der aktuellen Geschwindigkeit beschleunigt werden.
    Bei 100 KM/H also auf 150 KM/H

  • Mutliplikation ist das einzig Vernünftige. Diese funktioniert nämlich relativ zum vorhandenen Wert, Addition hingegen addiert - egal wie groß der bisherige Wert ist- immer gleich auf, wodurch deine Probleme folgen.


    Mach es wie Firefan sagt, such dir eine schöne Konstante, mit der du jede Richtung multiplizierst und ab gehts. ;)

  • Ich muss aber irgendeine möglichkeit finden, dass dann zu Limitieren.


    Denn wenn sich jemand einen Keybinder schnappt und 50 mal draufhämmert fliegt er 5 mal über die Map. Das möchte ich dann möglichst vermeiden.


    Bei einer Addition wäre das wesentlich schwerer...

  • Schön, gut. Aber jetzt habe ich das selbe Problem in selbiger Form bei meinem Rampenscript:


    http://pastebin.com/fZWr5SM9


    Denn ich möchte, dass die Rampe immer +5.0 vor dem Spieler spawnt und das funktioniert. Das habe ich schon gesehen. Wie mache ich das? Da ist das PRoblem 1 zu 1 das selbe. Habe mir hierraus eigentlich auch eine Antwort dafür erhoft.

  • Da musst du schon n bisschen komplizierter Rechnen :D
    Hab mir dafür funktionen geschrieben:


    stock GetXYBeforeCar(cID,&Float:x,&Float:y,Float:range){
    new Float:coord[3]; GetVehiclePos(cID,coord[0],coord[1],coord[2]);
    new Float:angle; GetVehicleZAngle(cID,angle);
    coord[0] = floatadd(coord[0],(-range * floatsin(-angle,degrees)));
    coord[1] = floatadd(coord[1],(-range * floatcos(-angle,degrees)));
    x = coord[0]; y = coord[1];
    }


    Verwendung:
    new x,y;
    GetXYBeforeCar(vehicleid,x,y,3.0);
    CreateObject(model,x,y,Z-Höhe vom Spieler,...);

  • Zitat

    GetXYBeforeCar(currentveh,x,y,3.0);


    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(2883) : warning 213: tag mismatch
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(2883) : warning 213: tag mismatch
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(2894) : warning 213: tag mismatch
    C:\Users\Performer\Desktop\Legendary Stunting\gamemodes\mainscript.pwn(2894) : warning 213: tag mismatch



    Ich bekomme bei diesem Command einen Tag Mismatch :(