Xwad Posted June 6, 2017 Share Posted June 6, 2017 (edited) Everythink is just working fine. The problem is that the triggerServerEvent is not triggering to the server. line: 43, 69, 75, 81, 87 CLIENT.LUA function create_weapon(veh) local x,y,z = getElementPosition(veh) local obj = createObject ( 357, x,y,z) attachElements ( obj, veh, 0,0,0,0,0,0 ) setElementData(localPlayer,"obj",obj) local gun1 = createWeapon(30, x,y,z) local gun2 = createWeapon(30, x,y,z) local gun3 = createWeapon(30, x,y,z) local gun4 = createWeapon(30, x,y,z) setElementData(localPlayer,"gun1",gun1) setElementData(localPlayer,"gun2",gun2) setElementData(localPlayer,"gun3",gun3) setElementData(localPlayer,"gun4",gun4) attachElements ( gun1, obj, 1.18, 0.24, 0, 0, -5, 0) attachElements ( gun2, obj, 1.18, -0.55, 0, 0, -5, 0) attachElements ( gun3, obj, 1.18, -0.55, 0.35, 0, -5, 0) attachElements ( gun4, obj, 1.18, 0.24, 0.35, 0, -5, 0) setWeaponState(gun1, "ready") setWeaponState(gun2, "ready") setWeaponState(gun3, "ready") setWeaponState(gun4, "ready") addEventHandler ( "onClientPreRender", root, rotate_object ) end function rotate_object() local veh = getPedOccupiedVehicle ( localPlayer ) local obj = getElementData(localPlayer,"obj") local _,_,rz = getVehicleComponentRotation(veh, "misc_a") local rx,_,_ = getVehicleComponentRotation(veh, "misc_b") triggerServerEvent("rotateWeapon", localPlayer, veh,obj,rx,rz) end fired1 = false fired2 = true fired3 = true fired4 = true function fire() if getKeyState( "mouse1" ) == true then local veh = getPedOccupiedVehicle(localPlayer) if isPedInVehicle(localPlayer) and getElementModel(veh) == 602 then if fired1 == false then local gun1 = getElementData (localPlayer, "gun1") fired1 = true fired2 = false triggerServerEvent ( "fire_server1", localPlayer,veh,gun1) elseif fired2 == false then local gun2 = getElementData (localPlayer, "gun2") fired2 = true fired3 = false triggerServerEvent ( "fire_server2", localPlayer,veh,gun2) elseif fired3 == false then local gun3 = getElementData (localPlayer, "gun3") fired3 = true fired4 = false triggerServerEvent ( "fire_server3", localPlayer,veh,gun3) elseif fired4 == false then local gun4 = getElementData (localPlayer, "gun4") fired4 = true fired1 = false triggerServerEvent ( "fire_server4", localPlayer,veh,gun4) end setTimer ( fire, 200, 1 ) end end end bindKey("mouse1", "down", fire) function fire_client(veh,gun1) outputChatBox("fire_client1",2,1,10) outputChatBox ( "gun1",255,0,100 ) fireWeapon(gun1) fireWeapon(gun1) local x,y,z = getElementPosition(veh) local sound_gun1 = playSound3D("files/shoot.wav",x,y,z, false) setSoundMaxDistance( sound_gun1, 500 ) setSoundVolume(sound_gun1, 1) end addEvent("fire_client", true) addEventHandler("fire_client", root, fire_client) function fire_client2(veh,gun2) outputChatBox("fire_client2",2,1,10) outputChatBox ( "gun2",255,0,100 ) fireWeapon(gun2) fireWeapon(gun2) local x,y,z = getElementPosition(veh) local sound_gun2 = playSound3D("files/shoot.wav",x,y,z, false) setSoundMaxDistance( sound_gun2, 500 ) setSoundVolume(sound_gun2, 1) end addEvent("fire_client2", true) addEventHandler("fire_client2", root, fire_client2) function fire_client3(veh,gun3) outputChatBox("fire_client3",2,1,10) outputChatBox ( "gun3",255,0,100 ) fireWeapon(gun3) fireWeapon(gun3) local x,y,z = getElementPosition(veh) local sound_gun3 = playSound3D("files/shoot.wav",x,y,z, false) setSoundMaxDistance( sound_gun3, 500 ) setSoundVolume(sound_gun3, 1) end addEvent("fire_client3", true) addEventHandler("fire_client3", root, fire_client3) function fire_client4(veh,gun4) outputChatBox("fire_client4",2,1,10) outputChatBox ( "gun4",255,0,100 ) fireWeapon(gun4) fireWeapon(gun4) local x,y,z = getElementPosition(veh) local sound_gun4 = playSound3D("files/shoot.wav",x,y,z, false) setSoundMaxDistance( sound_gun4, 500 ) setSoundVolume(sound_gun4, 1) end addEvent("fire_client4", true) addEventHandler("fire_client4", root, fire_client4) SERVER.LUA function rotateWeapon(veh,obj,rx,rz) rx = (-rx) setElementAttachedOffsets ( obj, 0, 0, 0, 0, rx+7, rz+96) end addEvent("rotateWeapon", true) addEventHandler("rotateWeapon", root, rotateWeapon) function fire_server1(veh,gun1) outputChatBox("fire_server1") triggerClientEvent("fire_client1", getRootElement(), veh,gun1) end addEvent("fire_server1", true) addEventHandler("fire_server1",getRootElement(), fire_server1) function fire_server2(veh,gun1) outputChatBox("fire_server2") triggerClientEvent("fire_client2", getRootElement(), veh,gun2) end addEvent("fire_server2", true) addEventHandler("fire_server2",getRootElement(), fire_server2) function fire_server3(veh,gun1) outputChatBox("fire_server3") triggerClientEvent("fire_client3", getRootElement(), veh,gun3) end addEvent("fire_server3", true) addEventHandler("fire_server3",getRootElement(), fire_server3) function fire_server4(veh,gun1) outputChatBox("fire_server4") triggerClientEvent("fire_client4", getRootElement(), veh,gun4) end addEvent("fire_server4", true) addEventHandler("fire_server4",getRootElement(), fire_server4) Edited June 6, 2017 by Xwad Link to comment
Moderators IIYAMA Posted June 6, 2017 Moderators Share Posted June 6, 2017 Show meta.xml Remove: gun1, gun2, gun3 and gun4 from the triggerServerEvent. Those elemens are clientside elements which shouldn't be trigger able. Link to comment
Einheit-101 Posted June 6, 2017 Share Posted June 6, 2017 Trigger server event for root instead of local player and re test Btw what are you working on this time? I thought you quit MTA lol Link to comment
Moderators IIYAMA Posted June 6, 2017 Moderators Share Posted June 6, 2017 @Einheit-101 root will accept everything, included players. There is nothing wrong with that. Link to comment
Einheit-101 Posted June 6, 2017 Share Posted June 6, 2017 (edited) I know but I had plenty of situations where it simply doesn't work with local player for whatever reason. €DIT: I believe resourceRoot is just as good but it saves some server CPU compared with root €DIT2: in any case you need to pass these weapons in another way to the server, I suggest the weapon base where they are attached to, because unlike the weapons, the weapon base exists server side. Then on the client you simply use getAttachedElements() to find the weapon that is attached to that base and fire that gun GG Edited June 6, 2017 by Einheit-101 Link to comment
DNL291 Posted June 7, 2017 Share Posted June 7, 2017 About line 43, check if 'veh' is a vehicle element: function rotate_object() local veh = getPedOccupiedVehicle ( localPlayer ) if veh then local _,_,rz = getVehicleComponentRotation(veh, "misc_a") local rx,_,_ = getVehicleComponentRotation(veh, "misc_b") if getElementData(localPlayer,"obj") then triggerServerEvent("rotateWeapon", localPlayer, veh,getElementData(localPlayer,"obj"),rx,rz) end end end Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now