Страница 8 из 11 ПерваяПервая ... 678910 ... ПоследняяПоследняя
Показано с 71 по 80 из 110

Тема: Помощь c плагинами(JS)

  1. #71
    Познающий Аватар для KARAKURT
    Информация о пользователе
    Регистрация
    11.05.2008
    Сообщений
    290
    Записей в дневнике
    5
    Репутация: 8 Добавить или отнять репутацию

    По умолчанию

    Есть такая компиляция плагинов Olivia_OctoBattle.

    Так вот, та часть которая отвечает за результаты боя (Победа) не полностью работает на мобильных устройствах, а именно тач ввод.
    Чтобы нажать на кнопку нужно X или Z, но на смартфоне не нажать.



    Как я понял в коде за это отвечают
    6676, 6682, 7034 строчка, может еще что, но я не программист в этом ничего не понимаю.

    Подскажите, можно ли ввести небольшие правки или это все переписывать надо и плагин не будет работать на мобильных устройствах.



    Плагин


    СПАСИБО, ВОПРОС РЕШЕН.
    Последний раз редактировалось KARAKURT; 19.09.2018 в 08:59.

  2. #72
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,776
    Записей в дневнике
    34
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    Если в этих строчках указана кнопка Z/X замени ее на кнопку С, это и есть тач. Но плагин я не смотрел, так что сделай его копию на всякий.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  3. #73
    Познающий Аватар для KARAKURT
    Информация о пользователе
    Регистрация
    11.05.2008
    Сообщений
    290
    Записей в дневнике
    5
    Репутация: 8 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Paranoid Посмотреть сообщение
    Если в этих строчках указана кнопка Z/X замени ее на кнопку С, это и есть тач. Но плагин я не смотрел, так что сделай его копию на всякий.
    Спасибо, уже решил. Главное, что когда в первый раз сделал, ничего не работало, потом еще раз сделал и заработало. Магия одним словом.

    Зато появилась новая проблема.

    Теперь не могу его подружить с Summon Core SumRndmDde.


    Cannot read property `name` of undefined
    Последний раз редактировалось KARAKURT; 19.09.2018 в 09:21.

  4. #74
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    И так. Может кто помочь с прикрутке к Array функции Every или может без нее както можно обойтись. Цель сделать являются ли все элементы массива определенному значению.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  5. #75
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Alexandr_7 Посмотреть сообщение
    И так. Может кто помочь с прикрутке к Array функции Every или может без нее както можно обойтись. Цель сделать являются ли все элементы массива определенному значению.
    Обошелся без Every
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  6. #76
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Снова задаю вопрос. Даже нге знаю как выразить. Короче хочу сделать один плагин. Чисто для проекта куда хочу включить необходимые мне функции.
    К слову плагины уже делал но вот реализацию своих функций в плагине я делал иначе.
    Вот пример такого плагина:
    Код:
    //=============================================================================
    // AScripts.js
    //=============================================================================
     
    /*:ru
     * @plugindesc AScripts Версия v1.1-b Дополнительные скрипты
     * @author Alexandr_7
     * @help
     Здравствуйте. Данный плагин будет содержать дополнительные скрипты для облегчения работы. Плагин распространяется бесплатно для комерческого и некомерческого использования.
     
     Сразу скажу что запрещено чужие скрипты выдавать за свои. И еще просьба тем кому не лень добавлять сюда свои скрипты. Можно добавлять любые скрипты которые могут облечить работу с JavaScript например уменьшить очень длинные скрипты.
     
     Вызов скриптов:
     AScripts.СКРИПТ
     Где СКРИПТ 	это скрипт который хотим вызвать.
     
     Скрипты добавленные Alexandr_7:
     getRandomInRange(min, max) - Пример AScripts.getRandomInRange(10, 20) (Вернет от 10 до 20 включительно) Получения рандомного числа от и до включая минимальное и максимальное.
     coinToss() - Пример AScripts.coinToss() (Вернет 0 или 1) Получения рандомного числа 0 или 1
     coinTossBool() - Пример AScripts.coinTossBool() (Вернет true или false) Получения рандомно true или false
     
     Облегченые версии скрипта $gameSelfSwitches.value(key). В них не нужно указывать ИД карты. Только ИД события и булевое значение:
     
     gameOnMapSetSelfSwitches(ИД События, Локальный переключатель ('A-D'), true или false); - Пример AScripts.gameOnMapSetSelfSwitches(1, 'A', true); Аналогично как $gameSelfSwitches.setValue([$gameMap.mapId(), 1, 'A'], true);
     
     gameOnMapGetSelfSwitches(ИД События, Локальный переключатель ('A-D')); - Пример AScripts.gameOnMapGetSelfSwitches(1, 'A'); (Вернет значение локального переключателя A у события) Аналогично как $gameSelfSwitches.value([$gameMap.mapId(), 1, 'A']);
     
     gameOnMapSetArraySelfSwitches(ИД События Начало, ИД События Конец, Локальный переключатель ('A-D'), true или false) - Пример AScripts.gameOnMapSetArraySelfSwitches(1, 5, 'A', true); Аналогично:
    	for (var i = 1; i <= 6; i++) {
    		$gameSelfSwitches.setValue([$gameMap.mapId(), i, 'A'], true);
    	}
     
     gameOnMapGetArraySelfSwitches(ИД События Начало, ИД События Конец, Локальный переключатель ('A-D')) - Пример AScripts.gameOnMapGetArraySelfSwitches(1, 5, 'A', false); (Вернет истину если у всех ивентов от 1 до 5 локальный переключятель A выключен)
     
     */
     
    class AScripts 
    {
    	static getRandomInRange(min, max) 
    	{
    		return Math.floor(Math.random() * (max - min + 1)) + min;
    	}
     
    	static coinToss() 
    	{
    		return Math.floor(Math.random() * 2);
    	}
     
    	static coinTossBool() 
    	{
    		return (Math.floor(Math.random() * 2) === 0);
    	}
     
    	static gameOnMapSetSelfSwitches(aIDEvent, aSelfSwitch, aBool) {
    		var key = [$gameMap.mapId(), aIDEvent, aSelfSwitch];
    		$gameSelfSwitches.setValue(key, aBool);
    	}
     
    	static gameOnMapSetArraySelfSwitches(aIDEventStart, aIDEventStop, aSelfSwitch, aBool) {
    		var key;
    		for (var i = aIDEventStart; i <= aIDEventStop; i++){
    			key = [$gameMap.mapId(), i, aSelfSwitch];
    			$gameSelfSwitches.setValue(key, aBool);
    		}
    	}
     
    	static gameOnMapGetSelfSwitches(aIDEvent, aSelfSwitch) {
    		var key = [$gameMap.mapId(), aIDEvent, aSelfSwitch];
    		return $gameSelfSwitches.value(key);
    	}
     
    	static gameOnMapGetArraySelfSwitches(aIDEventStart, aIDEventStop, aSelfSwitch, aIsSelfSwitchs) {
     
    		isSelfSwitches = new function(element, index, array){
    			return element === aIsSelfSwitchs;
    		}
     
    		var key;
    		var arr = new Array();
    		var idx = 0;
    		for (var i = aIDEventStart; i <= aIDEventStop; i++){
    			key = [$gameMap.mapId(), i, aSelfSwitch];
    			arr[idx] = $gameSelfSwitches.value(key);
    			idx++;
    		}
     
    		return arr.every(isSelfSwitches);
    	}
    }
    Не много иной формат. Вот и возник вопрос как реализовывать свои функции в формате плагинов MV?
    Также хотелось узнать как скрипты из 1 плагина использовать в другом?
    Последний раз редактировалось Alexandr_7; 11.10.2019 в 22:01.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  7. #77
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    И так. Здравствуйте. Вместе с DK написали плагин. Но он все равно работает неправильно
    Код:
    AL7.getRandomInRange = function (min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    Код:
    /*:
     * @plugindesc AL7_DropItems
     * @author Alexandr_7, DK
     * @target MZ
     * 
     * @param coreDropItems
     * @text Drop Items
     * @desc Drop Items
     * @type struct<sDropItem>[]
     * 
     * @param coreDropWeapons
     * @text Drop Weapons
     * @desc Drop Weapons
     * @type struct<sDropWeapon>[]
     * 
     * @param coreDropArmors
     * @text Drop Armor
     * @desc Drop Armor
     * @type struct<sDropArmor>[]
     * 
     * @command setDrops
     * @text Set Drop Items
     * @desc Set Drop Items
     * 
     * @arg dropItems
     * @text Drop Items
     * @desc Drop Items
     * @type struct<sDropItem>[]
     * 
     * @arg dropWeapons
     * @text Drop Weapons
     * @desc Drop Weapons
     * @type struct<sDropWeapon>[]
     * 
     * @arg dropArmors
     * @text Drop Armor
     * @desc Drop Armor
     * @type struct<sDropArmor>[]
     * 
     * @command getItems
     * @text Get Items
     * @desc Get Items
     * 
     */
    
    /*~struct~sDropItem:
     * @param item
     * @text Iitem
     * @desc Iitem
     * @type item
     * 
     * @param dropProbability
     * @text Drop probability
     * @desc Drop probability (0 to 100)
     * @type number
     * @min 0
     * @max 100
     * 
     * @param countDropMin
     * @text Count Drop Min
     * @desc Count Drop Min
     * @min 1
     * 
     * @param countDropMax
     * @text Count Drop Max
     * @desc Count Drop Max
     * @min 1
     * 
     * @param timeDrop
     * @text Time Drop
     * @desc Time Drop
     * @min 0
     * 
     */
    
     /*~struct~sDropWeapon:
     * @param weapon
     * @text Weapon
     * @desc Weapon
     * @type weapon
     * 
     * @param dropProbability
     * @text Drop probability
     * @desc Drop probability (0 to 100)
     * @type number
     * @min 0
     * @max 100
     * 
     * @param countDropMin
     * @text Count Drop Min
     * @desc Count Drop Min
     * @min 1
     * 
     * @param countDropMax
     * @text Count Drop Max
     * @desc Count Drop Max
     * @min 1
     * 
     * @param timeDrop
     * @text Time Drop
     * @desc Time Drop
     * @min 0
     * 
     */
    
     /*~struct~sDropArmor:
     * @param armor
     * @text Armor
     * @desc Armor
     * @type armor
     * 
     * @param dropProbability
     * @text Drop probability
     * @desc Drop probability (0 to 100)
     * @type number
     * @min 0
     * @max 100
     * 
     * @param countDropMin
     * @text Count Drop Min
     * @desc Count Drop Min
     * @min 1
     * 
     * @param countDropMax
     * @text Count Drop Max
     * @desc Count Drop Max
     * @min 1
     * 
     * @param timeDrop
     * @text Time Drop
     * @desc Time Drop
     * @min 0
     * 
     */
    
    var Imported = Imported || {};
    Imported.AL7_DropItems;
    
    if (Imported.AL7_Core === false) {
        throw new Error('No plugin "AL7_Core"! Plugin "AL7_DropItems" will not work!');
    }
    
    AL7.DropItems = AL7.DropItems || {};
    AL7.DropItems.version = 1;
    
    AL7.DropItems.param = AL7.AL7PluginManager('AL7_DropItems');
    
    AL7.DropItems.allItems = null;
    
    AL7.DropItems.concatAllItems = function () {
        AL7.DropItems.param.coreDropItems.forEach(item => { item.type = 'item';});
        AL7.DropItems.param.coreDropWeapons.forEach(item => { item.type = 'weapon';});
        AL7.DropItems.param.coreDropArmors.forEach(item => { item.type = 'armor';});
        AL7.DropItems.allItems = AL7.DropItems.param.coreDropItems.concat(AL7.DropItems.param.coreDropWeapons, AL7.DropItems.param.coreDropArmors);
    }
    
    AL7.DropItems.concatAllItems();
    
    PluginManager.registerCommand("AL7_DropItems", "setDrops", args => {
        AL7.DropItems.param.coreDropItems = AL7.JSONParse(args.dropItems);
        AL7.DropItems.param.coreDropWeapons = AL7.JSONParse(args.dropWeapons);
        AL7.DropItems.param.coreDropArmors = AL7.JSONParse(args.dropArmors);
        AL7.DropItems.concatAllItems();
    });
    
    PluginManager.registerCommand("AL7_DropItems", "getItems", args => {
        let num = AL7.getRandomInRange(0, 100);
        let listItems = AL7.DropItems.allItems.filter(item => (100 - item.dropProbability) >= num);
        let rndItem = listItems[AL7.getRandomInRange(0, (listItems.length - 1))];
        var countItem = AL7.getRandomInRange(rndItem.countDropMin, rndItem.countDropMax);
        switch (rndItem.type) {
            case 'item':
                $gameParty.gainItem($dataItems[rndItem.item], countItem, false);
                $gameMessage.setSpeakerName('Предмет');
                $gameMessage.setBackground(0);
                $gameMessage.setPositionType(1);
                $gameMessage.add('Найден предмет: \\c[17]\'\\c[1]' + $dataItems[rndItem.item].name + '\\c[17]\' \\c[2]+ \\c[14]' +  String(countItem) + ' \\c[0]ед.');
                break;
            case 'weapon':
                $gameParty.gainItem($dataWeapons[rndItem.weapon], countItem, false);
                $gameMessage.setSpeakerName('Оружие');
                $gameMessage.setBackground(0);
                $gameMessage.setPositionType(1);
                $gameMessage.add('Найдено оружие: \\c[17]\'\\c[1]' + $dataWeapons[rndItem.weapon].name + '\\c[17]\' \\c[2]+ \\c[14]' +  String(countItem) + ' \\c[0]ед.');
                break;
            case 'armor':
                    $gameParty.gainItem($dataArmors[rndItem.armor], countItem, false);
                    $gameMessage.setSpeakerName('Броня');
                    $gameMessage.setBackground(0);
                    $gameMessage.setPositionType(1);
                    $gameMessage.add('Найдена броня: \\c[17]\'\\c[1]' + $dataArmors[rndItem.armor].name + '\\c[17]\' \\c[2]+ \\c[14]' +  String(countItem) + ' \\c[0]ед.');
                    break;
        }
    });
    Но все роавнол выпадает рандомно. Точнее мне и нужно рандомно но по вероятности чтобы некоторые предметы выпадали чаще чем другие. Видать отсеивание особо не помогает достичь этого к томуже иногда еще и ошибка происходит вот на этой строчке:
    var countItem = AL7.getRandomInRange(rndItem.countDropMin, rndItem.countDropMax);
    И не могу отловить. Ошибюка говорит что значение countDropMin не определенно а в командах оно везде определенно. Возможно выходит ситуация что сам rndItem не определенным выходит если отсеивание про исходит так что вообще предметов не остается но по идеи ошибка тогда должна быть здесь:
    let rndItem = listItems[AL7.getRandomInRange(0, (listItems.length - 1))];
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  8. #78
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    И так. Объясню почему через плагин.
    Во 1 предметы идут хаотично так как некоторые сюжетные а некоторые игровые
    Во 2 предметов расчитывается много и добавлятся будут по мере необходимости
    В 3 предметы это не только сами предметы это еще и броня и оружие.
    В 4 сильно затрано под каждый предмет выделять переменную. Это что 200 предметов и 200 переменных. Легче поместить нужные предметы в список или массив структур если быть точным и уже через код объеденить массивы структур в 1 и делать дроп.

    Но повторюсь я не силен в математике и теорию вероятностей я не знаю. А делается такая система дропа где некоторые предметы выпадают чаще некоторые реже а некоторые так вообще шанс получиьть 1 на милион. Такая система более распространенная в rpg играх и надеюсь есть знающие js и математикку чтобы это сделать. JS я и сам знаю немного но достаточно так что полностью за меня писать не надо. Просто помочь написать плагин.

    Вообще можно сделать на подобие этой сисмтемы:

    Снимок экрана 2020-09-19 183325.png

    Тоесть мы объеденяем структуры с предметами (Уже сделал) дальше мы сортируем по вероятности от меньшего к большему.
    Дальше мы просто начинаем от конца массива к началу используя систему вероятности как это сделано в мейкере. Но я не знаю как такая система работает в мейкере.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  9. #79
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,412
    Записей в дневнике
    105
    Репутация: 87 Добавить или отнять репутацию

    По умолчанию

    Движок: RPG maker MV
    Задача: нужно сделать так, чтобы скил мог использоваться, только если на персонаже висит определённый статус.
    Проблема: это позволяет сделать плагин янфлая Skill Core, но! Эта возможность требует знания js. Пример кастомного условия в описании скрипта таков:

    <Custom Requirement>
    if ($gameParty.gold() > 1000) {
    value = true;
    } else {
    value = false;
    }
    </Custom Requirement>

    Жирным выделено само условие. Каким оно должно быть, чтобы скил можно было использовать только если на персонаже висит определённый статус?
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  10. #80

    По умолчанию

    всмысле чтобы скил был доступен в бою только при наличии конкретного статуса? а ля пьяный мастер - пока не выпьет не мастерит?

Страница 8 из 11 ПерваяПервая ... 678910 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Помощь c плагинами(JS)