Ejemplo n.º 1
0
    static void CreatePrefabs()
    {
        TableFish fishTable = (TableFish)GameTableManager.getInstance().GetTable("table_fish");

        foreach (Object selectobj in Selection.objects)
        {
            GameObject           newobj   = new GameObject();
            string               fishname = selectobj.name.Split('_')[0];
            TableFish.FishRecord record   = fishTable.getRecordByName(fishname);
            if (record == null)
            {
                continue;
            }
            newobj.name = "Prefab_Fish_" + fishname;
            UITexture uitex = newobj.AddComponent <UITexture>();
            uitex.mainTexture = (Texture)selectobj;
            uitex.MakePixelPerfect();
            uitex.transform.localScale = new Vector3(record.scaleFactor, record.scaleFactor, 1);
            string prefabpath = "Assets" + "/Resources/FishPrefabs/" + newobj.name + ".prefab";
            PrefabUtility.CreatePrefab(prefabpath, newobj);
        }
    }
Ejemplo n.º 2
0
        public Task DecorLookupSubCommandHandler(CommandContext context, string command, string[] parameters)
        {
            if (parameters.Length != 1)
            {
                return(Task.CompletedTask);
            }

            var sw = new StringWriter();

            sw.WriteLine("Decor Lookup Results:");

            TextTable tt = GameTableManager.GetTextTable(context.Language);

            foreach (HousingDecorInfoEntry decorEntry in
                     SearchManager.Search <HousingDecorInfoEntry>(parameters[0], context.Language, e => e.LocalizedTextIdName, true))
            {
                string text = tt.GetEntry(decorEntry.LocalizedTextIdName);
                sw.WriteLine($"({decorEntry.Id}) {text}");
            }

            context.SendMessageAsync(sw.ToString());
            return(Task.CompletedTask);
        }
Ejemplo n.º 3
0
        private static void Main(string[] args)
        {
            Console.Title = Title;

            if (args.Length == 0)
            {
                throw new ArgumentException();
            }

            if (!Directory.Exists(args[0]))
            {
                throw new DirectoryNotFoundException();
            }

            Flags flags = Flags.Extration | Flags.Generation;

            if (args.Length == 2)
            {
                flags = (Flags)uint.Parse(args[1]);
            }

            ArchiveManager.Initialise(args[0]);
            GameTableManager.Initialise();

            if ((flags & Flags.Extration) != 0)
            {
                ExtractionManager.Initialise();
            }
            if ((flags & Flags.Generation) != 0)
            {
                GenerationManagaer.Initialise();
            }

            log.Info("Finished!");
            Console.ReadLine();
        }
Ejemplo n.º 4
0
        private static void Main()
        {
            Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));

            Console.Title = Title;
            log.Info("Initialising...");

            ConfigurationManager <WorldServerConfiguration> .Initialise("WorldServer.json");

            DatabaseManager.Initialise(ConfigurationManager <WorldServerConfiguration> .Config.Database);

            DisableManager.Instance.Initialise();

            GameTableManager.Initialise();
            MapManager.Initialise();
            SearchManager.Initialise();
            EntityManager.Initialise();
            EntityCommandManager.Initialise();
            GlobalMovementManager.Initialise();

            AssetManager.Initialise();
            PrerequisiteManager.Initialise();
            GlobalSpellManager.Initialise();
            GlobalQuestManager.Initialise();
            ServerManager.Initialise();

            ResidenceManager.Initialise();
            GlobalStorefrontManager.Initialise();

            // make sure the assigned realm id in the configuration file exists in the database
            RealmId = ConfigurationManager <WorldServerConfiguration> .Config.RealmId;
            if (ServerManager.Servers.All(s => s.Model.Id != RealmId))
            {
                throw new ConfigurationException($"Realm id {RealmId} in configuration file doesn't exist in the database!");
            }

            MessageManager.Initialise();
            SocialManager.Initialise();
            CommandManager.Initialise();
            NetworkManager <WorldSession> .Initialise(ConfigurationManager <WorldServerConfiguration> .Config.Network);

            WorldManager.Initialise(lastTick =>
            {
                NetworkManager <WorldSession> .Update(lastTick);
                MapManager.Update(lastTick);
                ResidenceManager.Update(lastTick);
                BuybackManager.Update(lastTick);
                GlobalQuestManager.Update(lastTick);
            });

            using (WorldServerEmbeddedWebServer.Initialise())
            {
                log.Info("Ready!");

                while (true)
                {
                    Console.Write(">> ");
                    string line = Console.ReadLine();
                    if (!CommandManager.HandleCommand(new ConsoleCommandContext(), line, false))
                    {
                        Console.WriteLine("Invalid command");
                    }
                }
            }
        }
