Хостинг серверов 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. Mr Hosting
  3. General

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

    Баллы:
    123
    Чувак TC не генерит руды из mo ores так, что для меня всё, что ты написал бессмысленно. Пока TC не будет генерировать блоки хотя бы из mo ores я с места не сдвинусь. Плюс там кирки не работают...
    --- Сообщения объединены: 19 май 2013 ---
    Ланс как-то объединял споут и моды, но это очень геморно.
     
  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 и добавить совместимость.
    --- Сообщения объединены: 20 май 2013, предыдущее сообщение: 20 май 2013 ---
    От сюда вырезать
    Код (Text):
    1. package com.github.Zarklord1.MoOres.Populator;
    2.  
    3. import java.util.Random;
    4.  
    5. import org.bukkit.Chunk;
    6. import org.bukkit.Material;
    7. import org.bukkit.World;
    8. import org.bukkit.generator.BlockPopulator;
    9. import org.getspout.spoutapi.Spout;
    10. import org.getspout.spoutapi.SpoutWorld;
    11. import org.getspout.spoutapi.block.SpoutBlock;
    12. import org.getspout.spoutapi.block.SpoutChunk;
    13.  
    14. import com.github.Zarklord1.MoOres.Custom.Blocks.CustomOres;
    15. import com.github.Zarklord1.MoOres.Util.BlockLoader;
    16.  
    17. public class OresPopulator extends BlockPopulator {
    18.  
    19.     public OresPopulator() {}
    20.  
    21.     @Override
    22.     public void populate(World world, Random random, Chunk chunk) {
    23.         for (CustomOres ore:BlockLoader.customores) {
    24.             for (byte i = 0; i < ore.getVeinsPerChunk(); i++) {
    25.                 final int x = random.nextInt(15);
    26.                 final int y = random.nextInt(ore.getMaxY() - ore.getMinY()) + ore.getMinY();
    27.                 final int z = random.nextInt(15);
    28.                 final int veinSize = random.nextInt(ore.getMaxVeinSize() - ore.getMinVeinSize()) + ore.getMinVeinSize();
    29.                 this.placeObject(world, chunk, x, y, z, veinSize, random, ore);
    30.             }
    31.         }
    32.     }
    33.    
    34.            
    35.     public void placeObject(World world, Chunk chunk, int originX, int originY, int originZ, int clusterSize, Random random, CustomOres ore) {
    36.         final double angle = random.nextDouble() * Math.PI;
    37.         final double x1 = ((originX + 8) + Math.sin(angle) * clusterSize / 8);
    38.         final double x2 = ((originX + 8) - Math.sin(angle) * clusterSize / 8);
    39.         final double z1 = ((originZ + 8) + Math.cos(angle) * clusterSize / 8);
    40.         final double z2 = ((originZ + 8) - Math.cos(angle) * clusterSize / 8);
    41.         final double y1 = (originY + random.nextInt(3) + 2);
    42.         final double y2 = (originY + random.nextInt(3) + 2);
    43.  
    44.         for (int i = 0; i < clusterSize; i++) {
    45.             final double seedX = x1 + (x2 - x1) * i / clusterSize;
    46.             final double seedY = y1 + (y2 - y1) * i / clusterSize;
    47.             final double seedZ = z1 + (z2 - z1) * i / clusterSize;
    48.             final double size = ((Math.sin(i * Math.PI / clusterSize) + 1) * random.nextDouble() * clusterSize / 16 + 1) / 2;
    49.            
    50.             final int startX = (int) (seedX - size);
    51.             final int startY = (int) (seedY - size);
    52.             final int startZ = (int) (seedZ - size);
    53.             final int endX = (int) (seedX + size);
    54.             final int endY = (int) (seedY + size);
    55.             final int endZ = (int) (seedZ + size);
    56.  
    57.             for (int x = startX; x <= endX; x++) {
    58.                 double sizeX = (x + 0.5 - seedX) / size;
    59.                 sizeX *= sizeX;
    60.                
    61.                 if (sizeX < 1) {
    62.                     for (int y = startY; y <= endY; y++) {
    63.                         double sizeY = (y + 0.5 - seedY) / size;
    64.                         sizeY *= sizeY;
    65.                        
    66.                         if (sizeX + sizeY < 1) {
    67.                             for (int z = startZ; z <= endZ; z++) {
    68.                                 double sizeZ = (z + 0.5 - seedZ) / size;
    69.                                 sizeZ *= sizeZ;
    70.                                 if (sizeX + sizeY + sizeZ < 1 && chunk.getBlock(x, y, z).getType() == Material.STONE) {
    71.                                     SpoutChunk chunk1 = (SpoutChunk) chunk;
    72.                                     chunk1.setCustomBlock(x, y, z, ore);
    73.                                 }
    74.                             }
    75.                         }
    76.                     }
    77.                 }
    78.             }
    79.         }
    80.     }
    81. }
     
  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 есть генерация только руд.
    И кстати тот что в теме в сборке он кривой руду не спавнит. Я для себя рабочий собрал с гитхаба подправил чуток
     

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