public TurnMe(FFACETools.FFACE fface) { this.fface = fface; }
/// <summary> /// ヴァナ時間のTicksを取得 /// </summary> /// <param name="iVanaDate">ヴァナ日付</param> /// <returns>Ticks</returns> private static long getVanaTicks(FFACETools.FFACE.TimerTools.VanaTime iVanaDate) { long baseTicks = (886L * 360L * 24L * 60L * 60L) + (30L * 24L * 60L * 60L) + (24L * 60L * 60L); long vanaTicks = (iVanaDate.Year * 12L * 30L * 24L * 60L * 60L) + (iVanaDate.Month * 30L * 24L * 60L * 60L) + (iVanaDate.Day * 24L * 60L * 60L) + (iVanaDate.Hour * 60L * 60L) + (iVanaDate.Minute * 60L) + (long)iVanaDate.Second; return vanaTicks - baseTicks; }
public Patrole(FFACETools.FFACE fface) { this.turnMe = new TurnMe(fface); this.fface = fface; }
/// <summary> /// ヴァナ時間より月齢を取得 /// </summary> /// <param name="iVanaDate">ヴァナ日付</param> /// <returns>月齢</returns> public static MoonPhase GetMoonPhaseFromVanaTime(FFACETools.FFACE.TimerTools.VanaTime iVanaDate) { long vanaTicks = getVanaTicks(iVanaDate); double moonPhase = (byte)((vanaTicks % (12D * 7D * 24D * 60D * 60D)) / (7D * 24D * 60D * 60D)); return (MoonPhase)moonPhase; }
/// <summary> /// ヴァナ日付より曜日を取得 /// </summary> /// <param name="iVanaDate"></param> /// <returns></returns> public static Weekday GetWeekdayFromVanaTime(FFACETools.FFACE.TimerTools.VanaTime iVanaDate) { long vanaTicks = getVanaTicks(iVanaDate); double dayType = (byte)((vanaTicks % (8D * 24D * 60D * 60D)) / (24D * 60D * 60D)); return (Weekday)dayType; }
/// <summary> /// ヴァナ日付より地球日付を取得 /// </summary> /// <param name="iVanaDate"></param> /// <returns></returns> public static DateTime GetEarthTimeFromVanaTime(FFACETools.FFACE.TimerTools.VanaTime iVanaDate) { //地球時間 2002/01/01 00:00:00 = 天晶暦 0886/01/01 00:00:00 //一年=360日 一ヶ月=30日 一日=24時間 一時間=60分 一分=60秒 long baseTicks = (886L * 360L * 24L * 60L * 60L) + (30L * 24L * 60L * 60L) + (24L * 60L * 60L); long vanaTicks = (iVanaDate.Year * 12L * 30L * 24L * 60L * 60L) + (iVanaDate.Month * 30L * 24L * 60L * 60L) + (iVanaDate.Day * 24L * 60L * 60L) + (iVanaDate.Hour * 60L * 60L) + (iVanaDate.Minute * 60L) + (long)iVanaDate.Second; long addseconds = (((vanaTicks - baseTicks) / 25L)); DateTime ret = new DateTime(2002, 1, 1, 0, 0, 0); ret = ret.AddSeconds(addseconds); return ret; }
/// <summary> /// プレイヤーステータスが指定したステータスになるまで待つ /// </summary> /// <param name="iPlayerStatus">待機を解除するプレイヤーステータス</param> private void waitChangePlayerStatus(FFACETools.Status iPlayerStatus) { while (this.PlayerStatus != iPlayerStatus) { Thread.Sleep(settings.Global.WaitBase); } }
/// <summary> /// アイテムを鞄から指定した場所へ移動する /// </summary> /// <param name="iItemName">アイテム名</param> /// <param name="iInventoryType">移動先</param> /// <returns>成功した場合Truwを返す</returns> private bool putItem(string iItemName, FFACETools.InventoryType iInventoryType) { if (control.GetInventoryCountByType(iInventoryType) >= control.GetInventoryMaxByType(iInventoryType)) return false; if (control.IsExistItem(iItemName, FFACETools.InventoryType.Inventory)) { control.PutItem(iItemName, iInventoryType); setMessage(string.Format("{0}を{1}に移動しました", iItemName, iInventoryType.ToString())); Thread.Sleep(1000); return true; } return false; }
/// <summary> /// 指定した場所へ魚を移動する /// </summary> /// <param name="iInventoryType"></param> /// <returns></returns> private bool putFish(FFACETools.InventoryType iInventoryType) { //short lastCnt = control.GetInventoryCountByType(InventoryType.Inventory); if (control.GetInventoryCountByType(iInventoryType) >= control.GetInventoryMaxByType(iInventoryType)) return false; List<FishDBFishModel> fishes = FishDB.SelectFishList(this.RodName, string.Empty, string.Empty); foreach (FishDBFishModel fish in fishes) { if (control.IsExistItem(fish.FishName, FFACETools.InventoryType.Inventory)) { control.PutItem(fish.FishName, iInventoryType); setMessage(string.Format("{0}を{1}に移動しました", fish.FishName, iInventoryType.ToString())); Thread.Sleep(1000); return true; } } return false; }
/// <summary> /// 時間が範囲内にあるかチェック /// </summary> /// <param name="iTarget">ヴァナ日時</param> /// <param name="iFrom">時間From</param> /// <param name="iTo">時間To</param> /// <returns></returns> private bool isHourInRange(FFACETools.FFACE.TimerTools.VanaTime iTarget, int iFrom, int iTo) { if (iFrom <= iTo) { if (iTarget.Hour >= iFrom && iTarget.Hour <= iTo) { return true; } } else if (iFrom > iTo) { if ((iTarget.Hour >= iFrom && iTarget.Hour <= 23) || (iTarget.Hour >= 0 && iTarget.Hour <= iTo)) { return true; } } return false; }