Ejemplo n.º 5
0
 // Use this for initialization
 void Start()
 {
     AiPathManager.getInstance().initialize(Application.dataPath + "/Resources/Configs/table_ai.bytes");
     GameTableManager.getInstance().initialize();
 }
Ejemplo n.º 6
0
    public void onEventFishSeason(int seasonIndex, bool modifyFlag = false)
    {
        if (modifyFlag)
        {
            this.onModifyOneSeason(seasonIndex);
            return;
        }
        GameObject sourcePoint   = GameObject.Find("Anchor_BottomLeft");
        Transform  objBottomLeft = sourcePoint.transform;
        int        childCnt      = objBottomLeft.childCount;

        for (int i = 0; i < childCnt;)
        {
            Transform child = objBottomLeft.GetChild(i);
            GameObject.DestroyImmediate(child.gameObject);
            childCnt = objBottomLeft.childCount;
        }

        OneFishSeason season    = FishConfigManager.getInstance().getOneSeason(seasonIndex);
        TableFish     fishtable = (TableFish)GameTableManager.getInstance().GetTable("table_fish");

        foreach (FishSeasonInfo seasoninfo in season.seasonInfoList)
        {
            foreach (SingleFishOfSeason singlefish in seasoninfo.fishList)
            {
                TableFish.FishRecord record = fishtable.getRecordByFishKindId(singlefish.mFishKindId);
                if (record == null)
                {
                    continue;
                }
                float fFishLength = record.width;
                //Debug.Log(record.name);
                GameObject fishObj = (GameObject)GameObject.Instantiate(Resources.Load("FishPrefabs/Prefab_Fish_" + record.name));
                fishObj.transform.parent     = sourcePoint.transform;
                fishObj.transform.localScale = Vector3.one * record.scaleFactor;
                //fishObj.transform.localPosition = new Vector3(singlefish.mFishPos.x + seasoninfo.mCenterPoint.x-1200,singlefish.mFishPos.y + seasoninfo.mCenterPoint.y,0);
                Fish fishComponent = fishObj.AddComponent <Fish>();

                fishComponent.Rotation  = seasoninfo.mAngle;
                fishComponent.AiPath    = AiPathManager.getInstance().getPath(seasoninfo.mAiId);
                fishComponent.BaseSpeed = seasoninfo.mSpeed;
                fishComponent.FishWidth = record.width;

                float fDelay = 0.0f;
                if (seasoninfo.mCenterPoint.x <= 0)
                {
                    fishObj.transform.localPosition = new Vector3(-fFishLength, seasoninfo.mCenterPoint.y + singlefish.mFishPos.y, 0);
                    //fishObj.transform.localPosition.y = seasoninfo.mCenterPoint.y + singlefish.mFishPos.y;
                    fDelay = (singlefish.mFishPos.x - seasoninfo.mCenterPoint.x) / seasoninfo.mSpeed;
                }
                else if (seasoninfo.mCenterPoint.x >= 1280)
                {
                    fishObj.transform.localPosition = new Vector3(1280 + fFishLength, seasoninfo.mCenterPoint.y + singlefish.mFishPos.y, 0);
                    //fishObj.transform.localPosition.y = seasoninfo.mCenterPoint.y + singlefish.mFishPos.y;
                    fDelay = (singlefish.mFishPos.x + seasoninfo.mCenterPoint.x - 1280) / seasoninfo.mSpeed;
                }
                else if (seasoninfo.mCenterPoint.y <= 0)
                {
                    fishObj.transform.localPosition = new Vector3(seasoninfo.mCenterPoint.x + singlefish.mFishPos.x, -fFishLength, 0);
                    //fishObj.transform.localPosition.y = (-1) * fFishLength;
                    fDelay = (singlefish.mFishPos.y - seasoninfo.mCenterPoint.y) / seasoninfo.mSpeed;
                }
                else if (seasoninfo.mCenterPoint.y >= 720)
                {
                    fishObj.transform.localPosition = new Vector3(seasoninfo.mCenterPoint.x + singlefish.mFishPos.x, 720 + fFishLength, 0);
                    //fishObj.transform.localPosition.y = 720 + fFishLength;
                    fDelay = (singlefish.mFishPos.y + seasoninfo.mCenterPoint.y - 720) / seasoninfo.mSpeed;
                }
                else
                {
                    fishObj.transform.localPosition = new Vector3(seasoninfo.mCenterPoint.x + singlefish.mFishPos.x, seasoninfo.mCenterPoint.y + singlefish.mFishPos.y, 0);
                    //fishObj.transform.localPosition.y = (seasoninfo.mCenterPoint.y + singlefish.mFishPos.y);
                    fDelay = 0.0f;
                }

                Vector3 pos = fishObj.transform.localPosition;
                fishObj.transform.localPosition = new Vector3(pos.x, 720 - pos.y, 0);
                if (seasonIndex == 4)
                {
                    Debug.Log(fishObj.transform.localPosition + "        " + fDelay);
                }

                fishComponent.DelayActiveTime = fDelay;
            }
        }
    }
