Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Изучаем SpoutCraft и SpoutPlugin вместе. С нуля. [upd 20.10.13]

Тема в разделе "Spout", создана пользователем caNek, 13 май 2013.

  1. Sio

    Sio Старожил

    Баллы:
    153
    Имя в Minecraft:
    Sio
    Не получиться, особенность споута это серверная часть а не клиент
     
    RVXman нравится это.
  2. Хостинг MineCraft
    <
  3. General

    General Старожил Пользователь

    Баллы:
    123
    Чувак TC не генерит руды из mo ores так, что для меня всё, что ты написал бессмысленно. Пока TC не будет генерировать блоки хотя бы из mo ores я с места не сдвинусь. Плюс там кирки не работают...[DOUBLEPOST=1368987715][/DOUBLEPOST]
    Ланс как-то объединял споут и моды, но это очень геморно.
     
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    mo ores генерит руды, просто он не так удобен как MoreMaterials.
     
  5. Sirse

    Sirse Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Я имею ввиду именно клиентскую часть (отрисовку гуи, предметы/руды), для совместимости с forge. А на стороне сервера использовать SpoutPlugin
     
  6. AvengeRkaa

    AvengeRkaa Старожил

    Баллы:
    123
    Имя в Minecraft:
    AvengeRkaa
    Можно реализовать всё это отдельным модом уже на языке понятном forge.
    При заходе на сервер просить конфиги/текстуры и прочую ересь и подгружать их.
    Код можно взять из самого споута и переписать под методы forge.

    P/S И я как бы намекаю что в чужом коде рыть - самоубийство
     
  7. General

    General Старожил Пользователь

    Баллы:
    123
    проще фордж переписать в соответствии со споутом.
     
    CyberMan и Sio нравится это.
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ерунду несете :). Зачем совмещать Forge под spout? Если руда отлично генерится плагином.
    Просто споут не популярен и никто не написал удобного плагина для руд и деревьев.
    Я для себя собрал mo ores он руду генерит и в нем так же есть крафт и обычные блоки.
    http://alexandrage.dyndns.org:8081/Mo-Ore-s-master.zip
     
    Сникерсни нравится это.
  9. General

    General Старожил Пользователь

    Баллы:
    123
    генерит даже через TC?
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    TC это что? Если ты про TerrainControl то в нем нет совместимости со споут плагином.
    Но можно заюзать код из mo ores и добавить совместимость.[DOUBLEPOST=1369047338,1369047126][/DOUBLEPOST]От сюда вырезать
    Код:
    package com.github.Zarklord1.MoOres.Populator;
     
    import java.util.Random;
     
    import org.bukkit.Chunk;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.generator.BlockPopulator;
    import org.getspout.spoutapi.Spout;
    import org.getspout.spoutapi.SpoutWorld;
    import org.getspout.spoutapi.block.SpoutBlock;
    import org.getspout.spoutapi.block.SpoutChunk;
     
    import com.github.Zarklord1.MoOres.Custom.Blocks.CustomOres;
    import com.github.Zarklord1.MoOres.Util.BlockLoader;
     
    public class OresPopulator extends BlockPopulator {
     
        public OresPopulator() {}
     
        @Override
        public void populate(World world, Random random, Chunk chunk) {
            for (CustomOres ore:BlockLoader.customores) {
                for (byte i = 0; i < ore.getVeinsPerChunk(); i++) {
                    final int x = random.nextInt(15);
                    final int y = random.nextInt(ore.getMaxY() - ore.getMinY()) + ore.getMinY();
                    final int z = random.nextInt(15);
                    final int veinSize = random.nextInt(ore.getMaxVeinSize() - ore.getMinVeinSize()) + ore.getMinVeinSize();
                    this.placeObject(world, chunk, x, y, z, veinSize, random, ore);
                }
            }
        }
       
               
        public void placeObject(World world, Chunk chunk, int originX, int originY, int originZ, int clusterSize, Random random, CustomOres ore) {
            final double angle = random.nextDouble() * Math.PI;
            final double x1 = ((originX + 8) + Math.sin(angle) * clusterSize / 8);
            final double x2 = ((originX + 8) - Math.sin(angle) * clusterSize / 8);
            final double z1 = ((originZ + 8) + Math.cos(angle) * clusterSize / 8);
            final double z2 = ((originZ + 8) - Math.cos(angle) * clusterSize / 8);
            final double y1 = (originY + random.nextInt(3) + 2);
            final double y2 = (originY + random.nextInt(3) + 2);
     
            for (int i = 0; i < clusterSize; i++) {
                final double seedX = x1 + (x2 - x1) * i / clusterSize;
                final double seedY = y1 + (y2 - y1) * i / clusterSize;
                final double seedZ = z1 + (z2 - z1) * i / clusterSize;
                final double size = ((Math.sin(i * Math.PI / clusterSize) + 1) * random.nextDouble() * clusterSize / 16 + 1) / 2;
               
                final int startX = (int) (seedX - size);
                final int startY = (int) (seedY - size);
                final int startZ = (int) (seedZ - size);
                final int endX = (int) (seedX + size);
                final int endY = (int) (seedY + size);
                final int endZ = (int) (seedZ + size);
     
                for (int x = startX; x <= endX; x++) {
                    double sizeX = (x + 0.5 - seedX) / size;
                    sizeX *= sizeX;
                   
                    if (sizeX < 1) {
                        for (int y = startY; y <= endY; y++) {
                            double sizeY = (y + 0.5 - seedY) / size;
                            sizeY *= sizeY;
                           
                            if (sizeX + sizeY < 1) {
                                for (int z = startZ; z <= endZ; z++) {
                                    double sizeZ = (z + 0.5 - seedZ) / size;
                                    sizeZ *= sizeZ;
                                    if (sizeX + sizeY + sizeZ < 1 && chunk.getBlock(x, y, z).getType() == Material.STONE) {
                                        SpoutChunk chunk1 = (SpoutChunk) chunk;
                                        chunk1.setCustomBlock(x, y, z, ore);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
     
  11. AvengeRkaa

    AvengeRkaa Старожил

    Баллы:
    123
    Имя в Minecraft:
    AvengeRkaa
    Удачи, через год покажешь мне что ты сделал)
    Проще взять частички споута и реализовать у себя в моде.
     
    CyberMan и REZAYS нравится это.
  12. Sio

    Sio Старожил

    Баллы:
    153
    Имя в Minecraft:
    Sio
    В сборке от ТС, руда тоже генерируется
     
  13. Sirse

    Sirse Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Да причём здесь руда, меня интересуют BC3/Ic2/Rp2/etc
     
  14. Sio

    Sio Старожил

    Баллы:
    153
    Имя в Minecraft:
    Sio
    Споут предоставляет open sorce api, пишите на здоровье
     
    IstominHero нравится это.
  15. AvengeRkaa

    AvengeRkaa Старожил

    Баллы:
    123
    Имя в Minecraft:
    AvengeRkaa
    У тебя на споуте получится написать только аналог, оригинал трудно реализовать довольно.
    Блоки, GUI и всё.
    Никаких API энергии и т.д.
     
  16. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Споут только визуально реализует. Он не предназначен для такого. Этим он и отличается от простых модов. Тебе придется писать свои api для энергии труб и тд.
     
    dimahru и Sio нравится это.
  17. CyberMan

    CyberMan Старожил Пользователь

    Баллы:
    173
    Skype:
    cyber4el
    Кто что скажет о RPGEssentials?
     
  18. AvengeRkaa

    AvengeRkaa Старожил

    Баллы:
    123
    Имя в Minecraft:
    AvengeRkaa
    (мемчик) ЗАБРОШЕНО
    Имеет много багов и глюков.
    В том числе и конфликт с mcmmo, дюп опыта через скиллы.
     
  19. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Выложу в этой теме чтоб был на виду переделанный лаунчер spout готовый к привязке к своему серверу обновления (только spotcraft.jar этого достаточно) и для обвязки клиент-сервер.
    Взломанный и готовый к привязке SpoutCraft-Launcher. Актуальная версия на данным момент.

    Utils.class -> Тут ссылка на auth.php файл авторизации.

    RestAPI.class -> Тут ссылки на вебчасть лаунчера.
    Меняем только нужные нам ссылки которые я сменил на localhost.

    Основное обновление идет от Spoutcraft. С веб части идет только скачивание spoutcraft.jar клиента версии 1.5.2. Остальные версии не подключены в файлах-парсерах (качать не будет->ибо ни к чему нам это).

    Дальше идем в
    1) api\info\build\2029\spoutcraft
    Ищем строчку "hash":"f4748fad1d170292db73817c31ba17cf" <-Тут md5 вашего клиента.

    2) api\info\stable\spoutcraft
    Ищем строчку "hash":"f4748fad1d170292db73817c31ba17cf" <-Тут md5 вашего клиента.

    3) api\hash\f4748fad1d170292db73817c31ba17cf <-Меняем имя файла на md5 вашего клиента .
     
  20. AvengeRkaa

    AvengeRkaa Старожил

    Баллы:
    123
    Имя в Minecraft:
    AvengeRkaa
    к слову, можно достаточно легко реализовать методами forge некоторые вещи в spout.
    Те же кастомные блоки не визуально реализовать а нормальным образом
     
    Сникерсни нравится это.
  21. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Зачем все это? Нужно просто написать нормальный плагин. Споут плагин многое может и так, но нету плагинов которые реализует все что требуется. Касательно блоков с ними проблем нету никаких. Нужна генерация руды и деревьев и для инструмента написать правильный код чтоб статы работали, а не как в mo ores. В mo ores есть генерация только руд.
    И кстати тот что в теме в сборке он кривой руду не спавнит. Я для себя рабочий собрал с гитхаба подправил чуток
     

Поделиться этой страницей