Войти на сайт

Авторизация, ждите ...
×
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5

ТЕМА: Переменные, простые скрипты, функции rpg maker MV

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100814

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1667
  • Спасибо получено: 2641
  • КомпозиторОрганизатор конкурсов1 место в Готв2 место УчительОратор3 место ГотвПобедитель конкурса
Для начинающих программистов-мукеристов rpg maker MV. То, чего нет в списке "простых скриптов" или что не очень понятно.
Плюс несколько функций. Вдруг кому пригодится.

Проверка равенства переменной определенным числам:
[1, 2, 3, 4].contains($gameVariables.value(ИД))
Проверка наличия тега в заметке в предмете в БД:
$dataItems[ИД].note.contains('тег')
проверка наличия тега в заметке во вкладке "противники" в БД:
$dataEnemies[ИД].note.contains('тег')
проверка наличия тега в заметке в оружии в БД:
$dataWeapons[ИД].note.contains('тег')
проверка наличия тега в заметке в во вкладке "броня" БД:
$dataArmors[ИД].note.contains('тег')
возвращения свойства тега в заметке в во вкладке "оружие" в БД:
$dataWeapons[ИД].meta.тег
При этом в заметке тег должен быть в треугольных скобках, а его свойство должно идти после двоеточия:
<тег: свойство>
возвращает ИД слота Экипировки, где IDslot - ID слота экипировки (0-оружие, 1- щит, 2- голова и т.д.)
$gameParty.leader().equips()[IDslot]
индекса чарсета лидера партии:
$gameParty.leader()._characterIndex;
имя чарсета лидера партии:
$gameParty.leader()._characterName;
Смена графики лидера партии. Не забудьте обновить ее, добавив второй строчкой "рефреш".
$gameParty.leader().setCharacterImage('Actor1', 7);
$gamePlayer.refresh();
Для того, чтобы проверить экипировку, имя чарсета и т.д. не лидера а 2-4 члена партии, следует заменить в вышеизложенных кодах $gameParty.leader() на:
$gameParty.members()[ИД]
Перед этим лучше вставить проверку на существования этого члена партии:
$gameParty.members()[ИД]!=undefined
имя события:
$gameMap.event(ИД).event().name.contains('имя')
заметка события:
$gameMap.event(ИД).event().note.contains('имя')
проверка существования события:
$dataMap.events[id]==null
телепорт события:
$gameMap.event(ИД).setPosition(x, y)
смена локального переключателя на "D" события на текущей карте :
$gameSelfSwitches.value([$gameMap.mapId(), ИД, 'D'], true)
телепорт события в координату игрока:
$gameMap.event(ИД).setPosition($gamePlayer.x, $gamePlayer.y)
Пауза которую можно вызвать в функции. Вторая функция будет вызвана с задержкой в 300 милисекунд.
setTimeout(function() {функция2()}, 300);

Возвращение наличия определенного комментария на текущей странице события с нужным ID. Возвращает true или false.
Код проверки:
$gameMap.processCommentTag(ID, 'комментарий')
Сама функция.
Game_Map.prototype.processCommentTag = function (id, tag) { 
	var eventID = $gameMap.event(id);
	var list = eventID.page().list; 
	for (var i = 0; i < list.length; i++) { 
		if (list[i].code === 108 || list[i].code === 408) { 
			if (eventID.page().list[i].parameters[0]==tag){
				console.log('tag true');
				return true;
			} 
		} 
	} 
	return false;
}

