武装突袭3

武装突袭3

S.O.G. Zombies
Stuff I added: Extra shops & boss rounds.
Here are some things I added, thanks for sharing the mission :)

// Buy random trap

1. In eden editor copy & paste one of the random weapon shops, rename the variable name to randomtrap

2. In initPalayerLocal add this line:

[player, randomtrap, 3,
{
["Press","to buy a random trap",300] remoteExec ["BAC_fnc_showMessage",player];
execVM "scripts\randomweapons\randomtrap.sqf";
},
{
["", "", nil, true] remoteExec ["BAC_fnc_showMessage",player];
removeAllUserActionEventHandlers ["User10", "Activate"];
}
] call BAC_fnc_proximityTrigger;

3. create the file: scripts\randomweapons\randomtrap.sqf

+ put this in randomtrap.sqf:
// Add event handler for keypress
removeAllUserActionEventHandlers ["User10", "Activate"];
addUserActionEventHandler ["User10", "Activate", {
params ["_activated"];

if (_activated) then {
[] spawn {
// ✅ Get cost from missionNamespace every time
private _cost = missionNamespace getVariable ["BAC_buyCost", 0];

// Check if the player has enough points to buy
if ([_cost] call BAC_fnc_scoreBuy) then {
// Select a random weapon from the list
private _grenade = selectRandom [ "vn_mine_punji_01_mag",
"vn_mine_tripwire_m49_02_mag",
"vn_mine_punji_03_mag",
"vn_mine_m14_mag",
"vn_mine_tripwire_m16_02_mag",
"vn_mine_tripwire_m16_04_mag",
"vn_mine_m16_mag",
"vn_mine_m18_range_mag",
"vn_mine_m18_mag",
"vn_mine_m18_x3_range_mag",
"vn_mine_m18_x3_mag",
"vn_mine_tripwire_m49_02_mag",
"vn_mine_tripwire_m49_04_mag",
"vn_mine_tripwire_f1_02_mag",
"vn_mine_tripwire_f1_04_mag",
"vn_mine_tripwire_arty_mag",
"vn_mine_punji_01_mag",
"vn_mine_punji_02_mag",
"vn_mine_punji_03_mag" ]; //"MiniGrenade", "vn_mine_m18_range_mag"
player addMagazines [_grenade, 1];
[player, "buygrenade", 2] call BAC_fnc_playVoiceLine;
player playAction "gestureFreeze";

} else {
// Display message if not enough points

};
};
};
}];
< >
正在显示第 1 - 3 条,共 3 条留言
aussie battler 10 月 23 日 下午 11:01 
// Buy random backpack

1. In eden editor copy & paste one of the random weapon shops, rename the variable name to randombackpack

2. In initPalayerLocal add this line:

[player, randombackpack, 3,
{
["Press","to buy a random backpack",550] remoteExec ["BAC_fnc_showMessage",player];
execVM "scripts\randomweapons\randombackpack.sqf";
},
{
["", "", nil, true] remoteExec ["BAC_fnc_showMessage",player];
removeAllUserActionEventHandlers ["User10", "Activate"];
}
] call BAC_fnc_proximityTrigger;

3. create the file: scripts\randomweapons\randombackpack.sqf

+ put this in randombackpack.sqf:

// Key binding visual (User10 key)
_user10Key = actionKeysImages "User10";

// Define the cost of this buy station
private _cost = 350;

// Store the cost globally for later access
missionNamespace setVariable ["BAC_buyCost", _cost];

