1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-08-06 09:20:57 +02:00
parent e85f2d3e0d
commit 8290e409ee
223 changed files with 420 additions and 0 deletions

View file

@ -0,0 +1 @@
Install Sandy Map Data (check the server console)

View file

@ -0,0 +1,21 @@
fx_version 'bodacious'
game 'gta5'
this_is_a_map 'yes'
author 'Prompt Mods'
version "1.0.0"
escrow_ignore {
'stream/unlocked/**'
}
-- scripts --
lua54 'yes'
server_scripts{
'sv_Tokens.lua',
'sv_MapChainHandler.lua',
'sv_MapVersionCheck.lua'
}
dependency '/assetpacks'

Binary file not shown.

View file

@ -0,0 +1 @@
if you want your gates to the compound to be closed to use doorlock and etc, replace this ymap inside prompt_sandy_mechanic\stream\exterior\unlocked

View file

@ -0,0 +1,261 @@
Config = {
SpawnDistance = 80.0, -- Distancia para spawnear los props
Props = {
lift_2 = {
name = "prompt_sandy_is_lift_2",
model = "prompt_sandy_is_lift_2",
coords = vector3(1708.439, 3692.678, 34.249),
rotation = vector3(0.0, 0.0, 0.0),
collision = {
name = "prompt_sandy_is_lift_col_2",
model = "prompt_sandy_is_lift_col_2",
coords = vector3(1708.439, 3692.678, 33.4975),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1708.439, 3692.678, 33.4975),
endCoords = vector3(1708.439, 3692.678, 35.4),
moveType = "coords",
liftSettings = {
upDelay = 300,
upSpeedFactor = 0.9,
downSpeedFactor = 0.9,
upCurve = "easeInQuad",
downCurve = "easeOutQuad"
}
},
animations = {
dict = "prompt_sandy_is_lift_new_new",
open = "prompt_sandy_is_lift_opened",
close = "prompt_sandy_is_lift_closed",
static = "prompt_sandy_is_lift_static",
duration = 5000
},
interactionZone = {
coords = vector3(1707.439, 3693.778, 34.249),
size = vector3(2.0, 2.0, 2.0),
rotation = 0.0
}
},
-- Lift 3
lift_3 = {
name = "prompt_sandy_is_lift_3",
model = "prompt_sandy_is_lift_2",
coords = vector3(1705.495, 3697.778, 34.2498),
rotation = vector3(0.0, 0.0, 0.0),
collision = {
name = "prompt_sandy_is_lift_col_3",
model = "prompt_sandy_is_lift_col_2",
coords = vector3(1705.495, 3697.778, 33.4973),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1705.495, 3697.778, 33.4973),
endCoords = vector3(1705.495, 3697.778, 35.4),
moveType = "coords",
liftSettings = {
upDelay = 300,
upSpeedFactor = 0.9,
downSpeedFactor = 0.9,
upCurve = "easeInQuad",
downCurve = "easeOutQuad"
}
},
animations = {
dict = "prompt_sandy_is_lift_new_new",
open = "prompt_sandy_is_lift_opened",
close = "prompt_sandy_is_lift_closed",
static = "prompt_sandy_is_lift_static",
duration = 5000
},
interactionZone = {
coords = vector3(1704.495, 3698.778, 34.2498),
size = vector3(2.0, 2.0, 2.0),
rotation = 0.0
}
},
-- Lift 4
lift_4 = {
name = "prompt_sandy_is_lift_4",
model = "prompt_sandy_is_lift_2",
coords = vector3(1711.326, 3687.679, 34.2498),
rotation = vector3(0.0, 0.0, 0.0),
collision = {
name = "prompt_sandy_is_lift_col_4",
model = "prompt_sandy_is_lift_col_2",
coords = vector3(1711.326, 3687.679, 33.4973),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1711.326, 3687.679, 33.4973),
endCoords = vector3(1711.326, 3687.679, 35.4),
moveType = "coords",
liftSettings = {
upDelay = 300,
upSpeedFactor = 0.9,
downSpeedFactor = 0.9,
upCurve = "easeInQuad",
downCurve = "easeOutQuad"
}
},
animations = {
dict = "prompt_sandy_is_lift_new_new",
open = "prompt_sandy_is_lift_opened",
close = "prompt_sandy_is_lift_closed",
static = "prompt_sandy_is_lift_static",
duration = 5000
},
interactionZone = {
coords = vector3(1710.326, 3688.679, 34.2498),
size = vector3(2.0, 2.0, 2.0),
rotation = 0.0
}
},
garage_rollup_1 = {
name = "garage_rollup_1",
model = "prompt_sandy_is_garage_rollup_2",
coords = vector3(1714.93091, 3689.38037, 33.22947),
rotation = vector3(0.0, 0.0, 30.0),
collision = {
name = "garage_rollup_col_1",
model = "prompt_sandy_is_garage_rollup_col_2",
coords = vector3(1714.885, 3689.190, 35.282),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1714.885, 3689.190, 35.724),
endCoords = vector3(1714.885, 3689.190, 39.059),
moveType = "coords",
openDelay = 0,
closeDelay = 0.1
},
animations = {
dict = "anim@prompt_sandy_is_lift_new",
open = "prompt_sandy_is_garage_rollup",
close = "prompt_sandy_is_garage_rollup_closing",
static = "prompt_sandy_is_garage_rollup_static",
duration = 5000
},
interactionZone = {
coords = vector3(1714.93091, 3689.38037, 33.22947),
size = vector3(3.0, 3.0, 3.0),
rotation = 0.0
}
},
garage_rollup_2 = {
name = "garage_rollup_2",
model = "prompt_sandy_is_garage_rollup_2",
coords = vector3(1712.00476, 3694.44873, 33.22947),
rotation = vector3(0.0, 0.0, 30.0),
collision = {
name = "garage_rollup_col_2",
model = "prompt_sandy_is_garage_rollup_col_2",
coords = vector3(1711.945, 3694.260, 35.282),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1711.945, 3694.260, 35.724),
endCoords = vector3(1711.945, 3694.260, 39.059),
moveType = "coords",
openDelay = 0,
closeDelay = 0.1
},
animations = {
dict = "anim@prompt_sandy_is_lift_new",
open = "prompt_sandy_is_garage_rollup",
close = "prompt_sandy_is_garage_rollup_closing",
static = "prompt_sandy_is_garage_rollup_static",
duration = 5000
},
interactionZone = {
coords = vector3(1711.872, 3694.372, 33.22947),
size = vector3(3.0, 3.0, 3.0),
rotation = 0.0
}
},
garage_rollup_3 = {
name = "garage_rollup_3",
model = "prompt_sandy_is_garage_rollup_2",
coords = vector3(1709.12146, 3699.44287, 33.22947),
rotation = vector3(0.0, 0.0, 30.0),
collision = {
name = "garage_rollup_col_3",
model = "prompt_sandy_is_garage_rollup_col_2",
coords = vector3(1709.065, 3699.260, 35.282),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1709.065, 3699.260, 35.724),
endCoords = vector3(1709.065, 3699.260, 39.059),
moveType = "coords",
openDelay = 0,
closeDelay = 0.1
},
animations = {
dict = "anim@prompt_sandy_is_lift_new",
open = "prompt_sandy_is_garage_rollup",
close = "prompt_sandy_is_garage_rollup_closing",
static = "prompt_sandy_is_garage_rollup_static",
duration = 5000
},
interactionZone = {
coords = vector3(1708.996, 3699.302, 33.22947),
size = vector3(3.0, 3.0, 3.0),
rotation = 0.0
}
},
garage_rollup_4 = {
name = "garage_rollup_4",
model = "prompt_sandy_is_garage_rollup_2",
coords = vector3(1706.1272, 3704.629, 33.22947),
rotation = vector3(0.0, 0.0, 30.0),
collision = {
name = "garage_rollup_col_4",
model = "prompt_sandy_is_garage_rollup_col_2",
coords = vector3(1706.065, 3704.450, 35.282),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1706.065, 3704.450, 35.724),
endCoords = vector3(1706.065, 3704.450, 39.059),
moveType = "coords",
openDelay = 0,
closeDelay = 0.1
},
animations = {
dict = "anim@prompt_sandy_is_lift_new",
open = "prompt_sandy_is_garage_rollup",
close = "prompt_sandy_is_garage_rollup_closing",
static = "prompt_sandy_is_garage_rollup_static",
duration = 5000
},
interactionZone = {
coords = vector3(1706.1272, 3704.629, 33.22947),
size = vector3(3.0, 3.0, 3.0),
rotation = 0.0
}
},
garage_rollup_5 = {
name = "garage_rollup_5",
model = "prompt_sandy_is_garage_rollup_2",
coords = vector3(1703.093, 3709.88428, 33.22947),
rotation = vector3(0.0, 0.0, 30.0),
collision = {
name = "garage_rollup_col_5",
model = "prompt_sandy_is_garage_rollup_col_2",
coords = vector3(1703.035, 3709.690, 35.282),
rotation = vector3(0.0, 0.0, 0.0),
startCoords = vector3(1703.035, 3709.690, 35.724),
endCoords = vector3(1703.035, 3709.690, 39.059),
moveType = "coords",
openDelay = 0,
closeDelay = 0.1
},
animations = {
dict = "anim@prompt_sandy_is_lift_new",
open = "prompt_sandy_is_garage_rollup",
close = "prompt_sandy_is_garage_rollup_closing",
static = "prompt_sandy_is_garage_rollup_static",
duration = 5000
},
interactionZone = {
coords = vector3(1703.093, 3709.88428, 33.22947),
size = vector3(3.0, 3.0, 3.0),
rotation = 0.0
}
}
}
}

