I'm working on a MvM Boss port to FF2, a giant demoknight.
It's the first time I code a boss from scratch, and it took me a couple of hours to set it up.
Everything looked good and ready to go. Unfortunately, for some reason, it makes the server crash, and despite taking a look at the error logs, I'm not able to pinpoint what's causing it to crash.
Code:
"character"
{
"name" "Chief Tavish (WiP 1)"
"class" "4"
"model" "models\bots\demo_boss\bot_demo_boss.mdl"
"ragedist" "1024.0"
"maxspeed" "112"
"health_formula" "(((2200+n)*(n-1))^1.04)+4096"
"ragedamage" "4000"
"description_en" "Chief Tavish:\nThe ultimate king of demoknight bots!\nNo Super Jump!\nNo Grappling Hook!\n Teleport! (Hold RMB, release it when fully charged and looking up)\nRage (10 seconds of Übercharge + Minion Summoner): Upon rage, you'll be granted 10 second of über and spawn your fellow Demoknight bots!\nAvailabilities: Demoknight, Arabic Demoknight, Samurai Demo (smaller chance to appear)"
"weapon1"
{
"name" "tf_weapon_sword"
"index" "132"
"show" "0"
"attributes" "1 ; 0.1 ; 57 ; 500 ; 252 ; 0.3 ; 534 ; 0.3 ; 405 ; 0.1 ; 15 : 1"
//1: 90% damage penalty: to counterbalance the automatic 200%/210% damage bonus given by the plugin.
//57: 500 HP regenerated per second. (doesn't really regenerate the boss health, but I thought it'd be a good scare for players.)
//252: damage force push reduction, how much the boss is pushed by damage force.
//534: airblast vulnerability multiplier (hidden)
//405: airblast vertical vulnerability multiplier, does airblast push the boss at all?
//15: no random critical hits.
}
"weapon2"
{
"name" "tf_wearable_demoshield"
"index" "131"
"show" "0"
}
"ability1"
{
"name" "charge_teleport"
"arg0" "1.0" // slot is not used
"arg1" "10.0" // charge time
"arg2" "10.0" // teleport cooldown
"plugin_name" "default_abilities"
}
"ability2"
{
"name" "rage_tfcondition"
"arg1" "51 ; 30" // Boss Conditions (TFCond ; Duration)
"plugin_name" "ff2_tfcond"
}
"ability3"
{
"name" "tfconditions"
"arg1" "33 ; -1 ; 74 ; -1" // Conditions for boss to start round with (TFCond ; Duration)
"plugin_name" "ff2_tfcond"
}
"ability4"
{
"name" "roboticize"
"arg1" "1"
"plugin_name" "shadow93_abilities"
}
"ability5"
{
"name" "revive_markers"
"arg1" "30.0" // Decay Time"
"plugin_name" "shadow93_abilities"
}
"ability6"
{
// IF SLOT IS 0 OR -1
"name" "summon_minions"
"arg0" "0" // 0: RAGE, -1: Life Loss
"arg1" "1" // Sound
"arg2" "2" // Summon per rage (specify amount for fixed amount, 0 to summon 1 per alive player, -1 to summon by ratio)
"arg3" "0.0" // Ratio, if arg2 is -1
// Minion Type
"arg4" "0" // Model Mode (0 = Human or Custom model, 1 = Robot Model (automatically applies robot voice lines), 2 = Look like a boss)
"arg5" "models/bots/demo/bot_demo.mdl" // Leave blank for human model, or specify model path for custom model (not used if arg9 is set to 1)
"arg6" "4" // Player class, leave blank to not change minion class
"arg7" "1" // Remove wearables? (for custom models / tf2 robot models)
"arg8" "1" // Voice Line mode (-1: Block voice lines, 0: Normal voice lines, 1: Robot Voice lines, 2: Giant Voice Lines, 3: boss's catchphrase, 4: use 'sound_minion_catchphrase')
"arg9" "0" // Pickups (0 = None, 1 = Health, 2 = Ammo, 3 = Both)
"arg10" "1" // Teleport to summoner's location?
"arg11" "1.0" // Scale
"arg13" "fly" // Movetype
"arg15" "33 ; 4.0" // Spawn Conditions
"arg17" "1" // Health Type (0: Overheal, 1: Non-Overheal)
"arg18" "0" // 0 - slay minions when their summoner dies, 1 - don't slay minions when their summoner dies and instead give minions a fighting chance to win
// Notifications
"arg19" "7" // Notification Alert (0: Disable, 1: Boss, 2: Minions, 3: Mercs, 4: Boss+Mercs, 5: Boss+Minions, 6: Mercs+Minions, 7: Everyone)
"arg20" "2" // Notification Type (0: Hint Text, 1: Center Text, 2: HUD Text, 3: TF2-style HUD Text, 4: TF2-Style Annotation)
"arg21" "You have become a Demoknight!" // Minion Notification
"arg22" "You have summon Demoknights!" // Boss Notification
"arg23" "Chief Tavish has summoned allies!" // Merc Notification
// Restrictions
"arg24" "0" // Restrict new minions to only spawn if alive minions are equal or under the max allowed
"arg25" "0" // Restriction: Maximum amount of alive minions when new minions can spawn
// Weapons
"arg29" "1" // Weapon mode (0 to allow minions to spawn with regular loadouts, 1 for specific weapons, 2 for no weapons)
"arg30" "5" // If arg26 is set to 1, how many random custom weapon sets? (max is 9 sets)
// Weapon Set (up to 9 sets)
"arg100" "3" // Items in this loadout? (Max of 10, 1xx-999, 1010-1099)
// Loadout (up to 10 items per loadout, x01-x99)
"arg101" "tf_weapon_sword" // Weapon Classname
"arg102" "132" // Index
"arg103" "31 ; 1" // Attributes (if arg10 = 1)
"arg104" "0" // Ammo
"arg105" "0" // Clip
"arg108" "0" // Visible?
"arg201" "tf_wearable_demoshield"
"arg202" "131"
"arg204" "0"
"arg205" "0"
"arg208" "0"
"arg301" "tf_wearable"
"arg302" "405"
"arg304" "0"
"arg305" "0"
"arg308" "0"
"plugin_name" "ff2_salmon"
}
// models, sounds, whatever come later
"sound_begin"
{
"1" "vo/mvm/mght/taunts/demoman_mvm_m_taunts03.mp3"
"2" "vo/mvm/mght/taunts/soldier_mvm_m_taunts05.mp3"
"3" "vo/mvm/mght/taunts/soldier_mvm_m_taunts14.mp3"
"4" "vo/mvm/mght/taunts/soldier_mvm_m_taunts16.mp3"
"5" "vo/mvm/mght/taunts/demoman_mvm_m_taunts11.mp3"
}
"sound_win"
{
"1" "vo/mvm/mght/taunts/demoman_mvm_m_taunts08.mp3"
"2" "vo/mvm/mght/taunts/demoman_mvm_m_taunts12.mp3
}
"sound_death"
{
"1" "mvm/giant_common/giant_common_explodes_01.wav"
"2" "mvm/giant_common/giant_common_explodes_02.wav"
}
"sound_kill_engineer"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationengineer01.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationengineer02.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_dominationengineer03.mp3"
"4" "vo/mvm/mght/demoman_mvm_m_dominationengineer04.mp3"
"5" "vo/mvm/mght/demoman_mvm_m_dominationengineer05.mp3"
"6" "vo/mvm/mght/demoman_mvm_m_dominationengineer06.mp3"
}
"sound_kill_heavy"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationheavy02.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationheavy04.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_dominationheavy05.mp3"
}
"sound_kill_pyro"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationpyro01.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationpyro02.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_dominationpyro03.mp3"
"4" "vo/mvm/mght/demoman_mvm_m_dominationpyro04.mp3"
}
"sound_kill_scout"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationscout04.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationscout05.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_dominationscout06.mp3"
"4" "vo/mvm/mght/demoman_mvm_m_dominationscout07.mp3"
"5" "vo/mvm/mght/demoman_mvm_m_dominationscout08.mp3"
}
"sound_kill_soldier"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationsoldier02.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationsoldier03.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_dominationsoldier05.mp3"
}
"sound_kill_demo"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationdemoman01.mp3"
}
"sound_kill_medic"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationmedic02.mp3"
}
"sound_kill_sniper"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationsniper03.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationsniper04.mp3"
}
"sound_kill_spy"
{
"1" "vo/mvm/mght/demoman_mvm_m_dominationspy02.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_dominationspy03.mp3"
}
"sound_lastman"
{
"1" "vo/mvm/mght/demoman_mvm_m_laughevil01.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_laughevil02.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_laughevil03.mp3"
"4" "vo/mvm/mght/demoman_mvm_m_laughevil04.mp3"
"5" "vo/mvm/mght/demoman_mvm_m_laughevil05.mp3"
"6" "vo/mvm/mght/taunts/demoman_mvm_m_taunt06.mp3"
"7" "vo/mvm/mght/taunts/demoman_mvm_m_taunt10.mp3"
}
"sound_ability"
{
"1" "vo/mvm/mght/demoman_mvm_m_battlecry02.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_battlecry05.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_battlecry07.mp3"
}
"sound_kspree"
{
"1" "vo/mvm/mght/demoman_mvm_m_cheers06.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_laughhappy01.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_laughhappy02.mp3"
}
"sound_stabbed"
{
"1" "vo/mvm/mght/demoman_mvm_m_painsevere01.mp3"
"2" "vo/mvm/mght/demoman_mvm_m_painsevere02.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_painsevere03.mp3"
"3" "vo/mvm/mght/demoman_mvm_m_jeers08.mp3"
}
"sound_precache"
{
"1" "freak_fortress_2/chieftavish/chieftavish.mp3"
}
"sound_bgm"
{
"path1" "freak_fortress_2/chieftavish/chieftavish.mp3"
"time1" "132"
}
"mod_download"
{
}
"download"
{
"1" "sound/freak_fortress_2/chieftavish/chieftavish.mp3"
"2" "materials/models/bots/demo/c_claymore.vmt"
"3" "materials/models/bots/demo/c_targe.vmt"
"4" "materials/models/bots/demo/crown.vmt"
"5" "materials/models/bots/demo/crown_blue.vmt"
"6" "materials/models/bots/demo/demo_booties.vmt"
}
}
I tried removing the minion system, thinking that it might be the issues since it's beta. But no, it still crashed.
I also tried removing the shield, so it only has the sword for now, but still it's crashing the server.
any ideas?