Битмапы.
создание прямоугольника определенного цвета ('#0000ff')с правым верхним углом в определенной точке, определенной ширины и высоты:
this.bitmap.fillRect(x, y, ширина, высота, '#0000ff');
написание текста:
this.bitmap.drawText('текст', x, y, ширина, высота)
цвет текста:
this.bitmap.textColor = '#000000';
название шрифта
this.bitmap.fontFace = 'Trebuchet MS';
размер шрифта:
this.bitmap.fontSize = 12;
толщина обводки букв:
this.bitmap.outlineWidth = 2;
цвет обводки:
this.bitmap.outlineColor = '#000000';
курсив ли:
this.bitmap.fontItalic = true;
Отрисовка иконки из определенного файла, где "index" - порядковый номер иконки, "количество" -количество иконок в одном ряду иконсета.
Вызов функции:
this.drawIcon(index, x, y, ширина, высота, 16, 'название файла');
Сама функция:
ICON_Hud.prototype.drawIcon = function(index, x, y, w, h, string, IconSet) {
	if (!this.bitmap) return false;
	var bitmap = ImageManager.loadSystem(IconSet);
	var pw = Window_Base._iconWidth;
	var ph = Window_Base._iconHeight;
	var sx = index%string*pw;
	var sy = Math.floor(index/string)*pw;
	this.bitmap.blt(bitmap,sx,sy,pw,ph,x,y, w,h);
	return true;
}

Координаты расположение "экрана" относительно карты (левый верхний угол экрана):
$gameMap.displayX(); 
$gameMap.displayY()

Соответственно, для того, чтобы узнать реальные координаты события необходимо прибавить к ним данные координаты экрана:
$gameMap.event(id).x + $gameMap.displayX();
$gameMap.event(id).y + $gameMap.displayY()

Показ в консольке текста из события - "сообщений"("message"), "выбора".
Сообщения выводятся текстом, выбор - массивом.

Вызов функции:
$gameMap.processEventList(id);

Сама функция:
Game_Map.prototype.processEventList = function (id) { 
  var eventID = $gameMap.event(id);
  var list = eventID.page().list; 
  for (var i = 0; i < list.length; i++) {
    if (list[i].code === 401 || list[i].code === 102) {
      console.log(list[i].parameters[0]);
    } 
  } 
}

Возвращает массив эффектов ("особенностей") оружия:
$dataWeapons[idWeapon].traits

https://s.mail.ru/LJX7/T2PSJWDmd

1) Код параметра, где idWeapon - ид оружия, id - номер особенности в массиве особенностей оружия (начинается с нуля, как во всяком массиве)
$dataWeapons[idWeapon].traits[id].code
Возвращает число, где первая цифра - порядковый номер вкладки с "особенностями", а вторая - порядковый номер особенности в этой вкладке. Например, у "состоянии атаки" вкладка "атака" - третья, а сама особенность вторая в этой вкладке, потому и номер возвратится "32"

2) Тип параметра
$dataWeapons[idWeapon].traits[id].dataId
Возвращает порядковый номер типа параметра (начиная с единицы). В примере выше возвратит "1"

3) Показатель параметра
$dataWeapons[idWeapon].traits[id].value
Возвращает показатель типа параметра, обычно он в процентах. В примере выше возвратит "100". Не очень удобно, было бы удобнее в виде "1.0" вместо 100% и, например "0.9" вместо 90%.


Движение одного события к другому событию.
В примере 4-ое событие будет двигаться к 10-ому.
$gameMap.event(4).moveTowardCharacter($gameMap.event(10));

Возврат кол-ва действий в "маршруте" события. Из этого списка следует вычесть единичку, ибо при добавлении действия в маршрут события, следом ВСЕГДА автоматически создается пустое действие.
$gameMap.event($gameVariables.value(id))._moveRoute.list;

Добавление действия в маршрут события:
$gameMap.event($gameVariables.value(id))._moveRoute.list.push({code: 45, parameters: ['script']});

