GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Archívum => A témát indította: Rod - 2015. július 18. - 15:45:06

Cím: Checkpoint eltüntetése
Írta: Rod - 2015. július 18. - 15:45:06
Hali.
Mivel nem jöttem rá, hogy hogyan is lehetne azt kivitelezni, hogy ha egy adott játékos belemegy a checkpointba (szerver* oldalon) akkor azt a checkpointot a többi játékosnak eltüntesse, hogy ők ne tudjanak belemenni, majd ha a játékos kijön a checkpointból, az a checkpoint újra megnyílik a többi játékos számára.
Előre is köszönöm a segítséget.
Cím: Checkpoint eltüntetése
Írta: Robika1 - 2015. július 21. - 01:50:45
Szia!
Próbáltad már szerveroldalon megcsinálni? :)
Az mindenkinél látszik, a szerver beszinkronizálja a többi játékosnak a dolgokat.
Robika1
Cím: Checkpoint eltüntetése
Írta: Rod - 2015. július 21. - 11:21:48
Bocsesz, elírtam.. nem kliens oldalon, hanem szerver.
Nos, jelenleg így van, de nem tudom, hogy működik-e:
 

addEventHandler(\"onMarkerHit\", tuningMarker1,
function(element)
if getElementType(element) == \"player\" then
   if not isElementWithinMarker(element, tuningMarker1) then
      triggerClientEvent(\"showTuningGarage\", element)
      destroyElement(tuningMarker1)
   end
end
end
)
addEvent(\"showMarker\", true)
function showMarker()
tuningMarker1 = createMarker(-1708.7514648438, 10.150671005249, 3.25905585289 - 2, \"cylinder\", 5, 100, 100, 175, 100)
end
addEventHandler(\"showMarker\", getRootElement(), showMarker)
Cím: Checkpoint eltüntetése
Írta: SAW911 - 2015. július 21. - 12:36:38
Az a baj vele, hogy ugye akkor triggerelődik ez a funkció, ha belépsz a markerbe. De így amikor lefut, mindenképpen a markerben vagy, tehát a \"not isElementWithinMarker(asdasd) \" nem fog lefutni. egyszerűbb lenne úgy csinálni, hogy a marker alpa értékét állítod, és csak akkor fusson le, ha az alpha érték nagyobb 0-nál, azaz senki más nincs benne:
 
addEventHandler(\"onMarkerHit\", tuningMarker, function(player)
       if getElementAlpha(tuningMarker) > 0 then
             triggerClientEvent(stbstb)
             setElementAlpha(tuningMarker, 0)
      else
             outputChatBox(\"má csináljákvaze\")
      end
end)
addEventHandler(\"onMarkerLeave\", tuningMarker, function(player)
  if getElementAlpha(tuningMarker) <= 0 --ha egyenlő nullával amikor kijössz a markerből....
        setElementAlpha(tuningMarker, 255) --akkor állítsa vissza az értéket
  end
end)

 
Ezen kívül setElementDatázz egy értéket annak a játékosnak, akinek triggerelődik  a tuning, mert így amikor bemegy egy másik mellé, is kijön, akkor is visszaállítja a markert eredetibe.
Cím: Checkpoint eltüntetése
Írta: Rod - 2015. július 21. - 13:43:06
Na, erre nem is gondoltam :D
Köszönöm szépen a segítségeteket!