Aufzug scripten

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,


    also ich muss diesmal etwas ausführlicher an die Sache rangehen. Also vielleicht kennen von euch einige diese "Army-Base" in Las Venturas, die viele Leute in ihr Script als Army-Base einbauen. Also ich habe den elecfence_bar gemappt und diesen auch gespeichert und in meinen Script eingefügt.
    Ich habe mir auch einen Befehl erstellt, mit dem der Aufzug hochgehen soll. Aber irgendwie weiß ich nicht, wie ich diesen Aufzug hochbekommen kann bzw. welche Koordinaten hoch gehen sollen.
    Und bis wo hin also +5, +50 oder so etwas natürlich auch die Koordinaten!

  • Das ist eigentlich ganz einfach ;)


    Deklariere vor der main() eine Variable, dann erstelle ein Objekt, welches du der Variable zuweist (zBsp.: Aufzug = Createobje...).
    Dann startest du einen Timer in dem Befehl (SetTimer("Aufzug", Zeit in Millisekungen, zBsp 10 Sekunden = 10000, false (Der Timer soll sich nicht wiederholen))
    Außerdem lässt du dein Objekt noch in dem Befehl bewegen: MoveObject(Deine Variable, X, Y, Z (+die höhe die du haben willst), Schnelligkeit, X-Rotation, Y-Rotation, Z-Rotation)
    In dem Timer einfach wieder MoveObject mit den alten Koordinaten, am besten dieselbe Schnelligkeit und das war es eigentlich auch schon ;)


    Hoffe du kannst damit was anfangen :)

  • Das ist eigentlich ganz einfach ;)


    Deklariere vor der main() eine Variable, dann erstelle ein Objekt, welches du der Variable zuweist (zBsp.: Aufzug = Createobje...).
    Dann startest du einen Timer in dem Befehl (SetTimer("Aufzug", Zeit in Millisekungen, zBsp 10 Sekunden = 10000, false (Der Timer soll sich nicht wiederholen))
    Außerdem lässt du dein Objekt noch in dem Befehl bewegen: MoveObject(Deine Variable, X, Y, Z (+die höhe die du haben willst), Schnelligkeit, X-Rotation, Y-Rotation, Z-Rotation)
    In dem Timer einfach wieder MoveObject mit den alten Koordinaten, am besten dieselbe Schnelligkeit und das war es eigentlich auch schon ;)


    Hoffe du kannst damit was anfangen :)

    Du hast ein wenig zu ausführlich geschrieben und hast damit auch meinen Problem gelöst. Manche Informationen, die du geschrieben hast, waren eigentlich unnötig, aber trotzdem bedanke ich mich bei dir, dass du meinen Problem lösen konntest.

  • Ich schreibe es lieber ausführlicher, als unverständisvoll, man soll es schließlich ja auch verstehen ;)


    Bei der Zeit darfst du halt nicht zu früh machen, nicht das der Aufzug wieder hochgeht, bevor er unten war oder die Person ausgestiegen ist ;)
    Eventuell könntest du den Timer auch wiederholen und dann erst stoppen (mit Killtimer ;) ), wenn der Spieler ausgestiegen ist (per GetPlayerPos und dann halt IsPlayerInRangeOfPoint ;) ).

  • danke für eure Antworten doch ich komme hier nicht weiter: Also wenn ich /armygate eintippe, geht der "Aufzug" zwar hoch, doch wenn ich wieder Armygate eintippe, geht er nicht runter.


    Bitte mal reinschauen!



    ocmd:armygate(playerid, params[])
    {
    #pragma unused params
    if(!IsPlayerCop(playerid))return 1;
    if(IsPlayerInRangeOfPoint(playerid,8,282.98648, 1827.28906, 16.62900))
    {
    if(armygatestatus[0] == 1)
    {
    MoveObject(armygate[0],282.98648, 1827.28906, 16.62900+7,3);
    armygatestatus[0] = 2;
    }
    else if(armygatestatus[0] == 2)
    {
    MoveObject(armygate[0],282.98648, 1827.28906, 16.62900,3);
    armygatestatus[0] = 1;
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,8,129.26016, 1938.73828, 18.35010))
    {
    if(armygatestatus[1] == 1)
    {
    MoveObject(armygate[1],129.26016, 1938.73828, 18.35010+7,3);
    armygatestatus[1] = 2;
    }
    else if(armygatestatus[1] == 2)
    {
    MoveObject(armygate[1],129.26016, 1938.73828, 18.35010,3);
    armygatestatus[1] = 1;
    }
    }
    return 1;
    }