Миничат

poca 5 ч. не кикает больше часа. зер гут
poca 7 ч. было-бы неплохо, да
poca 7 ч. авто-бан за 10 повторений
poca 7 ч. придётся
poca 7 ч. банить
poca 7 ч. фсаперов
poca 7 ч. вручную
poca 7 ч. то
poca 7 ч. а
poca 7 ч. надо
poca 7 ч. прикрутить
poca 7 ч. фильтр
poca 7 ч. -
poca 7 ч. спам
poca 7 ч. но
poca 7 ч. работу
poca 7 ч. проделанную
poca 7 ч. за
poca 7 ч. большое
poca 7 ч. большое

Переменные, простые скрипты, функции rpg maker MV

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
8 года 5 мес. назад - 7 года 1 мес. назад #100814 от yuryol
Для начинающих программистов-мукеристов rpg maker MV. То, чего нет в списке "простых скриптов" или что не очень понятно.
Плюс несколько функций. Вдруг кому пригодится.

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

Возвращение наличия определенного комментария на текущей странице события с нужным ID. Возвращает true или false.
Код проверки:
Code:
$gameMap.processCommentTag(ID, 'комментарий')
Сама функция.
Code:
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')с правым верхним углом в определенной точке, определенной ширины и высоты:
Code:
this.bitmap.fillRect(x, y, ширина, высота, '#0000ff');
написание текста:
Code:
this.bitmap.drawText('текст', x, y, ширина, высота)
цвет текста:
Code:
this.bitmap.textColor = '#000000';
название шрифта
Code:
this.bitmap.fontFace = 'Trebuchet MS';
размер шрифта:
Code:
this.bitmap.fontSize = 12;
толщина обводки букв:
Code:
this.bitmap.outlineWidth = 2;
цвет обводки:
Code:
this.bitmap.outlineColor = '#000000';
курсив ли:
Code:
this.bitmap.fontItalic = true;
Отрисовка иконки из определенного файла, где "index" - порядковый номер иконки, "количество" -количество иконок в одном ряду иконсета.
Вызов функции:
Code:
this.drawIcon(index, x, y, ширина, высота, 16, 'название файла');
Сама функция:
Code:
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; }

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

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

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

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

Сама функция:
Code:
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]); } } }

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

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

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

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

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


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

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

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

, где "code: 45" - код действия из списка ниже. "parameters: " - нужен только в случае, когда код 45 (вставка в маршрут скрипта).
Code:
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".
Вызов функции (вставлять в маршрут события):
Code:
this.ABSYuryolMovePlayer()

Сама функция
Code:
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.
Code:
$gameMap.tileId(x, y, z)

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

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

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

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

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

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

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

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

еще один вариант:


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

еще один вариант:


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

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

ВНИМАНИЕ: Спойлер!


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

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

Сама функция:
Code:
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); };

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

Когда еще был на эйсе не очень понимал, почему сделано так, что например событие птица не может пролететь над лошадью.
Случай с приоритетом "Под персонажем" более понятный: те же двери в таком случае будут пропускать события "под персонажем". Но особой надобности ставить этот приоритет событию не особо вижу, кроме как дать другим событиям проходить над ним.
Code:
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); };



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

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

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

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

Сама функция:
Code:
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; } };

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
8 года 5 мес. назад #100834 от yuryol

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

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


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
8 года 5 мес. назад #100850 от DK
я бы все-таки использовал == вместо ===, потому что выйдя за границы массива ты получишь undefined. undefined !== null
Спасибо сказали: Dmy, yuryol

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100856 от Lekste

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

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


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
8 года 5 мес. назад #100859 от DK
Непонятно зачем разработчики добавили свой contains...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100866 от EvilCat
Когда они выпускали MV, includes поддерживался только самыми продвинутыми браузерами. В частности, он не поддерживался версией Хрома, встроенной в плеер MV.
Последнее редактирование: 8 года 5 мес. назад пользователем EvilCat.
Спасибо сказали: Dmy, DK, nataly

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100869 от Mur

EvilCat пишет: В частности, он не поддерживался версией Хрома, встроенной в плеер MV.


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

p.s.
O! тут гугл подсказал, для того что бы узнать установленные версии, нужно ввести команду «process.versions» в консоль, и получим такую картину:
Code:
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»:
Code:
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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
8 года 5 мес. назад #100871 от DK
А вот, что выдает бета версия мв 1.6:
Code:
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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100872 от Mur

DK пишет: А вот, что выдает бета версия мв 1.6:


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
8 года 5 мес. назад #100873 от EvilCat
Отлично, скоро можно будет нормально использовать классовую нотацию наконец, а то браузеры уже давно готовы .

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100874 от Mur

EvilCat пишет: Отлично, скоро можно будет нормально использовать классовую нотацию


Ух ты! Это ES6? :ohmy:
Спасибо сказали: Dmy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
8 года 5 мес. назад #100875 от DK
Да, в стиме переключился.

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
8 года 5 мес. назад #100876 от EvilCat
Если "сейчас" в МВ Хромиум 41, то классы там не должны работать. Я помню, что когда МВ только вышел, то я попыталась писать с классовой нотацией, но там даже let не поддерживался, а также в браузерах всё это не работало.

Ух ты! Это ES6? :ohmy:


Пока можно потренироваться в браузере %)
Спасибо сказали: Dmy, DK, Mur

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 2 место Проект месяца 1 место Ветеран Разработчик Проект года 3 место Проект месяца 3 место Победитель конкурса Учитель Даритель Стимкея Победитель Сбитой кодировки За 3 место на конкурсе маппинга Оратор
Больше
8 года 5 мес. назад #100878 от ZX_Lost_Soul
А разве лицензия RPG Maker запрещает самостоятельно приложить к игре последнюю версию nwjs? Зачем вообще ждать пока обновят ту, что идёт в комплекте?

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100879 от Mur

EvilCat пишет: Пока можно потренироваться в браузере %)


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


Спасибо сказали: Dmy, DK

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
8 года 5 мес. назад #100880 от EvilCat

ZX_Lost_Soul пишет: А разве лицензия RPG Maker запрещает самостоятельно приложить к игре последнюю версию nwjs? Зачем вообще ждать пока обновят ту, что идёт в комплекте?

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


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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад #100881 от Mur

EvilCat пишет: в конструкторе нельзя обращаться к this, пока не вызвал super


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
8 года 5 мес. назад #100882 от EvilCat
Имеется в виду - в дочернем классе.
Спасибо сказали: Dmy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Даритель Стимкея Учитель Организатор конкурсов 2 место Программист JavaScript Оратор
Больше
8 года 5 мес. назад - 8 года 5 мес. назад #100883 от Mur

EvilCat пишет: Имеется в виду - в дочернем классе.


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




Вот тут расписаны все обращения.
Последнее редактирование: 8 года 5 мес. назад пользователем Mur.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.165 секунд
Работает на Kunena форум