// Add event handler for keypress
removeAllUserActionEventHandlers ["User10", "Activate"];
addUserActionEventHandler ["User10", "Activate", {
params ["_activated"];

if (_activated) then {
[] spawn {
// ✅ Get cost from missionNamespace every time
private _cost = missionNamespace getVariable ["BAC_buyCost", 0];

// Check if the player has enough points to buy
if ([_cost] call BAC_fnc_scoreBuy) then {
// Select a random weapon from the list
private _grenade = selectRandom ["vn_b_pack_01","vn_b_pack_02","vn_b_pack_03","vn_b_pack_04","vn_b_pack_05",
"vn_b_pack_01_02","vn_b_pack_02_02","vn_b_pack_03_02","vn_b_pack_04_02",
"vn_b_pack_05_02","vn_b_pack_prc77_01","vn_b_pack_lw_01","vn_b_pack_lw_02",
"vn_b_pack_lw_03","vn_b_pack_lw_04","vn_b_pack_lw_05","vn_b_pack_lw_06",
"vn_b_pack_lw_07","vn_b_pack_m5_01","vn_b_pack_trp_01","vn_b_pack_trp_02",
"vn_b_pack_trp_03","vn_b_pack_trp_04","vn_b_pack_trp_01_02","vn_b_pack_trp_02_02",
"vn_b_pack_trp_03_02","vn_b_pack_trp_04_02","vn_o_pack_01","vn_o_pack_02",
"vn_o_pack_03","vn_o_pack_04","vn_o_pack_05","vn_o_pack_06","vn_o_pack_07",
"vn_o_pack_08","vn_o_pack_t884_01","vn_c_pack_01","vn_c_pack_02",
"vn_b_pack_p08_01","vn_b_pack_p08_02","vn_b_pack_p08_03","vn_b_pack_p44_01","vn_b_pack_p44_02",
"vn_b_pack_p44_03","vn_b_pack_pfield_01","vn_b_pack_pfield_02","vn_b_pack_ba18_01",
"vn_b_pack_ba22_01","vn_b_pack_t10_01","vn_b_pack_arvn_02","vn_b_pack_m41_01",
"vn_b_pack_m41_02","vn_b_pack_m41_03","vn_b_pack_m41_04",
"vn_b_pack_m41_05","vn_b_pack_arvn_01","vn_b_pack_arvn_02",
"vn_b_pack_arvn_03","vn_b_pack_arvn_04"]; //"MiniGrenade", "vn_mine_m18_range_mag"
player addBackpack _grenade;
[player, "buygrenade", 2] call BAC_fnc_playVoiceLine;
player playAction "gestureFreeze";

} else {
// Display message if not enough points

};
};
};
}];
aussie battler 10 月 23 日 下午 11:09 
BOSS rounds after round 10 (I didnt add the big zombies like the smasher, seem too op):

in scripts\roundSystem.sqf (at line 94)

// ================================
// REST OF THE UNITS (spawn trickle)
// ================================
private _bossSpawnedThisRound = false; // Track if we've spawned a boss this round

for "_i" from 2 to _enemyCount do {
private _randomUnitSelector = selectRandom _unitPool; // Default to regular zombie

// ♥♥♥♥ oFf Boss spawn - only once per round after round 10
if (_round >= 10 && !_bossSpawnedThisRound && (random 1 < 0.5)) then {
_unitPoolSpecial = [
"Zombie_Special_OPFOR_Boomer","Zombie_Special_OPFOR_Screamer","WBK_SpecialZombie_Corrupted_3"];

_randomUnitSelector = selectRandom _unitPoolSpecial;
_bossSpawnedThisRound = true; // Mark that we've spawned a boss this round
};

// random offset around the wave spawner
private _spawnOffset = [
(random 10) - 5,
(random 10) - 5,
0
];
private _spawnPos = _waveSpawnPos vectorAdd _spawnOffset;

// single-unit groups for immediate activation
private _grpUnit = createGroup east;
private _unit = _grpUnit createUnit [_randomUnitSelector, _spawnPos, [], 5, "FORM"];
_enemyArray pushBack _unit;

// Random difficulty per unit
private _randomDifficulty = switch (true) do {
case (_round < 2): { selectRandom _hordelevel1 };
case (_round < 3): { selectRandom _hordelevel2 };
case (_round < 5): { selectRandom _hordelevel3 };
case (_round < 10): { selectRandom _hordelevel4 };
case (_round < 25): { selectRandom _hordelevel5 };
default { selectRandom _hordelevel6 };
};

// Apply per-unit functions
[_unit, 10000] execVM "scripts\taskRushScripts\fn_taskRush.sqf";
[_unit, _randomDifficulty] call WBK_LoadAIThroughEden;
_unit allowDamage true;
removeAllMagazines _unit;
_unit lockInventory true;

// Small delay to prevent simultaneous teleports
sleep (random 0.3);

[_unit] call BAC_fnc_handleZombieSectorSpawns;

// Trickled spawn delay (between units)
sleep _spawnDelay;
};

// ================================
// END OF THE ROUND (wait for all dead)
// ================================

// currently 50% chance of BOSS spawning, you can change chance in this:
// (random 1 < 0.5)
最后由 aussie battler 编辑于; 10 月 23 日 下午 11:13
Bacon Oreos  [开发者] 10 月 24 日 上午 3:54 
Oooh nice, those are some neat features!
You're welcome to join the discord to further discuss these feature ideas, I've got a long wishlist of things to integrate to the mode :cta_emo1:
https://discord.gg/ShzWnHqTVQ
最后由 Bacon Oreos 编辑于; 10 月 24 日 上午 3:56
< >
正在显示第 1 - 3 条,共 3 条留言
每页显示数: 1530 50