Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.96 KB | None | 0 0
  1. addEvent ( "startGWAnzeige", true )
  2. addEvent ( "updateAnzeigePrepare", true )
  3. addEvent ( "updateAnzeigeStart", true )
  4. addEvent ( "updateAnzeigeNachJoinen", true )
  5. addEvent ( "rechneDMGAn", true )
  6. addEvent ( "attackereinerdazugekommen", true )
  7. addEvent ( "defendereinerdazugekommen", true )
  8. addEvent ( "attackereinergestorben", true )
  9. addEvent ( "defendereinergestorben", true )
  10. --addEvent ( "attackereinerofflineohnezaehlen", true )
  11. --addEvent ( "defendereinerofflineohnezaehlen", true )
  12. addEvent ( "stopGWAnzeige", true )
  13. addEvent ( "stopGWAnzeigeSTOP", true )
  14. --addEvent ( "kaching", true )
  15. --addEvent ( "rechneKillAn", true )
  16. --addEvent ( "moveVehicleInGangwar", true )
  17.  
  18.  
  19.  
  20. -- Nicht zu leerende Tabellen / Variablen --
  21.  
  22. local gangPraefix = {
  23. [2]="Camorra",
  24. [3]="Ballas",
  25. [7]="Seville Families",
  26. [9]="The Lost MC",
  27. }
  28.  
  29.  
  30.  
  31. -- Zu leerende Variablen --
  32.  
  33. gangwarDamage = 0
  34. gangwarKills = 0
  35. gangwarlaeuft = false
  36. local diezeit, startzeit, attackeralive, defenderalive, attacker, defender = 0, 0, 0, 0, 0, 0
  37. local attackerR, attackerG, attackerB, defenderR, defenderG, defenderB = 0, 0, 0, 0, 0, 0
  38. local attackerfracname = ""
  39. local defenderfracname = ""
  40. --local thepickup, statistikTabelle = nil
  41. --local sortierteStatistikTabelle = nil
  42. --local theveh = nil
  43. --local lastvehmove = 0
  44. local showing = false
  45. local screenx, screeny = guiGetScreenSize()
  46. local sxA, syA = screenx/1920, screeny/1080
  47. local screenW, screenH = guiGetScreenSize()
  48.  
  49.  
  50.  
  51. --- EINSTELLBAR ---
  52.  
  53. local reichweiteZumTK = 15 -- Mindestreichweite zum TK, um drin zu sein - ACHTUNG: Serverseitig auch ändern!
  54. local zeitinsekundenbisstatistikendet = 120 -- In wievielen Minuten die Statistik ausgeblendet werden soll
  55.  
  56.  
  57.  
  58. -- Funktionen --
  59.  
  60. function dxdrawGangwarAnzeige ()
  61. local daminute = math.floor ( ( diezeit - ( getRealTime().timestamp - startzeit ) ) / 60 )
  62. local dasekunde = math.floor ( ( diezeit - ( getRealTime().timestamp - startzeit ) ) % 60 )
  63. local distance = 0
  64. if thepickup and isElement ( thepickup ) then
  65. local xp, yp, zp = getElementPosition ( thepickup )
  66. local xpl, ypl, zpl = getElementPosition ( getLocalPlayer() )
  67. distance = math.floor (getDistanceBetweenPoints3D ( xp, yp, zp, xpl, ypl, zpl ) * 10)/10
  68. end
  69. if dasekunde < 10 then
  70. dasekunde = "0"..dasekunde
  71. end
  72.  
  73. dxDrawRectangle(screenW * 0.8599, screenH * 0.3120, screenW * 0.1323, screenH * 0.1389, tocolor(0, 0, 0, 181), false) --Hintergund
  74. dxDrawRectangle(screenW * 0.8599, screenH * 0.3120, screenW * 0.1323, screenH * 0.0176, tocolor(215, 141, 0, 193), false) --Kopfleiste
  75. dxDrawText("Gangwar", screenW * 0.9115, screenH * 0.3120, screenW * 0.9375, screenH * 0.3259, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "left", "top", false, false, false, false, false) -- Kopfleiste (Text)
  76.  
  77. dxDrawRectangle(screenW * 0.9167, screenH * 0.3343, screenW * 0.0656, screenH * 0.0380, tocolor(attackerR, attackerG, attackerB, 193), false) -- Angreifer (Fenster)
  78. dxDrawRectangle(screenW * 0.9167, screenH * 0.3815, screenW * 0.0656, screenH * 0.0380, tocolor(defenderR, defenderG, defenderB, 193), false) -- Verteidiger (Fenster)
  79.  
  80. dxDrawImage(screenW * 0.8646, screenH * 0.3676, screenW * 0.0125, screenH * 0.0185, ":vio/images/kill.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) --Kills (Bild)
  81. dxDrawImage(screenW * 0.8651, screenH * 0.3389, screenW * 0.0120, screenH * 0.0194, ":vio/images/damage.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) --Damage (Bild)
  82. dxDrawImage(screenW * 0.8651, screenH * 0.3981, screenW * 0.0115, screenH * 0.0185, ":vio/images/time.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- Zeit (Bild)
  83.  
  84. dxDrawText(gangwarKills, screenW * 0.8823, screenH * 0.3676, screenW * 0.9031, screenH * 0.3815, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "left", "top", false, false, false, false, false) --Kills (Wert)
  85. dxDrawText(math.floor(gangwarDamage), screenW * 0.8823, screenH * 0.3389, screenW * 0.9031, screenH * 0.3528, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "left", "top", false, false, false, false, false) --Damage (Wert)
  86. dxDrawText(daminute..":"..dasekunde, screenW * 0.8823, screenH * 0.3981, screenW * 0.9031, screenH * 0.4120, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "left", "top", false, false, false, false, false) --Zeit (Wert)
  87.  
  88. dxDrawText(attackerfracname, screenW * 0.9219, screenH * 0.3343, screenW * 0.9771, screenH * 0.3481, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "center", "top", false, false, false, false, false) -- Angreifer (Fraktionsname)
  89. dxDrawText(attackeralive.." / "..attacker, screenW * 0.9219, screenH * 0.3491, screenW * 0.9771, screenH * 0.3630, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "center", "top", false, false, false, false, false) -- Angreifer (Lebensanzeige)
  90. dxDrawText(defenderfracname, screenW * 0.9219, screenH * 0.3815, screenW * 0.9771, screenH * 0.3954, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "left", "center", false, false, false, false, false) -- Verteidiger (Fraktionsname)
  91. dxDrawText(defenderalive.." / "..defender, screenW * 0.9219, screenH * 0.3963, screenW * 0.9771, screenH * 0.4102, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "center", "top", false, false, false, false, false) -- Verteidiger (Lebensanzeige)
  92.  
  93. -- Distanz zum TK --
  94. if distance > reichweiteZumTK then
  95. distance = "Entfernung zum Totenkopf "..distance.."m"
  96. dxDrawText(distance, screenW * 0.8651, screenH * 0.4278, screenW * 0.9823, screenH * 0.4417, tocolor(255, 0, 0, 255), 1.00*syA, "default-bold", "left", "top", false, false, false, false, false) -- Distanz (rot)
  97. else
  98. distance = "Entfernung zum Totenkopf "..distance.."m"
  99. dxDrawText(distance, screenW * 0.8651, screenH * 0.4278, screenW * 0.9823, screenH * 0.4417, tocolor(255, 255, 255, 255), 1.00*syA, "default-bold", "left", "top", false, false, false, false, false) -- Distanz (weiß)
  100. end
  101. showing = true
  102. end
  103.  
  104.  
  105. function startAnzeige ( )
  106. gangwarlaeuft = true
  107. gangwarDamage = 0
  108. gangwarKills = 0
  109. addEventHandler ( "onClientRender", getRootElement(), dxdrawGangwarAnzeige )
  110. addEventHandler ( "onClientKey", getRootElement(), deactivateInventar )
  111. -- removeEventHandler ( "onClientRender", getRootElement(), startStatistik )
  112. addEventHandler ( "onClientPlayerWasted", localPlayer, calculateGangwarKills )
  113. startzeit = getRealTime().timestamp
  114. end
  115. addEventHandler ( "startGWAnzeige", getRootElement(), startAnzeige )
  116.  
  117.  
  118. function updateAnzeigePrepare_func ( zeitzumende, attackergesamt, attackerfrac, ownerfrac, pickup )
  119. gangwarlaeuft = true
  120. diezeit = zeitzumende
  121. attacker = attackergesamt
  122. attackeralive = attackergesamt
  123. attackerfracname = gangPraefix[attackerfrac]
  124. defenderfracname = gangPraefix[ownerfrac]
  125. thepickup = pickup
  126. attackerR = factionColors[attackerfrac][1]
  127. attackerG = factionColors[attackerfrac][2]
  128. attackerB = factionColors[attackerfrac][3]
  129. defenderR = factionColors[ownerfrac][1]
  130. defenderG = factionColors[ownerfrac][2]
  131. defenderB = factionColors[ownerfrac][3]
  132. startzeit = getRealTime().timestamp
  133. end
  134. addEventHandler ( "updateAnzeigePrepare", getRootElement(), updateAnzeigePrepare_func )
  135.  
  136.  
  137. function updateAnzeigeStart_func ( zeitzumende, attackerlebend, attackergesamt )
  138. gangwarlaeuft = true
  139. diezeit = zeitzumende
  140. attackeralive = attackerlebend
  141. attacker = attackergesamt
  142. startzeit = getRealTime().timestamp
  143. end
  144. addEventHandler ( "updateAnzeigeStart", getRootElement(), updateAnzeigeStart_func )
  145.  
  146.  
  147. function updateAnzeigeNachJoinen_func ( zeitzumende, attackergesamt, attackerlebend, defendergesamt, defenderlebend, attackerfrac, ownerfrac, pickup )
  148. gangwarlaeuft = true
  149. diezeit = zeitzumende
  150. attacker = attackergesamt
  151. attackeralive = attackerlebend
  152. defender = defendergesamt
  153. defenderalive = defenderlebend
  154. attackerfracname = gangPraefix[attackerfrac]
  155. defenderfracname = gangPraefix[ownerfrac]
  156. thepickup = pickup
  157. attackerR = factionColors[attackerfrac][1]
  158. attackerG = factionColors[attackerfrac][2]
  159. attackerB = factionColors[attackerfrac][3]
  160. defenderR = factionColors[ownerfrac][1]
  161. defenderG = factionColors[ownerfrac][2]
  162. defenderB = factionColors[ownerfrac][3]
  163. startzeit = getRealTime().timestamp
  164. end
  165. addEventHandler ( "updateAnzeigeNachJoinen", getRootElement(), updateAnzeigeNachJoinen_func )
  166.  
  167.  
  168. function attackerEinerHinzugekommen ( )
  169. attacker = attacker + 1
  170. attackeralive = attackeralive + 1
  171. end
  172. addEventHandler ( "attackereinerdazugekommen", getRootElement(), attackerEinerHinzugekommen )
  173.  
  174.  
  175. function defenderEinerHinzugekommen ( )
  176. defender = defender + 1
  177. defenderalive = defenderalive + 1
  178. end
  179. addEventHandler ( "defendereinerdazugekommen", getRootElement(), defenderEinerHinzugekommen )
  180.  
  181.  
  182. function attackerEinerTot ( )
  183. attackeralive = attackeralive - 1
  184. end
  185. addEventHandler ( "attackereinergestorben", getRootElement(), attackerEinerTot )
  186.  
  187.  
  188. function defenderEinerTot ( )
  189. defenderalive = defenderalive - 1
  190. end
  191. addEventHandler ( "defendereinergestorben", getRootElement(), defenderEinerTot )
  192.  
  193. --[[
  194. function attackerEinerOffVorStart ( )
  195. attackeralive = attackeralive - 1
  196. attacker = attacker - 1
  197. end
  198. addEventHandler ( "attackereinerofflineohnezaehlen", getRootElement(), attackerEinerOffVorStart )
  199.  
  200.  
  201. function defenderEinerOffVorStart ( )
  202. defenderalive = defenderalive - 1
  203. defender = defender - 1
  204. end
  205. addEventHandler ( "defendereinerofflineohnezaehlen", getRootElement(), defenderEinerOffVorStart )
  206. ]]
  207.  
  208. function stopAnzeige ( dmgkilltable )
  209. gangwarlaeuft = false
  210. removeEventHandler ( "onClientRender", getRootElement(), dxdrawGangwarAnzeige )
  211. removeEventHandler ( "onClientKey", getRootElement(), deactivateInventar )
  212. removeEventHandler ("onClientPlayerWasted", localPlayer, calculateGangwarKills)
  213. diezeit, startzeit, attackeralive, defenderalive, attacker, defender = 0, 0, 0, 0, 0, 0
  214. attackerfracname = ""
  215. defenderfracname = ""
  216. thepickup = nil
  217. showing = false
  218. end
  219. addEventHandler ( "stopGWAnzeige", getRootElement(), stopAnzeige )
  220.  
  221.  
  222. function stopAnzeigeSTOP ( )
  223. gangwarlaeuft = false
  224. removeEventHandler ( "onClientRender", getRootElement(), dxdrawGangwarAnzeige )
  225. removeEventHandler ( "onClientKey", getRootElement(), deactivateInventar )
  226. diezeit, startzeit, attackeralive, defenderalive, attacker, defender = 0, 0, 0, 0, 0, 0
  227. attackerfracname = ""
  228. defenderfracname = ""
  229. thepickup = nil
  230. showing = false
  231. end
  232. addEventHandler ( "stopGWAnzeigeSTOP", getRootElement(), stopAnzeigeSTOP )
  233.  
  234.  
  235. function calculateGangwarDamage ( dmg )
  236. gangwarDamage = gangwarDamage + dmg
  237. if not showing then
  238. addEventHandler ( "onClientRender", getRootElement(), dxdrawGangwarAnzeige )
  239. end
  240. end
  241. addEventHandler ("rechneDMGAn", getRootElement(), calculateGangwarDamage)
  242.  
  243.  
  244. function calculateGangwarKills ( killer )
  245. triggerServerEvent ( "rechneKILLAnServer", source, killer )
  246. end
  247.  
  248.  
  249. addEventHandler ( "rechneKillAn", root, function ( kills )
  250. gangwarKills = kills
  251. end )
  252.  
  253.  
  254. function deactivateInventar ( button, press )
  255. if ( press ) and button == "i" then
  256. cancelEvent()
  257. end
  258. end
  259.  
  260. --[[
  261. function startStatistik()
  262. local ver, ang = 0, 0
  263. local hoehe = 0
  264. for index, tables in pairs ( sortierteStatistikTabelle ) do
  265. if tables["Attacker"] then
  266. hoehe = hoehe + 1
  267. end
  268. end
  269. for index, tables in pairs ( sortierteStatistikTabelle ) do
  270. if tables["Attacker"] then
  271. -- Rechteck --
  272. dxDrawRectangle(screenx-400*sxA, screeny-775*syA+46*syA*(index-ang), 180*sxA, 45*syA, tocolor(attackerR, attackerG, attackerB, 200), true) -- ATTACKER
  273. -- Stats --
  274. dxDrawText("Kill: "..tables["Kills"].." | Dmg: "..tables["Damage"], screenx-400*sxA, screeny-754*syA+46*syA*(index-ang), screenx-220, screeny-740*syA+46*syA*(index-ang),tocolor(255, 255, 255, 255), 1.2*sxA, "default-bold", "center", "top", false, false, true, false, false) -- Name
  275. -- Name --
  276. dxDrawText(tables["Player"], screenx-400*sxA, screeny-770*syA+46*syA*(index-ang), screenx-220, screeny-740*syA+46*syA*(index-ang),tocolor(255, 255, 255, 255), 1.2*sxA, "default-bold", "center", "top", false, false, true, false, false) -- Stats
  277. ver = ver + 1
  278. else
  279. -- Rechteck --
  280. dxDrawRectangle(screenx-210*sxA, screeny-775*syA+46*syA*(index-ver), 180*sxA, 45*syA, tocolor(defenderR, defenderG, defenderB, 200), true) -- DEFENDER
  281. -- Stats --
  282. dxDrawText("Kill: "..tables["Kills"].." | Dmg: "..tables["Damage"], screenx-210*sxA, screeny-754*syA+46*syA*(index-ver), screenx-30, screeny-740*syA+46*syA*(index-ver),tocolor(255, 255, 255, 255), 1.2*sxA, "default-bold", "center", "top", false, false, true, false, false) -- Name
  283. -- Name --
  284. dxDrawText(tables["Player"], screenx-210*sxA, screeny-770*syA+46*syA*(index-ver), screenx-30, screeny-740*syA+46*syA*(index-ver),tocolor(255, 255, 255, 255), 1.2*sxA, "default-bold", "center", "top", false, false, true, false, false) -- Stats
  285. ang = ang + 1
  286. end
  287. end
  288. setTimer ( function () removeEventHandler ( "onClientRender", getRootElement(), startStatistik ) end, 1000 * zeitinsekundenbisstatistikendet, 1 )
  289. end
  290.  
  291.  
  292.  
  293. function kachingsound_func ( )
  294. playSound ( "sounds/kaching.mp3" )
  295. end
  296. addEventHandler ( "kaching", getRootElement(), kachingsound_func )
  297.  
  298.  
  299.  
  300.  
  301. addEventHandler ( "moveVehicleInGangwar", root, function ( veh )
  302. theveh = veh
  303. lastvehmove = getTickCount()
  304. addEventHandler ( "onClientRender", root, showVehicleFlying )
  305. showCursor ( true )
  306. bindKey ( "mouse1", "up", triggerTheVehiclePosition )
  307. bindKey ( "mouse_wheel_up", "both", setVehicleRotationUpDown, 3 )
  308. bindKey ( "mouse_wheel_down", "both", setVehicleRotationUpDown, -3 )
  309. end )
  310.  
  311.  
  312. function showVehicleFlying ( )
  313. local _, _, worldx, worldy, worldz = getCursorPosition()
  314. local px, py, pz = getCameraMatrix()
  315. local playerx, playery, playerz = getElementPosition ( localPlayer )
  316. setCameraMatrix ( playerx, playery, playerz+50, playerx, playery, playerz )
  317. local hit, x, y, z, elementHit = processLineOfSight ( px, py, pz, worldx, worldy, worldz )
  318. local _, _, rz = getElementRotation ( theveh )
  319. if x and y and z then
  320. z = getGroundPosition ( x, y, z )
  321. setElementPosition ( theveh, x, y, z+0.6 )
  322. end
  323. setElementRotation ( theveh, 0, 0, rz )
  324. end
  325.  
  326.  
  327. function triggerTheVehiclePosition ( )
  328. if lastvehmove+500 <= getTickCount() then
  329. unbindKey ( "mouse1", "both", triggerTheVehiclePosition )
  330. unbindKey ( "mouse_wheel_up", "both", setVehicleRotationUpDown )
  331. unbindKey ( "mouse_wheel_down", "both", setVehicleRotationUpDown )
  332. removeEventHandler ( "onClientRender", root, showVehicleFlying )
  333. local screenx, screeny, worldx, worldy, worldz = getCursorPosition()
  334. local px, py, pz = getCameraMatrix()
  335. local hit, x, y, z, elementHit = processLineOfSight ( px, py, pz, worldx, worldy, worldz )
  336. z = getGroundPosition ( x, y, z )
  337. local _, _, rz = getElementRotation ( theveh )
  338. triggerServerEvent ( "triggerActualVehiclePositionForGangwar", player, theveh, x, y, z+0.9, rz )
  339. setCameraTarget ( localPlayer )
  340. theveh = nil
  341. end
  342. end
  343.  
  344.  
  345. function setVehicleRotationUpDown ( button, _, value )
  346. local _, _, rz = getElementRotation ( theveh )
  347. setElementRotation ( theveh, 0, 0, rz+value )
  348. end
  349. ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement