Tore von Base leichter öffnen?

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
  • Float:Tor_AufZ}
    new Tor[][Toree] =
    {
    {2, BundeswehrTor[0], 193.41330, 1923.53125, 19.92830, 193.41330, 1923.53125, 16.64330}, //Zeile 146
    {2, BundeswehrTor[1], 202.39410, 1923.53088, 19.85580, 202.39410, 1923.53088, 16.64330},
    {2, BundeswehrTor[2], 211.42378, 1923.54504, 19.85580, 211.42378, 1923.54504, 16.64330},
    {2, BundeswehrTor[3], 220.40250, 1923.50122, 19.85580, 220.40250, 1923.5012, 16.64330},
    {2, BundeswehrTor[4], 174.81837, 1826.89746, 19.85580, 174.81837, 1826.89746, 16.64330},
    {2, BundeswehrTor[5], 183.79898, 1826.90100, 19.85580, 183.79898, 1826.90100, 16.64330},
    {2, BundeswehrTor[6], 192.81992, 1826.91675, 19.85580, 192.81992, 1826.91675, 16.64330},
    {2, BundeswehrTor[7], 201.81436, 1826.91016, 19.85580, 201.81436, 1826.91016, 16.64330},
    {2, BundeswehrTor[8], 216.98787, 1826.88000, 19.85580, 216.98787, 1826.88000, 16.64330},
    {2, BundeswehrTor[9], 225.98384, 1826.91248, 19.85580, 225.98384, 1826.91248, 16.64330},
    {2, BundeswehrTor[10], 234.98415, 1826.89368, 19.85580, 234.98415, 1826.89368, 16.64330},
    {2, BundeswehrTor[11], 243.96420, 1826.90649, 19.85580, 243.96420, 1826.90649, 16.64330},
    {2, BundeswehrTor[12], 143.52200, 1911.17798, 20.25760, 138.18201, 1911.17798, 20.25760},
    {2, BundeswehrTor[13], 148.88490, 1911.15796, 20.25760, 154.26489, 1911.17798, 20.25760}
    };//Zeile 160



    Zeile 3587 ist das Ende vom Script, also nichts besonderes

    Mit freundlichen Grüßen,
    Dachdecker

  • Zum Zeitpunkt des Compilen hat BundeswehrTor[0] noch keinen Wert.
    Musst es zb. wie folgt abändern:


    Dann beim Objekt erstellen:



    Code
    BundeswehrTor[0] = CreateObject(19906, 193.41330, 1923.53125, 19.92830,   0.00000, 0.00000, 360.21191);
    	Tor[0][TorID] = BundeswehrTor[0];
    	//Das setzt vorrraus das sich die reihenfolge der Positionen der tore und die erstellung der Object übereinstimmen
    	for(new i = 0; i < sizeof(Tor); i++) {
    		Tor[i][TorID] = BundeswehrTor[i];
    	}

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Die for schleife soll dir ersparen das du jedes mal selber Tor[0][TorID] = BundeswehrTor[0]; machen musst.
    Das setzt aber wie gesagt voraus das sich die Reihenfolge des Objekt erstellen sich mit den Koordinaten übereinstimmen. Wenn das der Fall ist kannst du alle Tor[0][TorID] = BundeswehrTor[0]; weglassen und nur die Schleife am Ende, wenn alle Objekte erstellt sind, durchlaufen lassen;

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Entweder machst du einen Befehl zum schliessen oder wie du schon Vorgeschlagen hast einen Timer, wo du dann die ID übergibst womit du dann das Tor wieder schliesst.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Entweder machst du einen Befehl zum schliessen oder wie du schon Vorgeschlagen hast einen Timer, wo du dann die ID übergibst womit du dann das Tor wieder schliesst.

    Also muss ich die ID des geöffneten Tores ausgeben speichern und in den Timer übergeben? Wie soll ich das machen? Mit PVars oder wie ?

    Mit freundlichen Grüßen,
    Dachdecker

  • Zb so:


    Nach dem MoveObject folgendes:

    Code
    SetTimerEx("CloseGate", 5000, false, "i", i);


    Das Public dazu


    Code
    forward CloseGate(torid);
    public CloseGate(torid)
    {
    	MoveObject(Tor[torid][Tor], Tor[torid][Tor_X], Tor[torid][Tor_Y], Tor[torid][Tor_Z]-3, Tor[torid][Tor_Speed], 0.0,0,.0);
    }

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Du kannst auch mit OnObjectMoved arbeiten um dir den Timer zu ersparen.

    Um das Objekt instant wieder zuzumachen wenn es auf ist?
    Auch wenn du in OnObjectMoved musst du noch eine warte Zeit haben sonst musst du ziemlich fix sein beim reinfahren.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Um das Objekt instant wieder zuzumachen wenn es auf ist?Auch wenn du in OnObjectMoved musst du noch eine warte Zeit haben sonst musst du ziemlich fix sein beim reinfahren.


    Wenn es automatisch passieren sollte.


    Aber wenn du schon so kommst, man kann auch das gesamte Script nur auf einem einzigen Timer aufbauen, das ist kein Problem.

  • Es geht hier lediglich darum das OnObjectMoved hier das Problem nicht löst.
    Wenn ich ein Tor sagen wir mit einer Zeit von 1 Sekunde aufmache, dann wird nach 1 Sekunde OnObjectMoved aufgerufen und das Tor wieder geschlossen. Welchen Zweck hat das nun? Genau, keinen.


    Ich werfe dir hier nicht vor. Das ist lediglich für Leute die später vielleicht über diesen Beitrag stolpern.


    Aber wir müssen hier nun wirklich nicht lange darüber Diskutieren.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2