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

м
 
(не показано 25 промежуточных версий этого же участника)
Строка 1: Строка 1:
<div class="mw-parser-output">Soon</div>
+
<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"><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">'''ShootLib '''- Библиотека для создания оружия.</div> <div class="mw-parser-output">Для работы необходима библиотека [[InnerCore/Libs/SoundAPI|SoundAPI]].</div> <div class="mw-parser-output">[https://icmods.mineprogramming.org/mod.php?id=299 Пример] использования ShootLib.</div> <div class="mw-parser-output">&nbsp;</div> <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">
 +
<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">
 +
== Загрузка ==
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 700px;"
 +
|-
 +
| colspan="3" style="text-align: center;" | <span style="font-size:large;">'''Библиотека'''</span>
 +
|-
 +
| style="text-align: center;" | '''Версия'''
 +
| style="text-align: center;" | '''Ссылка'''
 +
| style="text-align: center;" | '''Список изменений'''
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | [https://vk.com/wall-80513593_2128 Подробнее]
 +
|
 +
*Первая версия
 +
 
 +
|-
 +
| style="text-align: center;" | '''1.1'''
 +
| style="text-align: center;" | [https://vk.com/wall-80513593_2130 Скачать]
 +
|
 +
*Исправлена перезарядка
 +
*Удалена настройка setting.loadSoundFile<br/> (Перешли на [[InnerCore/Libs/SoundAPI|SoundAPI 2.1]])
 +
*Оружием нельзя ломать блоки
 +
 
 +
|-
 +
| style="text-align: center;" | '''1.2'''
 +
| style="text-align: center;" | [https://vk.com/wall-80513593_2143 Скачать]
 +
|
 +
*Добавлен метод Entity.shot
 +
*Добавлен параметр (int)gun.bullet.entity = Native.EntityType.ARROW&nbsp;
 +
*Добавлен кэлбэк GunsDefined&nbsp;
 +
*Исправление GUI прицела(При смене оружия мог остаться)
 +
 
 +
|-
 +
| style="text-align: center;" | '''1.3'''
 +
| style="text-align: center;" | [https://vk.com/wall-80513593_2147 Скачать]
 +
|
 +
*Исправлен конфликт интерфейса с несколькими модами.&nbsp;
 +
*Исправлены ошибки&nbsp;
 +
*Обновление SoundLib до 2.2
 +
 
 +
|-
 +
| style="text-align: center;" | '''1.4'''
 +
| style="text-align: center;" | [https://vk.com/wall-80513593_2159 Скачть]
 +
|
 +
*Переписан метод инициализации мода&nbsp;
 +
*Использование [https://vk.com/wall-80513593_2155 AdvancedEvents]&nbsp;
 +
*Исправлен графический интерфейс&nbsp;
 +
*Исправлена стрельба из дробовика, теперь урон полностью нанесен.&nbsp;
 +
*Незначительные исправления&nbsp;
 +
*Обновление SoundLib до 2.3
 +
 
 +
|-
 +
| style="text-align: center;" | '''1.5'''
 +
| style="text-align: center;" | [https://vk.com/wall-80513593_2243 Скачать]
 +
|
 +
*Добавлен кэлбэк BulletHit
 +
*Добавлен кэлбэк ShootGun
 +
*Добавлен метод 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;" | [https://github.com/Wolf-Team/Libraries/blob/master/ShootLib.js GitHub]
 +
| &nbsp;
 +
|-
 +
| colspan="3" style="text-align: center;" | <span style="font-size:large;">'''Модификации'''</span>
 +
|-
 +
| colspan="2" rowspan="1" style="text-align: center;" | '''Название'''
 +
| style="text-align: center;" | '''&nbsp;Ссылка'''
 +
|-
 +
| colspan="2" style="text-align: center;" | '''DemoShootLib'''
 +
| style="text-align: center;" | [https://icmods.mineprogramming.org/mod?id=299 Подробнее]
 +
|-
 +
| colspan="2" style="text-align: center;" | '''SuperHeroes'''
 +
| style="text-align: center;" | [https://icmods.mineprogramming.org/mod?id=327 Подробнее]
 +
|-
 +
| colspan="2" style="text-align: center;" | '''ScarLxrdsGunMod'''
 +
| 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 мне].'''
 +
</div> </div>
 +
</div>
 +
</div>
 +
 
 +
== Условия использования ==
 +
 
 +
*Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество
 +
*Запрещено изменение кода библиотеки
 +
*Запрещено явное копирование кода в другие библиотеки или моды&nbsp;
 +
 
 +
Используя данный продукт&nbsp;вы автоматически соглашаетесь с этими правилами
 +
 
 +
== Документация ==
 +
<div class="mw-parser-output">
 +
<div class="mw-parser-output">
 +
=== Инициализация ===
 +
 
 +
Для начала импортируйте библиотеку.
 +
<pre>IMPORT("ShootLib")</pre>
 +
 
 +
Далее задаем настройки
 +
<syntaxhighlight lang="JavaScript">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 не доступен,
 +
                                //используйте свои способы нахождения высоты и ширины экрана
 +
            }
 +
        }
 +
    }
 +
});</syntaxhighlight>
 +
 
 +
*Если в&nbsp;image_button и/или&nbsp;left_handed указана строка, то значение будет браться из config.json
 +
*Если&nbsp;image_button,&nbsp;left_handed,&nbsp;loadSoundFile, fire, aim, reload,&nbsp;crosshair и/или&nbsp;crosshairGUI не указаны, то будут назначены стандартные значения.
 +
 
 +
Если вы не собираетесь менять стандартнеы настройки, метод '''ShootLib.init()''' можно не вызывать </div>
 +
</div>
 +
 
 +
=== Создание боеприпаса ===
 +
 
 +
Для создания боеприпаса нужно вызвать метод '''ShootLib.addAmmo(''ammo'')''', где ''ammo'' - объект описания боеприпаса
 +
<syntaxhighlight lang="JavaScript">ShootLib.addAmmo({
 +
    id:"ammohandgun", //Строковый ID
 +
    name:"Handgun Ammo", //Название боеприпаса
 +
    texture:{ //Текстура
 +
        name:"ammohandgun",
 +
        meta:0
 +
    }
 +
});</syntaxhighlight>
 +
 
 +
Для создании нескольких боеприпасов за раз можно использовать&nbsp;'''ShootLib.addAmmos(''ammos'')''', где ''ammos ''- массив&nbsp;объектов описания боеприпасов
 +
<div class="mw-parser-output">
 +
<div class="mw-parser-output">
 +
=== Создание оружия ===
 +
 
 +
Для создания оружия&nbsp;нужно вызвать метод '''ShootLib.addGun(''gun'')''', где ''gun'''''<i>&nbsp;</i>'''- объект описания оружия
 +
<syntaxhighlight lang="JavaScript">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, //Разброс дроби
 +
    }
 +
});</syntaxhighlight>
 +
 
 +
Для создании нескольких оружий за раз можно использовать&nbsp;'''ShootLib.addGuns(''guns'')''', где ''guns ''- массив&nbsp;объектов описания оружий
 +
</div>
 +
 
 +
== Полная документация ==
 +
 
 +
=== ShootLib ===
 +
 
 +
<div class="mw-parser-output">
 +
==== Методы ====
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 +
|-
 +
| style="text-align: center;" | '''Версия'''
 +
| style="text-align: center;" | '''Метод'''
 +
| style="text-align: center;" | '''Аргументы'''
 +
| style="text-align: center;" | '''Описание метода'''
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | init(object settings)
 +
| style="text-align: center;" | settings - настройки библиотеки
 +
| style="text-align: center;" | Задает настройки библиотеки
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | addGun(object gun)
 +
| style="text-align: center;" | gun - объект описания оружия
 +
| style="text-align: center;" | Добавить оружие
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | addGuns(object[] guns)
 +
| style="text-align: center;" | guns - массив объектов описания оружия
 +
| style="text-align: center;" | Добавить оружия
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | getGun(int gun_id)
 +
| style="text-align: center;" | gun_id - ID предмета
 +
| style="text-align: center;" | Получить объект описания оружия
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | isGun(int gun_id)
 +
| style="text-align: center;" | gun_id - ID предмета
 +
| style="text-align: center;" | Вернет true, если предмет gun_id оружие
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | addAmmo(object ammo)
 +
| style="text-align: center;" | ammo - объект описания боеприпаса
 +
| style="text-align: center;" | Добавить боеприпас
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | addAmmos(object[] ammos)
 +
| style="text-align: center;" | ammos - массив объектов описания боеприпаса
 +
| style="text-align: center;" | Добавить боеприпасы
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | getAmmo(int ammo_id)
 +
| style="text-align: center;" | ammo_id - ID предмета
 +
| style="text-align: center;" | Получить объект описания боеприпаса
 +
|-
 +
| style="text-align: center;" | '''1'''
 +
| style="text-align: center;" | isAmmo(int ammo_id)
 +
| style="text-align: center;" | ammo_id - ID предмета
 +
| style="text-align: center;" | Вернет true, если предмет ammo_id боеприпас
 +
|-
 +
| style="text-align: center;" | '''1.5'''
 +
| style="text-align: center;" | isBullet(int entity)
 +
| style="text-align: center;" | entity - сущность
 +
| style="text-align: center;" | Вернет true, если существует и является боеприпасом, иначе вернет false
 +
|}
 +
</div>
 +
 
 +
==== Константы ====
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;"
 +
|-
 +
| '''Константа'''
 +
| '''Описание'''
 +
| '''Значени'''е
 +
|-
 +
| ShotType.SINGLE
 +
| colspan="1" rowspan="2" | Выстрел патроном
 +
| 0
 +
|-
 +
| ShotType.NORMAL
 +
| 0
 +
|-
 +
| ShotType.MULTIPLE
 +
| colspan="1" rowspan="2" | Выстрел дробью
 +
| 1
 +
|-
 +
| ShotType.SHOTGUN
 +
| 1
 +
|-
 +
| ButtonType.CLICK
 +
| Нажатие кнопки
 +
| 1
 +
|-
 +
| ButtonType.TOUCH
 +
| Касание кнопки
 +
| 2
 +
|-
 +
| MAX_DAMAGE
 +
| Максимальный урон
 +
| -1
 +
|-
 +
| GUN_BITMAP
 +
| GUI прицел будет принимать ссылку
 +
| -1
 +
|}
 +
 
 +
=== Entity ===
 +
 
 +
==== Методы ====
 +
 
 +
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
 +
|-
 +
| style="text-align: center;" | '''Версия'''
 +
| style="text-align: center;" | '''Метод'''
 +
| style="text-align: center;" | '''Аргументы'''
 +
| style="text-align: center;" | '''Описание метода'''
 +
|-
 +
| style="text-align: center;" | '''1.2'''
 +
| style="text-align: center;" | shot(Entity entity)
 +
| style="text-align: center;" | entity - сущность, которая должна выстрелить
 +
| style="text-align: center;" | Заставляет моба выстрелить
 +
|}
 +
 
 +
<div class="mw-parser-output">
 +
<div class="mw-parser-output">
 +
=== Callback ===
 +
 
 +
Новый callback GunsDefined вызывается после создания всех оружий и боеприпасов
 +
<syntaxhighlight lang="JavaScript">Callback.addCallback("GunsDefined",function(){
 +
   //Например ваши крафты
 +
});</syntaxhighlight>
 +
 
 +
Callback BulletHit вызывается при попадании снаряда во что-нибудь
 +
<syntaxhighlight lang="JavaScript">Callback.addCallback("BulletHit", function(bullet, item, hit){
 +
    /*
 +
    * При попадании снарядом куда-нибудь
 +
    * bullet - сущность пули
 +
    * hit - объект, по которому попали
 +
    */
 +
});</syntaxhighlight>
 +
 
 +
Callback ShootGun срабатывает при выстреле из оружия
 +
<syntaxhighlight lang="JavaScript">Callback.addCallback("ShootGun", function(bullet, item, gun){
 +
    /*
 +
    * При выстреле из оружия
 +
    * bullet - сущность пули
 +
    * item - предмет, из которого был произведен выстрел
 +
    * gun - описание оружия
 +
    */
 +
});</syntaxhighlight>
 +
 
 +
&nbsp;
 +
</div>

Текущая версия на 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 - описание оружия
    */
});