1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-07-09 15:06:30 +02:00
parent dc96cbb39b
commit c8ce065d61
939 changed files with 1976 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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)
}

View 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

View 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'

View 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>

View 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%`
});
}
});

View 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;
}

View 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

View 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
})

View 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

View 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>

View 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>

View file

@ -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>

View 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>

View 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>

View 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.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,10 @@
fx_version 'cerulean'
game 'gta5'
lua54 "yes"
files {
'images/*.webp',
'images/*.png'
}
dependency '/assetpacks'

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

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