Ejemplo n.º 7
0
    public void onModifyOneSeason(int seasonIndex)
    {
        GameObject seasonRoot = GameObject.FindWithTag("SeasonRoot");
        Transform  objRoot    = seasonRoot.transform;
        int        childCnt   = objRoot.childCount;

        for (int i = 0; i < childCnt;)
        {
            Transform child = objRoot.GetChild(i);
            GameObject.DestroyImmediate(child.gameObject);
            childCnt = objRoot.childCount;
        }

        OneFishSeason season    = FishConfigManager.getInstance().getOneSeason(seasonIndex);
        TableFish     fishtable = (TableFish)GameTableManager.getInstance().GetTable("table_fish");

        GameObject oneSeasonObj = new GameObject();

        oneSeasonObj.transform.parent = objRoot;
        oneSeasonObj.AddComponent <OneSeasonComponent>();
        oneSeasonObj.name = "OneSeason";
        oneSeasonObj.transform.localScale    = Vector3.one;
        oneSeasonObj.transform.localPosition = Vector3.zero;

        foreach (FishSeasonInfo seasoninfo in season.seasonInfoList)
        {
            GameObject seasonInfoObj = new GameObject();
            seasonInfoObj.transform.parent     = oneSeasonObj.transform;
            seasonInfoObj.name                 = "OneSeasonInfo";
            seasonInfoObj.transform.localScale = Vector3.one;

            FishSeasonInfoComponent seasonInfoCom = seasonInfoObj.AddComponent <FishSeasonInfoComponent>();
            seasonInfoCom.centerPoint.Set(seasoninfo.mCenterPoint.x, seasoninfo.mCenterPoint.y);
            seasonInfoCom.speed = seasoninfo.mSpeed;
            seasonInfoCom.aiId  = seasoninfo.mAiId;
            seasonInfoCom.angle = seasoninfo.mAngle;

            seasonInfoCom.transform.localPosition = new Vector3(seasoninfo.mCenterPoint.x, -(seasoninfo.mCenterPoint.y), 0);

            foreach (SingleFishOfSeason singlefish in seasoninfo.fishList)
            {
                TableFish.FishRecord record = fishtable.getRecordByFishKindId(singlefish.mFishKindId);
                if (record == null)
                {
                    continue;
                }
                float fFishLength = record.width;

                GameObject fishObj = (GameObject)GameObject.Instantiate(Resources.Load("FishPrefabs/Prefab_Fish_" + record.name));
                fishObj.name                    = "Prefab_Fish_" + record.name;
                fishObj.transform.parent        = seasonInfoObj.transform;
                fishObj.transform.localScale    = Vector3.one * record.scaleFactor;
                fishObj.transform.localPosition = new Vector3(singlefish.mFishPos.x, singlefish.mFishPos.y, 0);

                if (seasoninfo.mCenterPoint.x <= 0)
                {
                    fishObj.transform.localPosition = new Vector3(-singlefish.mFishPos.x, singlefish.mFishPos.y, 0);
                }
                else if (seasoninfo.mCenterPoint.x >= 1280)
                {
                    fishObj.transform.localPosition = new Vector3(singlefish.mFishPos.x, singlefish.mFishPos.y, 0);
                }
                else if (seasoninfo.mCenterPoint.y <= 0)
                {
                    fishObj.transform.localPosition = new Vector3(singlefish.mFishPos.x, -singlefish.mFishPos.y, 0);
                }
                else if (seasoninfo.mCenterPoint.y >= 720)
                {
                    fishObj.transform.localPosition = new Vector3(singlefish.mFishPos.x, singlefish.mFishPos.y, 0);
                }
            }

            UnityEditor.EditorApplication.MarkSceneDirty();
        }
    }