, где "code: 45" - код действия из списка ниже. "parameters: " - нужен только в случае, когда код 45 (вставка в маршрут скрипта).
Game_Character.ROUTE_END               = 0;
Game_Character.ROUTE_MOVE_DOWN         = 1;
Game_Character.ROUTE_MOVE_LEFT         = 2;
Game_Character.ROUTE_MOVE_RIGHT        = 3;
Game_Character.ROUTE_MOVE_UP           = 4;
Game_Character.ROUTE_MOVE_LOWER_L      = 5;
Game_Character.ROUTE_MOVE_LOWER_R      = 6;
Game_Character.ROUTE_MOVE_UPPER_L      = 7;
Game_Character.ROUTE_MOVE_UPPER_R      = 8;
Game_Character.ROUTE_MOVE_RANDOM       = 9;
Game_Character.ROUTE_MOVE_TOWARD       = 10;
Game_Character.ROUTE_MOVE_AWAY         = 11;
Game_Character.ROUTE_MOVE_FORWARD      = 12;
Game_Character.ROUTE_MOVE_BACKWARD     = 13;
Game_Character.ROUTE_JUMP              = 14;
Game_Character.ROUTE_WAIT              = 15;
Game_Character.ROUTE_TURN_DOWN         = 16;
Game_Character.ROUTE_TURN_LEFT         = 17;
Game_Character.ROUTE_TURN_RIGHT        = 18;
Game_Character.ROUTE_TURN_UP           = 19;
Game_Character.ROUTE_TURN_90D_R        = 20;
Game_Character.ROUTE_TURN_90D_L        = 21;
Game_Character.ROUTE_TURN_180D         = 22;
Game_Character.ROUTE_TURN_90D_R_L      = 23;
Game_Character.ROUTE_TURN_RANDOM       = 24;
Game_Character.ROUTE_TURN_TOWARD       = 25;
Game_Character.ROUTE_TURN_AWAY         = 26;
Game_Character.ROUTE_SWITCH_ON         = 27;
Game_Character.ROUTE_SWITCH_OFF        = 28;
Game_Character.ROUTE_CHANGE_SPEED      = 29;
Game_Character.ROUTE_CHANGE_FREQ       = 30;
Game_Character.ROUTE_WALK_ANIME_ON     = 31;
Game_Character.ROUTE_WALK_ANIME_OFF    = 32;
Game_Character.ROUTE_STEP_ANIME_ON     = 33;
Game_Character.ROUTE_STEP_ANIME_OFF    = 34;
Game_Character.ROUTE_DIR_FIX_ON        = 35;
Game_Character.ROUTE_DIR_FIX_OFF       = 36;
Game_Character.ROUTE_THROUGH_ON        = 37;
Game_Character.ROUTE_THROUGH_OFF       = 38;
Game_Character.ROUTE_TRANSPARENT_ON    = 39;
Game_Character.ROUTE_TRANSPARENT_OFF   = 40;
Game_Character.ROUTE_CHANGE_IMAGE      = 41;
Game_Character.ROUTE_CHANGE_OPACITY    = 42;
Game_Character.ROUTE_CHANGE_BLEND_MODE = 43;
Game_Character.ROUTE_PLAY_SE           = 44;
Game_Character.ROUTE_SCRIPT            = 45;

Функция для движения события к герою до тех пор, пока событие его "не догонит"
Без поиска пути, в случае препятствия событие тупо стоит. После того, как событие "догонит" игрока, включается лок.переключатель "D".
Вызов функции (вставлять в маршрут события):
this.ABSYuryolMovePlayer()

Сама функция
Game_Character.prototype.ABSYuryolMovePlayer = function() {
	if (this._x == $gamePlayer.x && this._y == $gamePlayer.y) {
		$gameSelfSwitches.setValue([$gameMap.mapId(), this._eventId, 'D'], true);
	} else {
		this.moveTowardCharacter($gamePlayer);
		this._moveRoute.list.push({code: 45, parameters: ['this.ABSYuryolMovePlayer()']});
	}
}

Возвращает ИД тайла на клетке с координатами x и y на слое z.
1. Земля расположена на слое 0
2. Объекты повыше типа гор или травки из вкладки А - слой 1
3. Интересно, что например тайл с вкладки Б расположен либо на 2, либо на 3 слое.
- если на клетке один тайл с вкладки Б, то его слой - 3
- если два тайла с вкладки Б, то тот, который выше имеет слой 3, а который ниже - слой 2.
$gameMap.tileId(x, y, z)

Возвращает заметку тайлсета БД
$dataTilesets[$dataMap.tilesetId].note

Возвращает значение тега в заметке тайлсета БД, где tag - нужный тег
$dataTilesets[$dataMap.tilesetId].meta.tag

При этом сам тег(tag) с его значением (value) должны выглядеть в заметке тайлсета так: <tag:value>

Возвращает массив значения тега в заметке тайлсета БД, где tag - нужный тег
$dataTilesets[$dataMap.tilesetId].meta.tag.split(' ')

