Objekt wird nicht gemoved

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,


    ich habe mir heute ein Tor erstellt und dieser soll automatisch nach einem Hupen oder drücken der Taste H öffnen. Es soll sich nach 5 Sekunden wieder schließen.
    (Das, was ich oben erklärt habe, hatte ich auch gefragt)
    Nun habe ich soweit alles gemacht, nur wenn ich jetzt auf H drücke und neben dem Tor bin, passiert überhaupt nichts.
    Ich weiß nicht was mein Fehler bei diesem Script war, aber ich glaube irgendetwas habe ich falsch gemacht.


    Ich hoffe ihr könnt mir helfen.
    Mit freundlichen Grüßen,


    FreshKing





    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_CROUCH)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,825.70001, 849.29999, 13.2))
    {
    MoveObject(PaintAreaGate, 825.70001, 849.29999, 13.2-10, 3.0); //PaintAreaGate habe ich ganz oben im Script definet mit dem Gate
    SetTimerEx("PaintAreaGate1",5000,0,"i",playerid);
    }
    }
    return 1;
    }


    forward PaintAreaGate1(playerid);
    public PaintAreaGate1(playerid)
    {
    MoveObject(PaintAreaGate, 825.70001, 849.29999, 13.2, 3.0);
    return 1;
    }

  • KEY_CROUCH ist nur die Taste H, wenn du dich in einem Auto befindest und das nicht geändert hast in deinen GTA Einstellungen. Wenn du zu Fuß unterwegs bist, musst du die Taste C drücken, soweit du das nicht geändert hast ;)


    Den Code kannst du auch so schreiben:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    if(newkeys & KEY_CROUCH) {
    if(IsPlayerInRangeOfPoint(playerid,3.0,825.70001, 849.29999, 13.2)) return MoveObject(PaintAreaGate, 825.70001, 849.29999, 13.2-10, 3.0),SetTimer("PaintAreaGate1",5000,0);
    }
    return 1;
    }


    forward PaintAreaGate1();
    public PaintAreaGate1() return MoveObject(PaintAreaGate, 825.70001, 849.29999, 13.2+10, 3.0);


    Die Übergabe eines Parameters durch einen Timer wie "playerid" ist total nutzlos, da du diesen ja nicht in der Funktion PaintAreaGate1 verwendest ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S