Ejemplo n.º 8
0
    public XmlElement getElement(XmlDocument xmlDoc, XmlNode oneseason)
    {
        //创建根节点
        XmlElement root = xmlDoc.CreateElement("FishSeasonInfo");

        oneseason.AppendChild(root);
        root.SetAttribute("speed", speed.ToString());
        root.SetAttribute("angle", angle.ToString());
        root.SetAttribute("AIID", aiId.ToString());

        root.SetAttribute("centerPt", centerPoint.x + "," + (centerPoint.y));
        TableFish fishTable = (TableFish)GameTableManager.getInstance().GetTable("table_fish");
        int       childcnt  = transform.childCount;

        float maxWidth          = 0;
        int   maxWidthId        = 0;
        float minDistanceToView = float.MaxValue;
        float nearestFishWidth  = 0;

        for (int i = 0; i < childcnt; i++)
        {
            Transform childTransform = transform.GetChild(i);
            string    name           = childTransform.gameObject.name;
            if (name.Contains("Prefab_Fish_") == false)
            {
                continue;
            }
            name = name.Remove(0, 12);
            int fishkindid = fishTable.getFishKindIdByName(name);
            if (fishkindid == -1)
            {
                continue;
            }
            TableFish.FishRecord record = fishTable.getRecordByFishKindId(fishkindid);
            if (record.width > maxWidth)
            {
                maxWidthId = record.fishId;
                maxWidth   = record.width;
            }
            if (minDistanceToView > Mathf.Abs(centerPoint.x - childTransform.localPosition.x))
            {
                minDistanceToView = childTransform.localPosition.x;
                nearestFishWidth  = record.width;
            }
        }

        float radian = Mathf.Deg2Rad * (-angle);

        for (int i = 0; i < childcnt; i++)
        {
            Transform childTransform = transform.GetChild(i);
            Vector3   pos            = childTransform.localPosition;
            string    name           = childTransform.gameObject.name;
            if (name.Contains("Prefab_Fish_") == false)
            {
                continue;
            }
            name = name.Remove(0, 12);
            XmlElement singlefish = xmlDoc.CreateElement("SingleFishOfSeason");

            int fishkindid = fishTable.getFishKindIdByName(name);
            if (fishkindid == -1)
            {
                continue;
            }
            singlefish.SetAttribute("FishKindID", fishkindid.ToString());
            TableFish.FishRecord record = fishTable.getRecordByFishKindId(fishkindid);

            float x0 = (pos.x) * Mathf.Cos(radian) - (pos.y) * Mathf.Sin(radian);
            float y0 = (pos.x) * Mathf.Sin(radian) + (pos.y) * Mathf.Cos(radian);

            float dh = 0;
            //childTransform.localPosition = new Vector3(x0,y0,0);
            float temp = maxWidth - record.width - (maxWidth - nearestFishWidth);
            if (fishkindid == maxWidthId)
            {
                temp = -(maxWidth - nearestFishWidth);
            }
            if (centerPoint.x <= 0)
            {
                //singlefish.SetAttribute("FishPos", (-(x0 / Mathf.Cos(radian))).ToString() + "," + (-(y0 + Mathf.Tan(radian) * Mathf.Abs(x0) - record.width * Mathf.Tan(radian))).ToString());
                singlefish.SetAttribute("FishPos", (-pos.x + temp).ToString() + "," + (-pos.y).ToString());
            }
            else if (centerPoint.x >= 1280)
            {
                singlefish.SetAttribute("FishPos", (pos.x + temp).ToString() + "," + (-pos.y).ToString());
            }
            else if (centerPoint.y <= 0)
            {
                singlefish.SetAttribute("FishPos", (pos.x).ToString() + "," + (pos.y + temp).ToString());
            }
            else if (centerPoint.y >= 720)
            {
                singlefish.SetAttribute("FishPos", (pos.x).ToString() + "," + (-pos.y + temp).ToString());
            }


            root.AppendChild(singlefish);
        }

        return(root);
    }