ed
This commit is contained in:
		
							parent
							
								
									d83dc01004
								
							
						
					
					
						commit
						29c786ff04
					
				
					 3 changed files with 31 additions and 206 deletions
				
			
		|  | @ -33,7 +33,7 @@ noTools = "Du hast nicht das benötigte Werkzeug!", | ||||||
| cooldown = "Du musst warten, bevor du den nächsten Überfall starten kannst!", | cooldown = "Du musst warten, bevor du den nächsten Überfall starten kannst!", | ||||||
| globalCooldown = "Diese Art von Überfall ist derzeit gesperrt!", | globalCooldown = "Diese Art von Überfall ist derzeit gesperrt!", | ||||||
| notEnoughPolice = "Es sind nicht genug Polizisten in der Stadt!", | notEnoughPolice = "Es sind nicht genug Polizisten in der Stadt!", | ||||||
| policeMessage = "Container Einbruch in der Nähe von %s", -- Diese Zeile fehlt | policeMessage = "Einbruch in der Nähe von %s", -- Diese Zeile fehlt | ||||||
| alreadyRobbed = "Dieser Container wurde bereits kürzlich ausgeraubt!", | alreadyRobbed = "Dieser Container wurde bereits kürzlich ausgeraubt!", | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @ -1,125 +1,37 @@ | ||||||
| Open = false | -- Replace the existing onResourceStart event handler with this: | ||||||
| cam = nil | AddEventHandler('onResourceStart', function(resourceName) | ||||||
| Peds = {} |     if (GetCurrentResourceName() == resourceName) then | ||||||
| local Actions = {} |         -- Use next() instead of # to check if the table has any entries | ||||||
|  |         if next(Config.peds) ~= nil then  | ||||||
|  |             print("Resource started, spawning peds") | ||||||
|  |             SpawnPeds()  | ||||||
|  |         else | ||||||
|  |             print("Resource started, but Config.peds is empty") | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  | end) | ||||||
|  |  | ||||||
|  | -- Also update the framework loading event handler: | ||||||
| if Config.FrameworkLoadinEvent ~= '' then | if Config.FrameworkLoadinEvent ~= '' then | ||||||
|     RegisterNetEvent(Config.FrameworkLoadinEvent, function() |     RegisterNetEvent(Config.FrameworkLoadinEvent, function() | ||||||
|         SpawnPeds() |         print("Framework loading event triggered") | ||||||
|  |         if next(Config.peds) ~= nil then | ||||||
|  |             print("Spawning peds after framework loaded") | ||||||
|  |             SpawnPeds() | ||||||
|  |         else | ||||||
|  |             print("Framework loaded, but Config.peds is empty") | ||||||
|  |         end | ||||||
|     end) |     end) | ||||||
| end | end | ||||||
|  |  | ||||||
| AddEventHandler('onResourceStart', function(resourceName) | -- Add a debug command to help troubleshoot | ||||||
|     if (GetCurrentResourceName() == resourceName) then | RegisterCommand('debugpeds', function() | ||||||
|         if #Config.peds ~= 0 then SpawnPeds() end |     print("Debug peds command triggered") | ||||||
|  |     local count = 0 | ||||||
|  |     for k, v in pairs(Config.peds) do | ||||||
|  |         count = count + 1 | ||||||
|  |         print("Found ped: " .. k) | ||||||
|     end |     end | ||||||
| end) |     print("Total peds in config: " .. count) | ||||||
|  |     SpawnPeds() | ||||||
| ---@param ped number # The id of the ped | end, false) | ||||||
| ---@param data table # The data for the interaction |  | ||||||
| ---@param zoom number # Camera zoom level (optional, default: 40.0) |  | ||||||
| ---@param x number # Camera X position (optional, default: 0) |  | ||||||
| ---@param y number # Camera Y position (optional, default: 1.5) |  | ||||||
| ---@param z number # Camera Z position (optional, default: 0.3) |  | ||||||
| ---@param rotX number # Camera X rotation (optional, default: 0.0) |  | ||||||
| ---@param rotY number # Camera Y rotation (optional, default: 0.0) |  | ||||||
| ---@param rotZ number # Camera Z rotation (optional, default: GetEntityHeading(ped) + 180) |  | ||||||
| OpenDialog = function(ped, data, zoom, x, y, z, rotX, rotY, rotZ) |  | ||||||
|     -- Setting defaults |  | ||||||
|     local newX, newY, newZ = x or 0, y or 1.5, z or 0.3 |  | ||||||
|     local newRotX, newRotY, newRotZ = rotX or 0.0, rotY or 0.0, rotZ or GetEntityHeading(ped) + 180 |  | ||||||
|     local fov = zoom or 40.0 |  | ||||||
|  |  | ||||||
|     local coords = GetOffsetFromEntityInWorldCoords(ped, newX, newY, newZ) |  | ||||||
|  |  | ||||||
|     -- camera setup |  | ||||||
|     cam = CreateCam('DEFAULT_SCRIPTED_CAMERA', true) |  | ||||||
|     SetEntityLocallyInvisible(PlayerPedId()) |  | ||||||
|     SetCamActive(cam, true) |  | ||||||
|     RenderScriptCams(true, true, 500, true, true) |  | ||||||
|     SetCamCoord(cam, coords.x, coords.y, coords.z + 0.2) |  | ||||||
|     SetCamRot(cam, newRotX, newRotY, newRotZ, 5) |  | ||||||
|     SetCamFov(cam, fov) |  | ||||||
|  |  | ||||||
|     local Dialog = data |  | ||||||
|  |  | ||||||
|     local function extractEvents(tbl) |  | ||||||
|         for k, v in pairs(tbl) do |  | ||||||
|             if type(v) == "table" then |  | ||||||
|                 extractEvents(v) |  | ||||||
|             elseif k == "event" and type(v) == "string" then |  | ||||||
|                 Actions[v] = v |  | ||||||
|             end |  | ||||||
|         end |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     extractEvents(Dialog) |  | ||||||
|  |  | ||||||
|     SetNuiFocus(true, true) |  | ||||||
|     SendNUIMessage({ |  | ||||||
|         type = 'New', |  | ||||||
|         data = data |  | ||||||
|     }) |  | ||||||
|     Open = true |  | ||||||
|     SetInvisible() |  | ||||||
| end |  | ||||||
|  |  | ||||||
| SetDialog = function(data) |  | ||||||
|     SendNUIMessage({ |  | ||||||
|         type = 'Set', |  | ||||||
|         data = data |  | ||||||
|     }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| CloseDialog = function() |  | ||||||
|     Open = false |  | ||||||
|     SendNUIMessage({ |  | ||||||
|         type = 'Close', |  | ||||||
|     }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| SpawnPedByID = function(id, data) |  | ||||||
|     Peds[id] = data |  | ||||||
|     SpawnPed(id, data) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| DeletePedByID = function(id) |  | ||||||
|     if Peds[id].ped then |  | ||||||
|         exports['qb-target']:RemoveTargetEntity(Peds[id].ped) |  | ||||||
|         DeleteEntity(Peds[id].ped) |  | ||||||
|         Peds[id] = nil |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| RegisterNuiCallback("click", function(data, cb) |  | ||||||
|     if data.data then |  | ||||||
|         SendNUIMessage({ |  | ||||||
|             type = 'Continue', |  | ||||||
|             data = data.data |  | ||||||
|         }) |  | ||||||
|         cb(false) |  | ||||||
|         return |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     if data.close then |  | ||||||
|         SetNuiFocus(false, false) |  | ||||||
|         if cam and DoesCamExist(cam) then |  | ||||||
|             RenderScriptCams(false, true, 500, true, true) |  | ||||||
|             DestroyCam(cam, true) |  | ||||||
|         end |  | ||||||
|         CloseDialog() |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     if Actions[data.event] then |  | ||||||
|         if data.server then |  | ||||||
|             TriggerServerEvent(Actions[data.event], data) |  | ||||||
|         else |  | ||||||
|             TriggerEvent(Actions[data.event], data) |  | ||||||
|         end |  | ||||||
|     end |  | ||||||
| end) |  | ||||||
|  |  | ||||||
| exports('OpenDialog', OpenDialog) |  | ||||||
| exports('SetDialog', SetDialog) |  | ||||||
| exports('CloseDialog', CloseDialog) |  | ||||||
| exports('SpawnPed', SpawnPedByID) |  | ||||||
|  |  | ||||||
|  | @ -1,87 +0,0 @@ | ||||||
|  |  | ||||||
| RegisterCommand('deleteped', function() |  | ||||||
|     DeletePedByID('test') |  | ||||||
| end, false) |  | ||||||
|  |  | ||||||
| RegisterCommand('spawnped', function() |  | ||||||
|     SpawnPedByID('test', { |  | ||||||
|         label = 'Talk to stranger', |  | ||||||
|         icon = 'fa-solid fa-comment', |  | ||||||
|         model = "csb_avon", |  | ||||||
|         coords = vector3(165.48, 6612.81, 31.9), |  | ||||||
|         heading = 170, |  | ||||||
|         data = { |  | ||||||
|             firstname = 'John', |  | ||||||
|             lastname = 'Doe', |  | ||||||
|             text = 'Hey bud, how ya doin.', |  | ||||||
|             buttons = { |  | ||||||
|                 {  |  | ||||||
|                     text = 'Im ok, how are you?', |  | ||||||
|                     data = { |  | ||||||
|                         text = 'Im cool rn, see you around!', |  | ||||||
|                         buttons = { |  | ||||||
|                             { |  | ||||||
|                                 text = 'Se ya', |  | ||||||
|                                 close = true |  | ||||||
|                             }, |  | ||||||
|                         } |  | ||||||
|                     }  |  | ||||||
|                 }, |  | ||||||
|                 {  |  | ||||||
|                     text = 'No sorry, im gonna leave',  |  | ||||||
|                     close = true  |  | ||||||
|                 }, |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }) |  | ||||||
| end, false) |  | ||||||
|  |  | ||||||
| RegisterNetEvent('con:mechanic', function(ped) |  | ||||||
|     rep = 1 |  | ||||||
|     data = { |  | ||||||
|         firstname = 'John', |  | ||||||
|         lastname = 'Doe', |  | ||||||
|         text = 'Hey bud, what can i do for you', |  | ||||||
|         type = 'Mechanic', |  | ||||||
|         rep = rep, |  | ||||||
|         buttons = { |  | ||||||
|             { text = "I wanna clock in", data = { |  | ||||||
|                 text = 'Alright', |  | ||||||
|                 buttons = { |  | ||||||
|                     { text = 'Clock in/out', event = 'con:clockin', close = true }, |  | ||||||
|                     { text = 'Whatever, changed my mind', event = 'con:back' }, |  | ||||||
|                 } |  | ||||||
|             }}, |  | ||||||
|             { text = "I'm gonna leave", close = true }, |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     OpenDialog(ped, data) |  | ||||||
| end) |  | ||||||
|  |  | ||||||
| RegisterNetEvent('con:back', function() |  | ||||||
|     data = { |  | ||||||
|         firstname = 'John', |  | ||||||
|         lastname = 'Doe', |  | ||||||
|         text = 'Hey bud, what can i do for you', |  | ||||||
|         type = 'Mechanic', |  | ||||||
|         rep = '2', |  | ||||||
|         buttons = { |  | ||||||
|             { text = "I wanna clock in", data = { |  | ||||||
|                     text = 'Alright', |  | ||||||
|                     buttons = { |  | ||||||
|                         { text = 'Clock in/out', event = 'con:clockin', close = true }, |  | ||||||
|                         { text = 'Whatever changed my mind', event = 'con:back' }, |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|             { text = "I'm gonna leave", close = true }, |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     SetDialog(data) |  | ||||||
| end) |  | ||||||
|  |  | ||||||
| RegisterNetEvent('con:clockin', function() |  | ||||||
|     print('123') |  | ||||||
|     TriggerEvent('QBCore:Notify', "clocked in", 'success') |  | ||||||
| end) |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nordi98
						Nordi98