// Update is called once per frame void Update() { switch (state) { case GlueState.DEACTIVATED: break; case GlueState.WARMUP: if (activatedTime + glueWarmUp < Time.time) { fixedJoint.enabled = true; startUseTime = Time.time; state = GlueState.IN_USE; } break; case GlueState.IN_USE: if (startUseTime + glueDuration < Time.time) { fixedJoint.enabled = false; state = GlueState.DEACTIVATED; } break; } }
public void GlueRecursive(GlueState nextGlueState) { Glue(nextGlueState); if (childPart != null) { childPart.GlueRecursive(nextGlueState); } }
private void EnterCredentialsASAP() { var counter = 300; while (counter > 0) { try { process.Refresh(); if (process.MainWindowHandle != (IntPtr)0) { if (WoWProcessManager.Processes.TryGetValue(process.Id, out WowProcess wowProcess) && wowProcess.Memory != null) { bool okay; if (wowProcess.IsValidBuild) { GlueState glueState = wowProcess.Memory.Read <GlueState>(wowProcess.Memory.ImageBase + WowBuildInfoX64.GlueState); var focusedWidget = wowProcess.Memory.Read <IntPtr>(wowProcess.Memory.ImageBase + WowBuildInfoX64.FocusedWidget); okay = glueState == GlueState.Disconnected && focusedWidget != (IntPtr)0; } else { Thread.Sleep(3000); okay = true; } if (okay) { foreach (char ch in wowAccount.GetLogin()) { NativeMethods.PostMessage(wowProcess.MainWindowHandle, Win32Consts.WM_CHAR, (IntPtr)ch, IntPtr.Zero); Thread.Sleep(5); } var tabCode = new IntPtr(0x09); NativeMethods.PostMessage(wowProcess.MainWindowHandle, Win32Consts.WM_KEYDOWN, tabCode, IntPtr.Zero); NativeMethods.PostMessage(wowProcess.MainWindowHandle, Win32Consts.WM_KEYUP, tabCode, IntPtr.Zero); Thread.Sleep(5); foreach (char ch in wowAccount.GetPassword()) { NativeMethods.PostMessage(wowProcess.MainWindowHandle, Win32Consts.WM_CHAR, (IntPtr)ch, IntPtr.Zero); Thread.Sleep(5); } var enterCode = new IntPtr(0x0D); NativeMethods.PostMessage(wowProcess.MainWindowHandle, Win32Consts.WM_KEYDOWN, enterCode, IntPtr.Zero); NativeMethods.PostMessage(wowProcess.MainWindowHandle, Win32Consts.WM_KEYUP, enterCode, IntPtr.Zero); log.Info($"{wowProcess} Credendials have been entered [{Utils.SecureString(wowAccount.GetLogin())}]"); break; } } } Thread.Sleep(100); counter--; } catch (Exception ex) { log.Error($"[{process.ProcessName}:{process.Id}] Internal error: {ex.Message}"); } } }
public void Glue(GlueState nextGlueState) { if (glueState == nextGlueState) { return; } glueState = nextGlueState; switch (glueState) { case GlueState.HOME: SetParent(bodyParent); break; case GlueState.SKELETON: SetParent(thisBody.skeleton.transform); break; case GlueState.HAND: SetParent(handParent); break; case GlueState.LIMB: SetParent(limbParent); break; case GlueState.FREE: SetParent(null); break; } if (glueState == GlueState.FREE) { thisRigidbody.isKinematic = false; PhysicsChange(PhysicsState.FLYINGOFF); waitingForProjectile = true; } else { thisRigidbody.isKinematic = true; PhysicsChange(PhysicsState.NORMAL); } }
public override void Activated() { base.Activated(); state = GlueState.WARMUP; }
private void LoginWoW() { // throttle lua calls. if (DateTime.Now - _luaThrottleTimeStamp >= TimeSpan.FromSeconds(HbRelogManager.Settings.LoginDelay)) { bool serverIsOnline = !HbRelogManager.Settings.CheckRealmStatus || (HbRelogManager.Settings.CheckRealmStatus && HbRelogManager.WowRealmStatus.RealmIsOnline(Settings.ServerName, Settings.Region)); // if we are checking for wow server status and the wow server is offline then return if (serverIsOnline) { GlueState glueStatus = GlueStatus; // check if at server selection for tooo long. if (glueStatus == _lastGlueStatus) { if (!_serverSelectionSw.IsRunning) { _serverSelectionSw.Start(); } WowRealmStatus.WowRealmStatusEntry status = HbRelogManager.WowRealmStatus[Settings.ServerName, Settings.Region]; bool serverHasQueue = HbRelogManager.Settings.CheckRealmStatus && status != null && status.InQueue; // check once every 40 seconds if (_serverSelectionSw.ElapsedMilliseconds > 40000 && !serverHasQueue) { Profile.Log("Failed to login wow, lets restart"); GameProcess.Kill(); StartWoW(); // set to 'None' to prevent an infinite loop if set to 'Disconnected' _lastGlueStatus = GlueState.None; return; } } else if (_serverSelectionSw.IsRunning) { _serverSelectionSw.Reset(); } AntiAfk(); switch (glueStatus) { case GlueState.Disconnected: Profile.Status = "Logging in"; Lua.DoString(_loginLua); break; case GlueState.CharacterSelection: Profile.Status = "At Character Selection"; Lua.DoString(_charSelectLua); break; case GlueState.ServerSelection: Profile.Status = "At Server Selection"; Lua.DoString(_realmSelectLua); break; case GlueState.CharacterCreation: Lua.DoString( "CharacterCreate_Back()"); break; case GlueState.Updater: Profile.Pause(); Profile.Log("Wow is updating. pausing."); break; } Profile.Log("GlueStatus: {0}", GlueStatus); _lastGlueStatus = glueStatus; } else { Profile.Status = "Waiting for server to come back online"; } _luaThrottleTimeStamp = DateTime.Now; } }