1. Post #81
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    I think SendChatMsg sends to friends only.

    As for the enums, the EFriendMsgType is generally the one used in the newest interfaces, and I don't know if the older ones translate EChatEntryType to those, or just handle those themselves.

    Edit:

    :woop: Page 3!
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1Dumb Dumb x 1 (list)

  2. Post #82

    June 2009
    898 Posts
    Is this safe to mess around with? I know it doesn't touch VAC but would valve approve/take action?

    Edited:

    Not too bothered, just wondering.
    Reply With Quote Edit / Delete Reply Anonymous Proxy Show Events Agree Agree x 2 (list)

  3. Post #83
    Gold Member
    AzuiSleet's Avatar
    September 2007
    758 Posts
    Valve could change their policy on using leaked and stolen documents and ban your account.
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 4Agree Agree x 1Dumb Dumb x 1Useful Useful x 1 (list)

  4. Post #84
    Gold Member
    Sippeangelo's Avatar
    August 2006
    603 Posts
    Is this safe to mess around with? I know it doesn't touch VAC but would valve approve/take action?

    Edited:

    Not too bothered, just wondering.
    Remember the achievement unlocker and idler?
    Reply With Quote Edit / Delete Reply Sweden Show Events Informative Informative x 1Agree Agree x 1 (list)

  5. Post #85
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Remember the achievement unlocker and idler?
    That situation was a specific case. It's impossible to know if the game is editing achievements/stats, or if an outside program is doing so. But it's easy for them to track when people unlocked them. So if they check their databases for players who unlocked the majority of the achievements in a few seconds/minutes, it's a no brainer for them.

    The idler was only because Valve changed their policies in regards to using external programs to get items. It's possible that using OSW in this same fashion could get people's items removed, but so far nothing has happened from running my own idler on localhost. Could support the theory that valve only monitored what servers clients connected to.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 2 (list)

  6. Post #86
    Gold Member
    Nisd's Avatar
    October 2008
    436 Posts
    If any one is to lazy to compile it on their own, then i made a build bot just for the fun of it.
    http://server1.hiddenservers.org/bui...%20Steamworks/
    Reply With Quote Edit / Delete Reply Denmark Show Events Informative Informative x 1 (list)

  7. Post #87
    Gold Member
    Ortzinator's Avatar
    May 2005
    1,648 Posts
    Valve got pissed because a few users were gaming the system and devaluing the items that other users got legitimately. Like inflation.

    This is nothing like that.
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 2Informative Informative x 1 (list)

  8. Post #88
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Another interesting example of what is possible with OSW:


    I'd also mention that this is a C# project, running on top of dotnetworks. All the code for this is available on the SVN.
    Reply With Quote Edit / Delete Reply United States Show Events Useful Useful x 6Artistic Artistic x 1Friendly Friendly x 1 (list)

  9. Post #89

    June 2009
    898 Posts
    more than awesome
    Reply With Quote Edit / Delete Reply Anonymous Proxy Show Events Agree Agree x 3 (list)

  10. Post #90
    Gold Member
    General1337's Avatar
    January 2005
    56 Posts
    This is pretty cool, I made a winamp name changer thing or w/e.
    Reply With Quote Edit / Delete Reply Show Events Useful Useful x 3Artistic Artistic x 1 (list)

  11. Post #91

    September 2009
    245 Posts
    This is pretty cool, I made a winamp name changer thing or w/e.
    ochre owns
    Reply With Quote Edit / Delete Reply Canada Show Events Agree Agree x 2Disagree Disagree x 1 (list)

  12. Post #92
    GAY_LUA_SON's Avatar
    June 2008
    12 Posts
    This is pretty cool, I made a winamp name changer thing or w/e.
    You have a picture of yourself as your BG.
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 8 (list)

  13. Post #93
    Gold Member
    efeX's Avatar
    April 2009
    2,332 Posts
    look a fake girl on his steam friends too lolol
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 9 (list)

  14. Post #94
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Steam update just rolled out: http://store.steampowered.com/news/2931/

    One interesting thing to note:
    Code:
    # Steamworks API fixes
    Fixes? Something was broken? Who knows. It's hard to tell what they changed when there are so many possibilities. I'll look into it and see what I can figure out.

    Edited:

    All current example code located within the SVN is functional.
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 2Late Late x 1 (list)

  15. Post #95
    Gold Member
    General1337's Avatar
    January 2005
    56 Posts
    If anyone is interested in the code for the winamp plugin thing it's right here. It's crap code and made me facepalm when I was done, but I was messing around just to see what you could do. I'll probably make it again in C# since Voided is doing some pretty cool stuff in that.

    	int winampticker = 0;
    	HSteamPipe hSteamPipe = steamClient->CreateSteamPipe();
    	HSteamUser hSteamUser = steamClient->ConnectToGlobalUser(hSteamPipe);
    	ISteamFriends002 *steamFriends = (ISteamFriends002 *)steamClient->GetISteamFriends( hSteamUser, hSteamPipe, STEAMFRIENDS_INTERFACE_VERSION_002 );
    	const std::string friendsName(steamFriends->GetPersonaName());
    	std::string myName = "DefaultName";
    
    	while(winampticker <= 2000)
    	{
    		if(winampticker == 1000)
    		{
    			//WINAMP AREA
    			HWND hwndWinamp = FindWindow("Winamp v1.x",NULL); //Finding window
    			int retainer=SendMessage(hwndWinamp,WM_USER, 0, 104);
    			char winamp[2048],*p;
    			GetWindowText(hwndWinamp,winamp,sizeof(winamp));
    			p = winamp+strlen(winamp)-8;
    			while (p >= winamp)
    			{
    
    				if (!strnicmp(p,"- Winamp",8)) break;
    				p--;
    
    			}
    			if (p >= winamp) p--;
    			while (p >= winamp && *p == ' ') p--;
    			*++p=0;
    
    			if(retainer == 3)
    			{
    					myName = friendsName;
    					myName += " - ";
    					myName += "Winamp Paused";
    					steamFriends->SetPersonaName(myName.c_str());
    					winampticker = 0;
    			}
    			else if(retainer == 1)
    			{
    					myName = friendsName;
    					myName += " - ";
    					myName += winamp;
    					steamFriends->SetPersonaName(myName.c_str());
    					winampticker = 0;
    			}
    		}
    
    		Sleep(3);
    		winampticker++;
    	}
    
    Reply With Quote Edit / Delete Reply Show Events Useful Useful x 4Dumb Dumb x 2 (list)

  16. Post #96
    Gold Member
    efeX's Avatar
    April 2009
    2,332 Posts
    I thought you used the winamp API to get the song, i forgot about GetWindowText :P
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 1 (list)

  17. Post #97
    Gold Member
    General1337's Avatar
    January 2005
    56 Posts
    I thought you used the winamp API to get the song, i forgot about GetWindowText :P
    You actually don't need to use the "winamp API" at all. I've never messed with winamp before so originally I thought that as well. Voided showed me this thread: http://forums.winamp.com/showthread.php?threadid=180297
    It's actually simple as hell to work with, you can just SendMessage() everything. The one I have right now actually allows you to play, pause, etc with chat commands but it's pretty much useless.
    That's how I check if winamp is paused or not.
    int retainer=SendMessage(hwndWinamp,WM_USER, 0, 104);
    
    That shows if winamp is paused or not, if it's paused it returns "3" if not, it returns "1".
    Reply With Quote Edit / Delete Reply Show Events Friendly Friendly x 1 (list)

  18. Post #98
    Gold Member
    Diaklu's Avatar
    August 2007
    1,237 Posts
    This is delicious!
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Agree Agree x 3 (list)

  19. Post #99
    omarrodriguez's Avatar
    October 2009
    111 Posts
    Damn you're updating the SVN faster than a turkey on Thanksgiving.
    Wait that didn't really make any sense but you're updating it fucking fast.
    Reply With Quote Edit / Delete Reply Romania Show Events Dumb Dumb x 4Funny Funny x 3Agree Agree x 1 (list)

  20. Post #100
    Gold Member
    Kylegar's Avatar
    May 2005
    239 Posts
    There needs to be a 'wut' rating

    Also, it's because he is working on the interface, that, and there was a steamworks update yesterday that he is figuring out.

  21. Post #101
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Keeping this project updated is a priority of mine.

    Currently my focus is the dotnetworks project, so there will be breaking changes for a while until the design is finalized.

  22. Post #102
    Rowley's Avatar
    June 2009
    166 Posts
    I salute you for being a reverse engineer. A man's job right there.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 11Funny Funny x 1 (list)

  23. Post #103
    FUCK YOU
    Denzo's Avatar
    November 2006
    1,922 Posts
    If anyone could make a Python module of Open Steamworks, I would nerdgasm to that

    Edited:

    Or actually I might just learn C# since Python is a fucking pain to create GUIs for
    Reply With Quote Edit / Delete Reply Netherlands Show Events Dumb Dumb x 5 (list)

  24. Post #104

    September 2009
    245 Posts
    If anyone could make a Python module of Open Steamworks, I would nerdgasm to that

    Edited:

    Or actually I might just learn C# since Python is a fucking pain to create GUIs for
    why would anyone make a module for such a garbage scripting language?
    Reply With Quote Edit / Delete Reply Canada Show Events Dumb Dumb x 10Agree Agree x 5 (list)

  25. Post #105
    FUCK YOU
    Denzo's Avatar
    November 2006
    1,922 Posts
    why would anyone make a module for such a garbage scripting language?
    Just because you don't like Python, doesn't mean it's garbage.
    Nearly all GTK apps are written in Python
    Reply With Quote Edit / Delete Reply Netherlands Show Events Informative Informative x 1Dumb Dumb x 1Agree Agree x 1 (list)

  26. Post #106

    September 2009
    245 Posts
    Nearly all GTK apps are written in Python
    gtk is just as bad, and i'm pretty sure they're not.
    Reply With Quote Edit / Delete Reply Canada Show Events Agree Agree x 6Dumb Dumb x 4 (list)

  27. Post #107
    FUCK YOU
    Denzo's Avatar
    November 2006
    1,922 Posts
    gtk is just as bad, and i'm pretty sure they're not.
    Makes me wonder. Does something exist which you do not hate or you do not want to shit on?
    Reply With Quote Edit / Delete Reply Netherlands Show Events Dumb Dumb x 3 (list)

  28. Post #108
    GAY_LUA_SON's Avatar
    June 2008
    12 Posts
    Makes me wonder. Does something exist which you do not hate or you do not want to shit on?
    it's not that he hates everything, it's that everyone here seems to like the dumbest shit.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 4 (list)

  29. Post #109

    September 2009
    245 Posts
    it's not that he hates everything, it's that everyone here seems to like the dumbest shit.
    Reply With Quote Edit / Delete Reply Canada Show Events Agree Agree x 7Dumb Dumb x 1 (list)

  30. Post #110
    omarrodriguez's Avatar
    October 2009
    111 Posts
    Especially Denzo :smug:
    Reply With Quote Edit / Delete Reply Romania Show Events Agree Agree x 2Dumb Dumb x 1 (list)

  31. Post #111
    MiniManz's Avatar
    March 2009
    728 Posts
    What's so bad about Python?

    Anyway I had an idea for something. Some module that changes your steam avatar randomly or every X minutes from a picture in a specified folder.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 4Optimistic Optimistic x 1 (list)

  32. Post #112
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Anyway I had an idea for something. Some module that changes your steam avatar randomly or every X minutes from a picture in a specified folder.
    An intriguing idea, but unfortunately isn't possible with OSW. Uploading avatars and related features are handled by the community website.
    Reply With Quote Edit / Delete Reply United States Show Events Informative Informative x 2 (list)

  33. Post #113
    omarrodriguez's Avatar
    October 2009
    111 Posts
    What's so bad about Python?

    Anyway I had an idea for something. Some module that changes your steam avatar randomly or every X minutes from a picture in a specified folder.
    You (I) could probably make a standalone PHP script for that :D good idea

  34. Post #114
    MiniManz's Avatar
    March 2009
    728 Posts
    What about a random name changer? Have it pick a name from a list of names, maybe from a text file and have it change your name at a set interval.

  35. Post #115
    Gold Member
    General1337's Avatar
    January 2005
    56 Posts
    What about a random name changer? Have it pick a name from a list of names, maybe from a text file and have it change your name at a set interval.
    you can write that in like 5 seconds, just use SetPersonaName from steamFriends interface and have it change names.
    I've actually ran into some problems with setting the name, if it sets the name too fast it will crash steam and you'll have to replace all your dlls with a backup or just reinstall steam so be careful when spamming name changes.
    Reply With Quote Edit / Delete Reply Show Events Disagree Disagree x 1 (list)

  36. Post #116
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    What about a random name changer? Have it pick a name from a list of names, maybe from a text file and have it change your name at a set interval.
    #include "SteamAPI.h"
    #include <string>
    #include <ctime>
    
    // or link in your project settings
    #pragma comment(lib, "..\\steamclient")
    
    // 20 seconds
    #define TIMESPAN 20
    
    #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
    std::string names[] = 
    {
    	"This is a witty name",
    	"Another hilarious name",
    	"Whatever name"
    };
    
    int main()
    {
    	int error;
    	ISteamClient008 *steamClient = (ISteamClient008 *)CreateInterface(STEAMCLIENT_INTERFACE_VERSION_008, &error);
    	HSteamPipe pipe = steamClient->CreateSteamPipe();
    	HSteamUser user = steamClient->ConnectToGlobalUser(pipe);
    	ISteamFriends005 *steamFriends = (ISteamFriends005 *)steamClient->GetISteamFriends(user, pipe, STEAMFRIENDS_INTERFACE_VERSION_005);
    
    	time_t lastChange = time(NULL);
    	uint32 nameIndex = 0;
    	uint32 maxNames = ARRAY_SIZE(names);
    	while (true)
    	{
    		time_t timeNow = time(NULL);
    
    		if ((timeNow - lastChange) > TIMESPAN)
    		{
    			std::string nameChange = names[nameIndex];
    			std::cout << "Changing name to: " << nameChange << std::endl;
    
    			steamFriends->SetPersonaName(nameChange.c_str());
    
    			nameIndex++;
    			if (nameIndex > (maxNames - 1))
    				nameIndex = 0;
    
    			lastChange = timeNow;
    		}
    	}
    }
    

    Of course this is lacking any proper error checking. You should always check your interfaces and pipe/user to make sure you actually got them.

    Edited:

    In combination with http://altpluzf4.is1337.net/colorname.html, it could be pretty interesting.

  37. Post #117

    June 2009
    898 Posts
    except for the in-game spam of "YOU HAVE CHANGE YOUR NAME" which would probably kick you from most servers
    Reply With Quote Edit / Delete Reply Anonymous Proxy Show Events Agree Agree x 6 (list)

  38. Post #118
    Gold Member
    X-Neon's Avatar
    September 2006
    1,166 Posts
    Just wondering, is it possible to compile this under Code::Blocks (MinGW). I can compile it fine under Visual Studio but under Code::Blocks I get lots of errors. Most of them are things like "pasting X does not give a valid preprocessing token" and "wrong number of arguments specified for 'depreciated' attribute".

  39. Post #119
    omarrodriguez's Avatar
    October 2009
    111 Posts
    Just wondering, is it possible to compile this under Code::Blocks (MinGW). I can compile it fine under Visual Studio but under Code::Blocks I get lots of errors. Most of them are things like "pasting X does not give a valid preprocessing token" and "wrong number of arguments specified for 'depreciated' attribute".
    Noxn what are you doing

  40. Post #120
    Gold Member
    slayer3032's Avatar
    November 2007
    3,477 Posts
    This is pretty cool, I made a winamp name changer thing or w/e.
    Hate to say it but if your name is forced to something longer than the normal limit only you will see the name.