AlliedModders (
-   SteamTools (
-   -   Read Me! Release announcements (

asherkin 06-16-2010 14:56

Release announcements
Gives access to a select few SteamWorks functions for SourceMod plugins. For more info, look at the available functions in the include file.

Only TF2 is supported.

Download Latest Release

There is almost no documentation at the moment, but it should be pretty simple to work out how everything works by looking at the names of the natives and how the testing plugin does things (and reading the forum) :wink:.

There is a list of all the stats and achievement names here and the program used to generate it here. Don't ask me anything about what each of them is, I have no idea, do your own testing. The only hint I have is Pyro.accum.iPlayTime = total time playing as pyro and Pyro.max.iPlayTime = longest life as pyro.

Source Code | Build Status | Snapshots

asherkin 06-17-2010 16:24

Re: SteamTools - SteamWorks functions for SourceMod.
Updated to get proper auto-loading without crashes on Linux.
Yay for no more hackery.
Didrole from the OSW team helped me fix this up, so cheers to him.


Originally Posted by Afronanny (Post 1211507)
Would it, by any chance, be possible for you to make a interface for other extensions to use?

Of course it is :) This'll be a first for me though, so let's hope I can work it out.

asherkin 06-19-2010 18:16

Re: SteamTools - SteamWorks for SourceMod
Another update with access to the steam stats for users.
It's a bit convoluted, but okay if you follow how the test plugin does everything.

There is a list of all the stats and achievement names here and the program used to generate it here. Don't ask me anything about what each of them is, I have no idea, do your own testing. The only hint I have is Pyro.accum.iPlayTime = Max time playing as pyro and Pyro.max.iPlayTime = longest life as pyro.

Also, Valve changed some stuff slightly, this will not work on Windows servers with Steam installed and running. VoiDeD, voogru and I are all trying to fix this. This update adds a warning when this happens and unloads, previous ones will just crash.

The other change is that Steam_RequestGroupStatus and Steam_GroupStatusResult now take and return respectively a client index rather than an auth string, this is because I now cache client indexes and their respective CSteamID internally, as the conversion from SteamID (in string format) to CSteamID (what is used by the SteamWorks interfaces) is very costly.

An interface for extensions will be in the next update, I need to decide on a clean way to do it first.

Edit: Spent a few mins working out the stat names.
These are the respective names from the community pages for the 'max' stats, the 'accum' ones are the same but track overall not per-life. Not all are available on all classes, just match it to the previous list.

iBuildingsDestroyed        Most destruction
iDamageDealt                Most damage
iDominations                Most dominations
iKillAssists                Most assists
iNumberOfKills                Most kills
iNumInvulnerable        Most ÜberCharges
iPlayTime                Longest life (in seconds)
iPointCaptures                Most captures
iPointDefenses                Most defenses
iPointsScored                Most points
iRevenge                Most revenges
iBuildingsBuilt                Most buildings built
iHealthPointsHealed        Most health healed
iNumTeleports                Most teleports
iSentryKills                Most kills by sentry
iHeadshots                Most headshots                       
iBackstabs                Most backstabs
iHealthPointsLeached        Most health leeched

Edit: Originally I had a list of the stats that stored achievement progress here, but I managed to get the API to spit out a list of all the display names for the achievements. The stats for the progress ones are just the name with _STAT added on the end.

TF_BURN_PLAYERSINMINIMUMTIME                        Flamethrower
TF_DEMOMAN_ACHIEVE_PROGRESS1                        Demoman Milestone 1
TF_DEMOMAN_ACHIEVE_PROGRESS2                        Demoman Milestone 2
TF_DEMOMAN_ACHIEVE_PROGRESS3                        Demoman Milestone 3
TF_DEMOMAN_AIR_BURST_KILLS                        Something Stickied This Way Comes
TF_DEMOMAN_BOUNCE_AND_KILL                        Caber Toss
TF_DEMOMAN_CHARGE_KILL                                The Targe Charge
TF_DEMOMAN_CRIT_SWORD_KILL                        Beat Me Up, Scotty
TF_DEMOMAN_DAMAGE_GRIND                                Tartan Spartan
TF_DEMOMAN_DECAPITATE_CLOAKED_SPY                Shorn Connery
TF_DEMOMAN_DECAPITATE_EQUALIZER                        Slammy Slayvis Woundya
TF_DEMOMAN_DECAPITATE_NEMESIS                        There Can Be Only One
TF_DEMOMAN_DECAPITATE_PLAYERS                        Brainspotting
TF_DEMOMAN_DESTROY_X_STICKYBOMBS                Robbed Royal
TF_DEMOMAN_DOMINATE_THREE_ENGINEERS                Three Times a Laddy
TF_DEMOMAN_DUO_DEMOMAN_KILLS                        Well Plaid!
TF_DEMOMAN_ENVIRONMENTAL_KILL                        He Who Celt It
TF_DEMOMAN_FREEZECAM_RUMP                        Second Eye
TF_DEMOMAN_FREEZECAM_SMILE                        Bloody Merry
TF_DEMOMAN_KILL3_WITH_DETONATION                Pipebagger
TF_DEMOMAN_KILL3_WITH_PIPE_SETUPS                Sticky Thump
TF_DEMOMAN_KILLXSAPPINGSPIES                        Spynal Tap
TF_DEMOMAN_KILL_PLAYER_AFTER_TP                        Loch Ness Bombster
TF_DEMOMAN_KILL_SOLDIER_GRIND                        Kilt in Action
TF_DEMOMAN_KILL_TWO_DURING_STICKYJUMP                Double Mauled Scotch
TF_DEMOMAN_KILL_X_CAPPING_ONEDET                Scotch Guard
TF_DEMOMAN_KILL_X_DEFENDING                        Bravehurt
TF_DEMOMAN_KILL_X_SCOUTS_PYROS                        Glasg0wned
TF_DEMOMAN_KILL_X_WITH_DIRECTPIPE                Laddy Macdeth
TF_DEMOMAN_STICKJUMP_DISTANCE                        Highland Fling
TF_DEMOMAN_STICKYJUMP_CAP                        The High Road
TF_DEMOMAN_TAUNT_KILL                                Scotch Tap
TF_GET_HEADSHOTS                                Grey Matter
TF_GET_HEALED_BYENEMY                                Master of Disguise
TF_GET_HEALPOINTS                                Team Doctor
TF_GET_MULTIPLEKILLS                                Hardcore
TF_GET_TURRETKILLS                                Sentry Gunner
TF_HALLOWEEN_COLLECT_PUMPKINS                        Candy Coroner
TF_HALLOWEEN_DISGUISED_SPY_KILL                        Costume Contest
TF_HALLOWEEN_DOMINATE_FOR_HAT                        Ghastly Gibus Grab
TF_HALLOWEEN_KILL_SCARED_PLAYER                        Scared Stiff
TF_HALLOWEEN_PUMPKIN_KILL                        Attack o' Lantern
TF_HEAVY_ACHIEVE_PROGRESS1                        Heavy Milestone 1
TF_HEAVY_ACHIEVE_PROGRESS2                        Heavy Milestone 2
TF_HEAVY_ACHIEVE_PROGRESS3                        Heavy Milestone 3
TF_HEAVY_ASSIST_GRIND                                Kollectivization
TF_HEAVY_ASSIST_HEAVY_GRIND                        Soviet Union
TF_HEAVY_ASSIST_MEDIC_LARGE                        Division of Labor
TF_HEAVY_BLOCK_CART                                Stalin the Kart
TF_HEAVY_BLOCK_INVULN_HEAVY                        Soviet Block
TF_HEAVY_CLEAR_STICKYBOMBS                        0wn the Means of Production
TF_HEAVY_DAMAGE_TAKEN                                Iron Kurtain
TF_HEAVY_DEFEND_CONTROL_POINT                        Gorky Parked
TF_HEAVY_DEFEND_MEDIC                                Party Loyalty
TF_HEAVY_EARN_MEDIC_DOMINATION                        Red Oktoberfest
TF_HEAVY_EAT_SANDWICHES                                Konspicuous Konsumption
TF_HEAVY_FIRE_LOTS                                Heavy Industry
TF_HEAVY_FIRST_TO_CAP                                Vanguard Party
TF_HEAVY_FREEZECAM_TAUNT                        Photostroika
TF_HEAVY_HEAL_MEDIKITS                                Redistribution of Health
TF_HEAVY_KILL_CAPPING_ENEMIES                        Purge
TF_HEAVY_KILL_CRIT_PUNCH                        Communist Mani-Fisto
TF_HEAVY_KILL_DOMINATED                                Icing on the Cake
TF_HEAVY_KILL_FLAG_CARRIERS                        Crime and Punishment
TF_HEAVY_KILL_HEAVIES_GLOVES                        Borscht Belt
TF_HEAVY_KILL_MEDIC_PAIR                        Class Struggle
TF_HEAVY_KILL_MIDAIR_MINIGUN                        Marxman
TF_HEAVY_KILL_SCOUTS                                Don't Touch Sandvich
TF_HEAVY_KILL_SHOTGUN                                Rationing
TF_HEAVY_KILL_TAUNT                                Show Trial
TF_HEAVY_KILL_UNDERWATER                        Krazy Ivan
TF_HEAVY_KILL_WHILE_SPUNUP                        Permanent Revolution
TF_HEAVY_PAYLOAD_CAP_GRIND                        Pushkin the Kart
TF_HEAVY_RECEIVE_UBER_GRIND                        Supreme Soviet
TF_HEAVY_REVENGE_ASSIST                                Lenin A Hand
TF_HEAVY_STAND_NEAR_DISPENSER                        Factory Worker
TF_HEAVY_SURVIVE_CROCKET                        Crock Block
TF_HEAVY_TAKE_MULTI_DAMAGE                        Rasputin
TF_HEAVY_TELEPORT_FAST_KILL                        Five Second Plan
TF_HEAVY_UNCOVER_SPIES                                Spyalectical Materialism
TF_KILL_NEMESIS                                        Nemesis
TF_MEDIC_ACHIEVE_PROGRESS1                        Medic Milestone 1
TF_MEDIC_ACHIEVE_PROGRESS2                        Medic Milestone 2
TF_MEDIC_ACHIEVE_PROGRESS3                        Medic Milestone 3
TF_MEDIC_ASSIST_CAPTURER                        Ubi concordia, ibi victoria
TF_MEDIC_ASSIST_DEMOMAN                                Medical Breakthrough
TF_MEDIC_ASSIST_HEAVY                                Blunt Trauma
TF_MEDIC_ASSIST_HEAVY_LONG                        Big Pharma
TF_MEDIC_ASSIST_MEDIC                                Consultation
TF_MEDIC_ASSIST_PYRO                                Autoclave
TF_MEDIC_ASSIST_SCOUT                                You'll Feel a Little Prick
TF_MEDIC_ASSIST_SOLDIER                                Blast Assist
TF_MEDIC_ASSIST_VS_NEMESES                        Doctor Assisted Homicide
TF_MEDIC_BONESAW_MEDICS                                Peer Review
TF_MEDIC_BONESAW_NOMISSES                        Sawbones
TF_MEDIC_BONESAW_SPY_CALLERS                        FYI I am A Medic
TF_MEDIC_CHARGE_BLOCKER                                Preventive Medicine
TF_MEDIC_CHARGE_FRIENDS                                Family Practice
TF_MEDIC_CHARGE_JUGGLE                                Second Opinion
TF_MEDIC_COUNTER_CHARGE                                Double Blind Trial
TF_MEDIC_EXTINGUISH_TEAMMATES                        Infernal Medicine
TF_MEDIC_FREEZECAM_RAGDOLL                        Autopsy Report
TF_MEDIC_HEAL_ACHIEVER                                Bedside Manner
TF_MEDIC_HEAL_CALLERS                                Grand Rounds
TF_MEDIC_HEAL_ENGINEER                                Midwife Crisis
TF_MEDIC_HEAL_GRIND                                Chief of Staff
TF_MEDIC_HEAL_HUGE                                Specialist
TF_MEDIC_HEAL_LARGE                                Intern
TF_MEDIC_HEAL_UNDER_FIRE                        Quadruple Bypass
TF_MEDIC_INVITE_JOIN_CHARGE                        House Call
TF_MEDIC_KILL_HEALED_SPY                        Hypocritical Oath
TF_MEDIC_KILL_WHILE_CHARGED                        Placebo Effect
TF_MEDIC_RAPID_CHARGE                                Trauma Queen
TF_MEDIC_SAVE_FALLING_TEAMMATE                        Medical Intervention
TF_MEDIC_SAVE_TEAMMATE                                Triage
TF_MEDIC_SETUP_CHARGE                                Surgical Prep
TF_MEDIC_SIMUL_CHARGE                                Group Health
TF_MEDIC_SWITCH_TO_MEDIC                        Play Doctor
TF_MEDIC_SYRINGE_SCOUTS                                Does It Hurt When I Do This?
TF_MEDIC_TOP_SCOREBOARD                                First Do No Harm
TF_PLAY_GAME_EVERYCLASS                                Head of the Class
TF_PLAY_GAME_EVERYMAP                                World Traveler
TF_PLAY_GAME_FRIENDSONLY                        With Friends Like these...
TF_PYRO_ACHIEVE_PROGRESS1                        Pyro Milestone 1
TF_PYRO_ACHIEVE_PROGRESS2                        Pyro Milestone 2
TF_PYRO_ACHIEVE_PROGRESS3                        Pyro Milestone 3
TF_PYRO_BURN_MEDICPAIR                                Next of Kindling
TF_PYRO_BURN_MEDICS_CHARGED                        Burn Ward
TF_PYRO_BURN_RJ_SOLDIER                                Pilot Light
TF_PYRO_BURN_SNIPERS_ZOOMED                        Firewatch
TF_PYRO_BURN_SPIES_AS_YOU                        I Fry
TF_PYRO_BURN_SPY_TAUNT                                Got A Light?
TF_PYRO_CAMP_POSITION                                Camp Fire
TF_PYRO_CAMP_TELEPORTERS                        Trailblazer
TF_PYRO_DAMAGE_GRIND                                Pyromancer
TF_PYRO_DEFEND_POINTS                                Controlled Burn
TF_PYRO_DESTROY_BUILDINGS                        Arsonist
TF_PYRO_DOMINATE_LEAVESVR                        BarbeQueQ
TF_PYRO_DOUBLE_KO                                Dead Heat
TF_PYRO_FORCE_WATERJUMP                                Baptism by Fire
TF_PYRO_FREEZECAM_TAUNTS                        Freezer Burn
TF_PYRO_IGNITE_FLAREGUN                                Attention Getter
TF_PYRO_KILL_AXE_LARGE                                Clearcutter
TF_PYRO_KILL_AXE_SMALL                                Lumberjack
TF_PYRO_KILL_CARRIERS                                Cooking the Books
TF_PYRO_KILL_FROM_BEHIND                        Hot on Your Heels
TF_PYRO_KILL_GRIND                                Firefighter
TF_PYRO_KILL_GRIND_LARGE                        Fire Chief
TF_PYRO_KILL_HEAVIES                                Makin' Bacon
TF_PYRO_KILL_MULTIWEAPONS                        Combined Fire
TF_PYRO_KILL_POSTDEATH                                Fire and Forget
TF_PYRO_KILL_SPIES                                Firewall
TF_PYRO_KILL_TAUNT                                OMGWTFBBQ
TF_PYRO_KILL_TAUNTERS                                Dance Dance Immolation
TF_PYRO_KILL_TEAMWORK                                Second Degree Burn
TF_PYRO_KILL_UBERCHARGE                                Pyrotechnics
TF_PYRO_KILL_UNDERWATER                                Plan B
TF_PYRO_REFLECT_CROCKET_KILL                        Hotshot
TF_PYRO_REFLECT_PROJECTILES                        Hot Potato
TF_PYRO_REVEAL_SPIES                                Spontaneous Combustion
TF_PYRO_SIMULBURN_SCOUTS                        Weenie Roast
TF_SCOUT_ACHIEVE_PROGRESS1                        Scout Milestone 1
TF_SCOUT_ACHIEVE_PROGRESS2                        Scout Milestone 2
TF_SCOUT_ACHIEVE_PROGRESS3                        Scout Milestone 3
TF_SCOUT_ASSIST_MEDIC                                Doctoring the Ball
TF_SCOUT_BLOCK_CAPS                                Block the Plate
TF_SCOUT_CAPTURE_LAST_POINT                        Side Retired
TF_SCOUT_CAPTURE_THREE_POINTS                        Triple Play
TF_SCOUT_CARRIER_KILL_CARRIER                        Belittled Beleaguer
TF_SCOUT_DESTROY_TELEPORTERS                        Closer
TF_SCOUT_DODGE_DAMAGE                                Artful Dodger
TF_SCOUT_DOUBLEJUMP_KILL                        Pop Fly
TF_SCOUT_DOUBLE_JUMPS                                Batter Up
TF_SCOUT_FAST_CAP                                Stealing Home
TF_SCOUT_FIRST_BLOOD                                First Blood
TF_SCOUT_FIRST_BLOOD_KILL                        First Blood, Part 2
TF_SCOUT_FLAG_CAP_GRIND                                Round-Tripper
TF_SCOUT_IRON_MAN_KILLS                                The Cycle
TF_SCOUT_KILL_CHARGED_MEDICS                        Batting the Doctor
TF_SCOUT_KILL_FROM_BEHIND                        Caught Napping
TF_SCOUT_KILL_IN_DODGE_COOLDOWN                        Retire the Runner
TF_SCOUT_KILL_STUNNED                                Strike Zone
TF_SCOUT_KNOCK_INTO_TRAIN                        Fall Classic
TF_SCOUT_LIFETIME_KILLS                                A Year to Remember
TF_SCOUT_LONG_DISTANCE_RUNNER                        Race for the Pennant
TF_SCOUT_MAX_STUNS                                Moon Shot
TF_SCOUT_START_AND_FINISH_CAP                        Set the Table
TF_SCOUT_STEAL_SANDWICH                                Dodgers 1, Giants 0
TF_SCOUT_STUN_CAPPING_ENEMIES                        Brushback
TF_SCOUT_STUN_INTO_TRAIN                        Foul Territory
TF_SCOUT_STUN_UBER_ENEMIES                        The Big Hurt
TF_SCOUT_SURVIVE_DAMAGE                                I'm Bat Man
TF_SCOUT_TAUNT_KILL                                Out of the Park
TF_SCOUT_THREE_FLAGCAPS                                Triple Steal
TF_SCOUT_WELL_EARLY_KILL                        Quick Hook
TF_SNIPER_ACHIEVE_PROGRESS1                        Sniper Milestone 1
TF_SNIPER_ACHIEVE_PROGRESS2                        Sniper Milestone 2
TF_SNIPER_ACHIEVE_PROGRESS3                        Sniper Milestone 3
TF_SNIPER_BOW_KILL_FLAGCARRIER                        Robbin’ Hood
TF_SNIPER_BOW_KILL_MEDIC_PAIR                        Beaux and Arrows
TF_SNIPER_BOW_KILL_WHILEDEAD                        Dead Reckoning
TF_SNIPER_BOW_PINCUSHION                        Pincushion
TF_SNIPER_BOW_PIN_HEAVY                                William Tell Overkill
TF_SNIPER_CAPTURE_FLAG                                Have a Plan
TF_SNIPER_DESTROY_SENTRYGUNS                        De-sentry-lized
TF_SNIPER_DOMINATE_SNIPER                        Australian Rules
TF_SNIPER_FREEZECAM_HAT                                Be Polite
TF_SNIPER_FREEZECAM_WAVE                        The Last Wave
TF_SNIPER_GET_BACKSTABBED                        Consolation Prize
TF_SNIPER_HEADSHOT_DEMOMAN                        Socket to Him
TF_SNIPER_HEADSHOT_POST_INVULN                        Parting Shot
TF_SNIPER_HEADSHOT_SNIPERS                        Self-destruct Sequence
TF_SNIPER_JARATE_ASSISTS                        Number One Assistant
TF_SNIPER_JARATE_DOMINATED                        Rode Hard, Put Away Wet
TF_SNIPER_JARATE_EXTINGUISH                        Friendship is Golden
TF_SNIPER_JARATE_GROUP                                Saturation Bombing
TF_SNIPER_JARATE_KILL_MELEE                        Jarate Chop
TF_SNIPER_JARATE_MEDIC_PAIR                        Rain on Their Parade
TF_SNIPER_JARATE_REVEAL_SPY                        Jarring Transition
TF_SNIPER_KILL_AT_ROUNDSTART                        Enemy at the Gate
TF_SNIPER_KILL_CHARGED_MEDIC                        Überectomy
TF_SNIPER_KILL_FAILED_SPY                        Shock Treatment
TF_SNIPER_KILL_GRIND                                Kill Everyone You Meet
TF_SNIPER_KILL_INVIS_SPY                        Shoot the Breeze
TF_SNIPER_KILL_MIDAIR_SCOUT                        Dropped Dead
TF_SNIPER_KILL_OBJECTIVES                        Not a Crazed Gunman, Dad
TF_SNIPER_KILL_RJER                                Jumper Stumper
TF_SNIPER_KILL_SPIES_MELEE                        Kook the Spook
TF_SNIPER_KILL_UNSCOPED                                Trust Your Feelings
TF_SNIPER_KILL_WEAPONS                                Triple Prey
TF_SNIPER_RIFLE_NO_MISSING                        Be Efficient
TF_SNIPER_TAUNT_KILL                                Shafted
TF_SNIPER_TOP_SCOREBOARD_GRIND                        My Brilliant Career
TF_SOLDIER_ACHIEVE_PROGRESS1                        Soldier Milestone 1
TF_SOLDIER_ACHIEVE_PROGRESS2                        Soldier Milestone 2
TF_SOLDIER_ACHIEVE_PROGRESS3                        Soldier Milestone 3
TF_SOLDIER_ASSIST_MEDIC_UBER                        S*M*A*S*H
TF_SOLDIER_BOUNCE_THEN_SHOTGUN                        For Whom the Shell Trolls
TF_SOLDIER_BUFF_FRIENDS                                Banner of Brothers
TF_SOLDIER_BUFF_TEAMMATES                        The Boostie Boys
TF_SOLDIER_CROUCH_ROCKET_JUMP                        Where Eagles Dare
TF_SOLDIER_DEFEND_CAP_THIRTY_TIMES                Hamburger Hill
TF_SOLDIER_DEFEND_MEDIC                                War Crime and Punishment
TF_SOLDIER_DESTROY_SENTRY_OUT_OF_RANGE                Guns of the Navar0wned
TF_SOLDIER_DESTROY_STICKIES                        Bomb Squaddie
TF_SOLDIER_DUO_SOLDIER_KILLS                        Brothers in Harms
TF_SOLDIER_EQUALIZER_STREAK                        Ain't Got Time to Bleed
TF_SOLDIER_FREEZECAM_GIBS                        Gore-a! Gore-a! Gore-a!
TF_SOLDIER_FREEZECAM_TAUNT                        Worth a Thousand Words
TF_SOLDIER_GIB_GRIND                                Frags of our Fathers
TF_SOLDIER_KILL_DEFENSELESS                        Geneva Contravention
TF_SOLDIER_KILL_DEMOMAN_GRIND                        Out, Damned Scot!
TF_SOLDIER_KILL_ENGY                                Engineer to Eternity
TF_SOLDIER_KILL_FIVE_STUNNED                        The Longest Daze
TF_SOLDIER_KILL_GROUP_WITH_CROCKET                Tri-Splatteral Damage
TF_SOLDIER_KILL_ON_FIRE                                Semper Fry
TF_SOLDIER_KILL_PYRO                                Backdraft Dodger
TF_SOLDIER_KILL_SNIPER_WHILE_DEAD                Mutually Assured Destruction
TF_SOLDIER_KILL_SPY_KILLER                        War Crime Spybunal
TF_SOLDIER_KILL_TAUNT                                Spray of Defeat
TF_SOLDIER_KILL_TWENTY_FROM_ABOVE                Screamin' Eagle
TF_SOLDIER_KILL_TWO_DURING_ROCKET_JUMP                Death from Above
TF_SOLDIER_MVP                                        Medals of Honor
TF_SOLDIER_NEMESIS_SHOVEL_KILL                        Trench Warfare
TF_SOLDIER_RIDE_THE_CART                        Ride of the Valkartie
TF_SOLDIER_RJ_EQUALIZER_KILL                        Duty Bound
TF_SOLDIER_SHOOT_MULT_CRITS                        Crockets Are Such B.S.
TF_SOLDIER_THREE_DOMINATIONS                        Dominator
TF_SPY_ACHIEVE_PROGRESS1                        Spy Milestone 1
TF_SPY_ACHIEVE_PROGRESS2                        Spy Milestone 2
TF_SPY_ACHIEVE_PROGRESS3                        Spy Milestone 3
TF_SPY_AMBASSADOR_GRIND                                Diplomacy
TF_SPY_AMBASSADOR_SCOUT_GRIND                        Who's Your Daddy?
TF_SPY_AMBASSADOR_SNIPER_GRIND                        Skullpluggery
TF_SPY_BACKSTAB_CAPPING_ENEMIES                        Is It Safe?
TF_SPY_BACKSTAB_DISGUISED_SPY                        Counter Espionage
TF_SPY_BACKSTAB_DISGUISE_TARGET                        Identity Theft
TF_SPY_BACKSTAB_DOMINATING_ENEMY                High Value Target
TF_SPY_BACKSTAB_ENEMY_SWITCH_PYRO                Slash and Burn
TF_SPY_BACKSTAB_ENGY_SAP_BUILDING                The Man with the Broken Guns
TF_SPY_BACKSTAB_FRIENDS                                Agent Provocateur
TF_SPY_BACKSTAB_GRIND                                Spymaster
TF_SPY_BACKSTAB_MEDIC_CHARGED                        Dr. Nooooo
TF_SPY_BACKSTAB_MEDIC_PAIR                        May I Cut In?
TF_SPY_BACKSTAB_QUICK_KILLS                        You Only Shiv Thrice
TF_SPY_BACKSTAB_SNIPERS                                Triplecrossed
TF_SPY_BREAK_SHIELD_KILL_SNIPER                        Die Another Way
TF_SPY_BUMP_CLOAKED_SPY                                Spies Like Us
TF_SPY_CAMP_POSITION                                Deep Undercover
TF_SPY_DOMINATE_SNIPER                                The Melbourne Supremacy
TF_SPY_FAST_CAP                                        On Her Majesty’s Secret Surface
TF_SPY_FEIGN_DEATH_KILL                                Sleeper Agent
TF_SPY_FREEZECAM_FLICK                                For Your Eyes Only
TF_SPY_KILL_CP_DEFENDERS                        Point Breaker
TF_SPY_KILL_SPY_WITH_KNIFE                        A Cut Above
TF_SPY_KILL_WORKING_ENGY                        Constructus Interruptus
TF_SPY_KNIFE_KILL_WHILE_JARATED                        Wetwork
TF_SPY_MEDIC_HEALING_KILL_ENEMY                        Insurance Fraud
TF_SPY_REVENGE_WITH_BACKSTAB                        Come in From the Cold
TF_SPY_SAPPER_GRIND                                Sap Auteur
TF_SPY_SAPPER_TEAMWORK                                Joint Operation
TF_SPY_SAP_BUILDING_BACKSTAB_ENGY                Sapsucker
TF_SPY_SURVIVE_BURNING                                Burn Notice
TF_SPY_TAUNT_KILL                                The Man from P.U.N.C.T.U.R.E.
TF_WIN_2FORT_NOENEMYCAPS                        Powerhouse Offense
TF_WIN_DUSTBOWL_NOENEMYCAPS                        Impenetrable Defense
TF_WIN_GRAVELPIT_NOENEMYCAPS                        Impossible Defense
TF_WIN_HYDRO_NOENEMYCAPS                        Relentless Offense
TF_WIN_MULTIPLEGAMES                                Dynasty
TF_WIN_WELL_MINIMUMTIME                                Lightning Offense

asherkin 08-17-2010 15:29

Re: SteamTools - SteamWorks for SourceMod
I've updated the version to 0.4.

This will fix the issue raised above and adds a set of new natives.

native Steam_SetRule(String:key[], String:value[]);
native Steam_ClearRules();

native bool:Steam_AddMasterServer(String:serverAddress[]);
native bool:Steam_RemoveMasterServer(String:serverAddress[]);
native Steam_GetNumMasterServers();
native Steam_GetMasterServerAddress(server, String:serverAddress[], maxlength);

The Windows build is tested but Linux hasn't been yet.

asherkin 11-19-2010 10:53

Re: SteamTools - SteamWorks for SourceMod
Updated with 0.5, this adds a Steam_GetClientSubscription native.
With this native you can get the subscription id of the pack the client bought the game as part of.

As with most of SteamTools, this'll be pretty useless for most people :P.

Here are a few sub ids, I'll try and write a program similar to the stats lister to generate a list of them all. Copying them out by hand is annoying :3.

Thanks to the SteamKit team for providing the BlobLib project and to psychonic for a Java port of it, linked below is the full subscription listing from the CDR. < Warning, this thing is 2MB.

The file is formated like:

469 = "The Orange Box"
        340 ("Half-Life 2: Lost Coast")
        341 ("LostCoast Content")
        211 ("Source SDK")
        215 ("Source SDK Base 2006")
        218 ("Source SDK Base - Orange Box")
        220 ("Half-Life 2")
        213 ("Episode 1 Shared")
        380 ("Half-Life 2: Episode One")
        381 ("Half-Life 2: Episode One")
        216 ("Source 2007 Binaries")
        315 ("Source 2007 Mac Binaries")
        317 ("Source 2007 Binaries 2")
        305 ("Source 2007 Shared Materials")
        306 ("Source 2007 Shared Models")
        307 ("Source 2007 Shared Sounds")
        400 ("Portal")
        401 ("Portal Content")
        402 ("Portal French")
        403 ("Portal German")
        404 ("Portal Russian")
        405 ("Portal English")
        406 ("Portal Spanish")
        308 ("Episodic 2007 Shared")
        309 ("Episode One 2007 Content")
        420 ("Half-Life 2: Episode Two")
        421 ("Episode Two Content")
        422 ("Episode Two Materials")
        423 ("Episode Two Maps")
        424 ("Half-Life 2: Episode Two French")
        425 ("Half-Life 2: Episode Two German")
        426 ("Half-Life 2: Episode Two Russian")
        428 ("Half-Life 2: Episode Two English")
        429 ("Half-Life 2: Episode Two Spanish")
        440 ("Team Fortress 2")
        441 ("Team Fortress 2 Content")
        442 ("Team Fortress 2 Materials")
        443 ("Team Fortress 2 Client Content")

= Subscription ID (Which is what the native returns)
= Subscription Name
= Application ID
= Application Name

asherkin 11-30-2010 08:54

Re: SteamTools - SteamWorks for SourceMod
Thanks to all the tickets provided by Leonardo, AzuiSleet and I have managed to discover what most of them pertain to.

I have updated the OP with version 0.5.1 that should handle most of these correctly now, there may still be some errors from clients sending purposefully invalid tickets to try and exploit a SRCDS crash bug that was patched a long time ago.

SteamTools will still log it's ticket handling extensively, except all non-fatal messages will be in the normal SM log instead of the error log.

Here are the 4 ticket messages you may see:

Client connecting from <IP Address> isn't using Steam.
Client connecting from <IP Address> (<Steam ID>) is in offline mode.
Client connecting from <IP Address> (<Steam ID>) was denied by Steam for an unknown reason. (Maybe an expired or stolen ticket?).
Client connecting from <IP Address> (<Steam ID>) is in offline mode but their ticket hasn't expired yet.

The former 3 are all denials from Steam, the 4th is the same as the 2nd except that Steam said it was OK for them to play.

asherkin 12-13-2010 00:17

Re: SteamTools - SteamWorks for SourceMod
Released 0.5.2

This adds a few loading-related features and fixes and some other stuff.
  • FullyLoaded and Steam connection state forwards are now fired to late-loaded plugins.
  • Steam connection state is now properly replicated to plugins at load.
  • Added inline documentation to about half the include.
  • New ticket parsing class, should fix quite a few issues introduced recently.

asherkin 01-15-2011 17:45

Re: SteamTools - SteamWorks for SourceMod
Rewritten large portions of code to fix any and all g_SteamClients-related issues.

I'll look at the Steam Dedicated Server issues another day, it's probably related to the library Valve fucked up that is causing the symbol errors on launch.

asherkin 01-16-2011 14:09

Re: SteamTools - SteamWorks for SourceMod
Another minor update to fix some issues with the subscription-related functions, along with some possible issues on full servers.

asherkin 04-15-2011 04:22

Re: SteamTools - SteamWorks for SourceMod
Update released for todays TF2 update.
Quite a few major changes, let me know if anything is broken.


Originally Posted by MaaavsPugServer (Post 1449542)
Im pretty sure this extension interferes with Kigens Anti-Cheat, or with rcon quit command one of the two. I just did a fresh reload on my servers to clean it up a little. I noticed before I cleaned my servers as soon as I installed KAC my server wouldnt restart anymore via "rcon quit". Well I was just installing all my plugins and my Gametech Warmod Plugin needs Steamtools to run properly. I didnt know that right away, and my rcon quit command was working with KAC installed. It wasnt untill I added Steamtools to the server is when I noticed it was doing it again. Let me know

Thanks for your time

I highly doubt it, this extension doesn't do anything with the game at all.

All times are GMT -4. The time now is 14:12.

Powered by vBulletin®
Copyright ©2000 - 2020, vBulletin Solutions, Inc.