Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. local messages = {}
  2. local offset = 0.125
  3. local chat = false -- if you want messages to be duplicated in chat
  4. local messagesColor = {255, 255, 255, 215} -- r,g,b,a
  5.  
  6.  
  7. local function DrawText3D(x ,y, z, text, color)
  8. local r,g,b,a = {255, 255, 255, 215}
  9. if color then
  10. r,g,b,a = table.unpack(color)
  11. end
  12. local onScreen, _x, _y = World3dToScreen2d(x, y, z)
  13. local p = GetGameplayCamCoords()
  14. local distance = GetDistanceBetweenCoords(p.x, p.y, p.z, x, y, z, 1)
  15. local scale = (1 / distance) * 2
  16. local fov = (1 / GetGameplayCamFov()) * 100
  17. local scale = scale * fov
  18. if onScreen then
  19. SetTextScale(0.5, 0.5)
  20. SetTextFont(4)
  21. SetTextProportional(1)
  22. SetTextColour(r, g, b, a)
  23. SetTextEntry("STRING")
  24. SetTextCentre(1)
  25. AddTextComponentString(text)
  26. DrawText(_x,_y)
  27. -- local factor = (string.len(text)) / 370
  28. -- DrawRect(_x,_y+0.0125, 0.015+ factor, 0.03, 41, 11, 41, 68)
  29. end
  30. end
  31.  
  32.  
  33. local function AddMessage(type, msg, color, owner, timeout)
  34. if not messages[owner] then
  35. messages[owner] = {}
  36. end
  37.  
  38. table.insert(messages[owner], {
  39. type = type,
  40. msg = msg,
  41. color = color
  42. })
  43. SetTimeout(timeout, function()
  44. table.remove(messages[owner], 1)
  45. if #messages[owner] == 0 then
  46. messages[owner] = nil
  47. end
  48. end)
  49. end
  50.  
  51. Citizen.CreateThread(function()
  52. while true do
  53. for k,v in pairs(messages) do
  54. for i,d in pairs(messages[k]) do
  55. local x,y,z = table.unpack(GetEntityCoords(k))
  56. z = z + 0.9 + offset*i
  57. DrawText3D(x, y, z, d.type..' | '..d.msg, d.color)
  58. end
  59. end
  60.  
  61. Wait(0)
  62. end
  63. end)
  64.  
  65. RegisterNetEvent('sendMessageMe')
  66. AddEventHandler('sendMessageMe', function(id, name, message)
  67. local monid = PlayerId()
  68. local sonid = GetPlayerFromServerId(id)
  69. if sonid == monid then
  70. if chat then
  71. TriggerEvent('chatMessage', "", {255, 0, 0}, " me | " .. name .." ".." " .. message )
  72. end
  73. AddMessage('me', message, messagesColor, PlayerPedId(), 10000)
  74. elseif GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), GetEntityCoords(GetPlayerPed(sonid)), true) < 7.01 and HasEntityClearLosToEntity(PlayerPedId(), GetPlayerPed(sonid), 17) == 1 then
  75. if chat then
  76. TriggerEvent('chatMessage', "", {255, 0, 0}, " me | " .. name .." ".." " .. message )
  77. end
  78. AddMessage('me', message, messagesColor, GetPlayerPed(sonid), 10000)
  79. end
  80. end)
  81.  
  82. RegisterNetEvent('sendMessageDo')
  83. AddEventHandler('sendMessageDo', function(id, name, message)
  84. local monid = PlayerId()
  85. local sonid = GetPlayerFromServerId(id)
  86. if sonid == monid then
  87. if chat then
  88. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^1 do | " .. message .." ".."^1 ((" .. name .. "))")
  89. end
  90. AddMessage('do', message, messagesColor, PlayerPedId(), 10000)
  91. elseif GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), GetEntityCoords(GetPlayerPed(sonid)), true) < 7.01 and HasEntityClearLosToEntity(PlayerPedId(), GetPlayerPed(sonid), 17) == 1 then
  92. if chat then
  93. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^1 do | " .. message .." ".."^1 ((" .. name .. "))")
  94. end
  95. AddMessage('do', message, messagesColor, GetPlayerPed(sonid), 10000)
  96. end
  97. end)
  98.  
  99. RegisterNetEvent('sendMessageTry')
  100. AddEventHandler('sendMessageTry', function(id, name, message, result)
  101. local monid = PlayerId()
  102. local sonid = GetPlayerFromServerId(id)
  103. local resultMessages = {"^2Sukces", "^1Porazka"}
  104. local resultMessage = resultMessages[result]
  105. if sonid == monid then
  106. if chat then
  107. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6 try | " .. name .." ".."^6 " .. message .. " ((".. resultMessage .."^6))")
  108. end
  109. AddMessage('try', message.." (("..string.sub(resultMessage, 3).."))", messagesColor, PlayerPedId(), 10000)
  110. elseif GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), GetEntityCoords(GetPlayerPed(sonid)), true) < 7.01 and HasEntityClearLosToEntity(PlayerPedId(), GetPlayerPed(sonid), 17) == 1 then
  111. if chat then
  112. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6 try | " .. name .." ".."^6 " .. message .. " ((".. resultMessage .."^6))")
  113. end
  114. AddMessage('try', message.." (("..string.sub(resultMessage, 3).."))", messagesColor, GetPlayerPed(sonid), 10000)
  115. end
  116. end)
  117.  
  118. RegisterNetEvent('sendProximityMessage')
  119. AddEventHandler('sendProximityMessage', function(id, name, message)
  120. local monid = PlayerId()
  121. local sonid = GetPlayerFromServerId(id)
  122. if sonid == monid then
  123. TriggerEvent('chatMessage', name, {0, 255, 0}, message)
  124. elseif GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(monid)), GetEntityCoords(GetPlayerPed(sonid)), true) < 19.999 then
  125. TriggerEvent('chatMessage', name, {0, 255, 0}, message)
  126. end
  127. end)
  128.  
  129. RegisterNetEvent('sendProximityMessageMe')
  130. AddEventHandler('sendProximityMessageMe', function(id, name, message)
  131. local monid = PlayerId()
  132. local sonid = GetPlayerFromServerId(id)
  133. if sonid == monid then
  134. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6 **" .. name .." ".."^6 " .. message )
  135. elseif GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(monid)), GetEntityCoords(GetPlayerPed(sonid)), true) < 19.999 then
  136. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6 **" .. name .." ".."^6 " .. message )
  137. end
  138. end)
  139.  
  140. RegisterNetEvent('sendProximityMessageDo')
  141. AddEventHandler('sendProximityMessageDo', function(id, name, message)
  142. local monid = PlayerId()
  143. local sonid = GetPlayerFromServerId(id)
  144. if sonid == monid then
  145. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6((" .. name ..")) ".." " .. message)
  146. elseif GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(monid)), GetEntityCoords(GetPlayerPed(sonid)), true) < 19.999 then
  147. TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6((" .. name ..")) ".." " .. message)
  148. end
  149. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement