2 Commits
Author SHA1 Message Date
legonzaur 1b56e6a24c Imagine publishing with a console log at each tick 2022-03-13 19:33:14 +01:00
legonzaur c455618913 Improved ability recharge 2022-03-13 19:23:46 +01:00
4 changed files with 58 additions and 31 deletions
@@ -0,0 +1,36 @@
WeaponData
{
MP_BASE
{
"ammo_clip_size" "200"
"ammo_default_total" "200"
"ammo_display" "bar"
"ammo_min_to_fire" "100"
"ammo_per_shot" "100"
"ammo_stockpile_max" "200"
"fire_rate" "2"
"regen_ammo_refill_rate" "16"
"enable_highlight_networking_on_creation" "<KEEP_DEFAULT>"
}
"regen_ammo_refill_start_delay" "2.0"
Mods
{
pas_power_cell
{
"regen_ammo_refill_rate" "*1.35"
}
dev_mod_low_recharge
{
"regen_ammo_refill_rate" "*10"
}
amped_tacticals
{
"ammo_clip_size" "300"
"ammo_default_total" "300"
"ammo_stockpile_max" "300"
"regen_ammo_refill_rate" "*1.5"
}
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"Name": "Legonzaur.HoloShift",
"Description": "Swap positions with your beloved decoy",
"Version": "1.0.4",
"Version": "1.0.7",
"LoadPriority": 2,
"Scripts": [
{
+12 -28
View File
@@ -7,18 +7,21 @@ void function HoloShift_Init() {
}
int rechargeStep = 1 //defines speed at which counter is added or removed
float rechargeInterval = 1/20
int charge_size = 100
int charge_max = 200
int recharge_remove = 1
bool IsLaunched = false
#if SERVER
void function HoloRecharge(){
thread HoloRecharge_Threaded()
if(!IsLaunched) {
thread HoloRecharge_Threaded()
IsLaunched = true
}
}
void function HoloRecharge_Threaded(){
float rechargeMultiplier = charge_size/DECOY_DURATION
while(true){
array<entity> players = GetPlayerArray()
foreach (entity player in players)
@@ -28,34 +31,15 @@ int recharge_remove = 1
if( IsValid(player.GetOffhandWeapon(1)) && player.GetOffhandWeapon(1).GetWeaponClassName() == "mp_ability_holopilot"){
Assert(player)
if(!player.IsPhaseShifted()){
int chargeCount = player.GetOffhandWeapon(1).GetWeaponPrimaryClipCount()
int oldchargeCount = chargeCount
if(player in playerDecoyList){
chargeCount -= recharge_remove
if(chargeCount < 0)
chargeCount = 0
}else{
int max = player.GetOffhandWeapon(1).GetWeaponPrimaryClipCountMax()
chargeCount += rechargeStep
if(chargeCount > charge_size){
chargeCount = max
}
}
if(oldchargeCount != chargeCount){
player.GetOffhandWeapon(1).SetWeaponPrimaryClipCount(chargeCount)
if(player in playerDecoyActiveFrom){
float chargeCount = float(player.GetOffhandWeapon(1).GetWeaponPrimaryClipCountMax()) - ((Time() - playerDecoyActiveFrom[player])*rechargeMultiplier)
player.GetOffhandWeapon(1).SetWeaponPrimaryClipCount(int(chargeCount))
}
}
}
}
}
wait rechargeInterval
wait 0
}
}
#endif
@@ -30,7 +30,7 @@ struct
file
global table< entity > playerDecoyList //CUSTOM used to track the decoy the user will be teleported to
global table< entity, float > playerDecoyActiveFrom //CUSTOM used to set decoy ability discharge
#if SERVER
@@ -86,6 +86,10 @@ void function OnHoloPilotDestroyed( entity decoy )
if(bossPlayer in playerDecoyList){
if(decoy == playerDecoyList[bossPlayer])
delete playerDecoyList[bossPlayer]
}
if(bossPlayer in playerDecoyActiveFrom){
delete playerDecoyActiveFrom[bossPlayer]
}
EmitSoundOnEntityOnlyToPlayer( bossPlayer, bossPlayer, "holopilot_end_1P" )
}
@@ -135,6 +139,9 @@ var function OnWeaponPrimaryAttack_holopilot( entity weapon, WeaponPrimaryAttack
weaponOwner.GetOffhandWeapon(1).SetWeaponPrimaryClipCount(0)
}
PlayerUsesHoloRewind(weaponOwner, decoy)
if(weaponOwner in playerDecoyActiveFrom){
delete playerDecoyActiveFrom[weaponOwner]
}
if(GetCurrentPlaylistName() == "lts"){
if(PlayerHasBattery(weaponOwner)){
Rodeo_TakeBatteryAwayFromPilot(weaponOwner)
@@ -185,7 +192,7 @@ entity function CreateHoloPilotDecoys( entity player, int numberOfDecoysToMake =
decoy.EnableAttackableByAI( 50, 0, AI_AP_FLAG_NONE )
SetObjectCanBeMeleed( decoy, true )
decoy.SetTimeout( DECOY_DURATION )
playerDecoyActiveFrom[player] <- Time()
if ( setOriginAndAngles )
{
vector angleToAdd = CalculateAngleSegmentForDecoy( i, HOLOPILOT_ANGLE_SEGMENT )