{MTA} Marker...

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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 folgendes server script:



    truck = createVehicle( 455, -138.103515625, 1084.078125, 20.312187194824)
    function enterVehicle ( theVehicle, seat, jacked )
    if ( theVehicle == truck) then
    if ( PlayerJob[source] == 2 ) then
    triggerClientEvent( source, "starttruckmission", getRootElement())
    else
    removePedFromVehicle ( source )
    outputChatBox( "Trucker: Nur unsere Angestellten können dieses Fahrzeug benutzen!", source, 255, 0, 0 )
    end
    end
    end
    addEventHandler ( "onPlayerVehicleEnter", getRootElement(), enterVehicle )


    nun, das triggerClientEvent( source, "starttruckmission", getRootElement())
    ruft folgende funktion im client script auf:


    function starttruckmission_func ()


    TruckerStartMarker = createMarker (-360.84088134766, 1190.403076171, 18.742208862305, "cylinder", 6, 255, 0, 0, 150 )
    TruckerEndeMarker = createMarker (834.25341796875, 866.51782226563, 11.492173576355, "cylinder", 6, 255, 0, 0, 150 )

    end
    addEvent ( "starttruckmission", true )
    addEventHandler ( "starttruckmission", getRootElement(), starttruckmission_func )


    das funktioniert. die marker sind ingame zu sehen.


    jetzt folgendes (auch im client script)


    function MarkerHit( hitElement, matchingDimension )
    if hitElement== getLocalPlayer() then
    outputChatBox( "in the marker TruckerStartMarker" )
    end
    end
    addEventHandler( "onClientMarkerHit", TruckerStartMarker, MarkerHit )


    wenn ich den marker TruckerStartMarker betrete passiert aber nichts :/
    was ist flasch ?(

    Einmal editiert, zuletzt von DexoTronic ()

  • you have been Traceured.



  • function MarkerHit( hitElement, matchingDimension )
    if hitElement== getLocalPlayer() then
    outputChatBox( "in the marker TruckerStartMarker" )
    end
    end
    addEventHandler( "onClientMarkerHit", TruckerStartMarker, MarkerHit )


    ich mache das nie so ^^


    so mache ich das:
    da kannst du ein event für mehrere Marker nutzen und nicht haufen weiße andere^^



    function MarkerHit(hitElement)
    if source == TruckerStartMarker and getElementType(hitElement) == "player" then
    outputChatBox( "in the marker TruckerStartMarker" )
    end
    end
    addEventHandler("onClientMarkerHit", getLocalPlayer(), MarkerHit)


    da bei dem Event "onClientMarkerHit", source der zu betretende Marker ist, ist das viel komfortabler meine rmeiung nach das ist aber ansichtssache


    hoffe konnte dir helfen
    ist ungetestet


    jedoch verstehe ich nicht wirklich wie du von server auf client für das kleine bissl triggerst Oo aber naja ^^

  • wenn ich den truckerstartmarker betrete öffnet der nun das autohausfenster, was ein ganz anderer marker ist.


    hm das Autohausfenster ist definitiv nicht hier implementiert
    bist du vill in einer anderen Dimension als der marker erstellt wird(meist 0) ?
    ich probiers nochmal:

    you have been Traceured.


  • Nja wieso Serverseitig ?
    Clientseitig sollte es doch funktionieren, bedenk einfach mal das er Serverseitig erstmal den Event für das Gui Fenster ansteuern muss,
    was wieder unnötig Resourcen verbraucht :pinch:


    Normal sollte das Clientseitig so aussehen...


    function Marker( player, matchingDimension )
    if player== getLocalPlayer() then
    if getElementType(player) == "player" then
    if(source == Markername) then


    Funktioniert wunderbar


    PS: Danach nicht vergessen das Event für alle Elemente verfügbar machen


    addEventHandler ( "onClientMarkerHit", getRootElement(), Marker)

    [align=center]
    Mta Script Editor - Work in Progress

  • toll das könnte zwar functioniren aber ist total performance lastig bringt gleich null machs einfach wie ich oben gesagt habe alles serverside da kann man alles ordentlich verarbeiten und funktionirt dann auc h
    EDIT: GUI ansteurt kostet soviel performance wie 100 car s

  • Werni was laberst du für Müll ?
    Serverseitig soll mehr CPU verbrauchen als Clientseitig ?
    Lern erstmal die Basic´s bevor du hier solchen Müll verzapfst, dem Gameservers macht es Null aus wenn du Clientseitige
    Funktionen verwendest anstatt den Schmarn den du oben schreibst.

    [align=center]
    Mta Script Editor - Work in Progress

  • was ist aber wenn der client einen schlechten pc hat? dann fangt alles an zu laggen. Server und Client brauchen gleich viel CPU aber server haben meist einen besseren CPU und es laufen viele Funktionen schon im hintergrund wie zB onPlayerMarkerHit was clientseitig nicht der fall ist und erst gestart werden mus s

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • wenn man nach

    Code
    if player== getLocalPlayer() then


    fragt brauch man kein

    Code
    if getElementType(player) == "player" then


    mehr, denn getLocalPlayer() kann nur ein "player" sein. Hoffe es ist eindeutig verständlich

    you have been Traceured.


  • Red doch keinen Unsinn Werni,


    Mta hat zwar einen höheren Resourcenverbrauch als Sa-mp, was aber meiner Meinung nach gerechtfertigt ist,
    aber wieso soll ein Clientseitig gebautes Script einen Pc zum laggen bringen ?
    Seitdem LUAFM Geschichte ist > LUA JIT versteh ich nicht was du meinst.
    Die Sachen wie onPlayerMarkerHit sind bestimmt keine im Hintergrund laufenden Timer sondern einfach Events die abgeschossen
    werden sobald der Spieler damit interagiert.
    Das einzige Mta Event das ich kenne, das lahme Pc´s (Intel Pentium 4 -) vielleicht zum Laggen bringen könnte ist onClientRender/onClientPreRender
    aber das sind auch nur Events die nur verwendet werden um zb. Direct X Bilder nutzen zu können, keiner wird da Spieleraccounts zwischenspeichern wollen.


    Zitat

    Server und Client brauchen gleich viel CPU


    Woher du das aufgegriffen hast, will ich erst gar nicht hören...


    Mike


    Joar stimmt
    hatte das nur so drinne weil ich meinen Peds das Laufen beibringen möchte *lach*^

    [align=center]
    Mta Script Editor - Work in Progress

  • hm also mike deine variante ist auch gut ich nehm halt immer im markerhit das source element in dem fall halt der marker aber das muss jeder machen wie er das am besten findet bzw wie es für ihn am übersichtlichsten ist


    aber werni was du da schreibst ist echt bissl blödsinn ^^
    denn selbst mein kleine amd lappi mit 1,6 ghz hat no prob mit dem Server und glaube mir es wird viel client seitig ausgeführt grade weil ich viele GUIs Nutze weils einfach mal komfortabell ist ^^

  • Leute die ein teuren Rootserver haben nutzen meist mehr serverseitige als clientseitige, da resourcenlücken kaum bekannt sind


    Leute die einen nicht so guten Rootserver haben oder auch einen vServer(ich :thumbup: ) optimieren und nutzen auch die clientseitigen Funktionen, um den server zu schonen


    jedem das seine


    Zitat

    hm also mike deine variante ist auch gut ich nehm halt immer im markerhit das source element in dem fall halt der marker aber das muss jeder machen wie er das am besten findet bzw wie es für ihn am übersichtlichsten ist


    das nehm ich doch oben auch oder?? ?(


    Zitat

    Joar stimmt
    hatte das nur so drinne weil ich meinen Peds das Laufen beibringen möchte *lach*^


    hab ich mal mit autos versucht, problem ist halt der streamer der die dann ausstreamed und wenn man wieder in die nähe kommt standen da dann 50 autos :D also nicht so gut n bot zu entwickeln, da muss schon was von MTA direkt kommen

    you have been Traceured.


  • Ist ja auch gut so :P
    Wieso alles Serverseitig behandeln wenn du den Spielern auch´n bisschen miteinbeziehen kannst :D
    Obwohl man die ganze Sache ja auch´n bisschen Syncro builden sollte, weshalb Serverseitig (leider) häufig sein muss.
    Solange man nicht grade Lua´s call Funktion im Clientseitigen drinne hat, ist man normal auch vor Clientseitigen Hackscripten
    (kein anderer Begriff eingefallen :wacko: ) sicher.

    [align=center]
    Mta Script Editor - Work in Progress

  • Solange man nicht grade Lua´s call Funktion im Clientseitigen drinne hat, ist man normal auch vor Clientseitigen Hackscripten
    (kein anderer Begriff eingefallen :wacko: ) sicher.


    alternative clientseitig in nem custom-element speichern und in ner anderen clientressource wieder aufrufen.
    man kann aber auch "exports.resourceName:function(args)" nutzen was die lange schreibweise von call verkürzt

    you have been Traceured.


  • jop eben ^^
    also ich sage mal so ich mache mir wenig gedanken was meine serverauslatung betrifft denn da läuft nur MTA und das ist ein 8 kern Intel Xeon á 3 ghz und
    4 gb arbeitsspeicher ^^
    also wayne ^^


    //edit man man man scheiß rechtschreibung -.- ;)

  • Oder man arbeitet direkt mit Mta´s Element Datas (setElementData) die auch wirklich global sind, anders als die "gewöhnlichen" globalen Variablen die man Clientseitig > Serverseitig bzw. anderes rum (Serverseitig > Serverseitig funkzt), nicht verwenden kann.


    Ich frag mich wie viel ein emulierter Godfather in Mta schlucken würde.
    Bwääääh...Godfather in Mta, ein Albtraum.

    [align=center]
    Mta Script Editor - Work in Progress

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen