forked from Simnation/Main
ed
This commit is contained in:
parent
cd945f7aff
commit
fdb2ec1452
3046 changed files with 68309 additions and 12 deletions
BIN
resources/[defaultmaps]/prompt_sandy_illegal_garage/.fxap
Normal file
BIN
resources/[defaultmaps]/prompt_sandy_illegal_garage/.fxap
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
220
resources/[defaultmaps]/prompt_sandy_illegal_garage/config.lua
Normal file
220
resources/[defaultmaps]/prompt_sandy_illegal_garage/config.lua
Normal file
|
@ -0,0 +1,220 @@
|
|||
Config = {
|
||||
-- Configuración general
|
||||
SpawnDistance = 50.0, -- Distancia para spawnear los props
|
||||
|
||||
Props = {
|
||||
lift = {
|
||||
name = "prompt_sandy_is_lift",
|
||||
label = {
|
||||
open = "Move Carlift Up",
|
||||
close = "Move Carlift Down"
|
||||
},
|
||||
model = "prompt_sandy_is_lift",
|
||||
coords = vector3(1997.284546, 3788.210449, 31.955318),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000),
|
||||
collision = {
|
||||
name = "prompt_sandy_is_lift_col",
|
||||
model = "prompt_sandy_is_lift_col",
|
||||
coords = vector3(1997.407715, 3788.036865, 31.222282),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000),
|
||||
startCoords = vector3(1997.408, 3788.037, 31.082),
|
||||
endCoords = vector3(1997.408, 3788.037, 33.366),
|
||||
moveType = "coords",
|
||||
liftSettings = {
|
||||
upDelay = 300,
|
||||
upSpeedFactor = 0.9,
|
||||
downSpeedFactor = 0.9,
|
||||
upCurve = "easeInQuad",
|
||||
downCurve = "easeOutQuad"
|
||||
}
|
||||
},
|
||||
animations = {
|
||||
dict = "prompt_sandy_is_lift_new",
|
||||
open = "prompt_sandy_is_lift_opened",
|
||||
close = "prompt_sandy_is_lift_closed",
|
||||
static = "prompt_sandy_is_lift_static",
|
||||
duration = 5000
|
||||
},
|
||||
interactionZone = {
|
||||
coords = vector3(1996.0273, 3789.3616, 32.2377),
|
||||
size = vector3(2.0, 2.0, 2.0),
|
||||
rotation = 0.0
|
||||
}
|
||||
},
|
||||
|
||||
-- Puerta de garaje enrollable
|
||||
garage_rollup = {
|
||||
name = "prompt_sandy_is_garage_rollup",
|
||||
label = {
|
||||
open = "Open Garage Door",
|
||||
close = "Close Garage Door"
|
||||
},
|
||||
model = "prompt_sandy_is_garage_rollup",
|
||||
coords = vector3(2002.761, 3791.376, 30.992),
|
||||
rotation = vector4(0.000, 0.000, 31.100, 0.965926),
|
||||
collision = {
|
||||
name = "prompt_sandy_is_garage_rollup_col",
|
||||
model = "prompt_sandy_is_garage_rollup_col",
|
||||
coords = vector3(2002.692017, 3791.269043, 32.968868),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000),
|
||||
startCoords = vector3(2002.692, 3791.269, 33.410),
|
||||
endCoords = vector3(2002.692, 3791.269, 36.745),
|
||||
moveType = "coords",
|
||||
openDelay = 0, -- 2.3s para desactivar colisión al abrir
|
||||
closeDelay = 0.1 -- 1.9s para activar colisión al cerrar
|
||||
},
|
||||
animations = {
|
||||
dict = "anim@prompt_sandy_is_lift",
|
||||
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(2002.792114, 3791.323730, 30.991865),
|
||||
size = vector3(3.0, 3.0, 3.0),
|
||||
rotation = 0.0
|
||||
}
|
||||
},
|
||||
|
||||
-- Puerta de piso
|
||||
floorgate = {
|
||||
name = "prompt_sandy_is_floorgate",
|
||||
label = {
|
||||
open = "Open Secret Floor Door",
|
||||
close = "Close Secret Floor Door"
|
||||
},
|
||||
model = "prompt_sandy_is_floorgate",
|
||||
coords = vector3(2001.281128, 3790.399414, 31.222427),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000),
|
||||
collision = {
|
||||
name = "prompt_sandy_is_floorgate_col",
|
||||
model = "prompt_sandy_is_floorgate_col",
|
||||
coords = vector3(2001.281128, 3790.399414, 31.222427),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000),
|
||||
startRotation = vector3(0.0, 0.0, 0.0),
|
||||
endRotation = vector3(9.047, -15.247, -1.275),
|
||||
moveType = "rotation"
|
||||
},
|
||||
animations = {
|
||||
dict = "anim@prompt_sandy_is_lift",
|
||||
open = "prompt_sandy_is_floorgate",
|
||||
close = "prompt_sandy_is_floorgate_closing",
|
||||
static = "prompt_sandy_is_floorgate_static",
|
||||
duration = 5000
|
||||
},
|
||||
interactionZone = {
|
||||
coords = vector3(2000.1112, 3793.0527, 32.2390),
|
||||
size = vector3(2.0, 2.0, 2.0),
|
||||
rotation = 0.0
|
||||
},
|
||||
|
||||
-- ADD THIS:
|
||||
extraZones = {
|
||||
{
|
||||
coords = vector3(1990.121, 3781.935, 28.93), -- example coords for the second button
|
||||
size = vector3(2.0, 2.0, 2.0),
|
||||
rotation = 0.0
|
||||
}
|
||||
},
|
||||
|
||||
onExecute = function()
|
||||
local liftState = GlobalState.ilegal_carwash and GlobalState.ilegal_carwash["prompt_sandy_is_lift"] or false
|
||||
if not liftState then
|
||||
animateProp('prompt_sandy_is_lift', true)
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
-- Puerta secreta
|
||||
secret_door = {
|
||||
name = "prompt_sandy_is_secret_door",
|
||||
label = {
|
||||
open = "Open Secret Wall Door",
|
||||
close = "Close Secret Wall Door"
|
||||
},
|
||||
model = "prompt_sandy_is_secret_door",
|
||||
coords = vector3(1991.845, 3779.848, 35.512),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000),
|
||||
linkedProps = {
|
||||
{
|
||||
name = "prompt_sandy_is_statue_secret_door",
|
||||
model = "prompt_sandy_is_statue_secret_door",
|
||||
coords = vector3(1991.845, 3779.848, 35.512),
|
||||
rotation = vector4(0.000000, 0.000000, 0.000000, 1.000000)
|
||||
}
|
||||
},
|
||||
animations = {
|
||||
dict = "prompt_sandy_is_secret_door@anim",
|
||||
open = "prompt_sandy_is_secret_door_opened",
|
||||
close = "prompt_sandy_is_secret_door_closed",
|
||||
static = "prompt_sandy_is_secret_door_static",
|
||||
duration = 5000,
|
||||
linkedAnims = {
|
||||
{
|
||||
open = "prompt_sandy_is_statue_secret_door",
|
||||
close = "prompt_sandy_is_statue_secret_door_closed",
|
||||
static = "prompt_sandy_is_statue_secret_door_static"
|
||||
}
|
||||
}
|
||||
},
|
||||
playerAnimation = {
|
||||
dict = "prompt@sandy_garage_ped",
|
||||
name = "open_wall",
|
||||
closeName = "close_wall",
|
||||
position = vector3(1992.1984, 3780.3716, 35.3605),
|
||||
heading = 112.5768,
|
||||
duration = 2000
|
||||
},
|
||||
interactionZone = {
|
||||
coords = vector3(1991.834, 3779.848, 35.51481),
|
||||
size = vector3(2.0, 2.0, 2.0),
|
||||
rotation = 0.0
|
||||
}
|
||||
},
|
||||
|
||||
-- Motor completo
|
||||
engine_full = {
|
||||
name = "prompt_sandy_is_engine_full",
|
||||
model = "prompt_sandy_is_engine_full",
|
||||
label = {
|
||||
open = "Put Engine Up",
|
||||
close = "Put Engine Down"
|
||||
},
|
||||
coords = vector3(1992.80, 3786.095, 32.73153),
|
||||
rotation = vector4(0.000000, 0.000000, -19.35, 1.000000),
|
||||
collision = {
|
||||
name = "prop_engine_collision_static",
|
||||
model = "prop_engine_collision_static",
|
||||
coords = vector3(1992.80, 3786.095, 32.73153),
|
||||
rotation = vector4(0.000000, 0.000000, -19.35, 1.000000)
|
||||
},
|
||||
animations = {
|
||||
dict = "prompt@sandy_is_engine",
|
||||
open = "prompt_sandy_is_engine_up",
|
||||
close = "prompt_sandy_is_engine_down",
|
||||
static = "prompt_sandy_is_engine_static",
|
||||
duration = 5000
|
||||
},
|
||||
playerAnimation = {
|
||||
dict = "prompt@sandy_garage_ped",
|
||||
name = "domkrat_up",
|
||||
closeName = "domkrat_down",
|
||||
position = {
|
||||
domkrat_down = vector3(1990.832, 3786.292, 32.73153),
|
||||
domkrat_up = vector3(1990.892, 3786.592, 32.73153)
|
||||
},
|
||||
heading = {
|
||||
domkrat_down = 271.406,
|
||||
domkrat_up = 260.406
|
||||
},
|
||||
duration = 2000
|
||||
},
|
||||
interactionZone = {
|
||||
coords = vector3(1990.9272, 3786.5369, 32.7456),
|
||||
size = vector3(2.0, 2.0, 2.0),
|
||||
rotation = 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
fx_version 'bodacious'
|
||||
game 'gta5'
|
||||
this_is_a_map 'yes'
|
||||
lua54 'yes'
|
||||
|
||||
-- map by---:
|
||||
author 'Prompt Studio'
|
||||
description 'Sandy Shores Illegal Garage & Gas Station & Car Wash'
|
||||
scripts_author 'Infames Dev'
|
||||
version '1.0.4'
|
||||
|
||||
data_file 'AUDIO_GAMEDATA' 'audio/prompt_sandy_is_garage_game.dat' -- dat151
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/unlocked/illegal_garage/prompt_sandy_illegal_garage.ytyp'
|
||||
|
||||
files {
|
||||
'audio/prompt_sandy_is_garage_game.dat151.rel'
|
||||
}
|
||||
|
||||
escrow_ignore {
|
||||
'stream/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 {
|
||||
'server/*.lua',
|
||||
'sv_loader.lua'
|
||||
}
|
||||
|
||||
dependency '/assetpacks'
|
||||
dependency '/assetpacks'
|
|
@ -0,0 +1,18 @@
|
|||
Config.EnableAnimations = true -- Enable/Disable all animated props
|
||||
Config.EnablePlayerAnimations = true -- Enable/Disable player interaction animations
|
||||
|
||||
-- Interaction key configuration
|
||||
Config.InteractionKey = {
|
||||
control = 38, -- Control ID (38 = E, 47 = G, 23 = F, 74 = H, 18 = Enter)
|
||||
display = "E" -- Display text for UI
|
||||
}
|
||||
|
||||
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",
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
All info about our maps can be found here: https://prompt-studio.gitbook.io/prompt-studio
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<SInteriorOrderData>
|
||||
<startFrom value="3000" />
|
||||
<proxies>
|
||||
<Item>p_prompt_sandy_gas</Item>
|
||||
</proxies>
|
||||
</SInteriorOrderData>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue