ed
This commit is contained in:
parent
dc96cbb39b
commit
c8ce065d61
939 changed files with 1976 additions and 0 deletions
BIN
resources/[carscripts]/fh_detailer/.fxap
Normal file
BIN
resources/[carscripts]/fh_detailer/.fxap
Normal file
Binary file not shown.
BIN
resources/[carscripts]/fh_detailer/cl_weaponNames.lua
Normal file
BIN
resources/[carscripts]/fh_detailer/cl_weaponNames.lua
Normal file
Binary file not shown.
BIN
resources/[carscripts]/fh_detailer/client.lua
Normal file
BIN
resources/[carscripts]/fh_detailer/client.lua
Normal file
Binary file not shown.
117
resources/[carscripts]/fh_detailer/config.lua
Normal file
117
resources/[carscripts]/fh_detailer/config.lua
Normal file
|
@ -0,0 +1,117 @@
|
|||
Config = {} -- If you have questions, join our discord https://discord.gg/p7wvZRnWcH or write in the cfx forum post.
|
||||
Config.qbtarget = true -- If set to false this script will use ox_target
|
||||
Config.FrameworkName = 'qb-core'
|
||||
|
||||
Config.RangeLimit = 8.0 -- How close you need to be to the bucket to perform waxing and cleaning tasks
|
||||
|
||||
Config.Volume = 0.90 -- Volume of the sound effects
|
||||
Config.SoundRange = 6 -- How far you can be away and still hear the sound.
|
||||
Config.SoundFiles = 3 -- The Nummber of random soundfiles for the washing effect. You may add more but have to declare them in the fxmanifest.lua
|
||||
|
||||
-- Progress Bar --
|
||||
-- We highly recommend using the progress bar. It looks clean and shows most notifications the script needs in one spot.
|
||||
Config.ProgressBar = true -- Wether you want to use the progress bar
|
||||
Config.HideBarAfter = 5 -- After how many seconds without interaction the progressbar should be hidden.
|
||||
Config.ProgressColor = '#4eb3de' -- Here you can edit the progress color to your likings. https://g.co/kgs/qpnR1M
|
||||
Config.FinishedColor = '#4ede83' -- Here you can edit the finished color to your likings. https://g.co/kgs/qpnR1M
|
||||
Config.InfoColor = '#ede174' -- Here you can edit the color for the wax notification to your likings. https://g.co/kgs/qpnR1M
|
||||
Config.WrongColor = '#eb584d' -- Here you can edit the color for the wrong action to your likings. https://g.co/kgs/qpnR1M
|
||||
|
||||
|
||||
Config.EnableCommand = true -- Enable /cardirt command for testing
|
||||
Config.StepMessage = false -- Enable if you want to have the messages shown when a step is completed or in wrong order
|
||||
Config.UseMissiontext = false -- If false the script uses notifications from notifications.lua if true uses the "mission-passed-style text"
|
||||
Config.TextTimer = 0.7 -- How long these messages should be shown
|
||||
Config.EffectRange = 50.0 -- From how far the particle effects of the washing can be seen. If too high might bring 'Object does not exist' warnings for players.
|
||||
|
||||
Config.JobRestriction = true -- If you want the cleaning and waxing be restricted to jobs
|
||||
Config.AllowedJobs = {["detailer"] = 0, ["bennys"] = 0, ["mechanic"] = 0} -- Here you can put the jobs that are allowed to clean and wax the cars
|
||||
|
||||
-- Wash Options
|
||||
Config.InteractDistance = 2.5 -- How close you need to be to pick up a bucket
|
||||
Config.BucketModel = 'prop_cleaning_trolly' -- The bucket model (hash) that should spawn and be interactive https://forge.plebmasters.de/objects/prop_cs_mopbucket_01
|
||||
Config.WashDistance = 2.0 -- From how far away you can get the target option to wash a vehicle (might need to be higher for big trucks etc.)
|
||||
Config.HandwashDuration = 10 -- How long in seconds one instance of handwashing is
|
||||
Config.CleaningFactor = 0.5 -- How much dirt should be washed off the car per second when using the sponge. (Maximum car dirtyness in GTA is 15.0)
|
||||
Config.CleanCooldown = 120 -- How long a vehicle can be left aside until you need to start the cleaning over again (default 120 seconds)
|
||||
Config.CleanEffect = 30 -- How long (in minutes) the car should be kept clean after the wash (no wax)
|
||||
Config.SpongeCleaningIncrement = 30 -- The higher the number the faster this stage of cleaning is done. (sponging) Default: 0.15
|
||||
|
||||
-- Hose Options
|
||||
Config.HoseDB = true -- If you want to use in-game placed hoses. You need to create hose_list table in your database.
|
||||
Config.InteractDistance2 = 2.5 -- How close you need to be to pick up a hose
|
||||
Config.HoseModel = 'prop_hose_3' -- The model (hash) where you can pick up the hose https://forge.plebmasters.de/objects/prop_hose_3
|
||||
Config.HoseLength = 10.0 -- How far you can pull the hose
|
||||
Config.FoamCleaningFactor = 0.0 -- How much the foaming should actually clean the car per second (if unwanted set to 0)
|
||||
Config.RinseCleaningFactor = 0.0 -- How much the rinsing should actually clean the car per second (if unwanted set to 0)
|
||||
Config.HoseCleaningIncrement = 10 -- How long (in seconds) you need to spray foam or rinse the car (default 10)
|
||||
Config.SameSpotWarning = true -- If the player should be noticed about cleaning the same spot (not moving while spraying)
|
||||
Config.SameSpotNotificationTime = 1 -- After how many seconds the player should be noticed that he is cleaning only one spot
|
||||
|
||||
Config.sprayTypes = {}
|
||||
--Config.sprayTypes[1] = {fxDict = 'scr_xs_celebration', fxName = 'scr_xs_champagne_spray', fxRotation = vector3(0.0, 90.0, 0.0), sound1 = "fh_detailer_foam1", sound2 = "fh_detailer_foam2"}
|
||||
--Config.sprayTypes[2] = {fxDict = 'core', fxName = 'water_cannon_jet', fxRotation = vector3(0.0, 0.0, -90.0), sound = nil}
|
||||
Config.sprayTypes[1] = {fxDict = 'scr_carwash', fxName = 'ent_amb_car_wash_jet_soap', fxRotation = vector3(0.0, 90.0, 0.0), sound1 = "fh_detailer_foam1", sound2 = "fh_detailer_foam2"}
|
||||
Config.sprayTypes[2] = {fxDict = 'scr_carwash', fxName = 'ent_amb_car_wash_jet', fxRotation = vector3(0.0, 90.0, 0.0), sound1 = "fh_detailer_rinse1", sound2 = "fh_detailer_rinse2"}
|
||||
|
||||
-- Wax Options
|
||||
Config.WaxDuration = 25 -- How long (in seconds) it should take to apply wax
|
||||
Config.WaxEffect = 120 -- How long (in minues) the car is protected from dirt after using the wax
|
||||
Config.WaxLocationRestriction = true -- If the wax should only be applyable near a car wash station
|
||||
Config.NeedWax = true -- True if the player should need the wax-item to apply it
|
||||
Config.WaxConsume = true -- If you want the wax-item to be consumed
|
||||
Config.WaxName = 'car_wax' -- The name of the wax in your items table
|
||||
Config.Interval = 10 -- How often in seconds should the wax check if the car has gotten dirty and if so lose the dirt. More time = less resmon.
|
||||
|
||||
-- Hose Placement
|
||||
-- If you don't want to use this just don't use the hose_reel item.
|
||||
Config.HoseInstallJob = true -- If only person with certain jobs can install hoses. false = everybody can
|
||||
Config.HoseInstaller = {["handyman"] = 0, ["mechanic"] = 3} -- Jobs that are allowed to place a hose if Config.HoseInstallJob = true
|
||||
Config.HoseConsume = true -- Wether the hose reel should be deducted from the players inventory after placing it
|
||||
Config.HosePersistent = true
|
||||
|
||||
-- Second hose
|
||||
Config.HoseInstallJob2 = false -- If you need a certain job to place this hose. false = everybody can
|
||||
Config.HoseInstaller2 = {["handyman"] = 0, ["mechanic"] = 1} -- If you enable Config.HoseInstallJob2 these are the jobs that can place one
|
||||
Config.HoseModel2 = 'prop_hose_1' -- The model for the second hose
|
||||
Config.Hose2Persistent = false -- If the placed hose should spawn again after server restart
|
||||
Config.InHandPosition2 = vector3(0.0, 0.0, -0.5) -- If you are using a diffrent model for the hose you might need to adjust these. These are for the position while carrying the hose.
|
||||
Config.InHandRotation2 = vector3(15.0, 0.0, 180.0) -- If you are using a diffrent model for the hose you might need to adjust these. These are for the rotation while carrying the hose.
|
||||
|
||||
|
||||
-- Inventory Buckets
|
||||
|
||||
Config.PersistentBucket = true -- If false the bucket only stays until server restart
|
||||
Config.BucketPlaceJob = true -- If only person with certain jobs can install buckets or use them. false = everybody can
|
||||
Config.BucketPlacer = {'mechanic'} -- Jobs that are allowed to place a bucket if Config.BucketPlaceJob = true
|
||||
Config.BucketConsume = true -- If true the bucket will be deducted from the inventory on use
|
||||
Config.InHandPosition = vector3(0.0, 0.0, 0.0) -- If you are using a diffrent model for the hose you might need to adjust these. These are for the position while carrying the hose.
|
||||
Config.InHandRotation = vector3(195.0, 0.0, 0.0) -- If you are using a diffrent model for the hose you might need to adjust these. These are for the rotation while carrying the hose.
|
||||
|
||||
Config.BucketPlaceJob2 = false -- If you need a certain job for placing/using the second (public?) bucket
|
||||
Config.BucketPlacer = {'mechanic'} -- The jobs you need if you need a job
|
||||
Config.PlaceBucket2 = false -- If true you place a bucket on the ground which can be interacted with multiple times. If false you just get the bucket into your hands temporary.
|
||||
Config.PersistentBucket2 = false -- If true the bucket will spawn again after server restart. If false it will be deleted on restart.
|
||||
Config.BucketModel2 = 'prop_cs_bucket_s' -- The model for the second bucket if you choose to place it on the ground.
|
||||
|
||||
-- System
|
||||
Config.DeleteRunOuts = true -- If true it deletes run out wax effects from the database to keep it clean
|
||||
Config.DeleteRunOutsInterval = 30 -- How often the cleansing of run out wax-entries should take place (default: every 30 min)
|
||||
Config.SpawnDelay = 10 -- How long (in seconds) after the first player connects the props should spawn
|
||||
|
||||
Config.Locations = {
|
||||
vector4(173.88, -1716.98, 29.38-0.98, 53.85), --Location 1
|
||||
vector4(168.27, -1712.62, 29.27-0.98, 240.94), --Location 2
|
||||
vector4(171.96, -1739.85, 29.27-0.98, 238.11),
|
||||
vector4(31.160442, -1405.068115, 28.33, 212.598419)
|
||||
}
|
||||
|
||||
|
||||
--If it is more convenient for you, you can delete all entries from Config.HoseLocation and place them in-game (you need to create hose_list table in your database)
|
||||
Config.HoseLocations = {
|
||||
vector4(175.02, -1740.38, 29.48, 180.00), --Location 1
|
||||
vector4(174.165, -1716.62, 29.29, 228.18),
|
||||
vector4(33.87, -1404.00, 29.33, 0),
|
||||
vector4(39.784618, -1405.898926, 29.347290, 272.125977)
|
||||
}
|
||||
|
260
resources/[carscripts]/fh_detailer/functions.lua
Normal file
260
resources/[carscripts]/fh_detailer/functions.lua
Normal file
|
@ -0,0 +1,260 @@
|
|||
-- This is for notifications when all goes according to plan. (i.e. vehicle is cleaned)
|
||||
RegisterNetEvent("fh_detailer:client:InfoNotification", function(notificationText)
|
||||
-- You can change this to your prefered notification System --
|
||||
|
||||
--exports['mythic_notify']:DoHudText('inform', notificationText)
|
||||
--exports['okokNotify']:Alert('Detailer', notificationText, Time, 'info', false)
|
||||
|
||||
end)
|
||||
|
||||
-- This is for notifications when something goes wrong. (i.e. you don't have money)
|
||||
RegisterNetEvent("fh_detailer:client:WarningNotification", function(notificationText)
|
||||
-- You can change this to your prefered notification System --
|
||||
|
||||
--exports['mythic_notify']:DoHudText('error', notificationText)
|
||||
--exports['okokNotify']:Alert('Detailer', notificationText, Time, 'error', false)
|
||||
|
||||
end)
|
||||
|
||||
-- You can add stuff you want to happen when the car is completely cleaned here. E. g. getting rid of evidence fingerprints and such.
|
||||
RegisterNetEvent("fh_detailer:client:vehicleCleaned", function(licensePlate, vehicleServerID)
|
||||
|
||||
print('Vehicle cleaned: licensePlate ' .. licensePlate .. ' vehicleServerID ' .. vehicleServerID)
|
||||
|
||||
end)
|
||||
|
||||
-- Function for removing decals (dirt, scratches, blood). This can remove stickers if you are using such a script.
|
||||
-- You can disable the removal of the decals or add you custom code here:
|
||||
RegisterNetEvent("fh_detailer:client:removeDecals", function(vehicle)
|
||||
RemoveDecalsFromVehicle(vehicle)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
-- ox-target / qb-target exports here
|
||||
|
||||
if not Config.qbtarget then
|
||||
exports.ox_target:addGlobalVehicle({
|
||||
event = 'washVehicle',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.wash_vehicle"),
|
||||
canInteract = function(entity, distance, coords, name)
|
||||
if holdingBucket then makeEntityFaceEntity(playerPed, entity) end
|
||||
return holdingBucket and not IsPedBusy()
|
||||
end,
|
||||
distance = Config.WashDistance,
|
||||
})
|
||||
else
|
||||
exports['qb-target']:AddGlobalVehicle({
|
||||
options = {
|
||||
{
|
||||
type = 'client',
|
||||
event = 'washVehicle',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.wash_vehicle"),
|
||||
canInteract = function(entity, distance, data)
|
||||
if holdingBucket then makeEntityFaceEntity(playerPed, entity) end
|
||||
return holdingBucket and not IsPedBusy()
|
||||
end,
|
||||
}
|
||||
},
|
||||
distance = Config.WashDistance,
|
||||
})
|
||||
end
|
||||
|
||||
if Config.JobRestriction then
|
||||
if not Config.qbtarget then
|
||||
exports.ox_target:addModel(GetHashKey(Config.HoseModel),
|
||||
{
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
groups = Config.AllowedJobs,
|
||||
}
|
||||
)
|
||||
|
||||
exports.ox_target:addModel(GetHashKey(Config.BucketModel),
|
||||
{
|
||||
event = 'UseBucket',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.label_bucket"),
|
||||
groups = Config.AllowedJobs,
|
||||
}
|
||||
)
|
||||
|
||||
exports.ox_target:addGlobalVehicle({
|
||||
event = 'waxVehicle',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.wax_vehicle"),
|
||||
item = {'car_wax'},
|
||||
anyItem = true,
|
||||
canInteract = function(entity, distance, coords, name)
|
||||
if not holdingBucket and not holdingHose and not IsPedBusy() then
|
||||
makeEntityFaceEntity(playerPed, entity)
|
||||
return true
|
||||
end
|
||||
end,
|
||||
groups = Config.AllowedJobs,
|
||||
distance = Config.WashDistance,
|
||||
})
|
||||
else
|
||||
exports['qb-target']:AddTargetModel(Config.HoseModel, {
|
||||
options = {
|
||||
{
|
||||
type = "client",
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
job = Config.AllowedJobs,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
exports['qb-target']:AddTargetModel(Config.BucketModel, {
|
||||
options = {
|
||||
{
|
||||
type = "client",
|
||||
event = 'UseBucket',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.label_bucket"),
|
||||
job = Config.AllowedJobs,
|
||||
}
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
exports['qb-target']:AddGlobalVehicle({
|
||||
options = {
|
||||
{
|
||||
type = 'client',
|
||||
event = 'waxVehicle',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.wax_vehicle"),
|
||||
canInteract = function(entity, distance, data)
|
||||
if not holdingBucket and not holdingHose and not IsPedBusy() then
|
||||
makeEntityFaceEntity(playerPed, entity)
|
||||
return true
|
||||
end
|
||||
end,
|
||||
job = Config.AllowedJobs,
|
||||
}
|
||||
},
|
||||
distance = Config.WashDistance,
|
||||
})
|
||||
|
||||
else
|
||||
if not Config.qbtarget then
|
||||
exports.ox_target:addGlobalVehicle({
|
||||
event = 'waxVehicle',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.wax_vehicle"),
|
||||
item = {'car_wax'},
|
||||
anyItem = true,
|
||||
canInteract = function(entity, distance, coords, name)
|
||||
if not holdingBucket and not holdingHose and not IsPedBusy() then
|
||||
makeEntityFaceEntity(playerPed, entity)
|
||||
return true
|
||||
end
|
||||
end,
|
||||
distance = Config.WashDistance,
|
||||
})
|
||||
|
||||
exports.ox_target:addModel(GetHashKey(Config.HoseModel),
|
||||
{
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
})
|
||||
|
||||
exports.ox_target:addModel(GetHashKey(Config.BucketModel),
|
||||
{
|
||||
event = 'UseBucket',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.label_bucket"),
|
||||
})
|
||||
|
||||
else
|
||||
|
||||
exports['qb-target']:AddTargetModel(Config.HoseModel, {
|
||||
options = {
|
||||
{
|
||||
type = "client",
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
exports['qb-target']:AddTargetModel(Config.BucketModel, {
|
||||
options = {
|
||||
{
|
||||
type = "client",
|
||||
event = 'UseBucket',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.label_bucket"),
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
exports['qb-target']:AddGlobalVehicle({
|
||||
options = {
|
||||
{
|
||||
type = 'client',
|
||||
event = 'waxVehicle',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.wax_vehicle"),
|
||||
canInteract = function(entity, distance, data)
|
||||
if not holdingBucket and not holdingHose and not IsPedBusy() then
|
||||
makeEntityFaceEntity(playerPed, entity)
|
||||
return true
|
||||
end
|
||||
end,
|
||||
}
|
||||
},
|
||||
distance = Config.WashDistance,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
if not Config.qbtarget then
|
||||
exports.ox_target:addModel(GetHashKey(Config.HoseModel2),
|
||||
{
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
}
|
||||
)
|
||||
|
||||
exports.ox_target:addModel(GetHashKey(Config.BucketModel2),
|
||||
{
|
||||
event = 'UseBucket',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.label_bucket"),
|
||||
}
|
||||
)
|
||||
else
|
||||
exports['qb-target']:AddTargetModel(Config.HoseModel2, {
|
||||
options = {
|
||||
{
|
||||
type = "client",
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
exports['qb-target']:AddTargetModel(Config.BucketModel2, {
|
||||
options = {
|
||||
{
|
||||
type = "client",
|
||||
event = 'takeHose',
|
||||
icon = 'fa-solid fa-soap',
|
||||
label = Lang:t("info.take_hose"),
|
||||
}
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
-- End of ox-target / qb-target exports
|
67
resources/[carscripts]/fh_detailer/fxmanifest.lua
Normal file
67
resources/[carscripts]/fh_detailer/fxmanifest.lua
Normal file
|
@ -0,0 +1,67 @@
|
|||
fx_version 'cerulean'
|
||||
game 'gta5'
|
||||
lua54 'yes'
|
||||
description 'fivehead.eu QBcore car wash & detailing script'
|
||||
author 'Fuenf'
|
||||
version '1.3.2'
|
||||
|
||||
ui_page {
|
||||
'/html/index.html',
|
||||
}
|
||||
|
||||
files {
|
||||
'html/index.html',
|
||||
'html/main.js',
|
||||
'html/style.css',
|
||||
'html/sounds/fh_detailer_bucketdrop.ogg',
|
||||
'html/sounds/fh_detailer_bucketpick.ogg',
|
||||
'html/sounds/fh_detailer_click1.ogg',
|
||||
'html/sounds/fh_detailer_click2.ogg',
|
||||
'html/sounds/fh_detailer_wash1.ogg',
|
||||
'html/sounds/fh_detailer_wash2.ogg',
|
||||
'html/sounds/fh_detailer_wash3.ogg',
|
||||
'html/sounds/fh_detailer_hosepull.ogg',
|
||||
'html/sounds/fh_detailer_foam1.ogg',
|
||||
'html/sounds/fh_detailer_foam2.ogg',
|
||||
'html/sounds/fh_detailer_rinse1.ogg',
|
||||
'html/sounds/fh_detailer_rinse2.ogg',
|
||||
'stream/water_nozzle1.ytyp',
|
||||
'meta/weaponarchetypes.meta',
|
||||
'meta/weaponanimations.meta',
|
||||
'meta/pedpersonality.meta',
|
||||
'meta/weapons.meta',
|
||||
}
|
||||
|
||||
data_file 'DLC_ITYP_REQUEST' 'water_nozzle1.ytyp'
|
||||
data_file 'WEAPON_METADATA_FILE' 'meta/weaponarchetypes.meta'
|
||||
data_file 'WEAPON_ANIMATIONS_FILE' 'meta/weaponanimations.meta'
|
||||
data_file 'PED_PERSONALITY_FILE' 'meta/pedpersonality.meta'
|
||||
data_file 'WEAPONINFO_FILE' 'meta/weapons.meta'
|
||||
|
||||
|
||||
client_scripts {
|
||||
'client.lua',
|
||||
'cl_weaponNames.lua',
|
||||
'functions.lua',
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'@oxmysql/lib/MySQL.lua',
|
||||
'server.lua',
|
||||
}
|
||||
|
||||
shared_scripts {
|
||||
'@qb-core/shared/locale.lua',
|
||||
'config.lua',
|
||||
'locales/*.lua',
|
||||
}
|
||||
|
||||
dependencies {
|
||||
}
|
||||
|
||||
escrow_ignore {
|
||||
'locales/*.lua',
|
||||
'config.lua',
|
||||
'functions.lua'
|
||||
}
|
||||
dependency '/assetpacks'
|
38
resources/[carscripts]/fh_detailer/html/index.html
Normal file
38
resources/[carscripts]/fh_detailer/html/index.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
<html>
|
||||
<head>
|
||||
<script src="nui://game/ui/jquery.js" type="text/javascript"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.1.1/howler.min.js" type="text/javascript"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
|
||||
<script src="main.js" type="text/javascript"></script>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<script>
|
||||
var audioPlayer = null;
|
||||
window.addEventListener('message', function(event) {
|
||||
|
||||
if (event.data.Type == "playSound") {
|
||||
|
||||
if (audioPlayer != null) {
|
||||
audioPlayer.pause();
|
||||
}
|
||||
|
||||
audioPlayer = new Howl({src: ["./sounds/" + event.data.SoundFile + ".ogg"]});
|
||||
audioPlayer.volume(event.data.Volume);
|
||||
audioPlayer.play();
|
||||
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="barcontainer" id="barcontainer" style="visibility:hidden">
|
||||
<div class="progress-bar__container">
|
||||
<div class="progress-bar">
|
||||
<span id="task" class="task"></span>
|
||||
<!-- <span class="progress-bar__text">Uploaded Successfully!</span> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
35
resources/[carscripts]/fh_detailer/html/main.js
Normal file
35
resources/[carscripts]/fh_detailer/html/main.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
window.addEventListener('message', function(event){
|
||||
const progressBarContainer = document.querySelector('.progress-bar__container');
|
||||
const progressBar = document.querySelector('.progress-bar');
|
||||
const progressBarText = document.querySelector('.progress-bar__text');
|
||||
|
||||
let data = event.data;
|
||||
let endState = 100;
|
||||
|
||||
$('#task').text(data.task);
|
||||
|
||||
if(event.data.Type == "showBar")
|
||||
{
|
||||
$(".barcontainer").css("visibility","visible");
|
||||
|
||||
if(event.data.time >= endState){
|
||||
gsap.to(progressBar, {
|
||||
x: `${event.data.time}%`,
|
||||
backgroundColor: event.data.color,
|
||||
});
|
||||
}else{
|
||||
gsap.to(progressBar, {
|
||||
x: `${event.data.time}%`,
|
||||
backgroundColor: event.data.color,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
else if(event.data.Type == "hideBar")
|
||||
{
|
||||
$(".barcontainer").css("visibility","hidden");
|
||||
gsap.to(progressBar, {
|
||||
x: `0%`
|
||||
});
|
||||
}
|
||||
});
|
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.
40
resources/[carscripts]/fh_detailer/html/style.css
Normal file
40
resources/[carscripts]/fh_detailer/html/style.css
Normal file
|
@ -0,0 +1,40 @@
|
|||
.barcontainer {
|
||||
display: flex;
|
||||
margin: auto;
|
||||
width: 30%;
|
||||
margin-top: 50%;
|
||||
}
|
||||
|
||||
.progress-bar__container {
|
||||
width: 80%;
|
||||
height: 2rem;
|
||||
border-radius: 2rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: all 0.5s;
|
||||
will-change: transform;
|
||||
box-shadow: 2px 2px 5px #040514;
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
content: "";
|
||||
background-color: #04020c;
|
||||
top:0;
|
||||
bottom: 0;
|
||||
left: -100%;
|
||||
border-radius: inherit;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items:center;
|
||||
color: rgb(20, 20, 20);
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.progress-bar__text {
|
||||
display: none;
|
||||
}
|
||||
|
48
resources/[carscripts]/fh_detailer/locales/de.lua
Normal file
48
resources/[carscripts]/fh_detailer/locales/de.lua
Normal file
|
@ -0,0 +1,48 @@
|
|||
local Translations = {
|
||||
|
||||
info = {
|
||||
['label_bucket'] = 'Schwamm und Eimer',
|
||||
['not_close'] = 'Zu weit weg',
|
||||
['using_bucket'] = 'Benutze Schwamm und Eimer',
|
||||
['wash_vehicle'] = 'Fahrzeug waschen',
|
||||
['take_hose'] = 'Schlauch',
|
||||
['using_hose'] = 'Benutze den Schlauch',
|
||||
['in_use'] = 'Schlauch wird bereits benutzt',
|
||||
['spray_type1'] = 'Spraysetting: Soap',
|
||||
['spray_type2'] = 'Spraysetting: Water',
|
||||
['foam_spraying'] = 'Einschäumen...',
|
||||
['using_sponge'] = 'Waschen...',
|
||||
['rinsing'] = 'Klarspülen...',
|
||||
['wax_vehicle'] = 'Benutze Wachs auf dem Fahrzeug',
|
||||
['no_wax'] = 'Du hast kein Wachs einstecken',
|
||||
['applying_wax'] = 'Wachs auftragen...',
|
||||
['applying_wax_finished'] = 'Wachs wurde aufgetragen',
|
||||
['no_carwash'] = 'Dazu muss du an einer Waschbucht sein',
|
||||
['wrong_stage'] = 'Du musst etwas anderes tun',
|
||||
['lathering_done'] = 'Einschäumen erledigt',
|
||||
['cleaning_done'] = 'Waschen erledigt',
|
||||
['rinse_done'] = 'Klarspülen erledigt',
|
||||
['waxing_done'] = 'Dieses Fahrzeug ist nun für %{value} Minuten vor Verschmutzung geschützt.',
|
||||
['washing_complete'] = 'Dieses Fahrzeug ist nun für %{value} Minuten vor Verschmutzung geschützt.',
|
||||
['same_spot'] = 'Die Stelle hast du schon genug gereinigt',
|
||||
['canceled'] = 'Du hast die Aktion abgebrochen',
|
||||
['face_vehicle'] = 'Du musst dich in Richtung des Fahrzeugs drehen',
|
||||
['place_speed'] = 'Platzierungsgenauigkeit: %{value}',
|
||||
['placement_helptext1'] = '~INPUT_CELLPHONE_SELECT~ grobe Platzierung\n~INPUT_CELLPHONE_CANCEL~ Abbrechen',
|
||||
['placement_helptext2'] = '~INPUT_CELLPHONE_SCROLL_BACKWARD~~INPUT_CELLPHONE_SCROLL_FORWARD~ Hoch & Runter\n~INPUT_FRONTEND_LEFT~~INPUT_FRONTEND_RIGHT~ Links & Rechts\n~INPUT_FRONTEND_UP~~INPUT_FRONTEND_DOWN~ Vor & Zurück\n~INPUT_CONTEXT~~INPUT_CONTEXT_SECONDARY~ Rotieren\n~INPUT_CELLPHONE_CANCEL~ Abbrechen\n~INPUT_CELLPHONE_SELECT~ Endgültige Platzierung',
|
||||
['place_roughly'] = "Erst grob platzierung danach Feinabstimmung",
|
||||
['placed_rough'] = "Nun lass uns mit der Feinabstimmung beginnen",
|
||||
['placing_canceled'] = "Du hast die Platzierung abgebrochen",
|
||||
['placed_hose'] = "Du hast den Schlauch angebracht",
|
||||
['wrong_hose'] = "Dein Schlauch gehört woanders hin",
|
||||
['wrong_job'] = "Das muss jemand anderes machen",
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'de' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
45
resources/[carscripts]/fh_detailer/locales/en.lua
Normal file
45
resources/[carscripts]/fh_detailer/locales/en.lua
Normal file
|
@ -0,0 +1,45 @@
|
|||
local Translations = {
|
||||
|
||||
info = {
|
||||
['label_bucket'] = 'Bucket and sponge',
|
||||
['not_close'] = 'Not close enough',
|
||||
['using_bucket'] = 'Using bucket and sponge',
|
||||
['wash_vehicle'] = 'Wash vehicle',
|
||||
['take_hose'] = 'Hose',
|
||||
['using_hose'] = 'Using the hose',
|
||||
['in_use'] = 'Hose already in use',
|
||||
['spray_type1'] = 'Spraysetting: Soap',
|
||||
['spray_type2'] = 'Spraysetting: Water',
|
||||
['foam_spraying'] = 'lathering...',
|
||||
['using_sponge'] = 'cleaning...',
|
||||
['rinsing'] = 'rinsing...',
|
||||
['wax_vehicle'] = 'Use wax on vehicle',
|
||||
['no_wax'] = 'You need to have wax for this',
|
||||
['applying_wax'] = 'Applying wax...',
|
||||
['applying_wax_finished'] = 'Wax applied',
|
||||
['no_carwash'] = 'You need to be at a carwash location',
|
||||
['wrong_stage'] = 'You need to do something else',
|
||||
['lathering_done'] = 'Lathering done',
|
||||
['cleaning_done'] = 'Sponging done',
|
||||
['rinse_done'] = 'Rinsing done',
|
||||
['waxing_done'] = 'This vehicle is now protected from dirt for %{value} minutes.',
|
||||
['washing_complete'] = 'This vehicle is now protected from dirt for %{value} minutes.',
|
||||
['same_spot'] = 'You already cleaned this spot',
|
||||
['canceled'] = 'You have canceled the action',
|
||||
['face_vehicle'] = 'You must be facing the vehicle',
|
||||
['place_speed'] = 'Placement speed: %{value}',
|
||||
['placement_helptext1'] = '~INPUT_CELLPHONE_SELECT~ rough placement\n~INPUT_CELLPHONE_CANCEL~ to cancel',
|
||||
['placement_helptext2'] = '~INPUT_CELLPHONE_SCROLL_BACKWARD~~INPUT_CELLPHONE_SCROLL_FORWARD~ Up & Down\n~INPUT_FRONTEND_LEFT~~INPUT_FRONTEND_RIGHT~ Left & Right\n~INPUT_FRONTEND_UP~~INPUT_FRONTEND_DOWN~ Forwards & Backwards\n~INPUT_CONTEXT~~INPUT_CONTEXT_SECONDARY~ Rotate\n~INPUT_CELLPHONE_CANCEL~ cancel\n~INPUT_CELLPHONE_SELECT~ final placement',
|
||||
['place_roughly'] = "Place your hose roughly. Afterwards fine tuning",
|
||||
['placed_rough'] = "Now let's get to the detailed placing",
|
||||
['placing_canceled'] = "You have canceled the placing",
|
||||
['placed_hose'] = "You placed the hose",
|
||||
['wrong_hose'] = "Your hose doesn't belong here",
|
||||
['wrong_job'] = "Someone else has to do that",
|
||||
}
|
||||
}
|
||||
|
||||
Lang = Lang or Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
})
|
48
resources/[carscripts]/fh_detailer/locales/es.lua
Normal file
48
resources/[carscripts]/fh_detailer/locales/es.lua
Normal file
|
@ -0,0 +1,48 @@
|
|||
local Translations = {
|
||||
|
||||
info = {
|
||||
['label_bucket'] = 'Cubo y Esponja',
|
||||
['not_close'] = 'No está lo suficientemente cerca',
|
||||
['using_bucket'] = 'Usando balde y esponja',
|
||||
['wash_vehicle'] = 'Lavar vehículo',
|
||||
['take_hose'] = 'Manguera',
|
||||
['using_hose'] = 'Usando la manguera',
|
||||
['in_use'] = 'Manguera ya en uso',
|
||||
['spray_type1'] = "Configuración de pulverización: Jabón",
|
||||
['spray_type2'] = "Configuración de pulverización: Agua",
|
||||
['foam_spraying'] = 'Enjabonado...',
|
||||
['using_sponge'] = 'Limpiando...',
|
||||
['rinsing'] = 'Enjuagando...',
|
||||
['wax_vehicle'] = 'Usar cera en el vehículo',
|
||||
['no_wax'] = 'Necesitas tener cera para esto.',
|
||||
['applying_wax'] = 'Aplicando cera...',
|
||||
['applying_wax_finished'] = 'Cera aplicada',
|
||||
['no_carwash'] = 'Necesitas estar en un lugar de lavado de autos.',
|
||||
['wrong_stage'] = 'Necesitas hacer algo más',
|
||||
['lathering_done'] = 'Enjabonado realizado',
|
||||
['cleaning_done'] = 'Esponjado realizado',
|
||||
['rinse_done'] = 'Enjuague realizado',
|
||||
['waxing_done'] = 'Este vehículo ahora está protegido de la suciedad durante %{value} minutos.',
|
||||
['washing_complete'] = 'Este vehículo ahora está protegido de la suciedad durante %{value} minutos.',
|
||||
['same_spot'] = 'Ya limpiaste este lugar',
|
||||
['canceled'] = 'Has cancelado la acción',
|
||||
['face_vehicle'] = 'Debes estar mirando hacia el vehículo',
|
||||
['place_speed'] = 'Velocidad de colocación: %{value}',
|
||||
['placement_helptext1'] = '~INPUT_CELLPHONE_SELECT~ Colocación aproximada\n~INPUT_CELLPHONE_CANCEL~ para cancelar',
|
||||
['placement_helptext2'] = '~INPUT_CELLPHONE_SCROLL_BACKWARD~~INPUT_CELLPHONE_SCROLL_FORWARD~ Arriba y abajo\n~INPUT_FRONTEND_LEFT~~INPUT_FRONTEND_RIGHT~ Izquierda y derecha\n~INPUT_FRONTEND_UP~~INPUT_FRONTEND_DOWN~ Adelante y atrás\n\n~INPUT_CONTEXT~~INPUT_CONTEXT_SECONDARY~ Girar~INPUT_CELLPHONE_CANCEL~ Cancelar\n~INPUT_CELLPHONE_SELECT~ Colocación final',
|
||||
['place_roughly'] = "Coloca tu manguera aproximadamente. Luego, ajústala con precisión",
|
||||
['placed_rough'] = "Ahora pasemos a la colocación detallada",
|
||||
['placing_canceled'] = "Has cancelado la colocación",
|
||||
['placed_hose'] = "Has colocado la manguera",
|
||||
['wrong_hose'] = "Tu manguera no pertenece aquí",
|
||||
['wrong_job'] = "Alguien más debe encargarse de eso",
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'es' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
383
resources/[carscripts]/fh_detailer/meta/pedpersonality.meta
Normal file
383
resources/[carscripts]/fh_detailer/meta/pedpersonality.meta
Normal file
|
@ -0,0 +1,383 @@
|
|||
<?xml version="1.0" encoding="UTF - 8"?>
|
||||
|
||||
<CPedModelInfo__PersonalityDataList>
|
||||
<MovementModeUnholsterData>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_UNARMED</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>unarmed_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_2H_MELEE</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>2h_melee_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_1H</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>1h_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_2H</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>2h_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_MINIGUN</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>mini_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_UNARMED_STEALTH</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>unarmed_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_2H_MELEE_STEALTH</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>unarmed_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_1H_STEALTH</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>1h_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>UNHOLSTER_2H_STEALTH</Name>
|
||||
<UnholsterClips>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<Clip>2h_holster_1h</Clip>
|
||||
</Item>
|
||||
</UnholsterClips>
|
||||
</Item>
|
||||
</MovementModeUnholsterData>
|
||||
<MovementModes>
|
||||
<Item>
|
||||
<Name>DEFAULT_ACTION</Name>
|
||||
<MovementModes>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_ACTION@P_M_ZERO@ARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_ACTION@P_M_ZERO@ARMED@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="true"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_ACTION@GENERIC@TRANS@1H</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_ACTION@P_M_ZERO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_STEALTH@P_M_ZERO@UNARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_STEALTH@P_M_ZERO@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="true"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_STEALTH@GENERIC@TRANS@1H</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_STEALTH@P_M_ZERO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H_STEALTH</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
</MovementModes>
|
||||
<LastBattleEventHighEnergyStartTime value="0.00000000"/>
|
||||
<LastBattleEventHighEnergyEndTime value="5.00000000"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>MP_FEMALE_ACTION</Name>
|
||||
<MovementModes>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_ACTION@P_M_ZERO@ARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_ACTION@P_M_ZERO@ARMED@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="true"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_ACTION@MP_FEMALE@ARMED@1H@TRANS</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_ACTION@P_M_ZERO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_STEALTH@P_M_ZERO@UNARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_STEALTH@P_M_ZERO@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="true"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_STEALTH@MP_FEMALE@1H@TRANS</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_STEALTH@P_M_ZERO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H_STEALTH</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
</MovementModes>
|
||||
<LastBattleEventHighEnergyStartTime value="0.00000000"/>
|
||||
<LastBattleEventHighEnergyEndTime value="5.00000000"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>MICHAEL_ACTION</Name>
|
||||
<MovementModes>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_ACTION@P_M_ZERO@ARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_ACTION@P_M_ZERO@ARMED@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="true"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_ACTION@P_M_ZERO@ARMED@1H@TRANS@A</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_ACTION@P_M_ZERO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_STEALTH@P_M_ZERO@UNARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_STEALTH@P_M_ZERO@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="true"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_STEALTH@P_M_ZERO@1H@TRANS@A</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_STEALTH@P_M_ZERO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H_STEALTH</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
</MovementModes>
|
||||
<LastBattleEventHighEnergyStartTime value="0.00000000"/>
|
||||
<LastBattleEventHighEnergyEndTime value="5.00000000"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>FRANKLIN_ACTION</Name>
|
||||
<MovementModes>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_ACTION@P_M_ONE@ARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_ACTION@P_M_ONE@ARMED@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="false"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_ACTION@P_M_ONE@ARMED@1H@TRANS@A</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_ACTION@P_M_ONE@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_STEALTH@P_M_ONE@UNARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_STEALTH@P_M_ONE@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="false"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_STEALTH@P_M_ONE@1H@TRANS@A</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_STEALTH@P_M_ONE@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H_STEALTH</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
</MovementModes>
|
||||
<LastBattleEventHighEnergyStartTime value="0.00000000"/>
|
||||
<LastBattleEventHighEnergyEndTime value="5.00000000"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name>TREVOR_ACTION</Name>
|
||||
<MovementModes>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_ACTION@P_M_TWO@ARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_ACTION@P_M_TWO@ARMED@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="false"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_ACTION@P_M_TWO@ARMED@1H@TRANS@A</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_ACTION@P_M_TWO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item>
|
||||
<Item>
|
||||
<Weapons>
|
||||
<Item>WATER_NOZZLE</Item>
|
||||
</Weapons>
|
||||
<ClipSets>
|
||||
<Item>
|
||||
<MovementClipSetId>MOVE_STEALTH@P_M_TWO@UNARMED@CORE</MovementClipSetId>
|
||||
<WeaponClipSetId>MOVE_STEALTH@P_M_TWO@1H@UPPER</WeaponClipSetId>
|
||||
<WeaponClipFilterId>UpperbodyAndIk_filter</WeaponClipFilterId>
|
||||
<UpperBodyShadowExpressionEnabled value="true"/>
|
||||
<UpperBodyFeatheredLeanEnabled value="true"/>
|
||||
<UseWeaponAnimsForGrip value="false"/>
|
||||
<UseLeftHandIk value="false"/>
|
||||
<IdleTransitionBlendOutTime value="0.50000000"/>
|
||||
<IdleTransitions>
|
||||
<Item>MOVE_STEALTH@P_M_TWO@1H@TRANS@A</Item>
|
||||
</IdleTransitions>
|
||||
<UnholsterClipSetId>MOVE_STEALTH@P_M_TWO@HOLSTER</UnholsterClipSetId>
|
||||
<UnholsterClipData>UNHOLSTER_1H_STEALTH</UnholsterClipData>
|
||||
</Item>
|
||||
</ClipSets>
|
||||
</Item>
|
||||
</Item>
|
||||
</MovementModes>
|
||||
<LastBattleEventHighEnergyStartTime value="0.00000000"/>
|
||||
<LastBattleEventHighEnergyEndTime value="5.00000000"/>
|
||||
</Item>
|
||||
</MovementModes>
|
||||
</CPedModelInfo__PersonalityDataList>
|
||||
|
242
resources/[carscripts]/fh_detailer/meta/weaponanimations.meta
Normal file
242
resources/[carscripts]/fh_detailer/meta/weaponanimations.meta
Normal file
|
@ -0,0 +1,242 @@
|
|||
<?xml version="1.0" encoding="UTF - 8"?>
|
||||
|
||||
<CWeaponAnimationsSets>
|
||||
<WeaponAnimationsSets>
|
||||
<Item key="Default">
|
||||
<WeaponAnimations>
|
||||
<Item key="WATER_NOZZLE">
|
||||
<CoverMovementClipSetHash/>
|
||||
<CoverMovementExtraClipSetHash/>
|
||||
<CoverAlternateMovementClipSetHash>cover@move@ai@base@1h</CoverAlternateMovementClipSetHash>
|
||||
<CoverWeaponClipSetHash>Cover_Wpn_Pistol</CoverWeaponClipSetHash>
|
||||
<MotionClipSetHash>weapon@w_pi_stungun</MotionClipSetHash>
|
||||
<MotionFilterHash>BothArms_filter</MotionFilterHash>
|
||||
<MotionCrouchClipSetHash/>
|
||||
<MotionStrafingClipSetHash/>
|
||||
<MotionStrafingStealthClipSetHash/>
|
||||
<MotionStrafingUpperBodyClipSetHash/>
|
||||
<WeaponClipSetHash>weapon@w_pi_stungun</WeaponClipSetHash>
|
||||
<WeaponClipSetStreamedHash>weapons@pistol@pistol_str</WeaponClipSetStreamedHash>
|
||||
<WeaponClipSetHashInjured>weapon@w_pi_stungun_injured</WeaponClipSetHashInjured>
|
||||
<WeaponClipSetHashStealth>weapon@w_pi_stungun@stealth</WeaponClipSetHashStealth>
|
||||
<WeaponClipSetHashHiCover/>
|
||||
<AlternativeClipSetWhenBlocked/>
|
||||
<ScopeWeaponClipSet/>
|
||||
<AlternateAimingStandingClipSetHash/>
|
||||
<AlternateAimingCrouchingClipSetHash/>
|
||||
<FiringVariationsStandingClipSetHash/>
|
||||
<FiringVariationsCrouchingClipSetHash/>
|
||||
<AimTurnStandingClipSetHash/>
|
||||
<AimTurnCrouchingClipSetHash/>
|
||||
<MeleeClipSetHash>melee@pistol@streamed_core</MeleeClipSetHash>
|
||||
<MeleeVariationClipSetHash/>
|
||||
<MeleeTauntClipSetHash/>
|
||||
<MeleeSupportTauntClipSetHash/>
|
||||
<MeleeStealthClipSetHash/>
|
||||
<ShellShockedClipSetHash>reaction@shellshock@unarmed</ShellShockedClipSetHash>
|
||||
<JumpUpperbodyClipSetHash>MOVE_JUMP@WEAPONS@PISTOL</JumpUpperbodyClipSetHash>
|
||||
<FallUpperbodyClipSetHash>MOVE_FALL@WEAPONS@PISTOL</FallUpperbodyClipSetHash>
|
||||
<FromStrafeTransitionUpperBodyClipSetHash>weapons@pistol@</FromStrafeTransitionUpperBodyClipSetHash>
|
||||
<SwapWeaponFilterHash>RightArm_NoSpine_filter</SwapWeaponFilterHash>
|
||||
<SwapWeaponInLowCoverFilterHash>RightArm_NoSpine_filter</SwapWeaponInLowCoverFilterHash>
|
||||
<AnimFireRateModifier value="1.000000"/>
|
||||
<AnimBlindFireRateModifier value="1.000000"/>
|
||||
<AnimWantingToShootFireRateModifier value="-1.000000"/>
|
||||
<UseFromStrafeUpperBodyAimNetwork value="true"/>
|
||||
<AimingDownTheBarrel value="true"/>
|
||||
<WeaponSwapData ref="SWAP_DEFAULT"/>
|
||||
<AimGrenadeThrowNormalClipsetHash>Wpn_Thrown_Grenade_Aiming_Rifle</AimGrenadeThrowNormalClipsetHash>
|
||||
<AimGrenadeThrowAlternateClipsetHash/>
|
||||
</Item>
|
||||
</WeaponAnimations>
|
||||
</Item>
|
||||
<Item key="FirstPerson">
|
||||
<Fallback>Default</Fallback>
|
||||
<WeaponAnimations>
|
||||
<Item key="WATER_NOZZLE">
|
||||
<MovementOverrideClipSetHash>move_m@generic</MovementOverrideClipSetHash>
|
||||
<CoverMovementClipSetHash/>
|
||||
<CoverMovementExtraClipSetHash/>
|
||||
<CoverAlternateMovementClipSetHash>cover@move@ai@base@1h</CoverAlternateMovementClipSetHash>
|
||||
<CoverWeaponClipSetHash>Cover_FirstPerson_Wpn_Pistol</CoverWeaponClipSetHash>
|
||||
<MotionClipSetHash>weapons@first_person@aim_idle@generic@pistol@shared@core</MotionClipSetHash>
|
||||
<MotionFilterHash>BothArms_filter</MotionFilterHash>
|
||||
<MotionCrouchClipSetHash/>
|
||||
<MotionStrafingClipSetHash/>
|
||||
<MotionStrafingStealthClipSetHash>move_ped_strafing_stealth</MotionStrafingStealthClipSetHash>
|
||||
<MotionStrafingUpperBodyClipSetHash/>
|
||||
<WeaponClipSetHash>weapons@first_person@aim_idle@generic@pistol@shared@core</WeaponClipSetHash>
|
||||
<WeaponClipSetStreamedHash>weapons@first_person@aim_rng@generic@pistol@pistol_str</WeaponClipSetStreamedHash>
|
||||
<WeaponClipSetHashInjured>weapons@pistol@pistol_injured</WeaponClipSetHashInjured>
|
||||
<WeaponClipSetHashStealth>weapons@first_person@aim_stealth@generic@pistol@shared@core</WeaponClipSetHashStealth>
|
||||
<WeaponClipSetHashHiCover/>
|
||||
<AlternativeClipSetWhenBlocked/>
|
||||
<ScopeWeaponClipSet/>
|
||||
<AlternateAimingStandingClipSetHash/>
|
||||
<AlternateAimingCrouchingClipSetHash/>
|
||||
<FiringVariationsStandingClipSetHash/>
|
||||
<FiringVariationsCrouchingClipSetHash/>
|
||||
<AimTurnStandingClipSetHash/>
|
||||
<AimTurnCrouchingClipSetHash/>
|
||||
<MeleeClipSetHash>melee@pistol@streamed_core</MeleeClipSetHash>
|
||||
<MeleeVariationClipSetHash/>
|
||||
<MeleeTauntClipSetHash/>
|
||||
<MeleeSupportTauntClipSetHash/>
|
||||
<MeleeStealthClipSetHash/>
|
||||
<ShellShockedClipSetHash>reaction@shellshock@unarmed</ShellShockedClipSetHash>
|
||||
<JumpUpperbodyClipSetHash>MOVE_JUMP@WEAPONS@PISTOL</JumpUpperbodyClipSetHash>
|
||||
<FallUpperbodyClipSetHash>MOVE_FALL@WEAPONS@PISTOL</FallUpperbodyClipSetHash>
|
||||
<FromStrafeTransitionUpperBodyClipSetHash>weapons@pistol@</FromStrafeTransitionUpperBodyClipSetHash>
|
||||
<SwapWeaponFilterHash>RightArm_NoSpine_filter</SwapWeaponFilterHash>
|
||||
<SwapWeaponInLowCoverFilterHash>RightArm_NoSpine_filter</SwapWeaponInLowCoverFilterHash>
|
||||
<AnimFireRateModifier value="1.000000"/>
|
||||
<AnimBlindFireRateModifier value="1.000000"/>
|
||||
<AnimWantingToShootFireRateModifier value="-1.000000"/>
|
||||
<UseFromStrafeUpperBodyAimNetwork value="true"/>
|
||||
<AimingDownTheBarrel value="true"/>
|
||||
<WeaponSwapData ref="SWAP_DEFAULT"/>
|
||||
<AimGrenadeThrowNormalClipsetHash>weapons@first_person@aim_rng@generic@pistol@shared@core</AimGrenadeThrowNormalClipsetHash>
|
||||
<AimGrenadeThrowAlternateClipsetHash/>
|
||||
<FPSTransitionFromIdleHash/>
|
||||
<FPSTransitionFromRNGHash>weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_idle</FPSTransitionFromRNGHash>
|
||||
<FPSTransitionFromLTHash>weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_idle</FPSTransitionFromLTHash>
|
||||
<FPSTransitionFromScopeHash>weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_idle</FPSTransitionFromScopeHash>
|
||||
<FPSTransitionFromUnholsterHash>weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@unholster_to_idle</FPSTransitionFromUnholsterHash>
|
||||
<FPSTransitionFromStealthHash>weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_idle</FPSTransitionFromStealthHash>
|
||||
<FPSTransitionToStealthHash>weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_stealth</FPSTransitionToStealthHash>
|
||||
<FPSTransitionToStealthFromUnholsterHash>weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@unholster_to_stealth</FPSTransitionToStealthFromUnholsterHash>
|
||||
<FPSFidgetClipsetHashes>
|
||||
<Item>weapons@first_person@aim_idle@p_m_zero@pistol@shared@fidgets@a</Item>
|
||||
<Item>weapons@first_person@aim_idle@p_m_zero@pistol@shared@fidgets@b</Item>
|
||||
<Item>weapons@first_person@aim_idle@p_m_zero@pistol@shared@fidgets@c</Item>
|
||||
</FPSFidgetClipsetHashes>
|
||||
<WeaponClipSetHashForClone>weapons@first_person@aim_idle@remote_clone@pistol@shared@core</WeaponClipSetHashForClone>
|
||||
</Item>
|
||||
</WeaponAnimations>
|
||||
</Item>
|
||||
<Item key="FirstPersonAiming">
|
||||
<Fallback>Default</Fallback>
|
||||
<WeaponAnimations>
|
||||
<Item key="WATER_NOZZLE">
|
||||
<CoverMovementClipSetHash/>
|
||||
<CoverMovementExtraClipSetHash/>
|
||||
<CoverAlternateMovementClipSetHash>cover@move@ai@base@1h</CoverAlternateMovementClipSetHash>
|
||||
<CoverWeaponClipSetHash>Cover_FirstPerson_Wpn_Pistol</CoverWeaponClipSetHash>
|
||||
<MotionClipSetHash>weapons@first_person@aim_rng@generic@pistol@shared@core</MotionClipSetHash>
|
||||
<MotionFilterHash>BothArms_filter</MotionFilterHash>
|
||||
<MotionCrouchClipSetHash/>
|
||||
<MotionStrafingClipSetHash/>
|
||||
<MotionStrafingStealthClipSetHash>move_ped_strafing_stealth</MotionStrafingStealthClipSetHash>
|
||||
<MotionStrafingUpperBodyClipSetHash/>
|
||||
<WeaponClipSetHash>weapons@first_person@aim_lt@generic@pistol@w_fire</WeaponClipSetHash>
|
||||
<WeaponClipSetStreamedHash>weapons@first_person@aim_rng@generic@pistol@pistol_str</WeaponClipSetStreamedHash>
|
||||
<WeaponClipSetHashInjured>weapons@pistol@pistol_injured</WeaponClipSetHashInjured>
|
||||
<WeaponClipSetHashStealth>weapons@first_person@aim_lt@generic@pistol@w_fire</WeaponClipSetHashStealth>
|
||||
<WeaponClipSetHashHiCover/>
|
||||
<AlternativeClipSetWhenBlocked/>
|
||||
<ScopeWeaponClipSet/>
|
||||
<AlternateAimingStandingClipSetHash/>
|
||||
<AlternateAimingCrouchingClipSetHash/>
|
||||
<FiringVariationsStandingClipSetHash/>
|
||||
<FiringVariationsCrouchingClipSetHash/>
|
||||
<AimTurnStandingClipSetHash/>
|
||||
<AimTurnCrouchingClipSetHash/>
|
||||
<MeleeClipSetHash>melee@pistol@streamed_core</MeleeClipSetHash>
|
||||
<MeleeVariationClipSetHash/>
|
||||
<MeleeTauntClipSetHash/>
|
||||
<MeleeSupportTauntClipSetHash/>
|
||||
<MeleeStealthClipSetHash/>
|
||||
<ShellShockedClipSetHash>reaction@shellshock@unarmed</ShellShockedClipSetHash>
|
||||
<JumpUpperbodyClipSetHash>MOVE_JUMP@WEAPONS@PISTOL</JumpUpperbodyClipSetHash>
|
||||
<FallUpperbodyClipSetHash>MOVE_FALL@WEAPONS@PISTOL</FallUpperbodyClipSetHash>
|
||||
<FromStrafeTransitionUpperBodyClipSetHash>weapons@pistol@</FromStrafeTransitionUpperBodyClipSetHash>
|
||||
<SwapWeaponFilterHash>RightArm_NoSpine_filter</SwapWeaponFilterHash>
|
||||
<SwapWeaponInLowCoverFilterHash>RightArm_NoSpine_filter</SwapWeaponInLowCoverFilterHash>
|
||||
<AnimFireRateModifier value="1.000000"/>
|
||||
<AnimBlindFireRateModifier value="1.000000"/>
|
||||
<AnimWantingToShootFireRateModifier value="-1.000000"/>
|
||||
<UseFromStrafeUpperBodyAimNetwork value="true"/>
|
||||
<AimingDownTheBarrel value="true"/>
|
||||
<WeaponSwapData ref="SWAP_DEFAULT"/>
|
||||
<AimGrenadeThrowNormalClipsetHash>weapons@first_person@aim_rng@generic@pistol@shared@core</AimGrenadeThrowNormalClipsetHash>
|
||||
<AimGrenadeThrowAlternateClipsetHash/>
|
||||
<FPSTransitionFromIdleHash>weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_lt</FPSTransitionFromIdleHash>
|
||||
<FPSTransitionFromRNGHash>weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_lt</FPSTransitionFromRNGHash>
|
||||
<FPSTransitionFromLTHash/>
|
||||
<FPSTransitionFromScopeHash>weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_lt</FPSTransitionFromScopeHash>
|
||||
<FPSTransitionFromUnholsterHash>weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@unholster_to_lt</FPSTransitionFromUnholsterHash>
|
||||
<FPSTransitionFromStealthHash>weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_lt</FPSTransitionFromStealthHash>
|
||||
<FPSTransitionToStealthHash>weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_stealth</FPSTransitionToStealthHash>
|
||||
<FPSFidgetClipsetHashes>
|
||||
<Item>weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@a</Item>
|
||||
<Item>weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@b</Item>
|
||||
<Item>weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@c</Item>
|
||||
<Item>weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@d</Item>
|
||||
</FPSFidgetClipsetHashes>
|
||||
</Item>
|
||||
</WeaponAnimations>
|
||||
</Item>
|
||||
<Item key="FirstPersonRNG">
|
||||
<Fallback>Default</Fallback>
|
||||
<WeaponAnimations>
|
||||
<Item key="WATER_NOZZLE">
|
||||
<CoverMovementClipSetHash/>
|
||||
<CoverMovementExtraClipSetHash/>
|
||||
<CoverAlternateMovementClipSetHash>cover@move@ai@base@1h</CoverAlternateMovementClipSetHash>
|
||||
<CoverWeaponClipSetHash>Cover_FirstPerson_Wpn_Pistol</CoverWeaponClipSetHash>
|
||||
<MotionClipSetHash>weapons@first_person@aim_rng@generic@pistol@shared@core</MotionClipSetHash>
|
||||
<MotionFilterHash>BothArms_filter</MotionFilterHash>
|
||||
<MotionCrouchClipSetHash/>
|
||||
<MotionStrafingClipSetHash/>
|
||||
<MotionStrafingStealthClipSetHash>move_ped_strafing_stealth</MotionStrafingStealthClipSetHash>
|
||||
<MotionStrafingUpperBodyClipSetHash/>
|
||||
<WeaponClipSetHash>weapons@first_person@aim_rng@pistol@pistol</WeaponClipSetHash>
|
||||
<WeaponClipSetStreamedHash>weapons@first_person@aim_rng@generic@pistol@pistol_str</WeaponClipSetStreamedHash>
|
||||
<WeaponClipSetHashInjured>weapons@pistol@pistol_injured</WeaponClipSetHashInjured>
|
||||
<WeaponClipSetHashStealth>weapons@first_person@aim_rng@pistol@pistol</WeaponClipSetHashStealth>
|
||||
<WeaponClipSetHashHiCover/>
|
||||
<AlternativeClipSetWhenBlocked/>
|
||||
<ScopeWeaponClipSet/>
|
||||
<AlternateAimingStandingClipSetHash/>
|
||||
<AlternateAimingCrouchingClipSetHash/>
|
||||
<FiringVariationsStandingClipSetHash/>
|
||||
<FiringVariationsCrouchingClipSetHash/>
|
||||
<AimTurnStandingClipSetHash/>
|
||||
<AimTurnCrouchingClipSetHash/>
|
||||
<MeleeClipSetHash>melee@pistol@streamed_core</MeleeClipSetHash>
|
||||
<MeleeVariationClipSetHash/>
|
||||
<MeleeTauntClipSetHash/>
|
||||
<MeleeSupportTauntClipSetHash/>
|
||||
<MeleeStealthClipSetHash/>
|
||||
<ShellShockedClipSetHash>reaction@shellshock@unarmed</ShellShockedClipSetHash>
|
||||
<JumpUpperbodyClipSetHash>MOVE_JUMP@WEAPONS@PISTOL</JumpUpperbodyClipSetHash>
|
||||
<FallUpperbodyClipSetHash>MOVE_FALL@WEAPONS@PISTOL</FallUpperbodyClipSetHash>
|
||||
<FromStrafeTransitionUpperBodyClipSetHash>weapons@pistol@</FromStrafeTransitionUpperBodyClipSetHash>
|
||||
<SwapWeaponFilterHash>RightArm_NoSpine_filter</SwapWeaponFilterHash>
|
||||
<SwapWeaponInLowCoverFilterHash>RightArm_NoSpine_filter</SwapWeaponInLowCoverFilterHash>
|
||||
<AnimFireRateModifier value="1.000000"/>
|
||||
<AnimBlindFireRateModifier value="1.000000"/>
|
||||
<AnimWantingToShootFireRateModifier value="-1.000000"/>
|
||||
<UseFromStrafeUpperBodyAimNetwork value="true"/>
|
||||
<AimingDownTheBarrel value="true"/>
|
||||
<WeaponSwapData ref="SWAP_DEFAULT"/>
|
||||
<AimGrenadeThrowNormalClipsetHash>weapons@first_person@aim_rng@generic@pistol@shared@core</AimGrenadeThrowNormalClipsetHash>
|
||||
<AimGrenadeThrowAlternateClipsetHash/>
|
||||
<FPSTransitionFromIdleHash>weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_rng</FPSTransitionFromIdleHash>
|
||||
<FPSTransitionFromRNGHash/>
|
||||
<FPSTransitionFromLTHash>weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_rng</FPSTransitionFromLTHash>
|
||||
<FPSTransitionFromScopeHash>weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_rng</FPSTransitionFromScopeHash>
|
||||
<FPSTransitionFromUnholsterHash>weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@unholster_to_rng</FPSTransitionFromUnholsterHash>
|
||||
<FPSTransitionFromStealthHash>weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_rng</FPSTransitionFromStealthHash>
|
||||
<FPSTransitionToStealthHash>weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_stealth</FPSTransitionToStealthHash>
|
||||
<FPSFidgetClipsetHashes>
|
||||
<Item>weapons@first_person@aim_rng@p_m_zero@pistol@shared@fidgets@a</Item>
|
||||
<Item>weapons@first_person@aim_rng@p_m_zero@pistol@shared@fidgets@b</Item>
|
||||
<Item>weapons@first_person@aim_rng@p_m_zero@pistol@shared@fidgets@c</Item>
|
||||
</FPSFidgetClipsetHashes>
|
||||
</Item>
|
||||
</WeaponAnimations>
|
||||
</Item>
|
||||
</WeaponAnimationsSets>
|
||||
</CWeaponAnimationsSets>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF - 8"?>
|
||||
|
||||
<CWeaponModelInfo__InitDataList>
|
||||
<InitDatas>
|
||||
<Item>
|
||||
<modelName>w_pi_invisgun</modelName>
|
||||
<txdName>w_pi_invisgun</txdName>
|
||||
<ptfxAssetName>NULL</ptfxAssetName>
|
||||
<lodDist value="500"/>
|
||||
</Item>
|
||||
</InitDatas>
|
||||
</CWeaponModelInfo__InitDataList>
|
||||
|
252
resources/[carscripts]/fh_detailer/meta/weapons - Kopie.meta
Normal file
252
resources/[carscripts]/fh_detailer/meta/weapons - Kopie.meta
Normal file
|
@ -0,0 +1,252 @@
|
|||
<?xml version="1.0" encoding="UTF - 8"?>
|
||||
|
||||
<CWeaponInfoBlob>
|
||||
<SlotNavigateOrder>
|
||||
<Item>
|
||||
<WeaponSlots>
|
||||
<Item>
|
||||
<OrderNumber value="402"/>
|
||||
<Entry>SLOT_WATER_NOZZLE</Entry>
|
||||
</Item>
|
||||
</WeaponSlots>
|
||||
</Item>
|
||||
</SlotNavigateOrder>
|
||||
<Infos>
|
||||
<Item>
|
||||
<Infos>
|
||||
<Item type="CWeaponInfo">
|
||||
<Name>WATER_NOZZLE</Name>
|
||||
<Model>w_pi_invisgun</Model>
|
||||
<Audio>NONE</Audio>
|
||||
<Slot>SLOT_WATER_NOZZLE</Slot>
|
||||
<DamageType>NONE</DamageType>
|
||||
<Explosion>
|
||||
<Default>DONTCARE</Default>
|
||||
<HitCar>DONTCARE</HitCar>
|
||||
<HitTruck>DONTCARE</HitTruck>
|
||||
<HitBike>DONTCARE</HitBike>
|
||||
<HitBoat>DONTCARE</HitBoat>
|
||||
<HitPlane>DONTCARE</HitPlane>
|
||||
</Explosion>
|
||||
<FuseFx>proj_snowball_fuse</FuseFx>
|
||||
<FuseFxFP />
|
||||
<TrailFx>proj_snowball_trail</TrailFx>
|
||||
<FireType>PROJECTILE</FireType>
|
||||
<WheelSlot>WHEEL_PISTOL</WheelSlot>
|
||||
<Group>GROUP_STUNGUN</Group>
|
||||
<AmmoInfo ref="AMMO_STUNGUN"/>
|
||||
<AimingInfo ref="PISTOL_2H_BASE_STRAFE"/>
|
||||
<ClipSize value="2104529083"/>
|
||||
<AccuracySpread value="1.000000"/>
|
||||
<AccurateModeAccuracyModifier value="0.500000"/>
|
||||
<RunAndGunAccuracyModifier value="2.000000"/>
|
||||
<RunAndGunAccuracyMinOverride value="-1.000000"/>
|
||||
<RecoilAccuracyMax value="1.000000"/>
|
||||
<RecoilErrorTime value="0.000000"/>
|
||||
<RecoilRecoveryRate value="1.000000"/>
|
||||
<RecoilAccuracyToAllowHeadShotAI value="1000.000000"/>
|
||||
<MinHeadShotDistanceAI value="1000.000000"/>
|
||||
<MaxHeadShotDistanceAI value="1000.000000"/>
|
||||
<HeadShotDamageModifierAI value="1000.000000"/>
|
||||
<RecoilAccuracyToAllowHeadShotPlayer value="0.175000"/>
|
||||
<MinHeadShotDistancePlayer value="5.000000"/>
|
||||
<MaxHeadShotDistancePlayer value="40.000000"/>
|
||||
<HeadShotDamageModifierPlayer value="18.000000"/>
|
||||
<Damage value="0.000000"/>
|
||||
<DamageTime value="4.000000"/>
|
||||
<DamageTimeInVehicle value="5.000000"/>
|
||||
<DamageTimeInVehicleHeadShot value="5.000000"/>
|
||||
<HitLimbsDamageModifier value="0.500000"/>
|
||||
<NetworkHitLimbsDamageModifier value="0.800000"/>
|
||||
<LightlyArmouredDamageModifier value="0.750000"/>
|
||||
<ProjectileFlags>DestroyOnImpact ProcessImpacts NoPullPin DoubleDamping ApplyDamageOnImpact DontFireAnyEvents</ProjectileFlags>
|
||||
<Force value="0.000000"/>
|
||||
<ForceHitPed value="0.000000"/>
|
||||
<ForceHitVehicle value="0.000000"/>
|
||||
<ForceHitFlyingHeli value="0.000000"/>
|
||||
<OverrideForces/>
|
||||
<ForceMaxStrengthMult value="0.000000"/>
|
||||
<ForceFalloffRangeStart value="0.000000"/>
|
||||
<ForceFalloffRangeEnd value="0.000000"/>
|
||||
<ForceFalloffMin value="0.000000"/>
|
||||
<ProjectileForce value="0.000000"/>
|
||||
<FragImpulse value="0.000000"/>
|
||||
<Penetration value="0.000000"/>
|
||||
<VerticalLaunchAdjustment value="0.000000"/>
|
||||
<DropForwardVelocity value="0.000000"/>
|
||||
<Speed value="500.000000"/>
|
||||
<BulletsInBatch value="1"/>
|
||||
<BatchSpread value="0.000000"/>
|
||||
<ReloadTimeMP value="-1.000000"/>
|
||||
<ReloadTimeSP value="-1.000000"/>
|
||||
<VehicleReloadTime value="2.000000"/>
|
||||
<AnimReloadRate value="0.500000"/>
|
||||
<BulletsPerAnimLoop value="1"/>
|
||||
<TimeBetweenShots value="1.000000"/>
|
||||
<TimeLeftBetweenShotsWhereShouldFireIsCached value="-1.000000"/>
|
||||
<SpinUpTime value="0.000000"/>
|
||||
<SpinTime value="0.000000"/>
|
||||
<SpinDownTime value="0.000000"/>
|
||||
<AlternateWaitTime value="-1.000000"/>
|
||||
<BulletBendingNearRadius value="0.000000"/>
|
||||
<BulletBendingFarRadius value="0.250000"/>
|
||||
<BulletBendingZoomedRadius value="0.150000"/>
|
||||
<FirstPersonBulletBendingNearRadius value="0.000000"/>
|
||||
<FirstPersonBulletBendingFarRadius value="0.250000"/>
|
||||
<FirstPersonBulletBendingZoomedRadius value="0.150000"/>
|
||||
<Fx>
|
||||
<EffectGroup>WEAPON_EFFECT_GROUP_PUNCH_KICK</EffectGroup>
|
||||
<FlashFx />
|
||||
<FlashFxAlt/>
|
||||
<MuzzleSmokeFx/>
|
||||
<MuzzleSmokeFxMinLevel value="0.000000"/>
|
||||
<MuzzleSmokeFxIncPerShot value="0.000000"/>
|
||||
<MuzzleSmokeFxDecPerSec value="0.000000"/>
|
||||
<ShellFx>NONE</ShellFx>
|
||||
<TracerFx />
|
||||
<PedDamageHash>NONE</PedDamageHash>
|
||||
<TracerFxChanceSP value="0.150000"/>
|
||||
<TracerFxChanceMP value="0.750000"/>
|
||||
<FlashFxChanceSP value="1.000000"/>
|
||||
<FlashFxChanceMP value="1.000000"/>
|
||||
<FlashFxAltChance value="0.000000"/>
|
||||
<FlashFxScale value="0.500000"/>
|
||||
<FlashFxLightEnabled value="false"/>
|
||||
<FlashFxLightCastsShadows value="false"/>
|
||||
<FlashFxLightOffsetDist value="0.000000"/>
|
||||
<FlashFxLightRGBAMin x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FlashFxLightRGBAMax x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FlashFxLightIntensityMinMax x="0.000000" y="0.000000"/>
|
||||
<FlashFxLightRangeMinMax x="0.000000" y="0.000000"/>
|
||||
<FlashFxLightFalloffMinMax x="0.000000" y="0.000000"/>
|
||||
<GroundDisturbFxEnabled value="false"/>
|
||||
<GroundDisturbFxDist value="5.000000"/>
|
||||
<GroundDisturbFxNameDefault/>
|
||||
<GroundDisturbFxNameSand/>
|
||||
<GroundDisturbFxNameDirt/>
|
||||
<GroundDisturbFxNameWater/>
|
||||
<GroundDisturbFxNameFoliage/>
|
||||
</Fx>
|
||||
<InitialRumbleDuration value="0"/>
|
||||
<InitialRumbleIntensity value="0.00000"/>
|
||||
<InitialRumbleIntensityTrigger value="0.00000"/>
|
||||
<RumbleDuration value="0"/>
|
||||
<RumbleIntensity value="0.00000"/>
|
||||
<RumbleIntensityTrigger value="0.00000"/>
|
||||
<RumbleDamageIntensity value="0.000000"/>
|
||||
<InitialRumbleDurationFps value="0"/>
|
||||
<InitialRumbleIntensityFps value="0.000000"/>
|
||||
<RumbleDurationFps value="0"/>
|
||||
<RumbleIntensityFps value="0.000000"/>
|
||||
<NetworkPlayerDamageModifier value="0.000000"/>
|
||||
<NetworkPedDamageModifier value="0.000000"/>
|
||||
<NetworkHeadShotPlayerDamageModifier value="0.000000"/>
|
||||
<LockOnRange value="0.000000"/>
|
||||
<WeaponRange value="5.000000"/>
|
||||
<BulletDirectionOffsetInDegrees value="0.000000"/>
|
||||
<AiSoundRange value="0.000000"/>
|
||||
<AiPotentialBlastEventRange value="-1.000000"/>
|
||||
<DamageFallOffRangeMin value="0.000000"/>
|
||||
<DamageFallOffRangeMax value="0.000000"/>
|
||||
<DamageFallOffModifier value="0.000000"/>
|
||||
<VehicleWeaponHash/>
|
||||
<DefaultCameraHash>DEFAULT_THIRD_PERSON_PED_AIM_CAMERA</DefaultCameraHash>
|
||||
<CoverCameraHash>DEFAULT_THIRD_PERSON_PED_AIM_IN_COVER_CAMERA</CoverCameraHash>
|
||||
<CoverReadyToFireCameraHash/>
|
||||
<RunAndGunCameraHash>DEFAULT_THIRD_PERSON_PED_RUN_AND_GUN_CAMERA</RunAndGunCameraHash>
|
||||
<CinematicShootingCameraHash>DEFAULT_THIRD_PERSON_PED_CINEMATIC_SHOOTING_CAMERA</CinematicShootingCameraHash>
|
||||
<AlternativeOrScopedCameraHash/>
|
||||
<RunAndGunAlternativeOrScopedCameraHash/>
|
||||
<CinematicShootingAlternativeOrScopedCameraHash/>
|
||||
<CameraFov value="45.000000"/>
|
||||
<FirstPersonScopeFov value="30.00000"/>
|
||||
<FirstPersonRNGOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonRNGRotationOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonLTOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonLTRotationOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonScopeOffset x="-0.00300" y="0.0000" z="0.0090"/>
|
||||
<FirstPersonScopeAttachmentOffset x="0.00000" y="0.0000" z="0.0000"/>
|
||||
<FirstPersonScopeRotationOffset x="-0.30000" y="0.0000" z="0.0000"/>
|
||||
<FirstPersonScopeAttachmentRotationOffset x="0.00000" y="0.0000" z="0.0000"/>
|
||||
<FirstPersonAsThirdPersonIdleOffset x="0.075" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonAsThirdPersonRNGOffset x="-0.025" y="-0.025" z="-0.040"/>
|
||||
<FirstPersonAsThirdPersonLTOffset x="0.050" y="0.060" z="-0.0250"/>
|
||||
<FirstPersonAsThirdPersonScopeOffset x="0.070" y="0.000000" z="-0.020"/>
|
||||
<FirstPersonAsThirdPersonWeaponBlockedOffset x="0.0000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonDofSubjectMagnificationPowerFactorNear value="1.025000"/>
|
||||
<FirstPersonDofMaxNearInFocusDistance value="0.000000"/>
|
||||
<FirstPersonDofMaxNearInFocusDistanceBlendLevel value="0.300000"/>
|
||||
<ZoomFactorForAccurateMode value="1.300000"/>
|
||||
<RecoilShakeHash>PISTOL_RECOIL_SHAKE</RecoilShakeHash>
|
||||
<RecoilShakeHashFirstPerson>FPS_PISTOL_RECOIL_SHAKE</RecoilShakeHashFirstPerson>
|
||||
<AccuracyOffsetShakeHash/>
|
||||
<MinTimeBetweenRecoilShakes value="150"/>
|
||||
<RecoilShakeAmplitude value="0.333000"/>
|
||||
<ExplosionShakeAmplitude value="-1.000000"/>
|
||||
<IkRecoilDisplacement value="0.0"/>
|
||||
<IkRecoilDisplacementScope value="0.004"/>
|
||||
<IkRecoilDisplacementScaleBackward value="1.0"/>
|
||||
<IkRecoilDisplacementScaleVertical value="0.4"/>
|
||||
<ReticuleHudPosition x="0.000000" y="0.000000"/>
|
||||
<AimOffsetMin x="0.200000" y="0.100000" z="0.600000"/>
|
||||
<AimProbeLengthMin value="0.380000"/>
|
||||
<AimOffsetMax x="0.170000" y="-0.200000" z="0.500000"/>
|
||||
<AimProbeLengthMax value="0.315000"/>
|
||||
<AimOffsetMinFPSIdle x="0.178000" y="0.392000" z="0.135000"/>
|
||||
<AimOffsetMedFPSIdle x="0.169000" y="0.312000" z="0.420000"/>
|
||||
<AimOffsetMaxFPSIdle x="0.187000" y="0.064000" z="0.649000"/>
|
||||
<AimOffsetMinFPSLT x="0.009000" y="0.334000" z="0.555000"/>
|
||||
<AimOffsetMaxFPSLT x="0.062000" y="-0.164000" z="0.588000"/>
|
||||
<AimOffsetMinFPSRNG x="0.114000" y="0.390000" z="0.485000"/>
|
||||
<AimOffsetMaxFPSRNG x="0.113000" y="-0.263000" z="0.586000"/>
|
||||
<AimOffsetMinFPSScope x="0.009000" y="0.421000" z="0.462000"/>
|
||||
<AimOffsetMaxFPSScope x="0.037000" y="-0.224000" z="0.639000"/>
|
||||
<AimOffsetEndPosMinFPSIdle x="0.208000" y="0.700000" z="0.003000"/>
|
||||
<AimOffsetEndPosMedFPSIdle x="0.203000" y="0.604000" z="0.553000"/>
|
||||
<AimOffsetEndPosMaxFPSIdle x="0.207000" y="-0.040000" z="0.942000"/>
|
||||
<TorsoAimOffset x="-1.300000" y="0.550000"/>
|
||||
<TorsoCrouchedAimOffset x="0.200000" y="0.050000"/>
|
||||
<LeftHandIkOffset x="-0.025000" y="0.100000" z="-0.050000"/>
|
||||
<ReticuleMinSizeStanding value="0.650000"/>
|
||||
<ReticuleMinSizeCrouched value="0.550000"/>
|
||||
<ReticuleScale value="0.300000"/>
|
||||
<ReticuleStyleHash>WEAPON_PISTOL</ReticuleStyleHash>
|
||||
<FirstPersonReticuleStyleHash/>
|
||||
<PickupHash>PICKUP_WEAPON_STUNGUN</PickupHash>
|
||||
<MPPickupHash>PICKUP_AMMO_BULLET_MP</MPPickupHash>
|
||||
<HumanNameHash>WATER_NOZZLE</HumanNameHash>
|
||||
<MovementModeConditionalIdle>MMI_1Handed</MovementModeConditionalIdle>
|
||||
<StatName>STUNGUN</StatName>
|
||||
<KnockdownCount value="-1"/>
|
||||
<KillshotImpulseScale value="1.000000"/>
|
||||
<NmShotTuningSet>Normal</NmShotTuningSet>
|
||||
<AttachPoints/>
|
||||
<GunFeedBone/>
|
||||
<TargetSequenceGroup/>
|
||||
<WeaponFlags>CarriedInHand Gun CanLockonOnFoot CanLockonInVehicle CanFreeAim AnimCrouchFire UsableOnFoot UsableClimbing UsableInCover DoesRevivableDamage DisplayRechargeTimeHUD OnlyFireOneShot NonLethal AllowCloseQuarterKills DisablePlayerBlockingInMP CanPerformArrest HasLowCoverSwaps DontBreakRopes QuitTransitionToIdleIntroOnWeaponChange DisableLeftHandIkWhenOnFoot TorsoIKForWeaponBlock UseFPSAimIK UseFPSSecondaryMotion DontPlayDryFireAnim</WeaponFlags>
|
||||
<TintSpecValues ref="TINT_DEFAULT"/>
|
||||
<FiringPatternAliases ref="NULL"/>
|
||||
<ReloadUpperBodyFixupExpressionData ref="default"/>
|
||||
<AmmoDiminishingRate value="0"/>
|
||||
<AimingBreathingAdditiveWeight value="1.000000"/>
|
||||
<FiringBreathingAdditiveWeight value="1.000000"/>
|
||||
<StealthAimingBreathingAdditiveWeight value="1.000000"/>
|
||||
<StealthFiringBreathingAdditiveWeight value="1.000000"/>
|
||||
<AimingLeanAdditiveWeight value="1.000000"/>
|
||||
<FiringLeanAdditiveWeight value="1.000000"/>
|
||||
<StealthAimingLeanAdditiveWeight value="1.000000"/>
|
||||
<StealthFiringLeanAdditiveWeight value="1.000000"/>
|
||||
<ExpandPedCapsuleRadius value="0.000000"/>
|
||||
<AudioCollisionHash/>
|
||||
<HudDamage value="0"/>
|
||||
<HudSpeed value="0"/>
|
||||
<HudCapacity value="0"/>
|
||||
<HudAccuracy value="0"/>
|
||||
<HudRange value="0"/>
|
||||
</Item>
|
||||
</Infos>
|
||||
</Item>
|
||||
</Infos>
|
||||
<Name>AR</Name>
|
||||
</CWeaponInfoBlob>
|
||||
|
252
resources/[carscripts]/fh_detailer/meta/weapons.meta
Normal file
252
resources/[carscripts]/fh_detailer/meta/weapons.meta
Normal file
|
@ -0,0 +1,252 @@
|
|||
<?xml version="1.0" encoding="UTF - 8"?>
|
||||
|
||||
<CWeaponInfoBlob>
|
||||
<SlotNavigateOrder>
|
||||
<Item>
|
||||
<WeaponSlots>
|
||||
<Item>
|
||||
<OrderNumber value="402"/>
|
||||
<Entry>SLOT_WATER_NOZZLE</Entry>
|
||||
</Item>
|
||||
</WeaponSlots>
|
||||
</Item>
|
||||
</SlotNavigateOrder>
|
||||
<Infos>
|
||||
<Item>
|
||||
<Infos>
|
||||
<Item type="CWeaponInfo">
|
||||
<Name>WATER_NOZZLE</Name>
|
||||
<Model>w_pi_invisgun</Model>
|
||||
<Audio>NONE</Audio>
|
||||
<Slot>SLOT_WATER_NOZZLE</Slot>
|
||||
<DamageType>NONE</DamageType>
|
||||
<Explosion>
|
||||
<Default>DONTCARE</Default>
|
||||
<HitCar>DONTCARE</HitCar>
|
||||
<HitTruck>DONTCARE</HitTruck>
|
||||
<HitBike>DONTCARE</HitBike>
|
||||
<HitBoat>DONTCARE</HitBoat>
|
||||
<HitPlane>DONTCARE</HitPlane>
|
||||
</Explosion>
|
||||
<FuseFx>proj_snowball_fuse</FuseFx>
|
||||
<FuseFxFP />
|
||||
<TrailFx>proj_snowball_trail</TrailFx>
|
||||
<FireType>PROJECTILE</FireType>
|
||||
<WheelSlot>WHEEL_PISTOL</WheelSlot>
|
||||
<Group>GROUP_STUNGUN</Group>
|
||||
<AmmoInfo ref="AMMO_STUNGUN"/>
|
||||
<AimingInfo ref="PISTOL_2H_BASE_STRAFE"/>
|
||||
<ClipSize value="2104529083"/>
|
||||
<AccuracySpread value="1.000000"/>
|
||||
<AccurateModeAccuracyModifier value="0.500000"/>
|
||||
<RunAndGunAccuracyModifier value="2.000000"/>
|
||||
<RunAndGunAccuracyMinOverride value="-1.000000"/>
|
||||
<RecoilAccuracyMax value="1.000000"/>
|
||||
<RecoilErrorTime value="0.000000"/>
|
||||
<RecoilRecoveryRate value="1.000000"/>
|
||||
<RecoilAccuracyToAllowHeadShotAI value="1000.000000"/>
|
||||
<MinHeadShotDistanceAI value="1000.000000"/>
|
||||
<MaxHeadShotDistanceAI value="1000.000000"/>
|
||||
<HeadShotDamageModifierAI value="1000.000000"/>
|
||||
<RecoilAccuracyToAllowHeadShotPlayer value="0.175000"/>
|
||||
<MinHeadShotDistancePlayer value="5.000000"/>
|
||||
<MaxHeadShotDistancePlayer value="40.000000"/>
|
||||
<HeadShotDamageModifierPlayer value="18.000000"/>
|
||||
<Damage value="0.000000"/>
|
||||
<DamageTime value="4.000000"/>
|
||||
<DamageTimeInVehicle value="5.000000"/>
|
||||
<DamageTimeInVehicleHeadShot value="5.000000"/>
|
||||
<HitLimbsDamageModifier value="0.500000"/>
|
||||
<NetworkHitLimbsDamageModifier value="0.800000"/>
|
||||
<LightlyArmouredDamageModifier value="0.750000"/>
|
||||
<ProjectileFlags>DestroyOnImpact ProcessImpacts NoPullPin DoubleDamping ApplyDamageOnImpact DontFireAnyEvents</ProjectileFlags>
|
||||
<Force value="0.000000"/>
|
||||
<ForceHitPed value="0.000000"/>
|
||||
<ForceHitVehicle value="0.000000"/>
|
||||
<ForceHitFlyingHeli value="0.000000"/>
|
||||
<OverrideForces/>
|
||||
<ForceMaxStrengthMult value="0.000000"/>
|
||||
<ForceFalloffRangeStart value="0.000000"/>
|
||||
<ForceFalloffRangeEnd value="0.000000"/>
|
||||
<ForceFalloffMin value="0.000000"/>
|
||||
<ProjectileForce value="0.000000"/>
|
||||
<FragImpulse value="0.000000"/>
|
||||
<Penetration value="0.000000"/>
|
||||
<VerticalLaunchAdjustment value="0.000000"/>
|
||||
<DropForwardVelocity value="0.000000"/>
|
||||
<Speed value="500.000000"/>
|
||||
<BulletsInBatch value="1"/>
|
||||
<BatchSpread value="0.000000"/>
|
||||
<ReloadTimeMP value="-1.000000"/>
|
||||
<ReloadTimeSP value="-1.000000"/>
|
||||
<VehicleReloadTime value="2.000000"/>
|
||||
<AnimReloadRate value="0.500000"/>
|
||||
<BulletsPerAnimLoop value="1"/>
|
||||
<TimeBetweenShots value="1.000000"/>
|
||||
<TimeLeftBetweenShotsWhereShouldFireIsCached value="-1.000000"/>
|
||||
<SpinUpTime value="0.000000"/>
|
||||
<SpinTime value="0.000000"/>
|
||||
<SpinDownTime value="0.000000"/>
|
||||
<AlternateWaitTime value="-1.000000"/>
|
||||
<BulletBendingNearRadius value="0.000000"/>
|
||||
<BulletBendingFarRadius value="0.250000"/>
|
||||
<BulletBendingZoomedRadius value="0.150000"/>
|
||||
<FirstPersonBulletBendingNearRadius value="0.000000"/>
|
||||
<FirstPersonBulletBendingFarRadius value="0.250000"/>
|
||||
<FirstPersonBulletBendingZoomedRadius value="0.150000"/>
|
||||
<Fx>
|
||||
<EffectGroup>WEAPON_EFFECT_GROUP_PUNCH_KICK</EffectGroup>
|
||||
<FlashFx />
|
||||
<FlashFxAlt/>
|
||||
<MuzzleSmokeFx/>
|
||||
<MuzzleSmokeFxMinLevel value="0.000000"/>
|
||||
<MuzzleSmokeFxIncPerShot value="0.000000"/>
|
||||
<MuzzleSmokeFxDecPerSec value="0.000000"/>
|
||||
<ShellFx>NONE</ShellFx>
|
||||
<TracerFx />
|
||||
<PedDamageHash>NONE</PedDamageHash>
|
||||
<TracerFxChanceSP value="0.150000"/>
|
||||
<TracerFxChanceMP value="0.750000"/>
|
||||
<FlashFxChanceSP value="1.000000"/>
|
||||
<FlashFxChanceMP value="1.000000"/>
|
||||
<FlashFxAltChance value="0.000000"/>
|
||||
<FlashFxScale value="0.500000"/>
|
||||
<FlashFxLightEnabled value="false"/>
|
||||
<FlashFxLightCastsShadows value="false"/>
|
||||
<FlashFxLightOffsetDist value="0.000000"/>
|
||||
<FlashFxLightRGBAMin x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FlashFxLightRGBAMax x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FlashFxLightIntensityMinMax x="0.000000" y="0.000000"/>
|
||||
<FlashFxLightRangeMinMax x="0.000000" y="0.000000"/>
|
||||
<FlashFxLightFalloffMinMax x="0.000000" y="0.000000"/>
|
||||
<GroundDisturbFxEnabled value="false"/>
|
||||
<GroundDisturbFxDist value="5.000000"/>
|
||||
<GroundDisturbFxNameDefault/>
|
||||
<GroundDisturbFxNameSand/>
|
||||
<GroundDisturbFxNameDirt/>
|
||||
<GroundDisturbFxNameWater/>
|
||||
<GroundDisturbFxNameFoliage/>
|
||||
</Fx>
|
||||
<InitialRumbleDuration value="0"/>
|
||||
<InitialRumbleIntensity value="0.00000"/>
|
||||
<InitialRumbleIntensityTrigger value="0.00000"/>
|
||||
<RumbleDuration value="0"/>
|
||||
<RumbleIntensity value="0.00000"/>
|
||||
<RumbleIntensityTrigger value="0.00000"/>
|
||||
<RumbleDamageIntensity value="0.000000"/>
|
||||
<InitialRumbleDurationFps value="0"/>
|
||||
<InitialRumbleIntensityFps value="0.000000"/>
|
||||
<RumbleDurationFps value="0"/>
|
||||
<RumbleIntensityFps value="0.000000"/>
|
||||
<NetworkPlayerDamageModifier value="0.000000"/>
|
||||
<NetworkPedDamageModifier value="0.000000"/>
|
||||
<NetworkHeadShotPlayerDamageModifier value="0.000000"/>
|
||||
<LockOnRange value="0.000000"/>
|
||||
<WeaponRange value="5.000000"/>
|
||||
<BulletDirectionOffsetInDegrees value="0.000000"/>
|
||||
<AiSoundRange value="0.000000"/>
|
||||
<AiPotentialBlastEventRange value="-1.000000"/>
|
||||
<DamageFallOffRangeMin value="0.000000"/>
|
||||
<DamageFallOffRangeMax value="0.000000"/>
|
||||
<DamageFallOffModifier value="0.000000"/>
|
||||
<VehicleWeaponHash/>
|
||||
<DefaultCameraHash>DEFAULT_THIRD_PERSON_PED_AIM_CAMERA</DefaultCameraHash>
|
||||
<CoverCameraHash>DEFAULT_THIRD_PERSON_PED_AIM_IN_COVER_CAMERA</CoverCameraHash>
|
||||
<CoverReadyToFireCameraHash/>
|
||||
<RunAndGunCameraHash>DEFAULT_THIRD_PERSON_PED_RUN_AND_GUN_CAMERA</RunAndGunCameraHash>
|
||||
<CinematicShootingCameraHash>DEFAULT_THIRD_PERSON_PED_CINEMATIC_SHOOTING_CAMERA</CinematicShootingCameraHash>
|
||||
<AlternativeOrScopedCameraHash/>
|
||||
<RunAndGunAlternativeOrScopedCameraHash/>
|
||||
<CinematicShootingAlternativeOrScopedCameraHash/>
|
||||
<CameraFov value="45.000000"/>
|
||||
<FirstPersonScopeFov value="30.00000"/>
|
||||
<FirstPersonRNGOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonRNGRotationOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonLTOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonLTRotationOffset x="0.000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonScopeOffset x="-0.00300" y="0.0000" z="0.0090"/>
|
||||
<FirstPersonScopeAttachmentOffset x="0.00000" y="0.0000" z="0.0000"/>
|
||||
<FirstPersonScopeRotationOffset x="-0.30000" y="0.0000" z="0.0000"/>
|
||||
<FirstPersonScopeAttachmentRotationOffset x="0.00000" y="0.0000" z="0.0000"/>
|
||||
<FirstPersonAsThirdPersonIdleOffset x="0.075" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonAsThirdPersonRNGOffset x="-0.025" y="-0.025" z="-0.040"/>
|
||||
<FirstPersonAsThirdPersonLTOffset x="0.050" y="0.060" z="-0.0250"/>
|
||||
<FirstPersonAsThirdPersonScopeOffset x="0.070" y="0.000000" z="-0.020"/>
|
||||
<FirstPersonAsThirdPersonWeaponBlockedOffset x="0.0000000" y="0.000000" z="0.000000"/>
|
||||
<FirstPersonDofSubjectMagnificationPowerFactorNear value="1.025000"/>
|
||||
<FirstPersonDofMaxNearInFocusDistance value="0.000000"/>
|
||||
<FirstPersonDofMaxNearInFocusDistanceBlendLevel value="0.300000"/>
|
||||
<ZoomFactorForAccurateMode value="1.300000"/>
|
||||
<RecoilShakeHash>PISTOL_RECOIL_SHAKE</RecoilShakeHash>
|
||||
<RecoilShakeHashFirstPerson>FPS_PISTOL_RECOIL_SHAKE</RecoilShakeHashFirstPerson>
|
||||
<AccuracyOffsetShakeHash/>
|
||||
<MinTimeBetweenRecoilShakes value="150"/>
|
||||
<RecoilShakeAmplitude value="0.333000"/>
|
||||
<ExplosionShakeAmplitude value="-1.000000"/>
|
||||
<IkRecoilDisplacement value="0.0"/>
|
||||
<IkRecoilDisplacementScope value="0.004"/>
|
||||
<IkRecoilDisplacementScaleBackward value="1.0"/>
|
||||
<IkRecoilDisplacementScaleVertical value="0.4"/>
|
||||
<ReticuleHudPosition x="0.000000" y="0.000000"/>
|
||||
<AimOffsetMin x="0.200000" y="0.100000" z="0.600000"/>
|
||||
<AimProbeLengthMin value="0.380000"/>
|
||||
<AimOffsetMax x="0.170000" y="-0.200000" z="0.500000"/>
|
||||
<AimProbeLengthMax value="0.315000"/>
|
||||
<AimOffsetMinFPSIdle x="0.178000" y="0.392000" z="0.135000"/>
|
||||
<AimOffsetMedFPSIdle x="0.169000" y="0.312000" z="0.420000"/>
|
||||
<AimOffsetMaxFPSIdle x="0.187000" y="0.064000" z="0.649000"/>
|
||||
<AimOffsetMinFPSLT x="0.009000" y="0.334000" z="0.555000"/>
|
||||
<AimOffsetMaxFPSLT x="0.062000" y="-0.164000" z="0.588000"/>
|
||||
<AimOffsetMinFPSRNG x="0.114000" y="0.390000" z="0.485000"/>
|
||||
<AimOffsetMaxFPSRNG x="0.113000" y="-0.263000" z="0.586000"/>
|
||||
<AimOffsetMinFPSScope x="0.009000" y="0.421000" z="0.462000"/>
|
||||
<AimOffsetMaxFPSScope x="0.037000" y="-0.224000" z="0.639000"/>
|
||||
<AimOffsetEndPosMinFPSIdle x="0.208000" y="0.700000" z="0.003000"/>
|
||||
<AimOffsetEndPosMedFPSIdle x="0.203000" y="0.604000" z="0.553000"/>
|
||||
<AimOffsetEndPosMaxFPSIdle x="0.207000" y="-0.040000" z="0.942000"/>
|
||||
<TorsoAimOffset x="-1.300000" y="0.550000"/>
|
||||
<TorsoCrouchedAimOffset x="0.200000" y="0.050000"/>
|
||||
<LeftHandIkOffset x="-0.025000" y="0.100000" z="-0.050000"/>
|
||||
<ReticuleMinSizeStanding value="0.650000"/>
|
||||
<ReticuleMinSizeCrouched value="0.550000"/>
|
||||
<ReticuleScale value="0.300000"/>
|
||||
<ReticuleStyleHash>WEAPON_PISTOL</ReticuleStyleHash>
|
||||
<FirstPersonReticuleStyleHash/>
|
||||
<PickupHash>PICKUP_WEAPON_STUNGUN</PickupHash>
|
||||
<MPPickupHash>PICKUP_AMMO_BULLET_MP</MPPickupHash>
|
||||
<HumanNameHash>WATER_NOZZLE</HumanNameHash>
|
||||
<MovementModeConditionalIdle>MMI_1Handed</MovementModeConditionalIdle>
|
||||
<StatName>STUNGUN</StatName>
|
||||
<KnockdownCount value="-1"/>
|
||||
<KillshotImpulseScale value="1.000000"/>
|
||||
<NmShotTuningSet>Normal</NmShotTuningSet>
|
||||
<AttachPoints/>
|
||||
<GunFeedBone/>
|
||||
<TargetSequenceGroup/>
|
||||
<WeaponFlags>CarriedInHand Gun CanLockonOnFoot CanLockonInVehicle CanFreeAim AnimCrouchFire UsableOnFoot UsableClimbing UsableInCover DoesRevivableDamage DisplayRechargeTimeHUD OnlyFireOneShot NonLethal AllowCloseQuarterKills DisablePlayerBlockingInMP CanPerformArrest HasLowCoverSwaps DontBreakRopes QuitTransitionToIdleIntroOnWeaponChange DisableLeftHandIkWhenOnFoot TorsoIKForWeaponBlock UseFPSAimIK UseFPSSecondaryMotion DontPlayDryFireAnim</WeaponFlags>
|
||||
<TintSpecValues ref="TINT_DEFAULT"/>
|
||||
<FiringPatternAliases ref="NULL"/>
|
||||
<ReloadUpperBodyFixupExpressionData ref="default"/>
|
||||
<AmmoDiminishingRate value="0"/>
|
||||
<AimingBreathingAdditiveWeight value="1.000000"/>
|
||||
<FiringBreathingAdditiveWeight value="1.000000"/>
|
||||
<StealthAimingBreathingAdditiveWeight value="1.000000"/>
|
||||
<StealthFiringBreathingAdditiveWeight value="1.000000"/>
|
||||
<AimingLeanAdditiveWeight value="1.000000"/>
|
||||
<FiringLeanAdditiveWeight value="1.000000"/>
|
||||
<StealthAimingLeanAdditiveWeight value="1.000000"/>
|
||||
<StealthFiringLeanAdditiveWeight value="1.000000"/>
|
||||
<ExpandPedCapsuleRadius value="0.000000"/>
|
||||
<AudioCollisionHash/>
|
||||
<HudDamage value="0"/>
|
||||
<HudSpeed value="0"/>
|
||||
<HudCapacity value="0"/>
|
||||
<HudAccuracy value="0"/>
|
||||
<HudRange value="0"/>
|
||||
</Item>
|
||||
</Infos>
|
||||
</Item>
|
||||
</Infos>
|
||||
<Name>AR</Name>
|
||||
</CWeaponInfoBlob>
|
||||
|
69
resources/[carscripts]/fh_detailer/readme.md
Normal file
69
resources/[carscripts]/fh_detailer/readme.md
Normal file
|
@ -0,0 +1,69 @@
|
|||
Car detailing script for FiveM QBcore by Fuenf
|
||||
|
||||
Website: https://fivehead.eu
|
||||
|
||||
Hello! Thank you for your purchase. We hope this script enhances player interaction on your server.
|
||||
If you require assistance, please feel free to join our Discord server or post your questions on the cfx forum.
|
||||
Discord Server: https://discord.gg/4adcW9PUbY
|
||||
|
||||
Requirements:
|
||||
- QBcore Framework https://github.com/qbcore-framework/qb-core
|
||||
- ox-target https://github.com/overextended/ox_target
|
||||
|
||||
Installation Instructions:
|
||||
|
||||
1. Resource:
|
||||
**Place the 'fh_detailer' folder into your resources directory**
|
||||
For older FiveM versions, you may need to add the following line to your server.cfg file: start fh_detailer
|
||||
|
||||
2. Items & Tables:
|
||||
**Add this to your shared>items.lua**
|
||||
car_wax = { name = 'car_wax', label = 'Car Wax', weight = 500, type = 'item', image = 'car_wax.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'To keep you car shiny for a long time' },
|
||||
**The following items are optional. However, if you or your players want to manually place hoses in-game (Config.HoseDB = true), they becomes necessary.**
|
||||
-- FH_Detailer
|
||||
hose_reel = { name = 'hose_reel', label = 'Hose Reel', weight = 2000, type = 'item', image = 'hose_reel.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A big hose reel to mount on walls' },
|
||||
hose_reel2 = { name = 'hose_reel2', label = 'Small Hose Reel', weight = 1000, type = 'item', image = 'hose_reel2.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A small hose reel to place where needed' },
|
||||
bucket_sponge = { name = 'bucket_sponge', label = 'Bucket & Sponge', weight = 700, type = 'item', image = 'bucket_sponge.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A professioal bucket and sponge to clean vehicles' },
|
||||
bucket_sponge2 = { name = 'bucket_sponge2', label = 'Mobile Bucket & Sponge', weight = 700, type = 'item', image = 'bucket_sponge.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A mobile bucket and sponge to clean vehicles' },
|
||||
|
||||
|
||||
|
||||
**Tables:**
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `car_wax` (
|
||||
`plate` varchar(255),
|
||||
`duration` int(11),
|
||||
`dirtyness` float,
|
||||
PRIMARY KEY (plate)
|
||||
);
|
||||
|
||||
**The following table is optional. However, if you or your players want to manually place hoses in-game (Config.HoseDB = true), it becomes necessary.**
|
||||
CREATE TABLE IF NOT EXISTS `detailer_list` (
|
||||
`player` varchar(255) DEFAULT NULL,
|
||||
`created_on` datetime DEFAULT current_timestamp(),
|
||||
`coords` varchar(255) DEFAULT NULL,
|
||||
`heading` varchar(255) DEFAULT NULL,
|
||||
`type` tinyint(9) DEFAULT NULL
|
||||
);
|
||||
|
||||
|
||||
3. Have fun with the script
|
||||
|
||||
|
||||
**Attention:**
|
||||
If you are using ox_inventory and you can't aim or shoot with the hose you need to add something to the init.lua of ox_inventoy.
|
||||
|
||||
Find this part:
|
||||
ignoreweapons[`WEAPON_UNARMED`] = true
|
||||
ignoreweapons[`WEAPON_HANDCUFFS`] = true
|
||||
ignoreweapons[`WEAPON_GARBAGEBAG`] = true
|
||||
ignoreweapons[`OBJECT`] = true
|
||||
ignoreweapons[`WEAPON_HOSE`] = true
|
||||
and add this:
|
||||
ignoreweapons[`WATER_NOZZLE`] = true
|
||||
|
||||
|
||||
**Warning:**
|
||||
If you restart the script while a player is holding the nozzle it will crash this persons client.
|
||||
|
||||
If you find any aspects unclear during the installation process, don't hesitate to join our Discord server mentioned above or post your questions on the cfx forum for assistance.
|
BIN
resources/[carscripts]/fh_detailer/server.lua
Normal file
BIN
resources/[carscripts]/fh_detailer/server.lua
Normal file
Binary file not shown.
BIN
resources/[carscripts]/fh_detailer/stream/w_pi_invisgun.ydr
Normal file
BIN
resources/[carscripts]/fh_detailer/stream/w_pi_invisgun.ydr
Normal file
Binary file not shown.
BIN
resources/[carscripts]/fh_detailer/stream/water_nozzle1.ydr
Normal file
BIN
resources/[carscripts]/fh_detailer/stream/water_nozzle1.ydr
Normal file
Binary file not shown.
BIN
resources/[carscripts]/fh_detailer/stream/water_nozzle1.ytyp
Normal file
BIN
resources/[carscripts]/fh_detailer/stream/water_nozzle1.ytyp
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue