Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ClientSide
- addEventHandler("onClientRender", root, function()
- local o = getElementsByType("3dtext")
- if #o > 0 then
- for i=1, #o do
- local x = getElementData(o[i], "x")
- local y = getElementData(o[i], "y")
- local z = getElementData(o[i], "z")
- local px,py,pz = getCameraMatrix()
- if x and y and z then
- local distance = getDistanceBetweenPoints3D ( px, py, pz, x, y, z )
- if distance then
- if distance < getElementData(o[i], "distance") then
- local scx, scy = getScreenFromWorldPosition ( x, y, z, 100, true )
- if scx and scy and isLineOfSightClear ( px, py, pz, x, y, z, true ,true, true, false, false, true ) then
- local font = getElementData(o[i], "font")
- local text = getElementData(o[i], "text")
- local scale = getElementData(o[i], "scale")
- local r = getElementData(o[i], "r")
- local g = getElementData(o[i], "g")
- local b = getElementData(o[i], "b")
- local a = getElementData(o[i], "a")
- local rgba = 0
- if r and g and b and a then
- rgba = (r+g+b)/3
- end
- local ff = string.find(text, "<nick>")
- if ff then
- if ff > 0 then
- text = string.gsub(text, "<nick>", getPlayerName(localPlayer))
- end
- end
- local ff1 = string.find(text, "<hour>")
- if ff1 then
- if ff1 > 0 then
- local time = getRealTime()
- local h = time.hour
- if h < 10 then h = "0"..h end
- text = string.gsub(text, "<hour>", h)
- end
- end
- local ff1 = string.find(text, "<minute>")
- if ff1 then
- if ff1 > 0 then
- local time = getRealTime()
- local m = time.minute
- if m < 10 then m = "0"..m end
- text = string.gsub(text, "<minute>", m)
- end
- end
- scale = scale*19/distance
- dxDrawText ( text, scx+2, scy+2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
- dxDrawText ( text, scx-2, scy+2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
- dxDrawText ( text, scx+2, scy-2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
- dxDrawText ( text, scx-2, scy-2, scx, scy, tocolor ( 255-rgba, 255-rgba, 255-rgba, a ), scale, font, "center", "center" )
- dxDrawText ( text, scx, scy, scx, scy, tocolor ( r, g, b, a ), scale, font, "center", "center" )
- end
- end
- end
- end
- end
- end
- end)
- ##Server
- function refreshText()
- local object = getElementsByType("3dtext")
- if #object > 0 then
- for i=1, #object do
- destroyElement(object[i])
- end
- refreshText()
- else
- local zapytanie1 = dbQuery(cn, "SELECT * FROM `rpg_texty`")
- local resultat1 = dbPoll(zapytanie1, -1)
- if #resultat1 > 0 then
- -- Ładowanie 3dtext
- for index, r in ipairs(resultat1) do
- local element = createElement("3dtext")
- -- setowanei elementu
- setElementData(element, "distance", r["distance"])
- setElementData(element, "x", r["x"])
- setElementData(element, "y", r["y"])
- setElementData(element, "z", r["z"])
- setElementData(element, "font", r["font"])
- setElementData(element, "scale", r["scale"])
- setElementData(element, "text", r["text"])
- setElementData(element, "r", r["r"])
- setElementData(element, "g", r["g"])
- setElementData(element, "b", r["b"])
- setElementData(element, "a", r["a"])
- end
- end
- end
- end
- setTimer(function()
- refreshText()
- end, 7000, 0)
- local scale = 0
- local r, g, b, a = 0, 0, 0
- local x, y, z = 0, 0, 0
- local font = "default-bold"
- local distance = 0
- -- text, scale, font, r, g, b, a, x+pos, y+pos, z+pos'
- addCommandHandler("dodaj3dtext", function(plr, cmd, txt, dist, scl, f, rr, gg, bb, aa, xx, yy, zz)
- if cmd == "dodaj3dtext" then
- if getElementData(plr, "logged") == true then
- local acclname = getAccountName(getPlayerAccount(plr))
- if isObjectInACLGroup("user."..acclname, aclGetGroup("Admin")) then
- if txt then
- if dist then distnce = dist else distance = 100 end
- if scl then scale = scl else scale = 1.00 end
- if f then font = f else font = "default-bold" end
- if rr then r = rr else r = 255 end
- if gg then g = gg else g = 255 end
- if bb then b = bb else b = 255 end
- if aa then a = aa else a = 255 end
- if xx and yy and zz then
- local x1, y1, z1 = getElementPosition(plr)
- x, y, z = x1+xx, y1+yy, z1+zz
- else
- x, y, z = getElementPosition(plr)
- end
- 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
- local numberid = #getElementsByType("3dtext")+1
- outputChatBox("#3CB371Stworzyłeś 3dtext o id "..numberid..".", plr, 255, 255, 255, true)
- outputChatBox("#3CB3713dtext pojawi sie za maksymalnie 7 sekund.", plr, 255, 255, 255, true)
- end
- else
- outputChatBox("#3CB371Poprawne użycie:", plr, 255, 255, 255, true)
- outputChatBox("#3CB371 /dodaj3dtext <text> - Tworzy 3dtext w miejscu gdzie stoisz.", plr, 255, 255, 255, true)
- outputChatBox("#3CB371 /dodaj3dtext <text> <dystans> <skala> <czcionka> <r> <g> <b> <a> <x> <y> <z>", plr, 255, 255, 255, true)
- outputChatBox("#3CB371 Tworzy 3dtext w miejscu gdzie stoisz +<x>, +<y>, +<z>", plr, 255, 255, 255, true)
- outputChatBox("#3CB371 o kolorze <r> <g> <b> i o alphie <a>", plr, 255, 255, 255, true)
- outputChatBox("#3CB371 oraz o wybranej skali <skala> i o czcionce <czcionka>", plr, 255, 255, 255, true)
- end
- end
- end
- end
- end)
- function add3dtext_nosqlf( text, distance1, scale, font, r, g, b, a , x, y, z)
- if distance1 and z then
- local element = createElement("3dtext")
- -- setowanei elementu
- setElementData(element, "distance", distance1)
- setElementData(element, "x", x)
- setElementData(element, "y", y)
- setElementData(element, "z", z)
- setElementData(element, "font", font)
- setElementData(element, "scale", scale)
- setElementData(element, "text", text)
- setElementData(element, "r", r)
- setElementData(element, "g", g)
- setElementData(element, "b", b)
- setElementData(element, "a", a)
- end
- end
- addEvent("add3dtext_nosql", true)
- addEventHandler("add3dtext_nosql", root, add3dtext_nosqlf)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement