ShootLib

ShootLib - Библиотека для создания оружия.
Для работы необходима библиотека SoundAPI.
Пример использования ShootLib.
 

Загрузка

Библиотека
Версия Ссылка Список изменений
1 Подробнее
  • Первая версия
1.1 Скачать
  • Исправлена перезарядка
  • Удалена настройка setting.loadSoundFile
    (Перешли на SoundAPI 2.1)
  • Оружием нельзя ломать блоки
1.2 Скачать
  • Добавлен метод Entity.shot
  • Добавлен параметр (int)gun.bullet.entity = Native.EntityType.ARROW 
  • Добавлен кэлбэк GunsDefined 
  • Исправление GUI прицела(При смене оружия мог остаться)
GitHub GitHub  
Модификации
Название  Ссылка
DemoShootLib [1.1.0] Подробнее

Условия использования

  • Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество
  • Запрещено изменение кода библиотеки
  • Запрещено явное копирование кода в другие библиотеки или моды 

Используя данный продукт вы автоматически соглашаетесь с этими правилами

Документация

Инициализация

Для начала испортируйте библиотеку.

IMPORT("ShootLib")

Далее задаем настройки

ShootLib.init({ //В данном объекте предаставлены стандартные значения
    image_button:true, //Графические кнопки
    left_handed:false, //Режим левши
    fire:{ //Настройки кнопки выстрела
        text:{ //Объект текста
            content:"FIRE", //Содержимое текста
            size:18 //Размер текста
        },
        bitmap:{ //Объект графики
            name:"ui", //Имя битмапа в папке gui/ (Смотрите ваш build.config)
            coords:{ //Координаты битмапа
                x:544, //Начальная координата X
                y:0, //Начальная координата Y
                width:544, //Ширина битмапа
                height:544 //Высота битмапа
            },
            size:{ //Размер объекта в юнитах
                width:90, //Ширина объекта
                height:90 //Высота объекта
            }
        }
    },
    aim:{ //Настройки кнопки прицеливания(Те же объекты, что и fire)
        text:{
            content:"AIM",
            size:18
        },
        bitmap:{
            name:"ui",
            coords:{
                x:0,
                y:0,
                width:544,
                height:544
            },
            size:{
                width:90,
                height:90
            }
        }
    },
    crosshair:{ //Настройки прицела(Те же объекты, что и fire)
        bitmap:{
            name:"ui",
            coords:{
                x:1088,
                y:0,
                width:64,
                height:64
            },
            size:{
                width:90,
                height:90
            }
        }
    },
    reload:{ //Настройки кнопки перезарядки(Те же объекты, что и fire)
        text:{
            content:"8/8",
            size:16
        }
    },
    crosshairGUI:{ //Настройки прицела для оружий с gun.fov.link(Те же объекты, что и fire)
        bitmap:{
            name:ShootLib.GUN_BITMAP, //ShootLib.GUN_BITMAP означает, что будет отображать принимаемую ссылку, можете выставить свой прицел
            coords:{
                x:0,
                y:0,
                width:1024,
                height:1024
            },
            size:{
                width:1000 * GUI.height/GUI.width //!! Объект GUI не доступен, 
                                //используйте свои способы нахождения высоты и ширины экрана
            }
        }
    }
});
  • Если в image_button и/или left_handed указана строка, то значение будет браться из config.json
  • Если image_button, left_handed, loadSoundFile, fire, aim, reload, crosshair и/или crosshairGUI не указаны, то будут назначены стандартные значения.

Если вы не собираетесь менять стандартнеы настройки, метод ShootLib.init() можно не вызывать

Создание боеприпаса

Для создания боеприпаса нужно вызвать метод ShootLib.addAmmo(ammo), где ammo - объект описания боеприпаса

ShootLib.addAmmo({
    id:"ammohandgun", //Строковый ID
    name:"Handgun Ammo", //Название боеприпаса
    texture:{ //Текстура
        name:"ammohandgun",
        meta:0
    }
});

Для создании нескольких боеприпасов за раз можно использовать ShootLib.addAmmos(ammos), где ammos - массив объектов описания боеприпасов

Создание оружия

Для создания оружия нужно вызвать метод ShootLib.addGun(gun), где gun - объект описания оружия

ShootLib.addGun({
    id:"deserteagle", //Строковый ID
    name:"Desert Eagle", //Название оружия
    ammo:"ammohandgun", //ID боеприпаса, которым стреляет оружие
    accuracy:6, //Разброс
    recoil:4, //Отдача
    rate:5, //Скорострельность (Кол-во выстрелов в 20 тиков)
    texture:{ //Текстура
        name:"deserteagle",
        meta:0
    },
    shotType:ShotType.NORMAL, //Тип выстрела
    buttonType:ButtonType.CLICK, //Тип кнопки
    bullet:{
        speed:10, //Сокрость пули
        count:7, //Кол-во пуль в магазине
        entity:Native.EntityType.ARROW,//Сущность, которой стреляет оружие, по стандарту Native.EntityType.ARROW
        damage:20 //Урон
    },
    fov:{
        level:10, // Уровень приближения
        //link:"crosshair/dragunov" //Файл GUI прицела. Не обязательный параметр
    },
    sounds:{
        shot:"DesertEagleShoot.ogg", //Звук выстрела
        empty:"EmptyGun.mp3", //Звук выстрела без боеприпасов
        reload:"reload/LugerReload.ogg" //Звук перезарядки
    },
    shotgun:{ //Только при gun.shotType:ShotType.SHOTGUN
        count:6, //Кол-во дробинок
        degreesSpread:3, //Разброс дроби
    }
});

Для создании нескольких оружий за раз можно использовать ShootLib.addGuns(guns), где guns - массив объектов описания оружий

Все методы