Нужен в случаях, когда в одном теге необходимо передать несколько значений типа:
<tag:value1 value1 value1>

Блокировка управления.
При переводе переключателя в положении false персонаж будет только поворачиваться в нужную сторону но не двигаться
var blockMove = Game_Player.prototype.moveStraight;
Game_Player.prototype.moveStraight= function(d) {
	if (this.canPass(this.x, this.y, d)) {
		this._followers.updateMove();
	}
	(blockMove) ? this.setDirection(d) : Game_Character.prototype.moveStraight.call(this, d);
}

Очистка переменных
, где mainArr - массив который надо очистить.
Бывает необходимость очистить значения переменных или массивов после перехода на другую карту. Для этого мы можем очищать их в данной функции вместо того, чтобы на каждую новую карту вставлять автоматическое событие с очисткой переменных или массивов
var absYuryolTerminate = Scene_Map.prototype.terminate;
Scene_Map.prototype.terminate = function() {
	absYuryolTerminate.call(this);
        mainArr= [];
}

Удобный "консоль лог"
До меня только пару месяцев назад дошло, что в мв есть поддержка ES2015 (а с недавнего времени по словам ДК и ES2016, ES2017). А значит можно использовать удобные шаблонные строки с обратными кавычками. Теперь например вместо конкатенации с кучей плюсов и открытий/закрытий кавычек
console.log('Переменная 1 = ' + variables[1] + '. Переменная 2 = ' + variables[2])
удобнее писать и читабельнее читать:
console.log(`Переменная 1 = ${variables[1]}. Переменная 2 = ${variables[2]}`)

Проверка нажатия любой из клавиш клавиатуры:
document.addEventListener('keydown', function(e){
  alert(`Нажата клавиша: ${e.keyCode}`); //
});

еще один вариант: [ Нажмите, чтобы развернуть ]


Проверка нажатия любой из клавиш мыши:
document.addEventListener('mousedown', function(e){
  alert(`Координата Х: ${e.clientX}, Координата Y: ${e.clientY}`);
});

еще один вариант: [ Нажмите, чтобы развернуть ]


Изменение параметра события на определенное время (изменение прозрачности, параметра наложения)
var paramTime= function(id, param, value1, value2, time) {
    $gameMap.event(id)[param] = value1;
    setTimeout(function() {$gameMap.event(id)[param] = value2;}, time);
};

Вызов функции например для мигания события с ИД=10 на 70 миллисекунд:
paramTime(10, '_blendMode', 1, 0, 70);

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Итак, вызов плагина для задания маршрута событию,герою:
$gameMap.moveEvent(id, direction, amount);

, где id - номер события (или 0, если нужен герой), direction - направление, amount - количество повторений (например шагов)

Сама функция:
Game_Map.prototype.moveEvent = function(id, direction, amount) {
    if (id) {
        var event = this.event(id);
    }else {
        var event = $gamePlayer;
    };
    if (!event) return;
 
    var gc = Game_Character;
    var route = { list: [] };
    var code;
 
    switch(direction){
        case 0:{
            code = gc.ROUTE_END;
            break;
        }
        case 2:{
            code = gc.ROUTE_MOVE_DOWN;
            break;
        }
        case 4:{
            code = gc.ROUTE_MOVE_LEFT;
            break;
        }
        case 6:{
            code = gc.ROUTE_MOVE_RIGHT;
            break;
        }
        case 8:{
            code = gc.ROUTE_MOVE_UP;
            break;
        }
        case 12:{
            code = gc.ROUTE_MOVE_FORWARD;
            break;
        }
    }
 
    for(var i = 0; code && i < amount; i++){
        route.list[i] = { code: code };    
    }
 
    route.list[amount] = {code: gc.ROUTE_END}; //Yuryol
    route.skippable = true; //Yuryol
 
    event.forceMoveRoute(route);
 
};

Возможность события с приоритетом "под персонажем" или "над персонажем" проходить сквозь другое событие.

Когда еще был на эйсе не очень понимал, почему сделано так, что например событие птица не может пролететь над лошадью.
Случай с приоритетом "Под персонажем" более понятный: те же двери в таком случае будут пропускать события "под персонажем". Но особой надобности ставить этот приоритет событию не особо вижу, кроме как дать другим событиям проходить над ним.
Game_CharacterBase.prototype.isCollidedWithCharacters = function(x, y) {
    if (this._priorityType==0 || this._priorityType==2) return false;
    return this.isCollidedWithEvents(x, y) || this.isCollidedWithVehicles(x, y);
};



Движение события "вперед" по диагонали.

задать событию "поворот по-диагонали" в маршруте движения через скриптовую команду:
this.diagonalDirect = 1; // 1 - поворот вниз-влево,3 - вниз-вправо, 7 - влево-вверх, 9 - вправо-вверх

или в другом событии через скриптовую команду:
$gameMap.event(id).diagonalDirect = 9;

После этого при указании в маршруте "вперед" событие будет двигаться по диагонали

Сама функция:
var YuryolmoveForward = Game_Character.prototype.moveForward;
Game_Character.prototype.moveForward = function() {
    switch (this.diagonalDirect) {
        case 1:
            this.moveDiagonally(4, 2);
            break;
        case 3:
            this.moveDiagonally(6, 2);
            break;
        case 7:
            this.moveDiagonally(4, 8);
            break;
        case 9:
            this.moveDiagonally(6, 8);
            break;
        default:
            this.moveStraight(this.direction());
            break;
    }
};

Добавление чего-либо сразу после загрузки карты
var YuryolStart = Scene_Map.prototype.start;
Scene_Map.prototype.start = function() {
    YuryolStart.call(this);
    //вставляем что хотим:
    $gameVariables.setValue(1, 0); //например, обнуляем 1-ую переменную
};

Пропустить титульный экран, автоматически начиная новую игру.
Спасибо Ноксу
Scene_Title.prototype.start = function() {
this.commandNewGame();
};
Последнее редактирование: 3 года 5 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: AnnTenna, DK, Cabbit, Serge255, VarVarKa, Aiaz Marx, WhitePaper, NeKotZima, Alx_Yago

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100824

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 940
  • Спасибо получено: 1121
  • Даритель СтимкеяРазработчикВетеранПроект месяца 1 местоУчительОраторПаладинПроект месяца 2 местоПрограммист RubyПрограммист JavaScript
$dataMap.events.contains(ID) - не будет работать. events - массив объектов, а не ID событий.
придется циклом перебирать объекты в массиве и смотреть нужный id в объектах.
В лодаше это выглядело бы в одну строчку: _.includes($dataMap.events, { id: ID });

Еще уточнение по поводу функции contains - ее нет в JS. Разработчики мейкера ее добавили сами, так что нужно быть осторожным.
Последнее редактирование: 4 года 8 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: AnnTenna, yuryol, Cabbit

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100834

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1667
  • Спасибо получено: 2641
  • КомпозиторОрганизатор конкурсов1 место в Готв2 место УчительОратор3 место ГотвПобедитель конкурса
DK пишет:
$dataMap.events.contains(ID) - не будет работать. events - массив объектов, а не ID событий.
придется циклом перебирать объекты в массиве и смотреть нужный id в объектах.
В лодаше это выглядело бы в одну строчку: _.includes($dataMap.events, { id: ID });

Еще уточнение по поводу функции contains - ее нет в JS. Разработчики мейкера ее добавили сами, так что нужно быть осторожным.

хм, действительно, хз откуда то выражение взял. Исправил, проверить существование события можно этим условием:
$dataMap.events[id]===null
Администратор запретил публиковать записи гостям.

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100850

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 940
  • Спасибо получено: 1121
  • Даритель СтимкеяРазработчикВетеранПроект месяца 1 местоУчительОраторПаладинПроект месяца 2 местоПрограммист RubyПрограммист JavaScript
я бы все-таки использовал == вместо ===, потому что выйдя за границы массива ты получишь undefined. undefined !== null
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, yuryol

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100856

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 909
  • Спасибо получено: 561
  • Даритель СтимкеяПрограммист RubyВетеранОраторПрограммист JavaScript
