Jump to content

Cant trigger clientside!


TrickyTommy

Recommended Posts

I am making a job-system script, and it simply just won't work.
"server triggered clientside event drawBusMarker, but event is not added clientside."
 

local markerData = {}

markerData["busMarkerX"] = 2481.96753
markerData["busMarkerY"] = -1670.67761
markerData["busMarkerZ"] = 13.34018
markerData["busMarkerSize"] = 2
markerData["busMarkerAlpha"] = 100
markerData["busMarkerR"] = 149
markerData["busMarkerG"] = 215
markerData["busMarkerB"] = 116

function createBusMarker()
	if isElement (busMarker) then destroyElement (busMarker) end
	triggerClientEvent ("drawBusMarker", getRootElement(), markerData["busMarkerX"], markerData["busMarkerY"], markerData["busMarkerZ"])
	busMarker = createMarker (markerData["busMarkerX"], markerData["busMarkerY"], markerData["busMarkerZ"]-1, "cylinder", markerData["busMarkerSize"], markerData["busMarkerR"], markerData["busMarkerG"], markerData["busMarkerR"], markerData["busMarkerAlpha"])
	return busMarker
end

Client:
 

local white = tocolor(255,255,255,255)
function dxDrawImage3D(x,y,z,w,h,m,c,r,...)
        local lx, ly, lz = x+w, y+h, (z+tonumber(r or 0)) or z
	return dxDrawMaterialLine3D(x,y,z, lx, ly, lz, m, h, c or white, ...)
end

function drawBusMarker(busX, busY, busZ)
	function renderBusMarker()
		local busIcon = dxCreateTexture("files/images/buszIkon.png")
		dxDrawImage3D (busX, busY, busZ, 200, 200)
	end
	addEventHandler ("onClientRender", getRootElement(), renderBusMarker)
end
addEvent ("drawBusMarker", true)
addEventHandler ("drawBusMarker", getRootElement(), drawBusMarker)

Sorry if i am not findig a simple mistake, but i am awake for a day now, and i am really tired.

meta:
clientside starts first

<meta>
	<script src="codeCG.Job.lua" type="client"/>
	<script src="codeC.Job.lua" type="client"/>
	
    <script src="codeSG.Job.lua" type="server"/>
    <script src="codeS.Job.lua" type="server"/>
    
	<file src="files/images/buszIkon.png"/>
</meta>

 

Link to comment
  • Administrators

@TrickyTommy as I explained in reply, that's bad practice and you shouldn't do it. What if on the off-chance the clientside didn't load in 2500ms? Then you're screwed.

Do it the way I suggested by having an onClientResourceStart which makes a call to the serverside - then you know that the clientside is definitely loaded.

  • Thanks 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...