Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.34 KB | None | 0 0
  1.  
  2. #ClientSide
  3.  
  4. addEventHandler("onClientRender", root, function()
  5. local o = getElementsByType("3dtext")
  6. if #o > 0 then
  7. for i=1, #o do
  8. local x = getElementData(o[i], "x")
  9. local y = getElementData(o[i], "y")
  10. local z = getElementData(o[i], "z")
  11.  
  12. local px,py,pz = getCameraMatrix()
  13. if x and y and z then
  14. local distance = getDistanceBetweenPoints3D ( px, py, pz, x, y, z )
  15. if distance then
  16. if distance < getElementData(o[i], "distance") then
  17. local scx, scy = getScreenFromWorldPosition ( x, y, z, 100, true )
  18. if scx and scy and isLineOfSightClear ( px, py, pz, x, y, z, true ,true, true, false, false, true ) then
  19. local font = getElementData(o[i], "font")
  20. local text = getElementData(o[i], "text")
  21. local scale = getElementData(o[i], "scale")
  22. local r = getElementData(o[i], "r")
  23. local g = getElementData(o[i], "g")
  24. local b = getElementData(o[i], "b")
  25. local a = getElementData(o[i], "a")
  26. local rgba = 0
  27. if r and g and b and a then
  28. rgba = (r+g+b)/3
  29. end
  30. local ff = string.find(text, "<nick>")
  31. if ff then
  32. if ff > 0 then
  33. text = string.gsub(text, "<nick>", getPlayerName(localPlayer))
  34. end
  35. end
  36. local ff1 = string.find(text, "<hour>")
  37. if ff1 then
  38. if ff1 > 0 then
  39. local time = getRealTime()
  40. local h = time.hour
  41. if h < 10 then h = "0"..h end
  42. text = string.gsub(text, "<hour>", h)
  43. end
  44. end
  45. local ff1 = string.find(text, "<minute>")
  46. if ff1 then
  47. if ff1 > 0 then
  48. local time = getRealTime()
  49. local m = time.minute
  50. if m < 10 then m = "0"..m end
  51. text = string.gsub(text, "<minute>", m)
  52. end
  53. end
  54. scale = scale*19/distance
  55. dxDrawText ( text, scx+2, scy+2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
  56. dxDrawText ( text, scx-2, scy+2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
  57. dxDrawText ( text, scx+2, scy-2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
  58. dxDrawText ( text, scx-2, scy-2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
  59. dxDrawText ( text, scx, scy, scx, scy, tocolor ( r, g, b, a ), scale, font, "center", "center" )
  60. end
  61. end
  62. end
  63. end
  64. end
  65. end
  66. end)
  67.  
  68.  
  69. ##Server
  70.  
  71.  
  72.  
  73. function refreshText()
  74. local object = getElementsByType("3dtext")
  75. if #object > 0 then
  76. for i=1, #object do
  77. destroyElement(object[i])
  78. end
  79. refreshText()
  80. else
  81. local zapytanie1 = dbQuery(cn, "SELECT * FROM `rpg_texty`")
  82. local resultat1 = dbPoll(zapytanie1, -1)
  83. if #resultat1 > 0 then
  84. -- Ładowanie 3dtext
  85. for index, r in ipairs(resultat1) do
  86. local element = createElement("3dtext")
  87.  
  88. -- setowanei elementu
  89. setElementData(element, "distance", r["distance"])
  90. setElementData(element, "x", r["x"])
  91. setElementData(element, "y", r["y"])
  92. setElementData(element, "z", r["z"])
  93. setElementData(element, "font", r["font"])
  94. setElementData(element, "scale", r["scale"])
  95. setElementData(element, "text", r["text"])
  96.  
  97. setElementData(element, "r", r["r"])
  98. setElementData(element, "g", r["g"])
  99. setElementData(element, "b", r["b"])
  100. setElementData(element, "a", r["a"])
  101. end
  102. end
  103. end
  104. end
  105. setTimer(function()
  106. refreshText()
  107. end, 7000, 0)
  108.  
  109. local scale = 0
  110. local r, g, b, a = 0, 0, 0
  111. local x, y, z = 0, 0, 0
  112. local font = "default-bold"
  113. local distance = 0
  114. -- text, scale, font, r, g, b, a, x+pos, y+pos, z+pos'
  115.  
  116.  
  117. addCommandHandler("dodaj3dtext", function(plr, cmd, txt, dist, scl, f, rr, gg, bb, aa, xx, yy, zz)
  118. if cmd == "dodaj3dtext" then
  119. if getElementData(plr, "logged") == true then
  120. local acclname = getAccountName(getPlayerAccount(plr))
  121. if isObjectInACLGroup("user."..acclname, aclGetGroup("Admin")) then
  122. if txt then
  123. if dist then distnce = dist else distance = 100 end
  124. if scl then scale = scl else scale = 1.00 end
  125. if f then font = f else font = "default-bold" end
  126. if rr then r = rr else r = 255 end
  127. if gg then g = gg else g = 255 end
  128. if bb then b = bb else b = 255 end
  129. if aa then a = aa else a = 255 end
  130. if xx and yy and zz then
  131. local x1, y1, z1 = getElementPosition(plr)
  132. x, y, z = x1+xx, y1+yy, z1+zz
  133. else
  134. x, y, z = getElementPosition(plr)
  135. end
  136. if dbExec(cn, "INSERT INTO `rpg_texty`( `x`, `y`, `z`, `text`, `r`, `g`, `b`, `a`, `scale`, `font`, `distance`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", x, y, z, txt, r, g, b, a, scale, font, distance ) then
  137. local numberid = #getElementsByType("3dtext")+1
  138. outputChatBox("#3CB371Stworzyłeś 3dtext o id "..numberid..".", plr, 255, 255, 255, true)
  139. outputChatBox("#3CB3713dtext pojawi sie za maksymalnie 7 sekund.", plr, 255, 255, 255, true)
  140.  
  141. end
  142. else
  143. outputChatBox("#3CB371Poprawne użycie:", plr, 255, 255, 255, true)
  144. outputChatBox("#3CB371 /dodaj3dtext <text> - Tworzy 3dtext w miejscu gdzie stoisz.", plr, 255, 255, 255, true)
  145. outputChatBox("#3CB371 /dodaj3dtext <text> <dystans> <skala> <czcionka> <r> <g> <b> <a> <x> <y> <z>", plr, 255, 255, 255, true)
  146. outputChatBox("#3CB371 Tworzy 3dtext w miejscu gdzie stoisz +<x>, +<y>, +<z>", plr, 255, 255, 255, true)
  147. outputChatBox("#3CB371 o kolorze <r> <g> <b> i o alphie <a>", plr, 255, 255, 255, true)
  148. outputChatBox("#3CB371 oraz o wybranej skali <skala> i o czcionce <czcionka>", plr, 255, 255, 255, true)
  149. end
  150. end
  151. end
  152. end
  153. end)
  154.  
  155. function add3dtext_nosqlf( text, distance1, scale, font, r, g, b, a , x, y, z)
  156. if distance1 and z then
  157. local element = createElement("3dtext")
  158.  
  159. -- setowanei elementu
  160. setElementData(element, "distance", distance1)
  161. setElementData(element, "x", x)
  162. setElementData(element, "y", y)
  163. setElementData(element, "z", z)
  164. setElementData(element, "font", font)
  165. setElementData(element, "scale", scale)
  166. setElementData(element, "text", text)
  167.  
  168. setElementData(element, "r", r)
  169. setElementData(element, "g", g)
  170. setElementData(element, "b", b)
  171. setElementData(element, "a", a)
  172. end
  173. end
  174.  
  175. addEvent("add3dtext_nosql", true)
  176. addEventHandler("add3dtext_nosql", root, add3dtext_nosqlf)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement