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

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: ScrepyX - 2016. November 20. - 13:15:04

Cím: addEventHandler
Írta: ScrepyX - 2016. November 20. - 13:15:04
Heló! Elkezdtem írni egy trafipaxot, de valamiért csak parancsal működik. De nem tudom mi a baja:
Nem akar működni az addEventHandler. Konzolba nem logol semmit, nincs semmi hibaüzenet, de egyszerűen nem megy.
 
theMarkerForTheSpeed = createMarker(1863.7568359375, -1752.23046875, 12.3828125, \"cylinder\", 20, 255, 255, 255, 50, getRootElement())
addEventHandler(\"onPlayerMarkerHit\", getRootElement(),
function (source)
if isElementWithinMarker(source, theMarkerForTheSpeed) then
   speedx, speedy, speedz = getElementVelocity (source)
   actualspeed = (speedx^2 + speedy^2 + speedz^2)^(0.5)
   mps = actualspeed * 50
   kmh = actualspeed * 180
   mph = actualspeed * 111.847
   if (kmh>35) then
      outputChatBox ( \"a \" .. kmh .. \" \" )
   else
      outputChatBox(\"Nem vagy elég gyors, hogy megbüntessenek.\")
   end
end
end
)

 
[gmod]Code tagekre figyelj![/gmod]
Cím: addEventHandler
Írta: BlackSy - 2016. November 20. - 13:41:58
Nekem is hasonló problémám van, ha beleállsz a marker-be nem érzékel semmit. :/
Cím: addEventHandler
Írta: dugasz1 - 2016. November 20. - 23:34:38
Azért nem jó mert a source az egy előre elkészített változó amit te nem írhatsz csak olvashatsz (tehát nem rakhatsz bele adatot csak kiveheted megnézheted).
Ott, hogy function (source) megpróbálja az mta átpasszolni a marker elementjét amibe bele mentél de a source már létezik és nem írható így nem csinál semmit megmarad az eredeti értéke ami onPlayerMarkerHit-nél a player aki bele ment markerbe. Tehát ha a sourcet átírod mindenhol akármire pl.: theMarker akkor menni fog.
(Egyébként az if isElementWithinMarker(source, theMarkerForTheSpeed) then se kell egyszerűen theMarker == theMarkerForTheSpeed )