DK пишет:
$dataMap.events.contains(ID) - не будет работать. events - массив объектов, а не ID событий.
придется циклом перебирать объекты в массиве и смотреть нужный id в объектах.
В лодаше это выглядело бы в одну строчку: _.includes($dataMap.events, { id: ID });

Еще уточнение по поводу функции contains - ее нет в JS. Разработчики мейкера ее добавили сами, так что нужно быть осторожным.

Зато есть array.includes(element), что, вроде, то же самое, только называется по-другому.
Последнее редактирование: 4 года 8 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100859

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 940
  • Спасибо получено: 1121
  • Даритель СтимкеяРазработчикВетеранПроект месяца 1 местоУчительОраторПаладинПроект месяца 2 местоПрограммист RubyПрограммист JavaScript
Непонятно зачем разработчики добавили свой contains...
Администратор запретил публиковать записи гостям.

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100866

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место Готв2 место Учитель
Когда они выпускали MV, includes поддерживался только самыми продвинутыми браузерами. В частности, он не поддерживался версией Хрома, встроенной в плеер MV.
Последнее редактирование: 4 года 8 мес. назад от EvilCat.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK, nataly

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100869

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 572
  • Спасибо получено: 1443
  • Организатор конкурсовОраторПрограммист JavaScript 2 место Даритель СтимкеяУчитель
EvilCat пишет:
В частности, он не поддерживался версией Хрома, встроенной в плеер MV.

К сожалению сложно сказать, какую версию NWJS они сейчас используют, можно лишь догадаться по дате 31.07.2017, что они наконец-таки её обновили. Но тем не менее на сайте самого NWJS версии обновляются довольно часто. Не скажу, что это уж прям так необходимо, но тем не менее, на сегодняшний день свежая версия v0.26.6: от 14 ноября 2017, основана на Node.js v9.1.0, и Chromium 62.0.3202.94 :silly:

p.s.
O! тут гугл подсказал, для того что бы узнать установленные версии, нужно ввести команду «process.versions» в консоль, и получим такую картину:
ares: "1.10.0-DEV"
chromium: "41.0.2272.76"
http_parser: "2.3.0"
modules: "43"
node: "1.2.0"
node-webkit: "0.12.3"
nw-commit-id: "591068b-b48a69e-27b6800-459755a-2bdc251-1764a45"
openssl: "1.0.1k"
uv: "1.4.0"
v8: "3.32.7"
zlib: "1.2.5"

То есть мы видим, что все версии очень сильно устарели. Вот для примера, что выдаёт в туже консоль «nwjs 0.26.6»:
ares:"1.13.0"
chromium:"62.0.3202.94"
cldr:undefined
http_parser:"2.7.0"
icu:"59.1"
modules:"59"
nghttp2:"1.25.0"
node:"9.1.0"
node-webkit:"0.26.6"
nw:"0.26.6"
nw-commit-id:"b12ee45-2da8f18-05043ec-58095c1"
openssl:"1.0.2m"
tz:undefined
unicode:"9.0"
uv:"1.15.0"
v8:"6.2.414.42"
zlib:"1.2.11"

К слову, проект MV без каких-либо проблем запускается на NWJS.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100871

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 940
  • Спасибо получено: 1121
  • Даритель СтимкеяРазработчикВетеранПроект месяца 1 местоУчительОраторПаладинПроект месяца 2 местоПрограммист RubyПрограммист JavaScript
А вот, что выдает бета версия мв 1.6:
ares:"1.10.1-DEV"
chromium:"61.0.3163.100"
cldr:undefined
http_parser:"2.7.0"
icu:"59.1"
modules:"57"
nghttp2:"1.25.0"
node:"8.6.0"
node-webkit:"0.25.4"
nw:"0.25.4"
nw-commit-id:"3f5566a-1d17e7f-a1df156-39bcff5"
openssl:"1.0.2l"
tz:undefined
unicode:"9.0"
uv:"1.14.1"
v8:"6.1.534.41"
zlib:"1.2.11"
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: EvilCat, Mur

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100872

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 572
  • Спасибо получено: 1443
  • Организатор конкурсовОраторПрограммист JavaScript 2 место Даритель СтимкеяУчитель
