private void OnIdleModeChanged(IdleMode value) { if (this.IdleModeChanged == null) { return; } this.IdleModeChanged((object)this, new IdleModeEventArg(value)); }
void Thraten() //handle Thraten state { print("警戒中!!"); renderer.material.color = Color.yellow; transform.rotation = Quaternion.LookRotation(CurrentDirection - new Vector3(0, CurrentDirection.y, 0)); //緩慢向發出聲音的地方移動 controller.SimpleMove(transform.TransformDirection(Vector3.forward) * Time.deltaTime * ChaseSpeed); _IdleMode = IdleMode.back; //切換為back模式,若離開Attack狀態,將在Idle狀態回到原始位置(OriginPosition) }
void Idle() //handle idle state { statusMode = Status.idle; //-----------debug test--------------- //print("閒置中!!!"); //renderer.material.color = Color.blue; //------------------------------------ if (PlayTime - IdleModeTime > TransformActionTime && _IdleMode != IdleMode.back) //一段時間(TransformActionTime)轉換成下一個移動模式 { IdleModeTime = PlayTime; //記錄目前的遊戲時間(PlayTime),用於判斷是否切換下一模式用 if (_IdleMode != IdleMode.four) { _IdleMode++; } else { _IdleMode = IdleMode.one; } } switch (_IdleMode) //(_IdleMode)四種移動模式 + 追逐後回到原點模式 { case IdleMode.one: //Mode 1: transform.rotation = Quaternion.LookRotation(IdleMoveMap[0]); rigidbody.velocity = IdleMoveMap[0]; break; case IdleMode.two: //Mode 2: transform.rotation = Quaternion.LookRotation(IdleMoveMap[1]); rigidbody.velocity = IdleMoveMap[1]; break; case IdleMode.three: //Mode 3: transform.rotation = Quaternion.LookRotation(IdleMoveMap[2]); rigidbody.velocity = IdleMoveMap[2]; break; case IdleMode.four: //Mode 4: transform.rotation = Quaternion.LookRotation(IdleMoveMap[3]); rigidbody.velocity = IdleMoveMap[3]; break; case IdleMode.back: Vector3 distance = OriginPosition - transform.position; //計算與起始位置(OriginPosition)之間的距離,並在追逐後開始往回走 distance.y = 0; HandleWallCollision(OriginPosition, ChaseSpeed); if (distance.magnitude < 3) //若回到原點將模式切回四種移動模式 { _IdleMode = 0; IdleModeTime = 0; } break; } }
void Idle() //handle idle state { renderer.material.color = Color.blue; if (PlayTime - IdleModeTime > TransformActionTime && _IdleMode != IdleMode.back) //一段時間(TransformActionTime)轉換成下一個移動模式 { IdleModeTime = PlayTime; //紀錄目前的遊戲時間(PlayTime),用於判斷是否切換下一模是用 if (_IdleMode != IdleMode.four) { _IdleMode++; } else { _IdleMode = IdleMode.one; } } switch (_IdleMode) //(_IdleMode)四種移動模式 + 追逐後回到原點模式 { case IdleMode.one: //Mode 1: //transform.eulerAngles = Vector3.RotateTowards(new Vector3(0, 0, 0), new Vector3(0,Mathf.Cos(Time.time), 0), 360, 10) * 100; transform.rotation = Quaternion.LookRotation(IdleMoveMap[0]); controller.SimpleMove(IdleMoveMap[0]); break; case IdleMode.two: //Mode 2: transform.rotation = Quaternion.LookRotation(IdleMoveMap[1]); controller.SimpleMove(IdleMoveMap[1]); break; case IdleMode.three: //Mode 3: transform.rotation = Quaternion.LookRotation(IdleMoveMap[2]); controller.SimpleMove(IdleMoveMap[2]); break; case IdleMode.four: //Mode 4: transform.rotation = Quaternion.LookRotation(IdleMoveMap[3]); controller.SimpleMove(IdleMoveMap[3]); break; case IdleMode.back: Vector3 distance = OriginPosition - transform.position; //計算與起始位置(OriginPosition)之間的距離,並在追逐後開始往回走 distance.y = 0; transform.rotation = Quaternion.LookRotation(distance); controller.SimpleMove(distance * Time.deltaTime * ChaseSpeed); if (distance.magnitude < 3) //若回到原點將模式切回四種移動模式 { _IdleMode = 0; IdleModeTime = 0; } break; } }
//handle idle state void Idle() { renderer.material.color = Color.blue; if (PlayTime - IdleModeTime > TransformActionTime && _IdleMode != IdleMode.back) //�@�q�ɶ�(TransformActionTime)�ഫ���U�@�Ӳ��ʼҦ� { IdleModeTime = PlayTime; //�O���ثe���C���ɶ�(PlayTime),�Ω�P�_�O�_�����U�@�Ҧ��� if (_IdleMode != IdleMode.four) _IdleMode++; else _IdleMode = IdleMode.one; } switch (_IdleMode) //(_IdleMode)�|�ز��ʼҦ� + �l�v��^����I�Ҧ� { case IdleMode.one: //Mode 1: //transform.eulerAngles = Vector3.RotateTowards(new Vector3(0, 0, 0), new Vector3(0,Mathf.Cos(Time.time), 0), 45*Mathf.PI/180, 1) * 100; transform.rotation = Quaternion.LookRotation(IdleMoveMap[0]); controller.SimpleMove(IdleMoveMap[0]); break; case IdleMode.two: //Mode 2: transform.rotation = Quaternion.LookRotation(IdleMoveMap[1]); controller.SimpleMove(IdleMoveMap[1]); break; case IdleMode.three://Mode 3: transform.rotation = Quaternion.LookRotation(IdleMoveMap[2]); controller.SimpleMove(IdleMoveMap[2]); break; case IdleMode.four: //Mode 4: transform.rotation = Quaternion.LookRotation(IdleMoveMap[3]); controller.SimpleMove(IdleMoveMap[3]); break; case IdleMode.back: Vector3 distance = OriginPosition - transform.position;//�p��P�_�l��m(OriginPosition)�������Z��,�æb�l�v��}�l���^�� distance.y = 0; transform.rotation = Quaternion.LookRotation(distance); controller.SimpleMove(distance * Time.deltaTime * ChaseSpeed); if (distance.magnitude < 3)//�Y�^����I�N�Ҧ����^�|�ز��ʼҦ� { _IdleMode = 0; IdleModeTime = 0; } break; } }
public async void Start() { if (IsActive) return; IsActive = true; _currentMode = Mode; _badgeBuffer = new List<BadgeWrapper>(Math.Max((int)MaxIdleInstanceCount, 1)); _tmCounter = new DispatcherTimer(); _tmCounter.Tick += UpdateGameTimeCounter; _tmCounter.Interval = new TimeSpan(0, 1, 0); await Proceed(); _tmCounter.Start(); }
public async void Start() { if (IsActive) { return; } IsActive = true; _currentMode = Mode; _badgeBuffer = new List <BadgeIdlingWrapper>(Math.Max((int)MaxIdleInstanceCount, 1)); _tmCounter = new DispatcherTimer(); _tmCounter.Tick += UpdateGameTimeCounter; _tmCounter.Interval = new TimeSpan(0, 1, 0); await Proceed(); _tmCounter.Start(); }
private IActorTask HandleBypassMode() { if (_roamingTask == null) { return(CreateBypassMoveTask()); } else { if (!_roamingTask.IsComplete) { // Если команда на перемещение к целевой точке патруля не закончена, тогда продолжаем её. return(_roamingTask); } _roamingTask = null; _idleTask = new IdleTask(_actor, _decisionSource); _mode = IdleMode.Idle; return(_idleTask); } }
private static bool Prefix(ref string q, ref CommandSender sender) { QueryProcessor queryProcessor = sender is PlayerCommandSender playerCommandSender ? playerCommandSender.Processor : null; (string name, string[] arguments) = q.ExtractCommand(); var ev = new SendingRemoteAdminCommandEventArgs(sender, string.IsNullOrEmpty(sender.SenderId) ? Server.Host : Player.Get(sender.SenderId) ?? Server.Host, name, arguments.ToList()); IdleMode.PreauthStopwatch.Restart(); IdleMode.SetIdleMode(false); if (q.ToLower().StartsWith("gban-kick")) { if (queryProcessor == null || !queryProcessor._sender.SR.RaEverywhere) { sender.RaReply( $"GBAN-KICK# Permission to run command denied by the server. If this is an unexpected error, contact EXILED developers.", false, true, string.Empty); Log.Error($"A user {sender.Nickname} attempted to run GBAN-KICK and was denied permission. If this is an unexpected error, contact EXILED developers."); ev.IsAllowed = false; } } if (q.Contains("REQUEST_DATA PLAYER_LIST SILENT")) { return(true); } Handlers.Server.OnSendingRemoteAdminCommand(ev); if (!string.IsNullOrEmpty(ev.ReplyMessage)) { sender.RaReply(ev.ReplyMessage, ev.Success, true, string.Empty); } return(ev.IsAllowed); }
public IActorTask GetCurrentTask() { // На каждом шаге осматриваем окрестности // напредмет нарушителей. var intruders = CheckForIntruders(); var nearbyIntruder = intruders.FirstOrDefault(); if (nearbyIntruder != null) { _mode = IdleMode.Pursuit; _targetIntruder = nearbyIntruder; _idleTask = null; } else if (_idleTask?.IsComplete == true) { _mode = IdleMode.Bypass; _targetIntruder = null; _idleTask = null; } switch (_mode) { case IdleMode.Bypass: return(HandleBypassMode()); case IdleMode.Pursuit: return(HandlePersiutMode()); case IdleMode.Idle: return(HandleIdleMode()); default: throw new InvalidOperationException($"Неизвестный режим патруллирования {_mode}"); } }
//handle idle state void Idle() { statusMode = Status.idle; //-----------debug test--------------- //print("���m��!!!"); //renderer.material.color = Color.blue; //------------------------------------ if (PlayTime - IdleModeTime > TransformActionTime && _IdleMode != IdleMode.back) //�@�q�ɶ�(TransformActionTime)�ഫ���U�@�Ӳ��ʼҦ� { IdleModeTime = PlayTime; //�O���ثe���C���ɶ�(PlayTime),�Ω�P�_�O�_�����U�@�Ҧ��� if (_IdleMode != IdleMode.four) _IdleMode++; else _IdleMode = IdleMode.one; } switch (_IdleMode) //(_IdleMode)�|�ز��ʼҦ� + �l�v��^����I�Ҧ� { case IdleMode.one: //Mode 1: transform.rotation = Quaternion.LookRotation(IdleMoveMap[0]); rigidbody.velocity = IdleMoveMap[0]; break; case IdleMode.two: //Mode 2: transform.rotation = Quaternion.LookRotation(IdleMoveMap[1]); rigidbody.velocity = IdleMoveMap[1]; break; case IdleMode.three://Mode 3: transform.rotation = Quaternion.LookRotation(IdleMoveMap[2]); rigidbody.velocity = IdleMoveMap[2]; break; case IdleMode.four: //Mode 4: transform.rotation = Quaternion.LookRotation(IdleMoveMap[3]); rigidbody.velocity = IdleMoveMap[3]; break; case IdleMode.back: Vector3 distance = OriginPosition - transform.position;//�p��P�_�l��m(OriginPosition)�������Z��,�æb�l�v��}�l���^�� distance.y = 0; HandleWallCollision(OriginPosition, ChaseSpeed); if (distance.magnitude < 3)//�Y�^����I�N�Ҧ����^�|�ز��ʼҦ� { _IdleMode = 0; IdleModeTime = 0; } break; } }
[DllImport("wx-c"), System.Security.SuppressUnmanagedCodeSecurity] static extern void wxIdleEvent_SetMode(IdleMode mode);
private void OnIdleModeChanged(IdleMode value) { if (this.IdleModeChanged == null) return; this.IdleModeChanged((object)this, new IdleModeEventArg(value)); }
public IdleModeEventArg(IdleMode value) { this.value = value; }
//handle Thraten state void Thraten() { print("ĵ�٤�!!"); renderer.material.color = Color.yellow; transform.rotation = Quaternion.LookRotation(CurrentDirection - new Vector3(0, CurrentDirection.y, 0)); //�w�C�V�o�X�n�����a�貾�� controller.SimpleMove(transform.TransformDirection(Vector3.forward) * Time.deltaTime * ChaseSpeed); _IdleMode = IdleMode.back; //������back�Ҧ�,�Y���}Attack���A,�N�bIdle���A�^���l��m(OriginPosition) }
public static ErrorCode SetIdleMode(void *handle, IdleMode idlemode) { return(driver.c_SparkMax_SetIdleMode(handle, idlemode)); }
void Attack() //handle Attack state { renderer.material.color = Color.red; _IdleMode = IdleMode.back; //切換為back模式,若離開Attack狀態,將在Idle狀態回到原始位置(OriginPosition) }
public void SetIdleMode(IdleMode value) { try { lock (syncThread) registers["RegSeqConfig1"].Value = (uint)(byte)((uint)(byte)((uint)(byte)registers["RegSeqConfig1"].Value & 223U) | (uint)(byte)((uint)(byte)value << 5)); } catch (Exception ex) { OnError((byte)1, ex.Message); } }