예제 #1
0
 static void PrintWelcomeMessage()
 {
     using (ObjectChangedEventWaiter ew = new ObjectChangedEventWaiter(World.PlayerSerial)) {
         Thread.Sleep(1000);
         ew.Wait(1000);
         UO.Print(SpeechFont.Bold, 0x0434, "Phoenix loaded.");
     }
 }
예제 #2
0
파일: Config.cs 프로젝트: byterj/phoenix
 public static void Save()
 {
     lock (Config.SyncRoot) {
         settings.Save();
         profile.Save();
         UO.Print("Configuration saved.");
         Trace.Flush();
     }
 }
예제 #3
0
파일: UIManager.cs 프로젝트: byterj/phoenix
        private static void TimeoutThread(object parameter)
        {
            Thread.Sleep((int)parameter);

            lock (syncRoot) {
                if (CurrentState != State.Ready)
                {
                    UO.Print("{0} timeout.", CurrentState);
                    ResetInternal(true);
                }
            }
        }
예제 #4
0
파일: UO.cs 프로젝트: byterj/phoenix
        public static void Macro(string name)
        {
            Phoenix.Macros.Macro macro;

            if (!RuntimeCore.Macros.TryGetValue(name, out macro))
            {
                ScriptErrorException.Throw("Macro {0} not found.", name);
                return;
            }

            try {
                macro.Run();
            }
            catch (Exception e) {
                Trace.WriteLine("Unhandled exception during macro execution. Details:\n" + e.ToString(), "Runtime");
                UO.Print(Env.ErrorColor, "Macro Error: {0}", e.Message);
            }
        }
예제 #5
0
        public static int Resync()
        {
            if (Config.ResyncInterval < 1)
            {
                Config.ResyncInterval.Value = 1;
            }

            TimeSpan elapsed = DateTime.Now - lastResyncTime;

            if (elapsed.Seconds > Config.ResyncInterval)
            {
                byte[] data = PacketBuilder.WalkRequestSucceeded(0);
                Core.SendToServer(data);
                lastResyncTime = DateTime.Now;
                UO.Print("Resync with server requested.");
                return(Config.ResyncInterval);
            }
            else
            {
                return(Config.ResyncInterval - elapsed.Seconds);
            }
        }
예제 #6
0
파일: UO.cs 프로젝트: byterj/phoenix
        public static void AddObject(string name)
        {
            if (Helper.CheckName(ref name, false))
            {
                UO.Print("Select {0}:", name);

                Serial serial = UIManager.TargetObject();

                if (serial.IsValid)
                {
                    Aliases.SetObject(name, serial);
                }
                else
                {
                    ScriptErrorException.Throw("Invalid object serial.");
                }
            }
            else
            {
                ScriptErrorException.Throw("Invalid object name.");
            }
        }
예제 #7
0
파일: UIManager.cs 프로젝트: byterj/phoenix
        private static CallbackResult OnPickupRequest(byte[] data, CallbackResult prevResult)
        {
            lock (syncRoot) {
                switch (CurrentState)
                {
                case State.Ready:
                    break;

                case State.ClientDroppedItem:
                case State.MoveItem:
                    Core.SendToClient(PacketBuilder.PickupItemFailed(6));
                    UO.Print("Cannot pick up item now.");
                    return(CallbackResult.Eat);

                default:
                    Reset();
                    break;
                }

                Debug.Assert(CurrentState == State.Ready, "CurrentState is not Ready. Internal error.");

                PickedUpItem = ByteConverter.BigEndian.ToUInt32(data, 1);

                RealObject obj = World.FindRealObject(PickedUpItem);
                if (obj != null && obj.Name != null && obj.Name.Length > 0)
                {
                    pickedUpItemName = String.Format("\"{0}\"", obj.Name);
                }
                else
                {
                    pickedUpItemName = String.Format("0x{0:X8}", PickedUpItem);
                }

                CurrentState = State.ClientPickedUpItem;

                return(CallbackResult.Normal);
            }
        }
예제 #8
0
 static void Profile_ProfileChanged(object sender, EventArgs e)
 {
     UO.Print("Profile changed to '{0}'", Config.Profile.ProfileName);
 }
예제 #9
0
파일: UO.World.cs 프로젝트: byterj/phoenix
 public static bool EquipItem()
 {
     UO.Print("What item do you want to equip?");
     return(EquipItem(UIManager.TargetObject()));
 }
예제 #10
0
파일: UO.World.cs 프로젝트: byterj/phoenix
 public static bool Grab(ushort amount)
 {
     UO.Print("What item do you want to move?");
     return(Grab(amount, UIManager.TargetObject()));
 }