DK пишет:
А вот, что выдает бета версия мв 1.6:

Хмм,… интересненько :woohoo: это ты в стиме на бету переключился?
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100873

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место Готв2 место Учитель
Отлично, скоро можно будет нормально использовать классовую нотацию наконец, а то браузеры уже давно готовы.

И не придётся больше объяснять, почему надо писать все эти "x.prototype.Y = function...", "(function() { ... })()", "X.prototype = Object.create(Y.prototype)"...
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Mur

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100874

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 572
  • Спасибо получено: 1443
  • Организатор конкурсовОраторПрограммист JavaScript 2 место Даритель СтимкеяУчитель
EvilCat пишет:
Отлично, скоро можно будет нормально использовать классовую нотацию

Ух ты! Это ES6? :ohmy:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100875

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 940
  • Спасибо получено: 1121
  • Даритель СтимкеяРазработчикВетеранПроект месяца 1 местоУчительОраторПаладинПроект месяца 2 местоПрограммист RubyПрограммист JavaScript
Да, в стиме переключился.

Эмм, так классы и сейчас можно использовать. Вон, боевка KageDesu на классах написана.
Администратор запретил публиковать записи гостям.

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100876

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место Готв2 место Учитель
Если "сейчас" в МВ Хромиум 41, то классы там не должны работать. Я помню, что когда МВ только вышел, то я попыталась писать с классовой нотацией, но там даже let не поддерживался, а также в браузерах всё это не работало.
Ух ты! Это ES6? :ohmy:

Пока можно потренироваться в браузере %)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK, Mur

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100878

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 942
  • Даритель СтимкеяПобедитель Сбитой кодировкиЗа 3 место на конкурсе маппингаПроект месяца 2 местоРазработчикПроект месяца 1 местоПроект месяца 3 местоПроект года 3 местоОраторВетеран
А разве лицензия RPG Maker запрещает самостоятельно приложить к игре последнюю версию nwjs? Зачем вообще ждать пока обновят ту, что идёт в комплекте?

Так, заодно, можно сделать 64-разрядную версию игры, чтобы быстрее работала)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100879

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 572
  • Спасибо получено: 1443
  • Организатор конкурсовОраторПрограммист JavaScript 2 место Даритель СтимкеяУчитель
EvilCat пишет:
Пока можно потренироваться в браузере %)

Хе хе, или в MV 1.6 :whistle:


class.png
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100880

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место Готв2 место Учитель
ZX_Lost_Soul пишет:
А разве лицензия RPG Maker запрещает самостоятельно приложить к игре последнюю версию nwjs? Зачем вообще ждать пока обновят ту, что идёт в комплекте?

Так, заодно, можно сделать 64-разрядную версию игры, чтобы быстрее работала)

И к публикуемым плагинам её прилагать тоже? Даже зависимость от плагина-ядра - и то считается дурным тоном.

Впрочем, расходимся, оказывается, классовая нотация содержит большую недоделку по сравнению с тем, как она функционирует в других языках (в конструкторе нельзя обращаться к this, пока не вызвал super).
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100881

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 572
  • Спасибо получено: 1443
  • Организатор конкурсовОраторПрограммист JavaScript 2 место Даритель СтимкеяУчитель
EvilCat пишет:
в конструкторе нельзя обращаться к this, пока не вызвал super

Эээ,… :ohmy: Я быть может что-то не понимаю, но в моём примере же явное обращение к this.width и this.height и нет обращения super? :unsure:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100882

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место Готв2 место Учитель
Имеется в виду - в дочернем классе.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Переменные, простые скрипты, функции rpg maker MV 4 года 8 мес. назад #100883

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 572
  • Спасибо получено: 1443
  • Организатор конкурсовОраторПрограммист JavaScript 2 место Даритель СтимкеяУчитель
EvilCat пишет:
Имеется в виду - в дочернем классе.

Хм, можно пример? Просто я немного не понимаю, что тут не так:


class2.png


Вот тут расписаны все обращения.
Последнее редактирование: 4 года 8 мес. назад от Mur.
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
Время создания страницы: 3.087 секунд