ShootLib — различия между версиями

м
м
 
(не показаны 3 промежуточные версии этого же участника)
Строка 7: Строка 7:
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 +
<div class="mw-parser-output"><div class="mw-parser-output">
 +
<div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output">
 
<div class="mw-parser-output"><div class="mw-parser-output">
 
== Загрузка ==
 
== Загрузка ==
Строка 67: Строка 69:
 
*Добавлен метод ShootLib.isBullet  
 
*Добавлен метод ShootLib.isBullet  
  
 +
|-
 +
| style="text-align: center;" | '''Beta'''
 +
| style="text-align: center;" | [https://vk.me/join/AJQ1d/qJIhXTUyeYRYZRRC65 Chat in VK]
 +
| &nbsp;
 
|-
 
|-
 
| style="text-align: center;" | '''GitHub'''
 
| style="text-align: center;" | '''GitHub'''
Строка 85: Строка 91:
 
| colspan="2" style="text-align: center;" | '''ScarLxrdsGunMod'''
 
| colspan="2" style="text-align: center;" | '''ScarLxrdsGunMod'''
 
| style="text-align: center;" | [https://icmods.mineprogramming.org/mod?id=394 Подробнее]
 
| style="text-align: center;" | [https://icmods.mineprogramming.org/mod?id=394 Подробнее]
 +
|-
 +
| colspan="2" style="text-align: center;" | '''WolfGunsMod'''
 +
| style="text-align: center;" | [https://icmods.mineprogramming.org/mod?id=397 Подробнее]
 
|}
 
|}
  
 
<br/> '''Если вы используете данную библиотеку, пожалуйста добавляйте ваш мод в список или пишите [https://vk.com/id93821471 мне].'''
 
<br/> '''Если вы используете данную библиотеку, пожалуйста добавляйте ваш мод в список или пишите [https://vk.com/id93821471 мне].'''
</div> </div>
+
</div> </div>
 +
</div>
 +
</div>
  
 
== Условия использования ==
 
== Условия использования ==
Строка 99: Строка 110:
  
 
== Документация ==
 
== Документация ==
 +
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
=== Инициализация ===
 
=== Инициализация ===
  
Для начала испортируйте библиотеку.
+
Для начала импортируйте библиотеку.
 
<pre>IMPORT("ShootLib")</pre>
 
<pre>IMPORT("ShootLib")</pre>
  
Строка 188: Строка 200:
 
*Если&nbsp;image_button,&nbsp;left_handed,&nbsp;loadSoundFile, fire, aim, reload,&nbsp;crosshair и/или&nbsp;crosshairGUI не указаны, то будут назначены стандартные значения.  
 
*Если&nbsp;image_button,&nbsp;left_handed,&nbsp;loadSoundFile, fire, aim, reload,&nbsp;crosshair и/или&nbsp;crosshairGUI не указаны, то будут назначены стандартные значения.  
  
Если вы не собираетесь менять стандартнеы настройки, метод '''ShootLib.init()''' можно не вызывать
+
Если вы не собираетесь менять стандартнеы настройки, метод '''ShootLib.init()''' можно не вызывать </div>
</div>  
+
</div>
 +
 
 
=== Создание боеприпаса ===
 
=== Создание боеприпаса ===
  
Строка 203: Строка 216:
  
 
Для создании нескольких боеприпасов за раз можно использовать&nbsp;'''ShootLib.addAmmos(''ammos'')''', где ''ammos ''- массив&nbsp;объектов описания боеприпасов
 
Для создании нескольких боеприпасов за раз можно использовать&nbsp;'''ShootLib.addAmmos(''ammos'')''', где ''ammos ''- массив&nbsp;объектов описания боеприпасов
 +
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
=== Создание оружия ===
 
=== Создание оружия ===
Строка 218: Строка 232:
 
        meta:0
 
        meta:0
 
    },
 
    },
    shotType:ShotType.NORMAL, //Тип выстрела
+
    shotType:ShootLib.ShotType.NORMAL, //Тип выстрела
    buttonType:ButtonType.CLICK, //Тип кнопки
+
    buttonType:ShootLib.ButtonType.CLICK, //Тип кнопки
 
    bullet:{
 
    bullet:{
 
        speed:10, //Сокрость пули
 
        speed:10, //Сокрость пули
Строка 235: Строка 249:
 
        reload:"reload/LugerReload.ogg" //Звук перезарядки
 
        reload:"reload/LugerReload.ogg" //Звук перезарядки
 
    },
 
    },
    shotgun:{ //Только при gun.shotType:ShotType.SHOTGUN
+
    shotgun:{ //Только при gun.shotType:ShootLib.ShotType.SHOTGUN
 
        count:6, //Кол-во дробинок
 
        count:6, //Кол-во дробинок
 
        degreesSpread:3, //Разброс дроби
 
        degreesSpread:3, //Разброс дроби
Строка 242: Строка 256:
  
 
Для создании нескольких оружий за раз можно использовать&nbsp;'''ShootLib.addGuns(''guns'')''', где ''guns ''- массив&nbsp;объектов описания оружий
 
Для создании нескольких оружий за раз можно использовать&nbsp;'''ShootLib.addGuns(''guns'')''', где ''guns ''- массив&nbsp;объектов описания оружий
 +
</div>
  
<div class="mw-parser-output"><div class="mw-parser-output">
 
 
== Полная документация ==
 
== Полная документация ==
  

Текущая версия на 09:33, 3 января 2020

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

Загрузка[править]

Библиотека
Версия Ссылка Список изменений
1 Подробнее
  • Первая версия
1.1 Скачать
  • Исправлена перезарядка
  • Удалена настройка setting.loadSoundFile
    (Перешли на SoundAPI 2.1)
  • Оружием нельзя ломать блоки
1.2 Скачать
  • Добавлен метод Entity.shot
  • Добавлен параметр (int)gun.bullet.entity = Native.EntityType.ARROW 
  • Добавлен кэлбэк GunsDefined 
  • Исправление GUI прицела(При смене оружия мог остаться)
1.3 Скачать
  • Исправлен конфликт интерфейса с несколькими модами. 
  • Исправлены ошибки 
  • Обновление SoundLib до 2.2
1.4 Скачть
  • Переписан метод инициализации мода 
  • Использование AdvancedEvents 
  • Исправлен графический интерфейс 
  • Исправлена стрельба из дробовика, теперь урон полностью нанесен. 
  • Незначительные исправления 
  • Обновление SoundLib до 2.3
1.5 Скачать
  • Добавлен кэлбэк BulletHit
  • Добавлен кэлбэк ShootGun
  • Добавлен метод ShootLib.isBullet
Beta Chat in VK  
GitHub GitHub  
Модификации
Название  Ссылка
DemoShootLib Подробнее
SuperHeroes Подробнее
ScarLxrdsGunMod Подробнее
WolfGunsMod Подробнее


Если вы используете данную библиотеку, пожалуйста добавляйте ваш мод в список или пишите мне.

Условия использования[править]

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

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

Документация[править]

Инициализация[править]

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

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:ShootLib.ShotType.NORMAL, //Тип выстрела
    buttonType:ShootLib.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:ShootLib.ShotType.SHOTGUN
        count:6, //Кол-во дробинок
        degreesSpread:3, //Разброс дроби
    }
});

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

Полная документация[править]

ShootLib[править]

Методы[править]

Версия Метод Аргументы Описание метода
1 init(object settings) settings - настройки библиотеки Задает настройки библиотеки
1 addGun(object gun) gun - объект описания оружия Добавить оружие
1 addGuns(object[] guns) guns - массив объектов описания оружия Добавить оружия
1 getGun(int gun_id) gun_id - ID предмета Получить объект описания оружия
1 isGun(int gun_id) gun_id - ID предмета Вернет true, если предмет gun_id оружие
1 addAmmo(object ammo) ammo - объект описания боеприпаса Добавить боеприпас
1 addAmmos(object[] ammos) ammos - массив объектов описания боеприпаса Добавить боеприпасы
1 getAmmo(int ammo_id) ammo_id - ID предмета Получить объект описания боеприпаса
1 isAmmo(int ammo_id) ammo_id - ID предмета Вернет true, если предмет ammo_id боеприпас
1.5 isBullet(int entity) entity - сущность Вернет true, если существует и является боеприпасом, иначе вернет false

Константы[править]

Константа Описание Значение
ShotType.SINGLE Выстрел патроном 0
ShotType.NORMAL 0
ShotType.MULTIPLE Выстрел дробью 1
ShotType.SHOTGUN 1
ButtonType.CLICK Нажатие кнопки 1
ButtonType.TOUCH Касание кнопки 2
MAX_DAMAGE Максимальный урон -1
GUN_BITMAP GUI прицел будет принимать ссылку -1

Entity[править]

Методы[править]

Версия Метод Аргументы Описание метода
1.2 shot(Entity entity) entity - сущность, которая должна выстрелить Заставляет моба выстрелить

Callback[править]

Новый callback GunsDefined вызывается после создания всех оружий и боеприпасов

Callback.addCallback("GunsDefined",function(){
    //Например ваши крафты
});

Callback BulletHit вызывается при попадании снаряда во что-нибудь

Callback.addCallback("BulletHit", function(bullet, item, hit){
    /*
    * При попадании снарядом куда-нибудь
    * bullet - сущность пули
    * hit - объект, по которому попали
    */
});

Callback ShootGun срабатывает при выстреле из оружия

Callback.addCallback("ShootGun", function(bullet, item, gun){
    /*
    * При выстреле из оружия
    * bullet - сущность пули
    * item - предмет, из которого был произведен выстрел
    * gun - описание оружия
    */
});