1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 07:08:06 -05:00

Tranzit: bus wallbuy trigger functions the same as other wallbuy triggers

This commit is contained in:
Jbleezy
2023-03-27 22:51:25 -07:00
parent db6de0b212
commit 84eb491bc2
6 changed files with 118 additions and 28 deletions

View File

@ -426,6 +426,7 @@
* Increased bus speed by 100%
* Powerups dropped within the bus are linked to the bus
* Players can sprint and go prone on the bus
* Bus wallbuy trigger functions the same as other wallbuy triggers
* Lava in starting area activates after the power is on
* Lava destroys grenades instantly
* Decreased brightness at Power Station

View File

@ -52,6 +52,7 @@ main()
replaceFunc(maps\mp\zombies\_zm_laststand::revive_give_back_weapons, scripts\zm\replaced\_zm_laststand::revive_give_back_weapons);
replaceFunc(maps\mp\zombies\_zm_laststand::revive_hud_think, scripts\zm\replaced\_zm_laststand::revive_hud_think);
replaceFunc(maps\mp\zombies\_zm_laststand::auto_revive, scripts\zm\replaced\_zm_laststand::auto_revive);
replaceFunc(maps\mp\zombies\_zm_weapons::init_weapon_upgrade, scripts\zm\replaced\_zm_weapons::init_weapon_upgrade);
replaceFunc(maps\mp\zombies\_zm_weapons::weapon_give, scripts\zm\replaced\_zm_weapons::weapon_give);
replaceFunc(maps\mp\zombies\_zm_weapons::ammo_give, scripts\zm\replaced\_zm_weapons::ammo_give);
replaceFunc(maps\mp\zombies\_zm_weapons::get_upgraded_ammo_cost, scripts\zm\replaced\_zm_weapons::get_upgraded_ammo_cost);

View File

@ -3,6 +3,18 @@
#include maps\mp\zombies\_zm_utility;
#include maps\mp\zombies\_zm_weapons;
init_weapon_upgrade()
{
init_spawnable_weapon_upgrade();
weapon_spawns = [];
weapon_spawns = getentarray( "weapon_upgrade", "targetname" );
for ( i = 0; i < weapon_spawns.size; i++ )
{
scripts\zm\replaced\utility::wallbuy( weapon_spawns[i].zombie_weapon_upgrade, weapon_spawns[i].target + "_weapon_upgrade", weapon_spawns[i].targetname, weapon_spawns[i].origin, weapon_spawns[i].angles, 0 );
}
}
weapon_give( weapon, is_upgrade, magic_box, nosound )
{
primaryweapons = self getweaponslistprimaries();

View File

@ -169,7 +169,7 @@ register_map_initial_spawnpoint( origin, angles, team_num )
level.struct_class_names[ "script_noteworthy" ][ "initial_spawn" ][ player_initial_spawnpoint_size ] = spawnpoint_struct;
}
wallbuy( weapon_name, target, targetname, origin, angles )
wallbuy( weapon_name, target, targetname, origin, angles, play_chalk_fx = 1 )
{
unitrigger_stub = spawnstruct();
unitrigger_stub.origin = origin;
@ -290,13 +290,16 @@ wallbuy( weapon_name, target, targetname, origin, angles )
maps\mp\zombies\_zm_unitrigger::register_static_unitrigger( unitrigger_stub, ::weapon_spawn_think );
}
chalk_fx = weapon_name + "_fx";
level thread playchalkfx( chalk_fx, origin, angles );
if(weaponType(weapon_name) == "grenade")
{
unitrigger_stub thread wallbuy_grenade_model_fix();
}
if (play_chalk_fx)
{
chalk_fx = weapon_name + "_fx";
level thread playchalkfx( chalk_fx, origin, angles );
}
}
playchalkfx( effect, origin, angles )

View File

