Beiträge von [Vio]Zipper

    Du meinst wohl die Marker vom Typ "corona" - das sind so
    leuchtende Lichtbälle:

    Code
    if(<Variable>) // ist Positiv ( True )


    Wäre evtl. besser, da zu schreiben, dass die Bedingung
    zutrifft wenn die Variabel existiert / ~= false ist bzw.
    ein Objekt - was auch immer darin abgespeichert
    ist - existiert.


    Sonst aber gut gemacht

    muss das nit


    Code
    local Fortune = createVehicle ( 526, -1954.8125,295.26361083984,40.897079467773,0,0,40 )


    lauten? (hab erst vor kurzem mit LUA angefangen) kann mich auch irren^^

    In dem Fall würde beides gehen, das local davor würde
    lediglich bedeuten, das man das Auto dann nur in diesem File
    verwenden könnte - ohne local ist die Variabel,
    in der das Fahrzeug gespeichert wird, dann Global ( d.h.
    in jedem File des Scripts ) verfügbar.
    http://wiki.multitheftauto.com…php?title=DE/Lua_Tutorial
    - irgendwo da drin müsste es noch mal genauer stehen.

    Also mit normalen Mitteln San Andreas zu entfernen
    ist - auch mit MTA - nicht moeglich, wenn muesste
    das Spiel selbst "gemoddet" werden, z.b. wie in GTA United.
    Natürlich könnte man auch einfach mitten auf dem Meer eine neue "Welt" mappen,
    ich bezweifel aber, dass das jemand machen würde - schon mal versucht eine eigene,
    auch nur kleine Insel zu mappen? Da wird man bekloppt im Kopf und braucht Stunden für ein paar m².

    Du kannst die Fahrzeuge auch einfach so in ein Script eintragen,
    werden dann automatisch beim Serverstart erstellt -
    z.b. erstell eine neue, Serverseitige .lua Datei
    in der du einfach die createVehicle Funktion nutzt:

    Code
    createVehicle ( 526, -1954.8125,295.26361083984,40.897079467773,0,0,40 )


    Würde z.b. einen Fortune in Wang Cars erstellen - hab grad nix anderes zur Hand.


    Wenn du das Fahrzeug noch weiter verwenden willst, setz einfach vor dem createVehicle einen
    Namen und ein =, so z.b. würde ein unzerstoerbarer Fortune erstellt werden:

    Code
    Fortune = createVehicle ( 526, -1954.8125,295.26361083984,40.897079467773,0,0,40 )
    setVehicleDamageProof ( Fortune, true )

    hm würde nicht unbedingt sagen, dass n v-server reicht -
    vielleicht für den Anfang, aber ab 30-40 Leute wirds laggen
    wie bolle, besonders wenn du keinen externen download hast...
    Weiß ja nicht, was du für ein Script verwenden willst -
    aber ohne externen Download n V-Server mit genug Leistung
    zu finden...

    Und MTA hat einen gewaltigen Trafficverbrauch. Wenn der Download beim Connect 10 MB groß ist und auf einmal 10 User connecten muss der Server schnell 100 MB mal ebend übertragen. Das passiert dann für jeden Connect immer wieder. Wenn der Server groß ist mit ~50-100 Usern ist es nicht wundernswert wenn man mal in einem Monat 100 GB Traffic verbraucht (Nur für Downloads!).


    Sa-Reallife.org hat ~40.000 Connects pro Monat. Wenn man den Server in MTA macht und 10 MB Download beim Start kommt dann zieht das Ding für Downloads 400GB/Monat. Dann kommt noch der Spielablauf dazu. Kommen sicher mal ebend so 500 GB zusammen.

    jap, wir mit unserem 600 KB script hatten - allein auf unserem Downloadserver - gut 60 GB Traffic,
    wobei einige leute scheinbar dauerhaft gedownloadet haben...


    Ohne Freitraffic würde ich nix empfehlen...

    Naja, Sachlich gesehen, ist das Ding ja total falsch.


    "Ein Callback ist eine Funktion, die einen Wert zurückliefert - ", nö.
    Callbacks sind Funktionen, welche aufgerufen werden, wenn ein bestimmtes Ereignis eintritt.

    habs verbessert, danke für den Hinweis - habe mich da etwas vertan...

    Weitere Beispiele:


    1.


    Liefert einen String mit Zeit/Datum zurück,
    z.b. folgendes:
    "14.2.2010, 19:14"


    Benutzung:

    Code
    outputChatBox ( "Zeit: "..timestamp() )


    Zeigt Zeit und Datum für den ganzen Server an



    2.


    Liefert bei Benutzung die jeweiligen Namen der Spieler auf den Sitzen.


    Anwendung:

    Code
    local d, p1, p2, p3 = getVehicleOccupantNames ( veh )
    outputChatBox ( "Fahrer:"..d..",Beifahrer"..p1..",Passagier 1:"..p2..",Passagier 2:"..p3 )


    gibt die Namen Spieler aus.


    Sry wegen dem Einrücken, irgendwie spackt das bei mir...

    Ersteinmal, dieses Tutorial ist eher optional,
    es erleichtert euch die Arbeit und ist für alle gedacht,
    die die Grundlagen verstanden haben und anwenden koennen.


    1. Was ist ein Callback?
    Callbacks sind Funktionen, welche aufgerufen werden, wenn ein bestimmtes Ereignis eintritt.
    Diese liefern dann bestimmte Werte usw. zurück, z.b.:
    einen Integer ( Ganze Zahl, z.b. 1 oder -5 ),
    einen String ( Zeichenkette, z.b. "Hallo" )
    oder auch einen boolschen Ausdruck ( true oder false ).



    2. Callbacks in MTA
    MTA verfügt bereits über verschiedenste Arten von Callbacks, z.b.
    liefert die Funktion

    Code
    getElementPosition()


    x, y und z-Koordinate eines Objektes zurück.
    Dieses Abfrage kann dann z.b. zum belegen von Variabeln
    benutzt werden, damit das Script flexibel bleibt und man nicht jedes mal
    neue Zahlen eintragen muss
    Beispiel:

    Code
    local x, y, z = getElementPosition ( player )
    createVehicle ( 500, x, y, z )


    Die Variabeln x, y und z werden mit den Koordinaten des Elements "player" ( z.b. ein Spieler ) belegt
    und anschliessend verwendet, um ein Fahrzeug an der Position zu erstellen.


    3. Callbacks selber schreiben
    Nehmen wir nun an, dass man abfragen moechte, ob ein bestimmtes
    Fahrzeug ein "Mesa" ( kleinerer Jeep ) ist.
    Dazu muessen wir nun zunächst das Callback schreiben:

    Code
    function isVehicleAMesa ( theVehicle )
       if getElementModel ( theVehicle ) == 500 then
          return true
       else
          return false
       end
    end


    Wird nun die Funktion gerufen,
    belegt die Funktion die Variabel aus dem "Kopf" mit dem ersten Argument, das weiter gegeben wurde:

    Code
    isVehicleAMesa ( getPedOccupiedVehicle ( player ) )


    Das Callback isVehicleAMesa wird gerufen und die Variabel theVehicle des Callbacks
    mit dem Fahrzeug des Spielers gefuellt.


    Code
    isVehicleAMesa ( getPedOccupiedVehicle ( player ), false )


    Wieder wird das Callback gerufen und die Variabel theVehicle mit dem Fahrzeug des Spielers
    gefuellt, jedoch wird ebenfalls false als 2. Argument weitergegeben - da jedoch im "Kopf" des Callbacks
    nur eine Variabel belegt werden soll, ist der Effekt der selbe, wie im oberen Beispiel.
    Wollte man false ebenfalls weitergeben, so muesste man im Kopf des Callbacks
    eine weitere Variabel angeben, die mit dem Wert gefuellt werden soll:

    Code
    function isVehicleAMesa ( theVehicle, xyz )


    Im Script wuerde man dann z.b. folgendes verwenden:

    Code
    function checkIfItsAMesa ( vehicle )   -- Die Funktion, die gerufen wird, falls ein Spieler ein Fahrzeug betritt.
       if isVehicleAMesa ( vehicle ) then   -- Unser Callback wird gerufen - falls das Fahrzeug ein Mesa ist, trifft der erste Fall zu, da das Callback isVehicleAMesa den Wert true zurückliefert
      outputChatBox ( "Das Fahrzeug ist ein Mesa.", source )
       else -- Wenn das Fahrzeug kein Mesa ist, tritt der else-fall in Kraft
      outputChatBox ( "Das Fahrzeug ist kein Mesa.", source )
       end
    end
    addEventHandler ( "onPlayerVehicleEnter", getRootElement(), checkIfItsAMesa )


    Wird noch ergänzt, falls ich mich irgendwo vertippt habe, bitte sagen

    echt gut gemacht nur leider crasht deine Resource den MTA Server ;)
    Edit: nvm, war ein MTA Bug. Hab die Resource umbenannt und nun gehts.
    Edit 2: Also ich würde wenn schon nur funktionierende Resourcen hochladen und nicht welche mit Bugs :pinch:


    Edit 3: Gefixt und Wertung: 6/10
    Gute Idee aber folgendes ist sehr schlecht: Autos haben keine Col am Magneten, Magnet hat keine Col, für Höhenänderung des Magneten muss man andauernd - oder + drücken anstatt sie auch gedrückt halten zu können.

    erstmal danke fürs Lob,
    wird - wie gesagt - noch in folgenden punkten gefixt:
    -Collision
    -Rotation
    -Gedrueckt halten
    -Draw für alle

    http://community.mtasa.com/ind…esources&s=details&id=588


    Wird die Tage noch verbessert,
    ist für einen Magnet Helikopter wie
    im single player, teilweise noch nicht zu 100% perfekt,
    aber das kommt noch.


    Gebrauch:
    /magnet zum spawnen eines fertigen Magnet Helikopters
    Strg im Helikopter zum festmachen / loslassen eines Fahrzeugs
    +/- auf dem Numblock zum aendern der Magnethoehe


    Aussderm koennen mit folgender Funktion Fahrzeuge, die Leviathane sind,
    zu Magnet-Leviathanen umgewandelt werden:

    Code
    setVehicleAsMagnetHelicopter ( vehicle )

    Tut ihr den gar nichts gegen das Flooding ?
    Wie wärs wenn ihr anfangt iptables zu verwenden,
    dann auf die Angriffe reagiert ?
    Wenn ich mich recht erinnere verwendet ihr sowieso Linux.


    Wäre Schade drum, auch wenn ich immer noch angestänkert bin wegen der Gui Geschichte^...

    Naja sind dabei, aussdem ist unser Anbieter mal grob gesagt "Für den Arsch" - 5, 6 Crashes pro Tag sind da nicht
    selten...
    Jedoch haben wir ab mitte März wohl einen neuen Root, dann zuverlässiger und schneller.


    Danke übrigens für die Hilfe, weiß ich zu schätzen