Rolplay

Members
  • Content Count

    33
  • Joined

  • Last visited

Community Reputation

2 Neutral

About Rolplay

  • Rank
    Rat

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I think, the car separate is too hard for me, i never heard about tables so its very hard for now
  2. Thank you, i try to make that. While i was working, i found a bug. The script changing the texture when the indicator turned on, but if it was off, there are a black texture. In small indicators that is indiscernible but in bigger indicators it is very "ugly". U can see, if the script is'nt running, there is the texture, but if i start the script that going to black.
  3. So hi again! I try to make the separatem but i cant do perfect. This is the left side: local indicator_blink_duration_ms = 333; -- time in milliseconds that the indicator should blink. local vehicle_indicator_lights = { engineApplyShaderToWorldTexture(shader_right, "p", n); engineApplyShaderToWorldTexture(shader_left, "l", n); }; local function getVehicleIndicatorLights(vehicle) if (vehicle_indicator_lights[vehicle]) then return vehicle_indicator_lights[vehicle]; end local info = {}; info.indicator_left_on = false; info.indicator_left_start = false; info.indicator_right_on = false; info.indicator.right_start = false; info.vehicle = vehicle; vehicle_indicator_lights[vehicle] = info; return info; end local function vehicle_left_down() seat = getPedOccupiedVehicleSeat(localPlayer) if seat then if seat and seat==0 then triggerServerEvent("onVehicleTurnOnIndicator", root, "left") end if (info.indicator_left_on == true) then triggerServerEvent("onVehicleTurnOffIndicator", root, "left") end end end bindKey("mouse1", "down", vehicle_left_down) function destroy() if (getElementType(source) == "vehicle") then if (vehicle_indicator_lights[vehicle] == true) then engineRemoveShaderToWorldTexture(shader_right, "p", n) engineRemoveShaderToWorldTexture(shader_left, "l", n) vehicle_indicator_lights[source] = nil; end end end addEventHandler("onClientElementDestroy", root, destroy ) function left_indicator() local now = getTickCount(); for _,info in pairs(vehicle_indicator_lights) do local vehicle = info.vehicle; if (indicator_left_on) then local passed_time_ms = now - info.indicator_left_start; local period = 1 - math.floor(( passed_time_ms / indicator_blink_duration_ms ) % 2); dxSetShaderValue(shader_left, "intensity", 1); if (period == 0) then dxSetShaderValue(shader_left, "intensity", 0); end end end -- TODO: add the same for the right indicator. end addEventHandler("onClientRender", root, left_indicator) addEvent("onClientVehicleTurnOnIndicator", true); addEventHandler("onClientVehicleTurnOnIndicator", root, function(left_indicator) if (left_indicator == "left") then info.indicator_left_on = true; info.indicator_left_start = getTickCount(); end end ); addEvent("onClientVehicleTurnOffIndicator", true); addEventHandler("onClientVehicleTurnOffIndicator", root, function(left_indicator) if (left_indicator == "left") then dxSetShaderValue(shader_left, "intensity", 0); info.indicator_left_on = false; end end );
  4. Thank you, i made it The last part is the separate +1: can you help me edit the shader, for fade in and fade out effect? Is that possible? I mean the texture appears smooth.
  5. I found the bug, i have a line what i made for debug a bug. Without this if i left the car, and dont release the key button, the indicator is working. seat = getPedOccupiedVehicleSeat(localPlayer) if seat then So my idea is this: Turn on with mouse click and turn off with click again. Can u give me a function for this? And now, i try to make the car indicator logic separated
  6. EDIT: We tested it again, and its visible, but only visible for other car drivers and passengers.
  7. So i tested the client-server communication with my friend, but he dont see the indicator. Only works on client side, why?
  8. I dont really understand what i need to do,so i updated my indicator_left and indicator_right code with this: addEventHandler("onClientRender", root, function() for _,info in pairs(vehicle_indicator_lights) do local vehicle = info.vehicle; -- TODO: update the left and right vehicle indicator light shaders. end end end ); And this is what i got: function left_indicator() local now = getTickCount(); seat = getPedOccupiedVehicleSeat(localPlayer) for _,info in pairs(vehicle_indicator_lights) do local vehicle = info.vehicle; if seat and seat==0 then if (indicator_left_on) then --functions end else dxSetShaderValue(shader_left, "intensity", 0); end end end It is good? And if i add this to my code: local info = {}; info.indicator_left_on = false; info.indicator_left_start = false; info.indicator_right_on = false; info.indicator.right_start = false; info.vehicle = vehicle; I need to delete this? local indicator_blink_duration_ms = 333; -- time in milliseconds that the indicator should blink. local indicator_left_on = false; -- is the left indicator on? local indicator_left_start; local indicator_right_on = false; local indicator_right_start; And what do you mean in this? : -- TODO: create the left and right shaders and put them into the table. -- TODO: destroy the left and right shaders if vehicle_indicator_lights[source] is a table. I dont really understand how tables are working
  9. local indicator_blink_duration_ms = 333; -- time in milliseconds that the indicator should blink. local indicator_left_on = false; -- is the left indicator on? local indicator_left_start; local indicator_right_on = false; local indicator_right_start; local function vehicle_left_down() triggerServerEvent("onVehicleTurnOnIndicator", root, "left") end bindKey("mouse1", "down", vehicle_left_down) local function vehicle_left_up() triggerServerEvent("onVehicleTurnOffIndicator", root, "left") end bindKey("mouse1", "up", vehicle_left_up) function left_indicator() local now = getTickCount(); seat = getPedOccupiedVehicleSeat(localPlayer) if seat and seat==0 then if (indicator_left_on) then local passed_time_ms = now - indicator_left_start; local period = 1 - math.floor(( passed_time_ms / indicator_blink_duration_ms ) % 2); local vehicle = getPedOccupiedVehicle (localPlayer) if vehicle then dxSetShaderValue(shader_left, "intensity", 1); end if (period == 0) then dxSetShaderValue(shader_left, "intensity", 0); end end else dxSetShaderValue(shader_left, "intensity", 0); end -- TODO: add the same for the right indicator. end addEventHandler("onClientRender", root, left_indicator) addEvent("onClientVehicleTurnOnIndicator", true); addEventHandler("onClientVehicleTurnOnIndicator", root, function(left_indicator) if (left_indicator == "left") then indicator_left_on = true; indicator_left_start = getTickCount(); end end ); addEvent("onClientVehicleTurnOffIndicator", true); addEventHandler("onClientVehicleTurnOffIndicator", root, function(left_indicator) if (left_indicator == "left") then dxSetShaderValue(shader_left, "intensity", 0); indicator_left_on = false; end end ); This is the code of left side.
  10. So, the syncing is technically finished, right? I dont know, because i'm waiting my friend to check. For now, please can you help me in "how to allow indicator lights for each vehicle separately?" +1 local enabledVehicleMod = {} addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function () for index, value in ipairs (elements) do if tostring(index) ~= tostring(value) then changeVehicleMod (value[1], value[2]) end end for i=1 , 10000 do if not enabledVehicleMod[i] then enabledVehicleMod[i] = 1 end end end) function changeVehicleMod (filename,id) if id and filename then if getVehicleNameFromModel(id) then if fileExists("vehicle/"..filename..".txd") then txd = engineLoadTXD("vehicle/"..filename..".txd", id ) engineImportTXD(txd, id) end if fileExists("vehicle/"..filename..".dff") then dff = engineLoadDFF("vehicle/"..filename..".dff", id ) engineReplaceModel(dff, id) end else outputChatBox("asd") end end end I have this vecihle import and works perfectly whit all cars, but if i want to import my own car it is not working Error code: https://imgur.com/ytasGYP
  11. I need to complete my original onclientrender with this, or i need to write an another? addEventHandler("onClientRender", root, function() local now = getTickCount(); if (indicator_right_on) then local passed_time_ms = now - indicator_right_start; local period = 1 - math.floor(( passed_time_ms / indicator_blink_duration_ms ) % 2); dxSetShaderValue(shader_right, "intensity", period); end -- TODO: add the same for the left indicator. end );
  12. Ohh, i think i understand but not 100% from this 😂 Server: addEvent("onVehicleTurnOnIndicator", true); addEventHandler("onVehicleTurnOnIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if vehicle then triggerClientEvent ( "onClientVehicleTurnOnIndicator", vehicle, right_indicator) end end ); addEvent("onVehicleTurnOffIndicator", true); addEventHandler("onVehicleTurnOffIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if vehicle then triggerClientEvent ( "onClientVehicleTurnOffIndicator", vehicle, right_indicator) end end ); Client(key handler): local function vehicle_right_down() triggerServerEvent("onVehicleTurnOnIndicator", root,right_indicator) end bindKey("mouse2", "down", vehicle_right_down) local function vehicle_right_up() triggerServerEvent("onVehicleTurnOffIndicator", root,right_indicator) end bindKey("mouse2", "up", vehicle_right_up) Client(event): addEvent("onClientVehicleTurnOnIndicator", true); addEventHandler("onClientVehicleTurnOnIndicator", root, function(right_indicator) indicator_right_on = true; indicator_right_start = getTickCount(); end ); addEvent("onClientVehicleTurnOffIndicator", true); addEventHandler("onClientVehicleTurnOffIndicator", root, function(right_indicator) dxSetShaderValue(shader_right, "intensity", 0); indicator_right_on = false; end ); Buuuuut, it is not working, so i failed again 😅
  13. I found a lot of mistakes, and i recreate, this is my script now: Server-side of right indicator: addEvent("onVehicleTurnOnIndicator", true); addEventHandler("onVehicleTurnOnIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if vehicle then triggerClientEvent ( "onClientVehicleTurnOnIndicator", vehicle, right_indicator) end end ); addEvent("onVehicleTurnOffIndicator", true); addEventHandler("onVehicleTurnOffIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if vehicle then triggerClientEvent ( "onClientVehicleTurnOffIndicator", vehicle, right_indicator) end end ); Client-side of left indicator event: addEvent("onClientVehicleTurnOnIndicator", true); addEventHandler("onClientVehicleTurnOnIndicator", root, function(right_indicator) local now = getTickCount(); if (indicator_right_on) then local passed_time_ms = ... local period = 1 - ... local vehicle = getPedOccupiedVehicle (localPlayer) if vehicle then dxSetShaderValue(shader_right, "intensity", 1); end end end ); addEvent("onClientVehicleTurnOffIndicator", true); addEventHandler("onClientVehicleTurnOffIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if (indicator_right_on) then local passed_time_ms = ... local period = 1 - .... if (period == 0) then dxSetShaderValue(shader_right, "intensity", 0); end end end );
  14. Ohh, thank you! I try to understand that. I copied the server-side from here, and make this on client side: function right_indicator() local now = getTickCount(); seat = getPedOccupiedVehicleSeat(localPlayer) if (indicator_right_on) then local passed_time_ms =-- local period = -- local vehicle = -- if vehicle then dxSetShaderValue(shader_right, "intensity", 1,vehicle); triggerServerEvent("onVehicleTurnOnIndicator", root,right_indicator) end if (period == 0) then dxSetShaderValue(shader_right, "intensity", 0,vehicle); triggerServerEvent("onVehicleTurnOffIndicator", root,right_indicator) end end end addEventHandler("onClientRender", root, right_indicator) addEvent("onClientVehicleTurnOnIndicator", true); addEventHandler("onClientVehicleTurnOnIndicator", root, function(right_indicator) function right_indicator() local now = getTickCount(); seat = getPedOccupiedVehicleSeat(localPlayer) if (indicator_right_on) then local passed_time_ms =-- local period = -- local vehicle = -- if vehicle then dxSetShaderValue(shader_right, "intensity", 1,vehicle); triggerServerEvent("onVehicleTurnOnIndicator", root,right_indicator) end if (period == 0) then dxSetShaderValue(shader_right, "intensity", 0,vehicle); triggerServerEvent("onVehicleTurnOffIndicator", root,right_indicator) end end end );
  15. I tryed this, but didn't work. addEvent("onClientVehicleTurnOnIndicator", true); addEventHandler("onClientVehicleTurnOnIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if vehicle then triggerServerEvent ( "onVehicleTurnOnIndicator", vehicle, right_indicator) end end ); addEvent("onClientVehicleTurnOffIndicator", true); addEventHandler("onClientVehicleTurnOffIndicator", root, function(right_indicator) local vehicle = getPedOccupiedVehicle (client) if vehicle then triggerServerEvent ( "onVehicleTurnOffIndicator", vehicle, right_indicator) end end ); GN