View file

@ -0,0 +1,48 @@
fx_version 'bodacious'
game 'gta5'
this_is_a_map 'yes'
lua54 'yes'
-- map by---:
author 'Prompt Studio'
scripts_author 'Infames Dev'
description 'Sandy Shores Mechanic'
version '1.0.3'
data_file 'DLC_ITYP_REQUEST' 'stream/anims/prompt_sandy_compound_anims.ytyp'
files {
'stream/anims/prompt_sandy_compound_anims.ytyp'
}
escrow_ignore {
'stream/exterior/unlocked/**',
'stream/interior/unlocked/**',
'config.lua',
'open_config.lua',
'open_functions.lua'
}
shared_scripts {
'@ox_lib/init.lua',
'config.lua',
'open_config.lua'
}
client_scripts {
'open_functions.lua',
'client/*.lua'
}
server_scripts {
'sv_loader.lua',
'server/*.lua',
--[['sv_Tokens.lua',
'sv_MapChainHandler.lua',
'sv_MapVersionCheck.lua'--]]
}
dependency '/assetpacks'
dependency '/assetpacks'

View file

@ -0,0 +1,12 @@
Config.EnableAnimations = true -- Enable/Disable all animated props
Config.EnablePlayerAnimations = true -- Enable/Disable player interaction animations
Config.Messages = {
interactButton = "Interact",
noAccess = "You don't have access to this object",
alreadyInUse = "This object is already in use",
menuTitle = "Animated Objects",
testAllAnimations = "Test all animations",
open = "Open",
close = "Close",
}