@ -441,6 +441,103 @@ begin_arrival_slowdown()
self setspeed( 10, 10, 10 );
}
buspathblockersetup()
{
self.path_blockers = getentarray( "bus_path_blocker", "targetname" );
for ( i = 0; i < self.path_blockers.size; i++ )
self.path_blockers[i] linkto( self, "", self worldtolocalcoords( self.path_blockers[i].origin ), self.path_blockers[i].angles + self.angles );
cow_catcher_blocker = getent( "cow_catcher_path_blocker", "targetname" );
if ( isdefined( cow_catcher_blocker ) )
cow_catcher_blocker linkto( self, "", self worldtolocalcoords( cow_catcher_blocker.origin ), cow_catcher_blocker.angles + self.angles );
trig = getent( "bus_buyable_weapon1", "script_noteworthy" );
trig enablelinkto();
trig linkto( self, "", self worldtolocalcoords( trig.origin ), ( 0, 0, 0 ) );
trig setinvisibletoall();
self.buyable_weapon = trig;
level._spawned_wallbuys[level._spawned_wallbuys.size] = trig;
weapon_model = getent( trig.target, "targetname" );
weapon_model linkto( self, "", self worldtolocalcoords( weapon_model.origin ), weapon_model.angles + self.angles );
weapon_model setmovingplatformenabled( 1 );
weapon_model._linked_ent = trig;
weapon_model hide();
self thread bus_buyable_weapon_unitrigger_setup(trig);
}
bus_buyable_weapon_unitrigger_setup(trig)
{
unitrigger = undefined;
while (!isDefined(unitrigger))
{
for(i = 0; i < level._unitriggers.trigger_stubs.size; i++)
{
if(IsDefined(level._unitriggers.trigger_stubs[i].zombie_weapon_upgrade) && level._unitriggers.trigger_stubs[i].zombie_weapon_upgrade == "beretta93r_zm")
{
unitrigger = level._unitriggers.trigger_stubs[i];
break;
}
}
wait 1;
}
unitrigger.origin_parent = trig;
unitrigger.link_parent = trig;
unitrigger.originfunc = ::bus_buyable_weapon_get_unitrigger_origin;
unitrigger.onspawnfunc = ::bus_buyable_weapon_on_spawn_trigger;
unitrigger.target = undefined; // remove other wallbuy weapon model from showing
}
bus_buyable_weapon_get_unitrigger_origin()
{
return self.origin_parent.origin + (0, 0, -32);
}
bus_buyable_weapon_on_spawn_trigger(trigger)
{
trigger enablelinkto();
trigger linkto(self.link_parent);
trigger setmovingplatformenabled(1);
}
busthink()
{
no_danger = 0;
self thread busupdatechasers();
self thread busupdateplayers();
self thread busupdatenearzombies();
while ( true )
{
waittillframeend;
self busupdatespeed();
self busupdateignorewindows();
if ( self.ismoving )
self busupdatenearequipment();
if ( !( isdefined( level.bus_zombie_danger ) && level.bus_zombie_danger ) && ( self.numplayersonroof || self.numplayersinsidebus ) )
{
no_danger++;
if ( no_danger > 40 )
{
level thread do_player_bus_zombie_vox( "bus_zom_none", 40, 60 );
no_danger = 0;
}
}
else
no_danger = 0;
wait 0.1;
}
}
busupdateplayers()
{
level endon( "end_game" );
@ -532,7 +629,6 @@ busupdateplayers()
if ( !playerisinbus && ( isdefined( player.isonbus ) && player.isonbus ) )
{
bbprint( "zombie_events", "category %s type %s round %d playername %s", "BUS", "player_exit", level.round_number, player.name );
self.buyable_weapon setinvisibletoplayer( player );
player setclientplayerpushamount( 1 );
player notify( "left bus" );
player clientnotify( "LBS" );
@ -551,12 +647,10 @@ busupdateplayers()
if ( isdefined( player.isonbusroof ) && player.isonbusroof )
{
self.buyable_weapon setinvisibletoplayer( player );
self.numplayersonroof++;
}
else if ( isdefined( player.isonbus ) && player.isonbus )
{
self.buyable_weapon setvisibletoplayer( player );
self.numplayersinsidebus++;
}

View File

@ -23,7 +23,6 @@ main()
replaceFunc(maps\mp\zm_transit_utility::solo_tombstone_removal, scripts\zm\replaced\zm_transit_utility::solo_tombstone_removal);
replaceFunc(maps\mp\zm_transit_bus::bussetup, scripts\zm\replaced\zm_transit_bus::bussetup);
replaceFunc(maps\mp\zm_transit_bus::busscheduleadd, scripts\zm\replaced\zm_transit_bus::busscheduleadd);
replaceFunc(maps\mp\zm_transit_bus::busupdateplayers, scripts\zm\replaced\zm_transit_bus::busupdateplayers);
replaceFunc(maps\mp\zombies\_zm_ai_screecher::screecher_detach, scripts\zm\replaced\_zm_ai_screecher::screecher_detach);
replaceFunc(maps\mp\zombies\_zm_ai_screecher::screecher_cleanup, scripts\zm\replaced\_zm_ai_screecher::screecher_cleanup);
replaceFunc(maps\mp\zombies\_zm_riotshield::doriotshielddeploy, scripts\zm\replaced\_zm_riotshield::doriotshielddeploy);
@ -65,7 +64,6 @@ init()
path_exploit_fixes();
level thread power_local_electric_doors_globally();
level thread b23r_hint_string_fix();
level thread power_station_vision_change();
level thread attach_powerups_to_bus();
}
@ -200,25 +198,6 @@ power_local_electric_doors_globally()
}
}
b23r_hint_string_fix()
{
flag_wait( "initial_blackscreen_passed" );
wait 0.05;
trigs = getentarray("weapon_upgrade", "targetname");
foreach (trig in trigs)
{
if (trig.zombie_weapon_upgrade == "beretta93r_zm")
{
level.zombie_weapons[trig.zombie_weapon_upgrade].hint = "Hold ^3[{+activate}]^7 for &&1 [Cost: &&2], Ammo [Cost: &&3], \n Upgraded Ammo [Cost: &&4]";
hint = level.zombie_weapons[trig.zombie_weapon_upgrade].hint;
cost = level.zombie_weapons[trig.zombie_weapon_upgrade].cost;
display_name = getweapondisplayname(trig.zombie_weapon_upgrade);
trig sethintstring(hint, display_name, cost, cost / 2, 2500);
}
}
}
grenade_safe_to_bounce( player, weapname )
{
if ( !is_offhand_weapon( weapname ) )