ФЭНДОМ


Посмотрите по этой теме сообщение

  1. Создайте Tile.cs файл в вашей Tile папке
  2. Положите в него
public void ModifyWorld() {
        Main.statusText = "Adding Greenium Ore..."; //появление вашей руды
        for(int i=0;i<100+(int)(Main.maxTilesY/5);i++) AddOres(); //изменится на 100, чтобы удовлетворить ваши запросы, чем выше, тем реже.
        //Графа руд, для сравнения ...
        //Золотая руда=8
        //Серебряная руда=9
        //Медная руда=7
        Main.statusText = "Counting ores...";
        string data="";
        DictionaryHandler<int, int> countType = new DictionaryHandler<int,int>();
        for(int x=0;x<Main.maxTilesX;x++) {
                for(int y=0;y<Main.maxTilesY;y++) {
                        Main.statusText = "Counting ores... ("+((x*(y+1))/(Main.maxTilesX*Main.maxTilesY))+"%)";
                        try {
                                int type=Main.tile[x,y].type;
                                if(type==7 || type==8 || type==9 || type==Config.tileDefs.ID["Placeable"]) countType[type]++; //Изменение "Placeable" на имя вашего тайла руды (в шахте появляется под названием Placeable.
                        } catch {
                        }
 
                }
        }
        data+="Copper: "+countType[7]+"\n";
        data+="Silver: "+countType[9]+"\n";
        data+="Gold: "+countType[8]+"\n";
        data+="Greenium: "+countType[Config.tileDefs.ID["Placeable"]]+"\n"; //Как и раньше, изменить Placeable.
        data+="Greenium added for world size: "+(int)(Main.maxTilesY/5)+"\n";
        File.WriteAllText(Main.SavePath+@"\"+"Ores.txt", data);
}
public void AddOres() {
    int add = 0;
    //float num3 = (float)(Main.maxTilesX / 4200);
    int i2 = WorldGen.genRand.Next(100, Main.maxTilesX - 100);
    double num6 = Main.worldSurface;
    int j2 = WorldGen.genRand.Next((int)num6, Main.maxTilesY - 150);
    WorldGen.OreRunner(i2, j2, (double)WorldGen.genRand.Next(5, 9 + add), WorldGen.genRand.Next(5, 9 + add), Config.tileDefs.ID["Placeable"]); //change yet again.
}
  • Весь этот список говорит вашей руде спауниться в любом месте (почти). И создайте текстовый файл в MyGames / Terraria
  • Кодировал Surfpup

Другие методыПравить

Здесь все очень просто (в моих глазах).

  • В вашей папке "Tile", создайте файл "Tile.cs"
  • Откройте этот файл и скопируйте следующий код:
  • Вставьте его в раздел ModifyWorld()
    {
        //Напишите, что должен сказать вам мир во время спауна руды.
        Main.statusText = "Spawning My Tile...";

        //Как далеко вперед и далеко вниз должна идти зона спауна руды.
        int areaWidth = (int)Main.maxTilesX;
        int areaHeight = 20;

        //Какие координаты должны быть у месторождений.
        int areaY = (int)Main.worldSurface;

        //Сколько месторождений создать. (редкость)
        int numDeposits = Main.rand.Next(200, 500);

        //Создание указанного количества месторождений.
        for (int i = 0; i < numDeposits; i++)
        {
            //Выберите случайные х и у, положение в области определено.
            int depositX = Main.rand.Next(20, areaWidth - 20);
            int depositY = Main.rand.Next(areaY, areaY + areaHeight);

            //Выберите случайную ширину месторождения.
            int depositWidth = Main.rand.Next(5, 15);

            //Цикл по каждому х (горизонт) значению. в пределах месторождения.
            for (int x = depositX; x < depositX + depositWidth; x++)
            {
                //Выберите случайное количество руды, выше и ниже позиции х.
                int above = Main.rand.Next(2, 10);
                int below = Main.rand.Next(5, 10);

                //Цикл по каждому значению у и установить тайл там.
                for (int y = depositY - above; y < depositY + below; y++)
                {
                    //Поместите руду в вычисленное положение.
                    WorldGen.PlaceTile(x, y, Config.tileDefs.ID["My Tile"]);
                }
            }
        }
    }


  • Итак, мы имеем здесь дело с кодом, который позволит примерно круговой хранение любой руды, которую вы положили в часть "My Tile".
  • Что происходит: список представляет собой набор переменных, которые определяют, что площадь месторождения может быть разного размера и их кол-во. Затем каждое из них создается со случайной ширины и высоты, ниже и выше.
  • Надеемся, что должно быть ясно, что вообще происходит.

Кодировал я (ben657)