View file

@ -0,0 +1,75 @@
--[[
OPEN SOURCE FUNCTIONS FOR CUSTOM INTEGRATIONS
These functions allow you to add custom checks, permissions, and interactions
NOTE: These functions run on CLIENT SIDE - use callbacks for server data
Example 1: General interaction check (distance, items, conditions, etc.)
function CanPlayerInteract(propName, serverId)
local ped = PlayerPedId()
if propName == "prompt_sandy_is_garage_rollup" then
-- Check if player has specific item (using callback to server)
local hasKey = lib.callback.await('garage:hasKey', false)
return hasKey
elseif propName == "prompt_sandy_is_lift" then
return IsPedInAnyVehicle(ped, false) -- Must be in vehicle to use lift
end
return true
end
Example 2: Job/permission specific access (use callbacks for server data)
function HasJobAccess(propName, serverId)
if propName == "prompt_sandy_is_secret_door" then
local hasAccess = lib.callback.await('garage:checkMechanicAccess', false)
return hasAccess
elseif propName == "prompt_sandy_is_floorgate" then
local isAdmin = lib.callback.await('garage:checkAdminAccess', false)
return isAdmin
end
return true
end
Example 3: Custom labels based on player data
function GetCustomLabel(propName, serverId, defaultLabel)
if propName == "prompt_sandy_is_garage_rollup" then
local hasAccess = lib.callback.await('garage:checkMechanicAccess', false)
if hasAccess then
return "Open/Close Garage Door"
else
return "Access Denied - Mechanics Only"
end
elseif propName == "prompt_sandy_is_engine_full" then
return "Use Engine Lift - $50"
end
return defaultLabel
end
Example 4: Custom actions on interaction
function OnPropInteraction(propName, serverId, propState)
if propName == "prompt_sandy_is_secret_door" then
TriggerEvent('garage:showSecretMenu')
elseif propName == "prompt_sandy_is_engine_full" then
TriggerServerEvent('garage:chargeEngineUse', propState)
lib.notify({
title = 'Engine Lift',
description = 'Engine lift ' .. (propState and "lowered" or "raised"),
type = 'success'
})
end
end
]]
function CanPlayerInteract(propName, serverId)
return true
end
function HasJobAccess(propName, serverId)
return true
end
function GetCustomLabel(propName, serverId, defaultLabel)
return defaultLabel
end
function OnPropInteraction(propName, serverId, propState)
end

View file

@ -0,0 +1 @@
Hello, all info about all our maps can be found here: https://prompt-studio.gitbook.io/prompt-studio

Some files were not shown because too many files have changed in this diff Show more