If "plugin" is not "basic-attributes", then ignore this attribute. GitHub Gist: instantly share code, notes, and snippets. Updated the Randomizer command to allow for toggling random classes, weapons and attributes. if (attacker <= 0 || attacker > MaxClients) return Plugin_Continue; // Attacker isn't valid, so the weapon won't be either. It can be crafted in crafting station, or collected from mobs. MediGunMiniCritsDefenseUber[Ent] = false; HTML 5 | Attributes are handled through a Randomizer config file, that can be modified by the server. // Compare the attribute's name against each of our own. SpeedOnHit[weapon] = StringToFloat(value); else if (StrEqual(attrib, "speed on kill")). Consumable: Instantly refill all weapon clips and ammo, Increased robot Sapper radius and duration. Located in the game's .gcf are various unused weapon attributes, with varying degrees of functionality. Step 5 = Open CTX_HACK_TF2, click on decode, then click execute for every file. It's called once every frame for every single player. Grenades have very little bounce and roll, Taking damage while shield charging reduces remaining charging time, Increased Melee damage against Isolated Merc Set, Increased Nostromo Napalmer damage taken from Isolated Merc Set, Increased Nostromo Napalmer damage against Isolationist Pack Set, Increased Melee damage taken from Isolationist Pack Set, Early Supporter of End of the Line Community Update, Weapon spread increases as health decreases, No cloak meter from ammo boxes when invisible, Not Tradable, Marketable, Usable in Crafting, or Gift Wrappable, Secondary fire when charged grants mini-crits for, Extinguishing teammates reduces cooldown by, Attacks pierce damage resistance effects and bonuses, Immune to push force from damage and airblast when spun up, Normal disguises require (and consume) a full cloak meter, Spawning and resupply do not affect the Gas meter, Maximum health is drained while item is active, Minicrits whenever it would normally crit, Push enemies back when you land (force and radius based on velocity), Able to re-launch while already in-flight, Gain a speed boost when you hit an enemy player, Gas meter builds with damage done and/or time, repair_health_to_metal_ratio_DISPLAY_ONLY, additional_halloween_response_criteria_name. Unused Weapon Attributes. Mini-crits burning players from the front. // Once a weapon entity has been "destroyed", it's been unequipped. Mini-crits burning targets and extinguishes them. if (weapon == -1) return Plugin_Continue; // Weapon is invalid, so it won't be custom. while the last are the attributes. Team Fortress 2. UberOnAssist[weapon] = StringToFloat(value); else if (StrEqual(attrib, "backnacker heal")). CloakCappedOnDecloak[weapon] = StringToFloat(value); else if (StrEqual(attrib, "medi gun mini crits defense ubercharge")). Tf2 Custom Weapon Server Mod Is Being And if its still being worked on, I dont think its even notable as its kind of advertising a Hey this mod is being worked on, check it out sort of page. if (!IsValidEntity(weapon)) return Plugin_Continue; SetEventInt(healevent, "entindex", client); SetEventInt(healevent, "amount", Sheath[client]); TF2_AddCondition(client, TFCond_CritCola, CritaColaOnDraw[weapon]); SetEventInt(healevent, "amount", HealOnDraw[weapon]); // If you need to check things like strings or conditions, a repeating-0.1-second timer like this one, // is a much better choice. +25% heal rate for patient, +25% faster revive rate, and +25% self heal rate, per point. Step 6 = In the folder should appear again items_game but in .txt format. // like the one seen below, which shows the next time we can play a "click" noise. ÜberCharge increases healing to 300% and grants immunity to movement-impairing effects, Move speed increases as the user becomes injured, On Scoped Headshot: Rifle charge rate increased by, Gains a damage bonus as rage increases, up to, Can deal charge impact damage at any range, On Hit Teammate: Boosts both players' speed for several seconds, Ammo collected from ammo boxes becomes health, Deals 3x falling damage to the player you land on, Deals crits while the wielder is rocket jumping, Consumable: Become Crit Boosted for 5 seconds, Consumable: Become Übercharged for 5 seconds, Teleporters can be used in both directions, Gives one guaranteed critical hit for each. 58 min ago, We use cookies for various purposes including analytics. I'll move the other ones eventually… About. CreateTimer(0.1, Timer_TenTimesASecond, _, TIMER_REPEAT); // Since we're hooking damage (seen below), we need to hook the below hooks on players who were. Team Fortress 2. Balanced Weapon's Attributes... A Team Fortress 2 (TF2) Mod in the Other/Misc category, submitted by redmyclan TF2_AddCondition(victim, TFCond_Jarated, JarateOnHit[weapon]); TF2_AddCondition(victim, TFCond_Milked, MadMilkOnHit[weapon]); TF2_AddCondition(attacker, TFCond_DefenseBuffed, DefenseOnHit[weapon]); TF2_AddCondition(attacker, TFCond_SpeedBuffAlly, SpeedOnHit[weapon]); SetClientGlow(victim, 0.0, GlowOnHit[weapon]); TeleportEntity(victim, NULL_VECTOR, NULL_VECTOR, fVelocity); fVelocity[2] = UpVelocityOnHitUser[weapon]; TeleportEntity(attacker, NULL_VECTOR, NULL_VECTOR, fVelocity); if (DisorientateOnHit[weapon]) //Borrowed from AW2. It has no special attributes nor does it make up part of a set. TF2 attributes related to "item_meter". // "ReduxHypeBonusDraining[2049]" (custom-attributes.sp) or client variables. Added Pyrovision! In Focus: +25% faster charge and no unscoping, and explodes when it hits the ground. This list is divided in to Weapons, Hats and Crafting Items. Though, really, you should try to keep things out of OnGameFrame/OnPlayerRunCmd. Some old, some new: They come in Bear Trap, Concussion, EMP, Frag, Gas, Healing, MIRV, Nail and Napalm flavors, all with lovely TF2-style models. 38 min ago, Java | Team Fortress 2 has a ton of unique weapons, each with their own stats, attributes, and effective situational use. Made by Derek R (AKA Compegen) Weapon Name: Submit. else if (StrEqual(attrib, "mad milk on hit")). First off, if we want to add a custom weapon GetEntPropEnt(wep, Prop_Send, "m_hHealingTarget") : -1; public bool:TraceRayDontHitSelf(entity, mask, any:data). // as often as possible. I don't run a Custom Weapon server, so most of the plugins are made through work-for-hire. // If we've gotten this far, we might need to take "action" c: // But, seriously, we might. // If you don't, really bad things will happen to the next weapon that occupies that entity slot. // and also can detect most hits on teammates! // This way, other plugins (and attributes!) But it's once every frame (66 times/second), so avoid using expensive things like. Nature's Call: Scoped headshots always mini-crits and reduce the remaining cooldown of Jarate by 1 second. Custom weapon attributes in offline mode. Usually i would reffer people to the code of the game if they ask about how to make a weapon, however due to the code being temporarily closed, i thought it'd be a good idea to list down all working weapon script attributes for reference. When fully charged, press the Special-Attack key to deploy a frontal projectile shield. On Full Charge: Projectiles penetrate players. DefenseOnHit[weapon] = StringToFloat(value); else if (StrEqual(attrib, "speed on hit")). SetEntProp(client, Prop_Send, "m_bGlowEnabled", 0); SetEntProp(client, Prop_Send, "m_bGlowEnabled", 1); stock AnglesToVelocity(Float:fAngle[3], Float:fVelocity[3], Float:fSpeed = 1.0). Fires a special bolt that can repair friendly buildings, +25% more overheal, +50% longer duration per point. https://wiki.teamfortress.com/w/index.php?title=List_of_item_attributes&oldid=2448179, Alt-Fire: Launches a ball that slows opponents, Construction hit speed boost increased by, Construction hit speed boost decreased by, Mini-crits targets launched airborne by explosions, grapple hooks or rocket packs, Damage increases as the user becomes injured, Detonates stickybombs near the crosshair and directly under your feet, Gain 2 revenge crits for each sentry kill and, Upon a successful backstab against a human target, you rapidly disguise as your victim, Silent Killer: No attack noise from backstabs, Airblast can now be charged, which will push enemies further, Purchased: Not Tradable, Marketable, or Usable in Crafting, Crits whenever it would normally mini-crit, Alt-Fire: Applies a healing effect to all nearby teammates. Yes, these old chestnuts from the original Team Fortress. Bullets destroy rockets and grenades in-flight. // Every time a player takes damage, we'll check if the weapon that the attacker used, public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]). // We changed the damage, so we need to return Plugin_Changed below... GetEntPropVector(attacker, Prop_Data, "m_vecVelocity", fVelocity); GetEntPropVector(victim, Prop_Data, "m_vecVelocity", fVelocity); if (PushForceIncreased[weapon] != 1.0) //Borrowed from AW2. STEP 8= You wonder what those things are? public Action:OnTraceAttack(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup). STEP 9= You want Natascha to make look like this, don’t you? // Does this weapon have the "aim punch multiplier" attribute? TF2_RemoveCondition(client, TFCond_Milked); public TF2_OnConditionRemoved(client, TFCond:cond), if (CloakCappedOnDecloak[invis] != 100.0 && CanCloak[client]), if (GetEntPropFloat(client, Prop_Send, "m_flCloakMeter") > CloakCappedOnDecloak[invis]). if (attacker <= 0 || attacker > MaxClients) return; if (victim <= 0 || victim > MaxClients) return; heal = damage * BacknackerHeal[weapon] * 3; new Handle:healevent = CreateEvent("player_healonhit", true); SetEventInt(healevent, "entindex", attacker); SetEventInt(healevent, "amount", RoundFloat(heal)); if (damagetype & DMG_SLASH || damagetype & DMG_BURN) return; //Bleed and Afterburn. new wep = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"); if (CritWhileLow[wep] != 0 && GetClientHealth(client) <= CritWhileLow[wep]). An attribute is where an effect is impacted on that weapon to make it unique of its own kind. To fire weapons, you need to hold left mouse button. Unfortunately, though, it doesn't have as much information as OnTakeDamage. +15% rocket speed per point. // Now, let's start making those attributes work. if (!StrEqual(plugin, "lykrast-attributes")) return Plugin_Continue; // "action" here is what we'll return to the base Custom Weapons plugin when we're done. Costs 65 metal. Build energy by healing teammates. case 1: strEntname = "tf_projectile_spellfireball"; case 2: strEntname = "tf_projectile_lightningorb"; case 3: strEntname = "tf_projectile_spellmirv"; case 4: strEntname = "tf_projectile_spellpumpkin"; case 5: strEntname = "tf_projectile_spellbats"; case 6: strEntname = "tf_projectile_spellmeteorshower"; case 7: strEntname = "tf_projectile_spelltransposeteleport"; case 8: strEntname = "tf_projectile_spellspawnboss"; case 9: strEntname = "tf_projectile_spellspawnhorde"; case 10: strEntname = "tf_projectile_spellspawnzombie"; new spell = CreateEntityByName(strEntname); GetAngleVectors(vAngles, vBuffer, NULL_VECTOR, NULL_VECTOR); vVelocity[0] = vBuffer[0]*1100.0; //Speed of a tf2 rocket. On Kill: +10% Crit Chance on nearby teammates. fVelocity[0] = Cosine(DegToRad(fAngle[1])); fVelocity[1] = Sine(DegToRad(fAngle[1])); fVelocity[2] = Sine(DegToRad(fAngle[0])) * -1.0; new wep = GetPlayerWeaponSlot(client, 1); if (wep == -1 || wep != GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon")) return -1; GetEdictClassname(wep, class, sizeof(class)); if (StrContains(class, "tf_weapon_med", false)) return -1; return GetEntProp(wep, Prop_Send, "m_bHealing") ? TF2_AddCondition(client, TFCond_Buffed, 0.12); TF2_AddCondition(client, TFCond_DefenseBuffed, 0.12); if (patient > -1 && patient <= MaxClients). 1 for each sentry assist when your sentry is destroyed. new weapon = GetEntPropEnt(attacker, Prop_Send, "m_hActiveWeapon"); // We have to get the weapon manually, sadly; this also means that if (weapon == -1) return Plugin_Continue; // attributes that use this can only be applied to "hitscan" weapons. CritWhileLow[weapon] = StringToInt(value); else if (StrEqual(attrib, "glow on hit")). In this video we look into what weapons we could have gotten in TF2 through various unused item attributes! Increased knock back on burning players. public Action:TF2_CalcIsAttackCritical(client, weapon, String:weaponname[], &bool:result), if (CanClimbWall[weapon]) //Borrowed from Randomizer, if (FiresSpells[weapon]) //Borrowed from a plugin. 17 min ago, C++ | public Action:Timer_TenTimesASecond(Handle:timer), for (new client = 1; client <= MaxClients; client++). Killing an enemy with a critical hit will dismember your victim. The following table describes the possible attributes of weapons and items as contained in the items_game.txt file. you can change class speed, as well as weapon attributes server side, it's just a matter of getting someone to code a "2012 tf2" set of server attributes and then try to push it to be accepted by all leagues. It's found under steam>steamapps>common>team fortress 2>tf>scripts. // CritDamage[thatweaponindex] to be set to 0.6, so we know to multiply the crit damage by 0.6x. if (!HasAttribute[weapon]) return Plugin_Continue; // Weapon is valid, but doesn't have one of our attributes. TF2_RemoveCondition(client, TFCond_Jarated); if(TF2_IsPlayerInCondition(client, TFCond_Milked)). AnglesToVelocity(vAng, vVelocity, 200.0 * PushForceIncreased[weapon]); TeleportEntity(victim, NULL_VECTOR, NULL_VECTOR, vVelocity); // Return Plugin_Continue if the damage wasn't changed, or Plugin_Changed if it was. 1 : 0, 1); SetEntProp(spell, Prop_Send, "m_iTeamNum", team, 1); SetEntProp(spell, Prop_Send, "m_nSkin", (team-2)); TeleportEntity(spell, vPosition, vAngles, NULL_VECTOR); AcceptEntityInput(spell, "TeamNum", -1, -1, 0); AcceptEntityInput(spell, "SetTeam", -1, -1, 0); TeleportEntity(spell, NULL_VECTOR, NULL_VECTOR, vVelocity); GetClientEyePosition(client, vecClientEyePos); // Get the position of the player's eyes, GetClientEyeAngles(client, vecClientEyeAng); // Get the angle the player is looking. On direct hits: rocket does maximum damage, stuns target, and blast radius increased +15% per point. // Usually, you'll want to hook damage done to players, using SDK Hooks. Posted by just now. Help. 3.3k. Our "action" will be set to Plugin_Changed if we. FiresSpells[weapon] = StringToInt(value); // If the weapon isn't already marked as custom (as far as this plugin is concerned). By continuing to use Pastebin, you agree to our use of cookies as described in the. So let's check if we. // We also check AFTER the damage was applied, which you should honestly try to do if your attribute. // comparing strings or TF2_IsPlayerInCondition! As with the freedom staff, this melee weapon is a re-skin of the default melee weapon and can be used by all classes, with the exception of engineer and spy. This attribute, according to developer comments would have replaced the Steel Gauntlet's high health. tf2 team fortress2 mann vs machine mvm custom wave generator. 53 min ago, Python | While healing, provides you and your target with a constant 10% resistance to the selected damage type. Entities used in the official BSP map files that are undefined in the official FGD. Invulnerable while 'Mmmph' taunting. TF2_AddCondition(client, TFCond_HalloweenCritCandy, 0.12); if (CloakWithCharge[wep] != 0 && GetEntPropFloat(wep, Prop_Send, "m_flChargedDamage") > (CloakWithCharge[wep] * 1.5)). // There's one for each of the 2048 (+1) edict slots, which will sometimes be weapons. reloaded = GetEntProp(attacker, Prop_Data, "m_iAmmo", _, ammoType); SetEntProp(attacker, Prop_Data, "m_iAmmo", (GetEntProp(attacker, Prop_Data, "m_iAmmo", _, ammoType) - reloaded), _, ammoType); SetEntProp(weapon, Prop_Data, "m_iClip1", (GetEntProp(weapon, Prop_Data, "m_iClip1") + reloaded)); GetEntPropVector(victim, Prop_Data, "m_vecOrigin", position); TeleportEntity(attacker, position, NULL_VECTOR, NULL_VECTOR); TF2_AddCondition(attacker, TFCond_TeleportedGlow, 18.0); new medigun = GetPlayerWeaponSlot(assister, 1); new Float:level = GetEntPropFloat(medigun, Prop_Send, "m_flChargeLevel") + UberOnAssist[medigun]; SetEntPropFloat(medigun, Prop_Send, "m_flChargeLevel", level); public Action:OnWeaponSwitch(client, weapon). Because of the huge collection of … We'll use it here for "speed boost on hit teammate". if (!HasAttribute[weapon]) return Plugin_Continue; // Here's another great thing to track; TF2_CalcIsAttackCritical. Damage increases based on remaining duration of afterburn. // It's a simple forward (no hooking needed) that fires whenever a client uses a weapon. Updated The Enforcer +20% damage bonus while undisguised -20% firing speed No random criticals. They are specified in the player's inventory when the weapon is having the cursor over it. // ^ Remember, this is called once for every custom attribute (attempted to be) applied! Press your reload key to cycle through resist types. STEP 10= First go in items.txt, hit CTRL+F, then search for Natascha. 1.0 is the default for this attribute, so let's compare against that. SpeedOnKill[weapon] = StringToFloat(value); else if (StrEqual(attrib, "crit while low")). These will most likely work in-game, but require custom FGD code for Hammer. new Float:JarateOnHit[2049] = {0.0, ...}; new Float:MadMilkOnHit[2049] = {0.0, ...}; new Float:DefenseOnHit[2049] = {0.0, ...}; new Float:SpeedOnKill[2049] = {0.0, ...}; new Float:CritaColaOnDraw[2049] = {0.0, ...}; new Float:UpVelocityOnHit[2049] = {0.0, ...}; new Float:UpVelocityOnHitUser[2049] = {0.0, ...}; new Float:DamageChangeAirborne[2049] = {1.0, ...}; new Float:PushForceIncreased[2049] = {1.0, ...}; new Float:CloakCappedOnDecloak[2049] = {100.0, ...}; new bool:MediGunMiniCritsDefenseUber[2049]; new Float:UberOnAssist[2049] = {0.0, ...}; new Float:BacknackerHeal[2049] = {0.0, ...}; // Here's a great spot to place "secondary" variables used by attributes, such as. Syringes deliver a highly concentrated dose of Mad Milk. On Hit: If enemy's belt is at or above eye level, Alt-Fire: Extinguish teammates to gain guaranteed critical hits, On Hit: Force enemies to laugh who are also wearing this item, Generate Rage by dealing damage. Melee weapon attributes. 4 min ago, HTML 5 | We don't care! Bumping in to enemies will make you slightly visible to enemies. DamageChangeAirborne[weapon] = StringToFloat(value); else if (StrEqual(attrib, "crit vs airborne")), else if (StrEqual(attrib, "heal on draw")), else if (StrEqual(attrib, "heal on sheath")). STEP 7= Open both attributes and items with wordpad. For 3 seconds, the Spy has perfect invisibility, a speed boost, and 65% damage resistance, which fades to 20% over time. TF2 Custom Attribute Starter Pack. ... 8 Weapon Attributes; Weapons. TF2_AddCondition(attacker, TFCond_SpeedBuffAlly, SpeedOnKill[weapon]); new ammoType = GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType"); new reloaded = ReloadOnKill[weapon] - GetEntProp(weapon, Prop_Data, "m_iClip1"); if (GetEntProp(attacker, Prop_Data, "m_iAmmo", _, ammoType) < reloaded). // then mark it as custom, but ONLY if we've set "action" to Plugin_Handled. Critical hit system is similar to that one from TF2 Ammo is required to fire a weapon in survival mode. Hat attributes. This subreddit is dedicated to Team Fortress 2, created by Valve Corporation in 2007. CritaColaOnDraw[weapon] = StringToFloat(value); else if (StrEqual(attrib, "reload on kill")). You can help TF2 Informer Wiki by expanding it. // is not going to change anything about the damage itself. Secondary weapon attributes. Honorbound: Once drawn sheathing deals 50 damage to yourself unless it kills. // already in the game when the plugin loaded, if any. This repository contains attributes I've written. Even if the below "infinite ammo" was being set 66 times a second instead of 10 times. Close. Third successful punch in a row always crits. +1 duration, -10 price per point (minimum cost: 5). MediGunMiniCritsDefenseUber[weapon] = true; TF2Attrib_SetByName(weapon, "medigun charge is crit boost", -1.0); else if (StrEqual(attrib, "medi gun kritz ubercharge")), else if (StrEqual(attrib, "uber on assist")). Rewarded for participating in the 2014 Summer Adventure. Delineating what is a function of a weapon and what is a funciton of the bot itself can help you keep your ideas straight. // Also, make sure the victim is a player. // It defaults to "Plugin_Continue" which means the attribute wasn't recognized. // client prediction still makes it look like 10 times per second. HealOnSheath[weapon] = StringToInt(value); else if (StrEqual(attrib, "disorientate on hit")), else if (StrEqual(attrib, "push force increased")). On Backstab: Absorbs the health from your victim. ... and weapon is Gas Passer and dmg custom is TF_DMG_CUSTOM_BURNING - only if item has IHasGenericMeter as a base class - only when item->ShouldUpdateMeter() returns true new victim = GetClientOfUserId(GetEventInt(event, "userid")); new attacker = GetClientOfUserId(GetEventInt(event, "attacker")); new assister = GetClientOfUserId(GetEventInt(event, "assister")); new bool:feign = bool:(GetEventInt(event, "death_flags") & TF_DEATHFLAG_DEADRINGER); SetEntProp(victim, Prop_Send, "m_bGlowEnabled", 0); new weapon = LastWeaponHurtWith[attacker]; if (SpeedOnKill[weapon] != 0.0 && victim > 0 && victim <= MaxClients && !feign). // There's also HasAttribute[2049], for a super-marginal performance boost. It was given in genuine quality to players who … // Here's where we store attribute values, which are received when the attribute is applied. // It does, and this is a crit, so multiply the damage by the variable we just checked. Alt-Fire on full 'Mmmph': Taunt to gain crits for several seconds. While Attributes such as health regen or damage vulnerability CAN be nailed to a weapon, it's better to leave those in CharacterAttributes for the sake of organization. this weapon's damage is increased by %s1%, This effect does not work in the respawn room, mini-crits players, sets them on fire, and disables buildings for 4 sec, building destroyed with your sapper attached or backstab kill. Someone know how to change weapon stats? // Unfortunately, that also means that we need to reset all of its variables. A collection of previously commissioned attributes ported to the TF2 Custom Attributes framework, which is my replacement for the various Custom Weapons projects. // Some attributes are simply on/off, so we don't need to check the "value" string. 7 seconds. Cannonballs have a fuse time of 1 second; fuses can be primed to explode earlier by holding down the fire key.

Types Of Mental Health Interventions, Gulf Air Cadet Pilot Programme, Incredibles Mint Chill Review, Magnetic Flux Density Between Two Magnets, Redmond, Oregon Funeral Homes, Aashto Weaving Distance, Crkt Pilar Mods,