1. Post #481
    Gold Member
    Blazehmr's Avatar
    March 2006
    500 Posts
    Does anyone have an afk autoresponder made yet?

  2. Post #482
    Gold Member
    VoiDeD's Avatar
    August 2005
    856 Posts
    There actually is one. I've been working on an uncommitted project which has some interesting features in it.



    But it's got some other questionable features which I don't feel like making easily available!

    Edited:

    Oh and a lack of proper utf8 support.

    You can blame AzuiSleet.
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 11Agree Agree x 1Useful Useful x 1 (list)

  3. Post #483
    Gold Member
    efeX's Avatar
    April 2009
    2,323 Posts
    Why is edman7777 red? blocked?

  4. Post #484
    Gold Member
    VoiDeD's Avatar
    August 2005
    856 Posts
    Offline.

  5. Post #485
    Gold Member
    Blazehmr's Avatar
    March 2006
    500 Posts
    There actually is one. I've been working on an uncommitted project which has some interesting features in it.



    But it's got some other questionable features which I don't feel like making easily available!

    Edited:

    Oh and a lack of proper utf8 support.

    You can blame AzuiSleet.
    Questionable features? O_o
    Reply With Quote Edit / Delete Reply United States Show Events Bad Reading Bad Reading x 1 (list)

  6. Post #486
    Gold Member
    mastersrp's Avatar
    October 2005
    999 Posts
    Questionable features? O_o
    "Bugs"?
    Reply With Quote Edit / Delete Reply Denmark Show Events Disagree Disagree x 1 (list)

  7. Post #487
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    Questionable features? O_o
    Chat spam.
    Reply With Quote Edit / Delete Reply Germany Show Events Agree Agree x 5Funny Funny x 1 (list)

  8. Post #488
    databee's Avatar
    October 2009
    506 Posts
    Because making a chat spammer is rlly rlly hard!!
    Reply With Quote Edit / Delete Reply Anonymous Proxy Show Events Dumb Dumb x 1 (list)

  9. Post #489
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    Because making a chat spammer is rlly rlly hard!!
    He just doesn't want every single script kiddie to be able to use his one.
    Reply With Quote Edit / Delete Reply Germany Show Events Agree Agree x 5 (list)

  10. Post #490
    Gold Member
    Crazy Quebec's Avatar
    May 2008
    2,449 Posts
    Sorry if it's been asked before, but is there any hope that this project could eventually bring us a steam chat client for mobile devices, such as the iPhone? It's obvious that a ton of people would be interested whether or not it's the kind of thing you could distribute through the app store. I guess the main question is how dependent is it on steam being installed? Can you get away with simply using it's dlls?

  11. Post #491
    OrYgin's Avatar
    November 2007
    684 Posts
    You can't, but you could etablish a connection from your mobile to you PC so your PC can send steam's chat.

    If i had a Android mobile phone, i'd be working on it.

  12. Post #492
    Gold Member
    VoiDeD's Avatar
    August 2005
    856 Posts
    You can't, but you could etablish a connection from your mobile to you PC so your PC can send steam's chat.
    Exactly this. There isn't any available method for running a Steam instance standalone yet, let alone on a mobile platform.

  13. Post #493
    Gold Member
    Darkimmortal's Avatar
    April 2009
    2,535 Posts
    Perhaps Steam on Mac will change that...

  14. Post #494

    October 2005
    14 Posts
    Hi, my name is ffff as well, what a coincidence.

    You know, it is always best to keep the good features hidden.

    As for mobile devices, you could probably hack together a web gateway that interfaces with an instance of steam on your computer.
    If you really want...
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1Late Late x 1Dumb Dumb x 1 (list)

  15. Post #495
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    Pretty much what me and 20 other people have been thinking.

  16. Post #496
    Chad Mobile's Avatar
    November 2009
    5,398 Posts
    I remember some guy on a TV channel was bragging about something he had for an IPhone that let him use Steam Chat with his IPhone.
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 1 (list)

  17. Post #497
    Gold Member
    VoiDeD's Avatar
    August 2005
    856 Posts
    Perhaps Steam on Mac will change that...
    Hopefully! I'm looking forward to seeing how reverse engineering the mac binaries will go.
    Reply With Quote Edit / Delete Reply United States Show Events Informative Informative x 1 (list)

  18. Post #498
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    I remember some guy on a TV channel was bragging about something he had for an IPhone that let him use Steam Chat with his IPhone.
    Probably just RDP or something like that. Otherwise it would already have been all over the news.

    Edited:

    There's no reason to hide this from the public. You may not be able to release it, in fear of Valve's legal attack shark, but you can certainly make a buzz about it.

  19. Post #499
    Chad Mobile's Avatar
    November 2009
    5,398 Posts
    He was like, "Watch me talk to my friends, who are on steam, from my IPhone!" lol

  20. Post #500
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    The SVN is getting a bit confusing for me, what are steam_api and Steam4NET for?

    Edited:

    steam_api is just some more calls to Steam's DLLs not implemented in the main OpenSteamworks yet, right?

  21. Post #501
    asherkin's Avatar
    October 2009
    40 Posts
    steam_api is a complete replacement for Valve's steam_api.dll , but it needs updating.
    Steam4NET is an auto-generated alternative to dotnetworks.
    Reply With Quote Edit / Delete Reply Thailand Show Events Informative Informative x 1 (list)

  22. Post #502
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    Ah, any information on how Steam4NET is generated? "Steamworks and NativeWrapper classes provided by Rick - http://gib.me/" makes me think it's not just done by converting OpenSteamworks to C# code as SAM existed before OpenSteamworks, right?

  23. Post #503
    asherkin's Avatar
    October 2009
    40 Posts
    AzuiSleet wrote the generator himself, I think this is it here, but you would need to ask him for any info on it.
    Reply With Quote Edit / Delete Reply Thailand Show Events Informative Informative x 1 (list)

  24. Post #504

    October 2005
    14 Posts
    mmmmmmm auto dotnetworks generation. Might convince me to play around with steamcloud again

  25. Post #505
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    So, is there any better library now? Dotnetworks or Steam4NET?
    i.e. is one more feature-complete and so on.

  26. Post #506
    Gold Member
    VoiDeD's Avatar
    August 2005
    856 Posts
    Steam4NET encompasses everything available in OSW.

    dotnetworks is deprecated in favor of it.
    Reply With Quote Edit / Delete Reply United States Show Events Friendly Friendly x 1Useful Useful x 1 (list)

  27. Post #507
    DrTaxi's Avatar
    September 2009
    2,176 Posts
    Thanks, you almost got me using deprecated software there :3:

  28. Post #508
    Gold Member
    ace13's Avatar
    August 2006
    855 Posts
    I'm having trouble understanding how to handle Steam4Net callbacks, some help would be appreciated.

  29. Post #509

    October 2005
    14 Posts
    Hey deadcode has been offline :<

    Anyway, I decided to build the idler for the hell of it, and all cool people know it is nice to have the latest itemDB.

    Unfortunately, I didn't get very far at first. There was some sort of key collision. Anyway (I grabbed this off of the other SVN I guess azuisleet or someone is hosting) the resourceconverter needs to be changed from this:
    Code:
    langdict.Add(lower, subitem.value); //~line #24
    to this:
    Code:
    if (!langdict.Keys.Contains(lower))	//lol, dict.
    	langdict.Add(lower, subitem.value);
    I didn't spend the time to find out what key it was, but I did spend the time writing this post...

    Also, client/server pings now preprocessor defines >: )


    Question: What would be a good way of interacting with / querying the server for certain quasi-real-time statistics?

    e.g. where can I find out more on GameCoordinatorMessageAvailable_t::k_iCallback id 24 and that deal
    --I guess it happen automatically as a callback from steam or something
    Reply With Quote Edit / Delete Reply United States Show Events Bad Spelling Bad Spelling x 1 (list)

  30. Post #510
    asherkin's Avatar
    October 2009
    40 Posts
    The GameCoordinator system is used for the items in TF2 (also possibly for the stats in the future), it replaced ISteamGameServerItems when crafting was implemented. The information you want on the different types of callbacks is in GameCoordinatorCommon.h.
    Since deadcode is down alot recently, I think it's a good idea to remind people about the SVN mirror I host, some people obviously saw it when I posted before or found it themselves, but there have been quite a few people asking on IRC where they can get the code.

  31. Post #511
    Gold Member
    AzuiSleet's Avatar
    September 2007
    781 Posts
    Here's a more complete example than Steam4Test:

    Code:
       class SteamSupport
        {
            private static ISteamClient008 steamclient;
            private static ISteamGameServer009 gameserver;
    
            private static int pipe;
            private static int user;
    
            private static Callback<SteamServerConnectFailure_t> connectFailure = new Callback<SteamServerConnectFailure_t>(SteamConnectFailure, SteamServerConnectFailure_t.k_iCallback);
            private static Callback<SteamServersConnected_t> connectSuccess = new Callback<SteamServersConnected_t>(SteamConnectSuccess, SteamServersConnected_t.k_iCallback);
            private static Callback<SteamServersDisconnected_t> connectionDropped = new Callback<SteamServersDisconnected_t>(SteamConnectionDropped, SteamServersDisconnected_t.k_iCallback);
            private static Callback<GSPolicyResponse_t> policyResponse = new Callback<GSPolicyResponse_t>(PolicyResponse, GSPolicyResponse_t.k_iCallback);
            
            public static bool Initialize()
            {
                Environment.SetEnvironmentVariable("SteamAppId", "4000");
    
                if (!Steamworks.Load())
                    return false;
    
                steamclient = Steamworks.CreateInterface<ISteamClient008>("SteamClient008");
    
                if (steamclient == null)
                    return false;
    
                pipe = steamclient.CreateSteamPipe();
                user = steamclient.CreateLocalUser(ref pipe, EAccountType.k_EAccountTypeAnonGameServer);
    
                if (user == 0)
                    return false;
    
                gameserver = Steamworks.CastInterface<ISteamGameServer009>(steamclient.GetISteamGameServer(user, pipe, "SteamGameServer009"));
    
                if (!gameserver.SetServerType(0, 0, 1111, 0, 0, "garrysmod", "0", false))
                    return false;
    
                gameserver.LogOn();
    
                CallbackDispatcher.SpawnDispatchThread(pipe);
    
                return true;
            }
    
            public static CSteamID GetSteamID()
            {
                return gameserver.GetSteamID();
            }
    
            public static bool GetSecure()
            {
                return gameserver.Secure();
            }
    
            private static void SteamConnectFailure(SteamServerConnectFailure_t e)
            {
                Console.WriteLine("Unable to connect to Steam servers. " + e.m_eResult);
            }
    
            private static void SteamConnectSuccess(SteamServersConnected_t e)
            {
                Console.WriteLine("Connected to Steam servers.");
            }
    
            private static void SteamConnectionDropped(SteamServersDisconnected_t e)
            {
                Console.WriteLine("Connection to Steam servers interrupted. " + e.m_eResult);
            }
    
            private static void PolicyResponse(GSPolicyResponse_t e)
            {
                Console.WriteLine("VAC Secure: " + e.m_bSecure);
            }
        }

  32. Post #512

    October 2005
    14 Posts
    Yeah asherkin, I was able to grab a copy of everything from your host.
    I hope something like this would work for item->itendefindex inside of DumpItems

    Code:
    		enum WeaponID_t
    		{
    			// Default
    			Bat = 0,
    			Scrumpy = 1,
    			Fireaxe = 2,
    			Kukri = 3,
    			Knife = 4,
    			Fists = 5,
    			Shovel = 6,
    			Wrench = 7,
    			Bonesaw = 8,
    			EngineerShotgun = 9,
    			SoldierShotgun = 10,
    			HeavyShotgun = 11,
    			PyroShotgun = 12,
    			Scattergun = 13,
    			SniperRifle = 14,
    			Minigun = 15,
    			SMG = 16,
    			SyringeGun = 17,
    			RocketLauncher = 18,
    			GrenadeLauncher = 19,
    			StickyLauncher = 20,
    			Flamethrower = 21,
    			EngineerPistol = 22,
    			ScoutPistol = 23,
    			Revolver = 24,
    			Builder = 25,
    			Destructor = 26,
    			DisguiseKit = 27,
    			Sapper = 28,
    			Medigun = 29,
    			SpyWatch = 30,
    			Flaregun1 = 31,
    			Bonesaw1 = 32,
    			SyringeGun1 = 33,
    			Kritzkrieg = 35,
    			Blutsauger = 36,
    			Ubersaw = 37,
    			Axtingusher = 38,
    			Flaregun2 = 39,
    			Backburner = 40,
    			Natascha = 41,
    			Sandvich = 42,
    			KGB = 43,
    			Sandman = 44,
    			FAN = 45,
    			Bonk = 46,
    			TF_Demo_Hat_1,
    			TF_Engineer_Hat_1,
    			TF_Heavy_Hat_1,
    			TF_Medic_Hat_1,
    			TF_Pyro_Hat_1,
    			TF_Scout_Hat_1,
    			TF_Sniper_Hat_1,
    			TF_Soldier_Hat_1,
    			TF_Spy_Hat_1,
    			Huntsman = 56,
    			Razorback = 57,
    			Jarate = 58,
    			DeadRinger = 59,
    			CloakAndDagger = 60,
    			Ambassador = 61,
    
    			//Hats from here on in for a while...
    
    			DirectHit = 127,
    			Equalizer = 128,
    			BuffBanner = 129,
    			ScottishResistance = 130,
    			ChargeNTarge = 131,
    			Eyelander = 132,
    			Gunboats = 133
    
    			//Hats from here on in for another while...
    		};
    		const char* weaponIdArray[] = 
    		{
    			//--Default
    			"Bat",
    			"Scrumpy",
    			"Fireaxe",
    			"Kukri",
    			"Knife",
    			"Fists",
    			"Shovel",
    			"Wrench",
    			"Bonesaw",
    			"Engineer Shotgun",
    			"Soldier Shotgun",
    			"Heavy Shotgun",
    			"Pyro Shotgun",
    			"Scattergun",
    			"Sniper Rifle",
    			"Minigun",
    			"SMG",
    			"Syringe Gun",
    			"Rocket Launcher",
    			"Grenade Launcher",
    			"Sticky Launcher",
    			"Flamethrower",
    			"Engineer Pistol",
    			"Scout Pistol",
    			"Revolver",
    			"Builder",
    			"Destructor",
    			"Disguise Kit",
    			"Sapper",
    			"Medigun",
    			//--Padding
    			"Cloaking Watch",
    			"Flaregun 1",
    			"Bonesaw",
    			"Syringe Gun",
    			"34",
    			//--Unlocks
    			"Kritzkrieg",
    			"Blutsauger",
    			"Ubersaw",
    			"Axtingusher",
    			"Flaregun",
    			"Backburner",
    			"Natascha",
    			"Sandvich",
    			"KGB",
    			"Sandman",
    			"FAN",
    			"Bonk",
    			"47",			"48",			"49",			"50",			"51",			"52",			"53",			"54",			"55",
    			"Huntsman",
    			"Razorback",
    			"Jarate",
    			"DeadRinger",
    			"CloakAndDagger",
    			"Ambassador",
    			"62",			"63",			"64",			"65",			"66",			"67",			"68",			"69",			"70",
    			"71",			"72",			"73",			"74",			"75",			"76",			"77",			"78",			"79",
    			"80",			"81",			"82",			"83",			"84",			"85",			"86",			"87",			"88",
    			"89",			"90",			"91",			"92",			"93",			"94",			"95",			"96",			"97",
    			"98",			"99",			"100", 			"101",			"102",			"103",			"104",			"105",			"106",
    			"107",			"108",			"109",			"110", 			"111",			"112",			"113",			"114",			"115",
    			"116",			"117",			"118",			"119",			"120", 			"121",			"122",			"123",			"124",
    			"125",			"126",
    			"DirectHit",
    			"Buff Banner",
    			"Equalizer",
    			"Scottish Resistance",
    			"Charge N Targe",
    			"Eyelander",
    			"Gunboats",
    			"134",			"135",			"136",			"137",			"138",			"139",
    		};
    But IDK how to use the itemDB file. I'm sure that is the correct way to do it (I just happened to have a list of WeaponID -> const char* handy, eh?) :-D

    CItemDB::GetItemName()
    Answered my own question.
    util.cpp line ~72 becomes:
    Code:
    		std::cout << "Item " << i << " " << item->accountid << " " << CItemDB::GetItemName(item->itemdefindex) << " " << EnumString<EItemQuality>::From((EItemQuality)item->itemquality) << " " << item->itemid << std::endl;
    Need to include CItemDB header. There are a number of 'UNKNOWN' items.

    Also I'm guessing the reason useritems reports me as having 0 items is that GameCoordinator totally pushed it out of business.
    Reply With Quote Edit / Delete Reply United States Show Events Artistic Artistic x 1 (list)

  33. Post #513
    Relys's Avatar
    December 2006
    593 Posts
    Amazing work VoiDeD, even that all we can do now is play with the Friends list and AppID's, Can you make a way to Sync data with the Steam servers/Some third party server to have something like Steam Cloud?


    He had the program start at the 2nd index XD.
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 1 (list)

  34. Post #514
    Erp
    Erp's Avatar
    October 2009
    4,584 Posts
    I love this. Plus, VoiDeD is really helpful with Open Steamworks and just C++ in general.
    Reply With Quote Edit / Delete Reply United States Show Events Friendly Friendly x 1 (list)

  35. Post #515
    Gold Member
    mastersrp's Avatar
    October 2005
    999 Posts
    The OP really needs updating. NONE of the links (except the steamworks partner) works.

  36. Post #516
    ____________________
    COBRAa's Avatar
    June 2009
    923 Posts
    Is the SVN down? (I mean perm. or just temp.)

  37. Post #517
    Gold Member
    VoiDeD's Avatar
    August 2005
    856 Posts
    Everything has temporarily moved over to http://osw.limetech.org/, with the help of asherkin.

    Edited:

    Also I'd add that the irc channel is the best place to stay on top of OSW news.

    irc.gamesurge.net / #opensteamworks

  38. Post #518
    Erp
    Erp's Avatar
    October 2009
    4,584 Posts
    Please don't let this thread die, I love it too much.

  39. Post #519
    Pery's Avatar
    October 2008
    446 Posts
    This needs documentation for standard and .NET versions... BADLY!

  40. Post #520
    asherkin's Avatar
    October 2009
    40 Posts
    There are plenty of example available for C++ use (getting interfaces, handling callbacks, etc.) and Azu's example above covers the same for Steam4NET.

    As the OP says, if you want the documentation on what the actual SteamWorks functions do, contact Valve.