Neons are not working help
server
--determine whether color change can be made with a command
cmd = true
--the command to use
thecmd = "neon"
function neon(plr,cmd,r,g,b,a)
if not r then openGui(plr) return true end
if tonumber(tostring(r)) == nil then r,g,b,a = getColorFromString(r)
end
if not a then a = 200 end
veh = getPedOccupiedVehicle(plr)
if veh and r and g and b then
model = getElementModel(veh)
if canHaveNeon(veh) then
if haveNeon(veh) then
setNeonColor(veh,tonumber(r),tonumber(g),tonumber(b))
end
end
end
end
if cmd then
addCommandHandler(thecmd,neon)
end
function setNeonColor(veh,r,g,b)
setElementData(veh,"neonlight",tostring(r)..","..tostring(g)..","..tostring(b)..","..tostring(a))
for i,mark in ipairs(getElementsByType("marker")) do
local type = getMarkerType(mark)
if type == "corona" then
local data1 = getElementData(veh,"neonMarker1")
local data2 = getElementData(veh,"neonMarker2")
if data1 == mark or data2 == mark then
setMarkerColor(mark,r,g,b,80)
else
addNeon(veh,true)
end
end
end
return true
end
function haveNeon(veh)
local data = getElementData(veh,"haveneon")
if data then
return true
else
return false
end
end
function addNeon(veh,state)
if getElementType(veh) == "vehicle" then
if state then
setElementData(veh,"haveneon",true)
x,y,z = getElementPosition(veh)
--
local exist = nil
for i,mark in ipairs(getElementsByType("marker")) do
data = getElementData(veh,"neonMarker1")
if data == mark then
local exist = mark
end
end
if not exist then
local marker1 = createMarker(x,y,z,"corona",2,0,0,0,0)
attachElements(marker1,veh,0,-1,-1.2)
setElementData(veh,"neonMarker1",marker1)
local marker2 = createMarker(x,y,z,"corona",2,0,0,0,0)
attachElements(marker2,veh,0,1,-1.2)
setElementData(veh,"neonMarker2",marker2)
end
--
return true
else
setElementData(veh,"haveneon",false)
setElementData(veh,"neonlight","off!!!")
--
for i,mark in ipairs(getElementsByType("marker")) do
local type = getMarkerType(mark)
if type == "corona" then
local data1 = getElementData(veh,"neonMarker1")
local data2 = getElementData(veh,"neonMarker2")
if data1 == mark or data2 == mark then
setMarkerColor(mark,0,0,0,0)
end
end
end
--
return true
end
else
return false
end
end
function canHaveNeon(veh)
model = getElementModel(veh)
if veh and getElementType(veh) == "vehicle" then
x = mayHaveNeon(model)
return x
else
return false
end
end
function mayHaveNeon(model)
if model ~= 592 and model ~= 511 and model ~= 584 and model ~= 512 and model ~= 593 and model ~= 417 and
model ~= 487 and model ~= 553 and model ~= 488 and model ~= 563 and model ~= 476 and model ~= 519 and
model ~= 460 and model ~= 469 and model ~= 513 and model ~= 472 and model ~= 473 and model ~= 493 and
model ~= 595 and model ~= 484 and model ~= 430 and model ~= 453 and model ~= 452 and model ~= 446 and
model ~= 454 and model ~= 403 and model ~= 514 and model ~= 443 and model ~= 515 and model ~= 455 and
model ~= 406 and model ~= 486 and model ~= 578 and model ~= 532 and model ~= 524 and model ~= 498 and
model ~= 609 and model ~= 568 and model ~= 457 and model ~= 508 and model ~= 571 and model ~= 539 and
model ~= 606 and model ~= 607 and model ~= 485 and model and model ~= 581 and model ~= 509 and
model ~= 481 and model ~= 462 and model ~= 521 and model ~= 463 and model ~= 510 and model ~= 522 and
model ~= 461 and model ~= 448 and model ~= 468 and model ~= 586 and model ~= 485 and model ~= 552 and
model ~= 431 and model ~= 438 and model ~= 437 and model ~= 574 and model ~= 525 and model ~= 408 and
model ~= 416 and model ~= 433 and model ~= 427 and model ~= 490 and model ~= 528 and model ~= 407 and
model ~= 544 and model ~= 523 and model ~= 470 and model ~= 596 and model ~= 597 and model ~= 598 and
model ~= 599 and model ~= 432 and model ~= 601 and model ~= 428 and model ~= 499 and model ~= 449 and
model ~= 537 and model ~= 538 and model ~= 570 and model ~= 569 and model ~= 590 and model ~= 441 and
model ~= 464 and model ~= 501 and model ~= 465 and model ~= 564 and model ~= 594 then
return true
else
return false
end
end
function deactivateNeon(veh)
if getElementType(veh) == "vehicle" then
setElementData(veh,"neonlight","off!!!")
for i,mark in ipairs(getElementsByType("marker")) do
local type = getMarkerType(mark)
if type == "corona" then
local data1 = getElementData(veh,"neonMarker1")
local data2 = getElementData(veh,"neonMarker2")
if data1 == mark or data2 == mark then
setMarkerColor(mark,0,0,0,0)
end
end
end
return true
else
return false
end
end
function openGui(plr)
local veh = getPedOccupiedVehicle(plr)
if haveNeon(veh) then
triggerClientEvent(plr,"openNeonGui",root)
end
end
addEventHandler("onPlayerJoin",root,function()
for i,veh in ipairs(getElementsByType("vehicle")) do
data = getElementData(veh,"neonlight")
setElementData(veh,"neonlight",data)
end
end)
for i,veh in ipairs(getElementsByType("vehicle")) do
deactivateNeon(veh)
end
addEvent("closeNeonGui",true)
addEventHandler("closeNeonGui",root,function(r,g,b)
local veh = getPedOccupiedVehicle(source)
setNeonColor(veh,r,g,b)
end)
client
sx,sy = guiGetScreenSize() function wantNeon(state) if state == true then addEventHandler("onClientPreRender",root,loop) else removeEventHandler("onClientPreRender",root,loop) end end function loop() for i,veh in ipairs(getElementsByType("vehicle")) do x,y,z = getElementPosition(veh) a,b,c = getElementPosition(getLocalPlayer()) dis = getDistanceBetweenPoints3D(x,y,z,a,b,c) vis = isElementOnScreen(veh) if vis and dis < 50 then x,y,rot = getElementRotation(veh) if x < 50 or x > 310 then if y < 50 or y > 310 then if getElementData(veh,"neonlight") ~= "off!!!" then drawIt(veh,rot) end end end end end end addEventHandler("onClientPreRender",root,loop) function drawIt(veh,rot) x,y,z = getElementPosition(veh) az = getGroundPosition(x,y,z) dis = getDistanceBetweenPoints3D(x,y,z,x,y,az) if dis < 2 then a = 100 model = getElementModel(veh) data = getElementData(veh,"neonlight") if data then r = tonumber(gettok(data,1,string.byte(","))) g = tonumber(gettok(data,2,string.byte(","))) b = tonumber(gettok(data,3,string.byte(","))) ck = tonumber(gettok(data,4,string.byte(","))) --if ck and ck <= 255 and ck >= 0 then a = ck end rot = rot if --rot < 1 or rot > 359 1 == 1 then rx,ry,rz = getElementRotation(veh) x,y,z = getElementPosition(veh) r3 = rz-30 r4 = rz-150 r3 = math.abs(r3-360) r4 = math.abs(r4-360) r1 = r3-60 r2 = r4-300 r1 = math.rad(r1) r2 = math.rad(r2) r3 = math.rad(r3) r4 = math.rad(r4) cr1 = math.cos(r1) sr1 = math.sin(r1) cr2 = math.cos(r2) sr2 = math.sin(r2) cr3 = math.cos(r3) sr3 = math.sin(r3) cr4 = math.cos(r4) sr4 = math.sin(r4) x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.03*cr1 sr1 = 1.03*sr1 cr2 = 1.03*cr2 sr2 = 1.03*sr2 cr3 = 1.03*cr3 sr3 = 1.03*sr3 cr4 = 1.03*cr4 sr4 = 1.03*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x y1 = cr1+y x2 = sr2+x y2 = cr2+y x3 = sr3+x y3 = cr3+y x4 = sr4+x y4 = cr4+y az1 = getGroundPosition(x1,y1,z+2) az2 = getGroundPosition(x2,y2,z+2) az3 = getGroundPosition(x3,y3,z+2) az4 = getGroundPosition(x4,y4,z+2) dxDrawLine3D(x1,y1,az1,x2,y2,az2,tocolor(r,g,b,a),3) dxDrawLine3D(x3,y3,az3,x4,y4,az4,tocolor(r,g,b,a),3) cr1 = 1.02*cr1 sr1 = 1.02*sr1 cr2 = 1.02*cr2 sr2 = 1.02*sr2 cr3 = 1.02*cr3 sr3 = 1.02*sr3 cr4 = 1.02*cr4 sr4 = 1.02*sr4 x1 = sr1+x