init
This commit is contained in:
commit
ce19babcf4
4231 files changed
+701180
No files matched your search
@@ -0,0 +1,37 @@
|
||||
util.require_natives("2944a", "g-uno")
|
||||
|
||||
local crashes = menu.my_root()
|
||||
|
||||
crashes:action("CTaskNMShot", {""}, "", function(bool)
|
||||
local pid = players.user()
|
||||
|
||||
local pos = players.get_position(pid)
|
||||
local ped1 = CREATE_RANDOM_PED(pos)
|
||||
local ped2 = CREATE_RANDOM_PED(pos)
|
||||
local ped3 = CREATE_RANDOM_PED(pos)
|
||||
util.request_model(util.joaat("adder"))
|
||||
local veh = entities.create_vehicle(util.joaat("adder"), pos, 0)
|
||||
FREEZE_ENTITY_POSITION(veh, true)
|
||||
local peds = {ped1, ped2}
|
||||
repeat
|
||||
SET_PED_INTO_VEHICLE(ped1, veh, 0)
|
||||
SET_PED_INTO_VEHICLE(ped3, veh, -1)
|
||||
util.yield()
|
||||
until GET_PED_IN_VEHICLE_SEAT(veh, 0) == ped1
|
||||
|
||||
SET_PED_INTO_VEHICLE(ped1, veh, -1)
|
||||
ATTACH_ENTITY_TO_ENTITY(ped2, ped1, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, true, false, true, false, 0, false)
|
||||
SET_ENTITY_HEADING(ped2, GET_ENTITY_COORDS(ped3))
|
||||
GIVE_WEAPON_TO_PED(ped2, util.joaat("weapon_stungun_mp"), 9999, true, true)
|
||||
TASK_SHOOT_AT_ENTITY(ped2, ped3, 5000, 0)
|
||||
|
||||
while GET_PED_IN_VEHICLE_SEAT(veh, -1) == ped3 do
|
||||
FORCE_PED_AI_AND_ANIMATION_UPDATE(ped2)
|
||||
REFILL_AMMO_INSTANTLY(ped2)
|
||||
util.yield()
|
||||
end
|
||||
|
||||
for peds as ped do
|
||||
entities.delete(ped)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,27 @@
|
||||
util.require_natives()
|
||||
|
||||
menu.my_root():toggle("lag player", {""}, "", function(on)
|
||||
if on then
|
||||
toggled = on
|
||||
local vehs = {}
|
||||
local pos = players.get_pos(players.user())
|
||||
util.request_model("patrolboat")
|
||||
for i = 1, 23 do
|
||||
vehs[i] = entities.create_vehicle(util.joaat("patrolboat"),pos,0)
|
||||
entities.set_can_migrate(vehs[i],false)
|
||||
ENTITY.SET_ENTITY_INVINCIBLE(vehs[i],true)
|
||||
end
|
||||
while toggled do
|
||||
for vehs as veh do
|
||||
if toggled ~= false then
|
||||
ENTITY.SET_ENTITY_COORDS_NO_OFFSET(veh, pos, false, false, false)
|
||||
end
|
||||
end
|
||||
util.yield(3000)
|
||||
end
|
||||
for vehs as veh do
|
||||
entities.delete(veh)
|
||||
end
|
||||
end
|
||||
toggled = false
|
||||
end)
|
||||
@@ -0,0 +1,46 @@
|
||||
util.require_natives(1672190175)
|
||||
function Playerjoin(pid)
|
||||
|
||||
|
||||
menu.action(menu.my_root(), "Crash", {""}, "", function()
|
||||
STREAMING.REQUEST_MODEL(util.joaat("buccaneer2"))
|
||||
while not STREAMING.HAS_MODEL_LOADED(util.joaat("buccaneer2")) do
|
||||
util.yield()
|
||||
end
|
||||
menu.trigger_commands("bottomless on")
|
||||
menu.trigger_commands("noreload on")
|
||||
|
||||
menu.trigger_commands("csbmpagent14") -- csbmpagent14 iglestercrest igorleans
|
||||
local player = players.user_ped()
|
||||
util.yield(1000)
|
||||
PED.SET_PED_HEAD_BLEND_DATA(player, 0, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0,true)
|
||||
for i = 1, 3 do
|
||||
TASK.TASK_JUMP(player,true,false,false)
|
||||
util.yield(500)
|
||||
TASK.CLEAR_PED_TASKS_IMMEDIATELY(player)
|
||||
end
|
||||
|
||||
local pos = ENTITY.GET_ENTITY_COORDS(player)
|
||||
local veh = entities.create_vehicle(util.joaat("buccaneer2"), pos,0)
|
||||
STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(util.joaat("buccaneer2"))
|
||||
entities.set_can_migrate(veh,false)
|
||||
VEHICLE.SET_VEHICLE_EXTRA(veh,2,true)
|
||||
ENTITY.SET_ENTITY_INVINCIBLE(veh,true)
|
||||
WEAPON.GIVE_WEAPON_TO_PED(player,util.joaat("WEAPON_APPISTOL"),9999,true,true)
|
||||
PED.SET_PED_INTO_VEHICLE(player,veh,-1)
|
||||
WEAPON.SET_CURRENT_PED_WEAPON(player,util.joaat("WEAPON_APPISTOL"),true)
|
||||
|
||||
TASK.TASK_VEHICLE_SHOOT_AT_COORD(player,pos.x,pos.y + 10,pos.z,100.0)
|
||||
local time = util.current_time_millis() + 5000
|
||||
while time > util.current_time_millis() do
|
||||
PED.SET_PED_RESET_FLAG(player, 65 , true) -- shooting
|
||||
util.yield()
|
||||
end
|
||||
entities.delete(veh)
|
||||
end)
|
||||
|
||||
|
||||
end
|
||||
players.on_join(Playerjoin)
|
||||
players.dispatch_on_join()
|
||||
util.keep_running()
|
||||
@@ -0,0 +1,19 @@
|
||||
util.require_natives("2944b")
|
||||
|
||||
menu.action(menu.my_root(), "Bullet Damage", {}, "", function ()
|
||||
local end_str = "\n"
|
||||
|
||||
for util.get_weapons() as weapon do
|
||||
local hash = weapon.hash
|
||||
local damage = WEAPON.GET_WEAPON_DAMAGE(hash, 0)
|
||||
local weapon_name = util.reverse_joaat(hash)
|
||||
|
||||
assert(weapon_name ~= "", $"weapon_name is undefined. {hash}, {weapon.label_key}")
|
||||
|
||||
if damage ~= 0.0 then
|
||||
end_str ..= '{ ATSTRINGHASH("' .. util.reverse_joaat(hash) .. '"), ' .. damage .. "f },\n"
|
||||
end
|
||||
end
|
||||
|
||||
util.toast(end_str, TOAST_LOGGER)
|
||||
end)
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
// Adapted from https://github.com/calamity-inc/gta-v-joaat-hash-db/blob/senpai/extract_stats.php
|
||||
// Before running: Search OpenIV for "statssetup" and extract all results into the same folder as this script.
|
||||
|
||||
$fh = fopen("raw/stats.txt", "w");
|
||||
$processed_stats = array(); // Some stats duplicate in OpenIV. This is very sad.
|
||||
fwrite($fh, " static inline Stat stats[] = {\n");
|
||||
|
||||
function getAgnosticField($stat, $field, $can_be_empty = false)
|
||||
{
|
||||
$res = $stat[$field];
|
||||
if (empty($res))
|
||||
{
|
||||
$res = $stat[strtolower($field)];
|
||||
if (empty($res) && !$can_be_empty)
|
||||
{
|
||||
echo "getAgnosticField failed on:\n";
|
||||
var_dump($stat);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
function formatStat($stat, $name)
|
||||
{
|
||||
global $stattypes;
|
||||
$name = ' Stat("' . $name . '"';
|
||||
$type = getAgnosticField($stat, "Type");
|
||||
if (!empty($type))
|
||||
{
|
||||
$field = getAgnosticField($stat, "Packed", true);
|
||||
if (!empty($field))
|
||||
{
|
||||
$name .= ", true, " . strtoupper($field);
|
||||
$name = "// ".$name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$name .= ", false, " . strtoupper($type);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Unexpected absent type on stat: " . $name . "\n";
|
||||
var_dump($name);
|
||||
exit;
|
||||
}
|
||||
return $name . "),";
|
||||
}
|
||||
|
||||
function markStatAsProcessed($name)
|
||||
{
|
||||
global $processed_stats;
|
||||
$processed_stats[trim($name)] = true;
|
||||
}
|
||||
|
||||
function wasStatProcessed($name)
|
||||
{
|
||||
global $processed_stats;
|
||||
return array_key_exists(trim($name), $processed_stats);
|
||||
}
|
||||
|
||||
function processStatName($name)
|
||||
{
|
||||
if (wasStatProcessed($name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
markStatAsProcessed($name);
|
||||
return true;
|
||||
}
|
||||
|
||||
function processCharStat($mp, $stat)
|
||||
{
|
||||
global $fh;
|
||||
$arr = $mp ? ["MP0_", "MP1_"] : ["SP0_", "SP1_", "SP2_"];
|
||||
foreach($arr as $prefix)
|
||||
{
|
||||
$name = $prefix . getAgnosticField($stat, "Name");
|
||||
if (processStatName($name))
|
||||
{
|
||||
$line = formatStat($stat, $name);
|
||||
fwrite($fh, $line."\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function processStats($mp, $stats)
|
||||
{
|
||||
global $fh;
|
||||
foreach($stats->stat as $stat)
|
||||
{
|
||||
$name = getAgnosticField($stat, "Name");
|
||||
if($stat["characterStat"] == "true")
|
||||
{
|
||||
processCharStat($mp, $stat);
|
||||
}
|
||||
else if (processStatName($name))
|
||||
{
|
||||
$name = formatStat($stat, $name);
|
||||
fwrite($fh, $name."\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach(scandir(".") as $file)
|
||||
{
|
||||
if(substr($file, -4) == ".xml")
|
||||
{
|
||||
$mp = substr($file, 0, 2) == "mp";
|
||||
$stats = simplexml_load_file($file)->stats;
|
||||
if($stats->Category)
|
||||
{
|
||||
foreach($stats->Category as $category)
|
||||
{
|
||||
processStats($mp, $category);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
processStats($mp, $stats);
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "Success.\n";
|
||||
|
||||
fwrite($fh, "};");
|
||||
fclose($fh);
|
||||
@@ -0,0 +1,64 @@
|
||||
util.require_natives("3095a")
|
||||
|
||||
local ent = 0
|
||||
local vehs = util.get_vehicles() -- Be it this or a table of vehicle names.
|
||||
local current_index = 1
|
||||
local supported_vehs = {}
|
||||
|
||||
local function getVehName(veh)
|
||||
if type(veh) == "string" then
|
||||
return veh
|
||||
else
|
||||
return veh.name
|
||||
end
|
||||
end
|
||||
|
||||
menu.action(menu.my_root(), "Next", {}, "", function ()
|
||||
if current_index > #vehs then
|
||||
util.toast("Done")
|
||||
return
|
||||
else
|
||||
util.toast($"{current_index}/{#vehs}")
|
||||
end
|
||||
|
||||
local veh = vehs[current_index]
|
||||
local name = getVehName(veh)
|
||||
local hash = util.joaat(name)
|
||||
|
||||
util.request_model(hash)
|
||||
|
||||
if ENTITY.DOES_ENTITY_EXIST(ent) then
|
||||
STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(ENTITY.GET_ENTITY_MODEL(ent))
|
||||
entities.delete(ent)
|
||||
end
|
||||
|
||||
local pos = players.get_position(players.user())
|
||||
ent = entities.create_vehicle(hash, pos, 1.0)
|
||||
|
||||
if ent ~= 0 then
|
||||
PED.SET_PED_INTO_VEHICLE(players.user_ped(), ent, -1)
|
||||
VEHICLE.SET_VEHICLE_EXTRA_COLOUR_5(ent, 136) -- Salmon Pink
|
||||
|
||||
current_index += 1
|
||||
else
|
||||
util.toast($"Failed to create entity from hash: {name}")
|
||||
end
|
||||
end)
|
||||
|
||||
menu.action(menu.my_root(), "Add Current", {}, "", function ()
|
||||
local veh = vehs[current_index - 1]
|
||||
local name = getVehName(veh)
|
||||
supported_vehs:insert(name)
|
||||
util.toast($"Added {name} to the list.")
|
||||
end)
|
||||
|
||||
menu.action(menu.my_root(), "Add Previous", {}, "", function ()
|
||||
local veh = vehs[current_index - 2]
|
||||
local name = getVehName(veh)
|
||||
supported_vehs:insert(name)
|
||||
util.toast($"Added {name} to the list.")
|
||||
end)
|
||||
|
||||
menu.action(menu.my_root(), "Print List", {}, "", function ()
|
||||
util.log("\n" .. supported_vehs:concat("\n"))
|
||||
end)
|
||||
@@ -0,0 +1,43 @@
|
||||
util.require_natives()
|
||||
menu.action(menu.my_root(), "Crash", {""}, "", function()
|
||||
util.request_model("cs_lestercrest")
|
||||
util.request_model("cs_josh")
|
||||
local pid = players.user()
|
||||
local PlayerPed = PLAYER.GET_PLAYER_PED_SCRIPT_INDEX(pid)
|
||||
local PlayerPos = ENTITY.GET_ENTITY_COORDS(PlayerPed, true)
|
||||
PlayerPos.x = PlayerPos.x + 3
|
||||
for i = 1, 10 do
|
||||
local Ped = entities.create_ped(26, util.joaat("cs_lestercrest"), PlayerPos, ENTITY.GET_ENTITY_HEADING(PlayerPed))
|
||||
local time = util.current_time_millis() + 1500
|
||||
while time > util.current_time_millis() do
|
||||
PED.SET_PED_RANDOM_COMPONENT_VARIATION(Ped,0)
|
||||
NETWORK.NETWORK_REQUEST_CONTROL_OF_ENTITY(Ped)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 3, 3, math.random(0, 3), 0)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 8, 2, math.random(0, 3), 0)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 9, 2, math.random(0, 3), -1)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 12, 2, math.random(0, 3), -1)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 13, 2, math.random(0, 3), -1)
|
||||
util.yield(50)
|
||||
end
|
||||
TASK.TASK_START_SCENARIO_IN_PLACE(Ped, "WORLD_HUMAN_YOGA", 0, false)
|
||||
util.yield(100)
|
||||
end
|
||||
util.yield(1000)
|
||||
|
||||
for i = 1, 10 do
|
||||
local Ped = entities.create_ped(26, util.joaat("cs_josh"), PlayerPos, ENTITY.GET_ENTITY_HEADING(PlayerPed))
|
||||
local time = util.current_time_millis() + 1500
|
||||
while time > util.current_time_millis() do
|
||||
PED.SET_PED_RANDOM_COMPONENT_VARIATION(Ped,0)
|
||||
NETWORK.NETWORK_REQUEST_CONTROL_OF_ENTITY(Ped)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 3, 0, math.random(0, 3), 0)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 8, 0, math.random(0, 3), 0)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 9, 0, math.random(0, 3), -1)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 12, 0, math.random(0, 3), -1)
|
||||
PED.SET_PED_COMPONENT_VARIATION(Ped, 13, 0, math.random(0, 3), -1)
|
||||
util.yield(50)
|
||||
end
|
||||
TASK.TASK_START_SCENARIO_IN_PLACE(Ped, "WORLD_HUMAN_YOGA", 0, false)
|
||||
util.yield(100)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,17 @@
|
||||
util.require_natives()
|
||||
|
||||
local pos = ENTITY.GET_ENTITY_COORDS(players.user_ped(), true)
|
||||
pos.x = pos.x + 2
|
||||
pos.z = pos.z + 5
|
||||
local models = {"cs_taostranslator","cs_taostranslator2","cs_tenniscoach","cs_beverly","a_c_poodle","A_C_Dolphin","A_C_HumpBack","A_C_KillerWhale","A_C_SharkHammer","A_C_Stingray"}
|
||||
for models as model do
|
||||
STREAMING.REQUEST_MODEL(util.joaat(model))
|
||||
while not STREAMING.HAS_MODEL_LOADED(util.joaat(model)) do util.yield() end
|
||||
end
|
||||
local ped = entities.create_ped(26, util.joaat(models[math.random(1,#models)]), pos, 0.0,true,false)
|
||||
entities.set_can_migrate(ped,false)
|
||||
WEAPON.GIVE_WEAPON_TO_PED(ped, util.joaat("WEAPON_RPG"), 10, true, true)
|
||||
util.yield(1000)
|
||||
ENTITY.SET_ENTITY_HEALTH(ped,0,0)
|
||||
util.yield(2000)
|
||||
entities.delete(ped)
|
||||
@@ -0,0 +1,15 @@
|
||||
util.require_natives("2944a", "g-uno")
|
||||
|
||||
local root = menu.my_root()
|
||||
|
||||
root:action("funny freeze", {""}, '', function()
|
||||
local pid = players.user()
|
||||
|
||||
local pos = players.get_position(pid)
|
||||
local vehicle = GET_VEHICLE_PED_IS_USING(GET_PLAYER_PED_SCRIPT_INDEX(pid))
|
||||
local ped = CREATE_RANDOM_PED(pos)
|
||||
--SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(ped, true)
|
||||
SET_PED_INTO_VEHICLE(ped, vehicle, -2)
|
||||
util.yield(250)
|
||||
TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(ped, vehicle)
|
||||
end)
|
||||
@@ -0,0 +1,64 @@
|
||||
util.require_natives(1672190175)
|
||||
function Playerjoin(pid)
|
||||
menu.action(menu.player_root(pid), "Crash", {""}, "", function()
|
||||
menu.trigger_commands("timesmoothing off")
|
||||
menu.trigger_commands("time 0")
|
||||
while not STREAMING.HAS_MODEL_LOADED(util.joaat("deluxo")) do
|
||||
STREAMING.REQUEST_MODEL(util.joaat("deluxo"))
|
||||
util.yield()
|
||||
end
|
||||
local vehs = {}
|
||||
local pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER.GET_PLAYER_PED_SCRIPT_INDEX(pid),0,3,0)
|
||||
|
||||
|
||||
local Ped = PED.CREATE_RANDOM_PED(pos.x, pos.y, pos.z)
|
||||
STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(Ped)
|
||||
entities.set_can_migrate(Ped,false)
|
||||
PED.SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(Ped,true)
|
||||
ENTITY.SET_ENTITY_INVINCIBLE(Ped,true)
|
||||
|
||||
for i = 1 , 45 do
|
||||
vehs[i] = entities.create_vehicle(util.joaat("deluxo"), pos, ENTITY.GET_ENTITY_HEADING(PLAYER.GET_PLAYER_PED_SCRIPT_INDEX(pid)) - 180)
|
||||
ENTITY.FREEZE_ENTITY_POSITION(vehs[i],true)
|
||||
entities.set_can_migrate(vehs[i],false)
|
||||
PED.SET_PED_INTO_VEHICLE(Ped,vehs[i], -1)
|
||||
VEHICLE.SET_VEHICLE_ENGINE_ON(vehs[i],true,true,false)
|
||||
VEHICLE.SET_VEHICLE_KEEP_ENGINE_ON_WHEN_ABANDONED(vehs[i],true)
|
||||
ENTITY.SET_ENTITY_INVINCIBLE(vehs[i],true)
|
||||
for m =0 ,3 do
|
||||
VEHICLE.SET_VEHICLE_NEON_ENABLED(vehs[i],m,true)
|
||||
end
|
||||
VEHICLE.SET_AMBIENT_VEHICLE_NEON_ENABLED(vehs[i])
|
||||
entities.set_upgrade_value(vehs[i],22,10)
|
||||
for n = 17, 22 do
|
||||
VEHICLE.TOGGLE_VEHICLE_MOD(vehs[i],n,true)
|
||||
end
|
||||
VEHICLE.SET_VEHICLE_XENON_LIGHT_COLOR_INDEX(vehs[i],10)
|
||||
VEHICLE.SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS(vehs[i],false)
|
||||
VEHICLE.SET_VEHICLE_LIGHTS(vehs[i],3)
|
||||
VEHICLE.SET_VEHICLE_HEADLIGHT_SHADOWS(vehs[i],3)
|
||||
VEHICLE.SET_VEHICLE_INTERIORLIGHT(vehs[i],true)
|
||||
VEHICLE.SET_VEHICLE_FORCE_INTERIORLIGHT(vehs[i],true)
|
||||
util.yield(50)
|
||||
end
|
||||
|
||||
|
||||
util.yield(5000)
|
||||
entities.delete(Ped)
|
||||
for i = 1 , #vehs do
|
||||
if vehs[i] ~= nil then
|
||||
STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(vehs[i])
|
||||
entities.delete(vehs[i])
|
||||
util.yield()
|
||||
end
|
||||
end
|
||||
Models = nil
|
||||
pos = nil
|
||||
vehs = nil
|
||||
end)
|
||||
|
||||
|
||||
end
|
||||
players.on_join(Playerjoin)
|
||||
players.dispatch_on_join()
|
||||
util.keep_running()
|
||||
@@ -0,0 +1,10 @@
|
||||
local json = require("json")
|
||||
local clrs = io.open("./vehicleColors.json", "r"):read("*a") |> json.decode -- Change to HTTP in 0.9.0, vehicleColours is from DurtyFree
|
||||
|
||||
local output = ""
|
||||
|
||||
for clrs.PrimarySecondaryColors as colour do
|
||||
output ..= $'\{ {colour.Index}, "{colour.ColorName}" },\n'
|
||||
end
|
||||
|
||||
output |> print
|
||||
@@ -0,0 +1,328 @@
|
||||
local components = {
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3", "WCT_KNIFE_XM3" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_01", "WCT_KNIFE_XM301" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_02", "WCT_KNIFE_XM302" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_03", "WCT_KNIFE_XM303" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_04", "WCT_KNIFE_XM304" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_05", "WCT_KNIFE_XM305" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_06", "WCT_KNIFE_XM306" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_07", "WCT_KNIFE_XM307" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_08", "WCT_KNIFE_XM308" },
|
||||
{ "COMPONENT_KNIFE_VARMOD_XM3_09", "WCT_KNIFE_XM309" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3", "WCT_BAT_XM3" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_01", "WCT_BAT_XM301" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_02", "WCT_BAT_XM302" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_03", "WCT_BAT_XM303" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_04", "WCT_BAT_XM304" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_05", "WCT_BAT_XM305" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_06", "WCT_BAT_XM306" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_07", "WCT_BAT_XM307" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_08", "WCT_BAT_XM308" },
|
||||
{ "COMPONENT_BAT_VARMOD_XM3_09", "WCT_BAT_XM309" },
|
||||
{ "COMPONENT_PISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_PISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_PI_FLSH", "WCT_FLASH" },
|
||||
{ "COMPONENT_AT_PI_SUPP_02", "WCT_SUPP" },
|
||||
{ "COMPONENT_PISTOL_VARMOD_LUXE", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_GUNRUN_MK2_UPGRADE", "WCT_VAR_GUN" },
|
||||
{ "COMPONENT_COMBATPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_COMBATPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_PI_SUPP", "WCT_SUPP" },
|
||||
{ "COMPONENT_COMBATPISTOL_VARMOD_LOWRIDER", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_APPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_APPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_APPISTOL_VARMOD_LUXE", "WCT_VAR_METAL" },
|
||||
{ "COMPONENT_APPISTOL_VARMOD_SECURITY", "WCT_VAR_STUD" },
|
||||
{ "COMPONENT_PISTOL50_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_PISTOL50_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_AR_SUPP_02", "WCT_SUPP" },
|
||||
{ "COMPONENT_PISTOL50_VARMOD_LUXE", "WCT_VAR_SIL" },
|
||||
{ "COMPONENT_MICROSMG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MICROSMG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_SCOPE_MACRO", "WCT_SCOPE_MAC" },
|
||||
{ "COMPONENT_MICROSMG_VARMOD_LUXE", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_MICROSMG_VARMOD_SECURITY", "WCT_VAR_WEED" },
|
||||
{ "COMPONENT_MICROSMG_VARMOD_XM3", "WCT_MSMG_XM3" },
|
||||
{ "COMPONENT_SMG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_SMG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_SMG_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_AT_AR_FLSH", "WCT_FLASH" },
|
||||
{ "COMPONENT_AT_SCOPE_MACRO_02", "WCT_SCOPE_MAC" },
|
||||
{ "COMPONENT_SMG_VARMOD_LUXE", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_ASSAULTSMG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_ASSAULTSMG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_ASSAULTSMG_VARMOD_LOWRIDER", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_AT_AR_AFGRIP", "WCT_GRIP" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_VARMOD_LUXE", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_CARBINERIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_CARBINERIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_CARBINERIFLE_CLIP_03", "WCT_CLIP_BOX" },
|
||||
{ "COMPONENT_AT_RAILCOVER_01", "WCT_RAIL" },
|
||||
{ "COMPONENT_AT_SCOPE_MEDIUM", "WCT_SCOPE_MED" },
|
||||
{ "COMPONENT_AT_AR_SUPP", "WCT_SUPP" },
|
||||
{ "COMPONENT_CARBINERIFLE_VARMOD_LUXE", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_ADVANCEDRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_ADVANCEDRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_SCOPE_SMALL", "WCT_SCOPE_SML" },
|
||||
{ "COMPONENT_ADVANCEDRIFLE_VARMOD_LUXE", "WCT_VAR_METAL" },
|
||||
{ "COMPONENT_MG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_SCOPE_SMALL_02", "WCT_SCOPE_SML" },
|
||||
{ "COMPONENT_MG_VARMOD_LOWRIDER", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_COMBATMG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_COMBATMG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_COMBATMG_VARMOD_LOWRIDER", "WCT_VAR_ETCHM" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_CLIP_01", "COMPONENT_PUMPSHOTGUN_CLIP_01" },
|
||||
{ "COMPONENT_AT_SR_SUPP", "WCT_SUPP" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_VARMOD_LOWRIDER", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_VARMOD_SECURITY", "WCT_VAR_BONE" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_VARMOD_XM3", "WCT_PUMPSHT_XM3" },
|
||||
{ "COMPONENT_SAWNOFFSHOTGUN_CLIP_01", "COMPONENT_SAWNOFFSHOTGUN_CLIP_01" },
|
||||
{ "COMPONENT_SAWNOFFSHOTGUN_VARMOD_LUXE", "WCT_VAR_METAL" },
|
||||
{ "COMPONENT_ASSAULTSHOTGUN_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_ASSAULTSHOTGUN_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_BULLPUPSHOTGUN_CLIP_01", "COMPONENT_BULLPUPSHOTGUN_CLIP_01" },
|
||||
{ "COMPONENT_SNIPERRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_AT_SCOPE_LARGE", "WCT_SCOPE_LRG" },
|
||||
{ "COMPONENT_AT_SCOPE_MAX", "WCT_SCOPE_MAX" },
|
||||
{ "COMPONENT_SNIPERRIFLE_VARMOD_LUXE", "WCT_VAR_WOOD" },
|
||||
{ "COMPONENT_HEAVYSNIPER_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_GRENADELAUNCHER_CLIP_01", "COMPONENT_GRENADELAUNCHER_CLIP_01" },
|
||||
{ "COMPONENT_RPG_CLIP_01", "COMPONENT_RPG_CLIP_01" },
|
||||
{ "COMPONENT_MINIGUN_CLIP_01", "WCT_CLIP2" },
|
||||
{ "POLICE_TORCH_FLASHLIGHT", "WCT_FLASH" },
|
||||
{ "COMPONENT_SNSPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_SNSPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_SNSPISTOL_VARMOD_LOWRIDER", "WCT_VAR_WOOD" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_VARMOD_LOW", "WCT_VAR_METAL" },
|
||||
{ "COMPONENT_SPECIALCARBINE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_SPECIALCARBINE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_SPECIALCARBINE_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_SPECIALCARBINE_VARMOD_LOWRIDER", "WCT_VAR_ETCHM" },
|
||||
{ "COMPONENT_HEAVYPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HEAVYPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_HEAVYPISTOL_VARMOD_LUXE", "WCT_VAR_WOOD" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_BULLPUPRIFLE_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_AT_SIGHTS", "WCT_HOLO" },
|
||||
{ "COMPONENT_AT_SCOPE_MACRO_02_MK2", "WCT_SCOPE_MAC2" },
|
||||
{ "COMPONENT_AT_SCOPE_SMALL_MK2", "WCT_SCOPE_SML2" },
|
||||
{ "COMPONENT_AT_BP_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_BP_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_AT_MUZZLE_01", "WCT_MUZZ1" },
|
||||
{ "COMPONENT_AT_MUZZLE_02", "WCT_MUZZ2" },
|
||||
{ "COMPONENT_AT_MUZZLE_03", "WCT_MUZZ3" },
|
||||
{ "COMPONENT_AT_MUZZLE_04", "WCT_MUZZ4" },
|
||||
{ "COMPONENT_AT_MUZZLE_05", "WCT_MUZZ5" },
|
||||
{ "COMPONENT_AT_MUZZLE_06", "WCT_MUZZ6" },
|
||||
{ "COMPONENT_AT_MUZZLE_07", "WCT_MUZZ7" },
|
||||
{ "COMPONENT_AT_AR_AFGRIP_02", "WCT_GRIP" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_SCOPE_MEDIUM_MK2", "WCT_SCOPE_MED2" },
|
||||
{ "COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM_MK2", "WCT_SCOPE_LRG2" },
|
||||
{ "COMPONENT_AT_MRFL_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_MRFL_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_PISTOLXM3_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_PISTOLXM3_SUPP", "WCT_SUPP" },
|
||||
{ "COMPONENT_SPECIALCARBINE_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_SPECIALCARBINE_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_SPECIALCARBINE_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_SPECIALCARBINE_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_SPECIALCARBINE_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_SPECIALCARBINE_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_AT_SCOPE_MACRO_MK2", "WCT_SCOPE_MAC2" },
|
||||
{ "COMPONENT_AT_SC_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_SC_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_SNSPISTOL_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_SNSPISTOL_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_SNSPISTOL_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_SNSPISTOL_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_SNSPISTOL_MK2_CLIP_HOLLOWPOINT", "WCT_CLIP_HP" },
|
||||
{ "COMPONENT_SNSPISTOL_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_AT_PI_FLSH_03", "WCT_FLASH" },
|
||||
{ "COMPONENT_AT_PI_RAIL_02", "WCT_SCOPE_PI" },
|
||||
{ "COMPONENT_AT_PI_COMP_02", "WCT_COMP" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_MK2_CLIP_01", "WCT_SHELL" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_MK2_CLIP_ARMORPIERCING", "WCT_SHELL_AP" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_MK2_CLIP_EXPLOSIVE", "WCT_SHELL_EX" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_MK2_CLIP_HOLLOWPOINT", "WCT_SHELL_HP" },
|
||||
{ "COMPONENT_PUMPSHOTGUN_MK2_CLIP_INCENDIARY", "WCT_SHELL_INC" },
|
||||
{ "COMPONENT_AT_SR_SUPP_03", "WCT_SUPP" },
|
||||
{ "COMPONENT_AT_MUZZLE_08", "WCT_MUZZ" },
|
||||
{ "COMPONENT_RAILGUNXM3_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_RAYPISTOL_VARMOD_XMAS18", "WCT_VAR_RAY18" },
|
||||
{ "COMPONENT_REVOLVER_MK2_CLIP_01", "COMPONENT_REVOLVER_MK2_CLIP_01" },
|
||||
{ "COMPONENT_REVOLVER_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_REVOLVER_MK2_CLIP_HOLLOWPOINT", "WCT_CLIP_HP" },
|
||||
{ "COMPONENT_REVOLVER_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_REVOLVER_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_PI_COMP_03", "WCT_COMP" },
|
||||
{ "COMPONENT_DOUBLEACTION_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HOMINGLAUNCHER_CLIP_01", "COMPONENT_HOMINGLAUNCHER_CLIP_01" },
|
||||
{ "COMPONENT_GUSENBERG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_GUSENBERG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_VINTAGEPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_VINTAGEPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_FIREWORK_CLIP_01", "COMPONENT_FIREWORK_CLIP_01" },
|
||||
{ "COMPONENT_MUSKET_CLIP_01", "COMPONENT_MUSKET_CLIP_01" },
|
||||
{ "COMPONENT_RAILGUN_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HEAVYSHOTGUN_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HEAVYSHOTGUN_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_HEAVYSHOTGUN_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM", "WCT_SCOPE_LRG" },
|
||||
{ "COMPONENT_MARKSMANRIFLE_VARMOD_LUXE", "WCT_VAR_GOLD" },
|
||||
{ "COMPONENT_CERAMICPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_CERAMICPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_CERAMICPISTOL_SUPP", "WCT_SUPP" },
|
||||
{ "COMPONENT_MILITARYRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MILITARYRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_MILITARYRIFLE_SIGHT_01", "WCT_MRFL_SIGHT" },
|
||||
{ "COMPONENT_COMBATSHOTGUN_CLIP_01", "WCT_SHELL" },
|
||||
{ "COMPONENT_GADGETPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_FLAREGUN_CLIP_01", "COMPONENT_FLAREGUN_CLIP_01" },
|
||||
{ "COMPONENT_NAVYREVOLVER_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_BASE", "WCT_KNUCK_01" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_PIMP", "WCT_KNUCK_02" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_BALLAS", "WCT_KNUCK_BG" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_DOLLAR", "WCT_KNUCK_DLR" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_DIAMOND", "WCT_KNUCK_DMD" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_HATE", "WCT_KNUCK_HT" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_LOVE", "WCT_KNUCK_LV" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_PLAYER", "WCT_KNUCK_PC" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_KING", "WCT_KNUCK_SLG" },
|
||||
{ "COMPONENT_KNUCKLE_VARMOD_VAGOS", "WCT_KNUCK_VG" },
|
||||
{ "COMPONENT_COMBATPDW_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_COMBATPDW_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_COMBATPDW_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_MARKSMANPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_DBSHOTGUN_CLIP_01", "COMPONENT_DBSHOTGUN_CLIP_01" },
|
||||
{ "COMPONENT_MACHINEPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MACHINEPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_MACHINEPISTOL_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_COMPACTRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_COMPACTRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_COMPACTRIFLE_CLIP_03", "WCT_CLIP_DRM" },
|
||||
{ "COMPONENT_FLASHLIGHT_LIGHT", "WCT_FLASH" },
|
||||
{ "COMPONENT_SWITCHBLADE_VARMOD_BASE", "WCT_SB_BASE" },
|
||||
{ "COMPONENT_SWITCHBLADE_VARMOD_VAR1", "WCT_SB_VAR1" },
|
||||
{ "COMPONENT_SWITCHBLADE_VARMOD_VAR2", "WCT_SB_VAR2" },
|
||||
{ "COMPONENT_REVOLVER_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_REVOLVER_VARMOD_BOSS", "WCT_REV_VARB" },
|
||||
{ "COMPONENT_REVOLVER_VARMOD_GOON", "WCT_REV_VARG" },
|
||||
{ "COMPONENT_COMPACTLAUNCHER_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MINISMG_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_MINISMG_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AUTOSHOTGUN_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_CARBINERIFLE_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_CARBINERIFLE_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_CARBINERIFLE_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_CARBINERIFLE_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_CARBINERIFLE_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_CARBINERIFLE_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_CR_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_CR_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_ASSAULTRIFLE_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_AR_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_AR_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_COMBATMG_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_COMBATMG_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_COMBATMG_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_COMBATMG_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_COMBATMG_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_COMBATMG_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_MG_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_MG_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_SMG_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_SMG_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_SMG_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_SMG_MK2_CLIP_HOLLOWPOINT", "WCT_CLIP_HP" },
|
||||
{ "COMPONENT_SMG_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_SMG_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_SIGHTS_SMG", "WCT_HOLO" },
|
||||
{ "COMPONENT_AT_SCOPE_MACRO_02_SMG_MK2", "WCT_SCOPE_MAC2" },
|
||||
{ "COMPONENT_AT_SCOPE_SMALL_SMG_MK2", "WCT_SCOPE_SML2" },
|
||||
{ "COMPONENT_AT_SB_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_SB_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_HEAVYSNIPER_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HEAVYSNIPER_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_HEAVYSNIPER_MK2_CLIP_ARMORPIERCING", "WCT_CLIP_AP" },
|
||||
{ "COMPONENT_HEAVYSNIPER_MK2_CLIP_EXPLOSIVE", "WCT_CLIP_EX" },
|
||||
{ "COMPONENT_HEAVYSNIPER_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_HEAVYSNIPER_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_AT_SCOPE_LARGE_MK2", "WCT_SCOPE_LRG2" },
|
||||
{ "COMPONENT_AT_SCOPE_NV", "WCT_SCOPE_NV" },
|
||||
{ "COMPONENT_AT_SCOPE_THERMAL", "WCT_SCOPE_TH" },
|
||||
{ "COMPONENT_AT_MUZZLE_09", "WCT_MUZZ" },
|
||||
{ "COMPONENT_AT_SR_BARREL_01", "WCT_BARR" },
|
||||
{ "COMPONENT_AT_SR_BARREL_02", "WCT_BARR2" },
|
||||
{ "COMPONENT_PISTOL_MK2_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_PISTOL_MK2_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_PISTOL_MK2_CLIP_FMJ", "WCT_CLIP_FMJ" },
|
||||
{ "COMPONENT_PISTOL_MK2_CLIP_HOLLOWPOINT", "WCT_CLIP_HP" },
|
||||
{ "COMPONENT_PISTOL_MK2_CLIP_INCENDIARY", "WCT_CLIP_INC" },
|
||||
{ "COMPONENT_PISTOL_MK2_CLIP_TRACER", "WCT_CLIP_TR" },
|
||||
{ "COMPONENT_AT_PI_RAIL", "WCT_SCOPE_PI" },
|
||||
{ "COMPONENT_AT_PI_FLSH_02", "WCT_FLASH" },
|
||||
{ "COMPONENT_AT_PI_COMP", "WCT_COMP" },
|
||||
{ "COMPONENT_PISTOL_MK2_VARMOD_XM3_SLIDE", "COMPONENT_PISTOL_MK2_VARMOD_XM3_SLIDE" },
|
||||
{ "COMPONENT_PISTOL_MK2_VARMOD_XM3", "WCT_PISTMK2_XM3" },
|
||||
{ "COMPONENT_TACTICALRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_TACTICALRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_AT_AR_FLSH_REH", "WCT_FLASH" },
|
||||
{ "COMPONENT_PRECISIONRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HEAVYRIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_HEAVYRIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_HEAVYRIFLE_SIGHT_01", "COMPONENT_HEAVYRIFLE_SIGHT_01" },
|
||||
{ "COMPONENT_EMPLAUNCHER_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_TECPISTOL_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_TECPISTOL_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_BATTLERIFLE_CLIP_01", "WCT_CLIP1" },
|
||||
{ "COMPONENT_BATTLERIFLE_CLIP_02", "WCT_CLIP2" },
|
||||
{ "COMPONENT_RPG_VARMOD_TVR", "WCT_RPGTVR_VAR" },
|
||||
{ "COMPONENT_MICROSMG_VARMOD_FRN", "WCT_MSMGFRN_VAR" },
|
||||
{ "COMPONENT_CARBINERIFLE_VARMOD_MICH", "WCT_CRBNMIC_VAR" },
|
||||
{ "COMPONENT_COMBATPISTOL_VARMOD_XMAS23", "WCT_COMPIST_XM" },
|
||||
{ "COMPONENT_SPECIALCARBINE_VARMOD_XMAS23", "WCT_SPCR_XM" },
|
||||
{ "COMPONENT_HEAVYSNIPER_VARMOD_XMAS23", "WCT_HVSP_XM" },
|
||||
}
|
||||
|
||||
-- fill in american name
|
||||
for components as comp do
|
||||
if comp[2]:sub(1, 4) == "WCT_" then
|
||||
comp[3] = util.get_label_text(comp[2])
|
||||
end
|
||||
end
|
||||
|
||||
-- dump
|
||||
local str = "--- WEAPON COMPONENTS BEGIN ---\n"
|
||||
for components as comp do
|
||||
str ..= '{ "' .. comp[1] .. '", "' .. comp[2] .. '"'
|
||||
if comp[3] then
|
||||
str ..= ', "' .. comp[3] .. '" },\n'
|
||||
else
|
||||
str ..= ' },\n'
|
||||
end
|
||||
end
|
||||
print(str:sub(1, -2))
|
||||
print("--- WEAPON COMPONENTS END ---")
|
||||
@@ -0,0 +1,34 @@
|
||||
local json = require("json")
|
||||
local file = io.open(filesystem.scripts_dir() .. "/weapons.json", "r"):read("*a")
|
||||
local weapons = {}
|
||||
|
||||
local function isValidName(name)
|
||||
return !name:contains("VEHICLE_") and name:contains("WEAPON_")
|
||||
end
|
||||
|
||||
local function parseLiveries(liveries)
|
||||
local str = "{"
|
||||
|
||||
for liveries as livery do
|
||||
str ..= $'\{ "{livery.Name}", "{livery.TranslatedLabel.Name}", "{util.get_label_text(livery.TranslatedLabel.Name)}" },'
|
||||
end
|
||||
str = str:rstrip(",")
|
||||
str ..= " }"
|
||||
|
||||
return str
|
||||
end
|
||||
|
||||
for json.decode(file) as weapon do
|
||||
if #weapon.Liveries > 0 and isValidName(weapon.Name) then
|
||||
weapons[weapon.Name] = parseLiveries(weapon.Liveries)
|
||||
end
|
||||
end
|
||||
|
||||
local str = ""
|
||||
|
||||
for key, value in weapons do
|
||||
str ..= $' \{ ATSTRINGHASH("{key}"), ' .. value .. " },\n"
|
||||
end
|
||||
|
||||
print(str)
|
||||
util.copy_to_clipboard(str)
|
||||
Reference in new issue
Block a user