-
yuryol
-
-
Вне сайта
-
Архитектор Миров
-
- Сообщений: 1704
- Спасибо получено: 2731
-
-
|
Информация:
Название: Прыжок героя/события на карте
Автор: Yuryol
Тип: Действия на карте
Версия: 1.0.0
Версия RPG maker: MV
Дата выхода: 2016
Условия использования/лицензия: -
Описание:
Первый мой простенький плагин.
Делал для своей игры, но вдруг кому-нибудь пригодится. Плагин позволяет совершать прыжки по карте как героем, так и событием, играющего роль второго игрока. Препятствия могут быть как непреодолимыми (стены/горы, отмечаются кодом местности "1"), так и преодолимыми (ямы/реки, отмечаются кодом "2", возвышенности/столы/камни - кодом "3").Ямы можно преодолеть одним прыжком, возвышенности - только сначала взобравшись на них.
Для указания типов препятствий необходимо проставить код местности (метки территорий) в настройках тайлов (комплектах сегментов).
Названия клавиш, как и названия кнопок следует писать без кавычек.
Установка:
Справка: Скачать по ссылке либо скопировать код в блокнот, назвать Yuryol_Jump.js
Скачать: https://yadi.sk/d/IMIqwKxd33eQFM (JS, 7kb)
Демо: https://yadi.sk/d/3heMQ4JE33ePET (RAR, 3.1mb)
Зависимости: (нет)
Скриншоты:
Код:
//=============================================================================
// Yuryol_Jump.js
//=============================================================================
/*:
* @plugindesc Прыжок героя/события на карте
* @author Yuryol
* @param switchJump
* @desc ID переключателя для включения\отключения прыжков
* @default 2
* @param tag1
* @desc Код местности для препятствий типа "гора/стена". Их невозможно запрыгнуть/перепрыгнуть
* @default 1
* @param tag2
* @desc Код местности для препятствий типа "забор/возвышенность". Их возможно перепрыгнуть,на них можно "залезть"
* @default 2
* @param tag3
* @desc Код местности для препятствий типа "яма/река". Их возможно перепрыгнуть, но на них невохможно стоять
* @default 3
* @param input1
* @desc Кнопка прыжка героя
* @default d
* @param jumpSE1
* @desc Звук прыжка героя
* @default Wind7
* @param input2
* @desc Кнопка прыжка для второго игрока (если есть). Если 2-ого игрока нет - пишем "no" без кавычек
* @default control
* @param player2
* @desc ID события второго игрока
* @default 2
* @param jumpSE2
* @desc Звук прыжка второго игрока
* @default Jump1
@help
* Yuryol_Jump (Прыжок героя/события на карте)
* ----------------------------------------------------------------------------
* Плагин позволяет совершать прыжки по карте как героем, так и событием,
* играющего роль второго игрока. Препятствия могут быть как непреодолимыми
* (стены/горы, отмечаются кодом местности "1"), так и преодолимыми
* (ямы/реки, отмечаются кодом "2", возвышенности/столы/камни - кодом "3").
* Ямы можно преодолеть одним прыжком, возвышенности - только сначала
* взобравшись на них.
* Для указания типов препятствий необходимо проставить код местности
* (метки территорий) в настройках тайлов (комплектах сегментов).
* Названия клавиш, как и названия кнопок следует писать без кавычек
* ----------------------------------------------------------------------------
* Спасибо ДК и Айрину
* ----------------------------------------------------------------------------
*
*/
(function() {
var parameters = PluginManager.parameters('Yuryol_Jump');
var input1 = parameters['input1'];
var input2 = parameters['input2'];
var switchJump = parseInt(parameters['switchJump'],10);
var tag1 = parseInt(parameters['tag1'],10);
var tag2 = parseInt(parameters['tag2'],10);
var tag3 = parseInt(parameters['tag3'],10);
var jumpSE1 = parameters['jumpSE1'];
var jumpSE2 = parameters['jumpSE2'];
var player2 = parameters['player2'];
var Yuryol_Jump = Scene_Map.prototype.update;
Scene_Map.prototype.update = function() {
Yuryol_Jump.call(this);
this.Yuryol_Jump_input();
};
Scene_Map.prototype.Yuryol_Jump_input = function() {
if ($gameSwitches.value(switchJump)) {
if (Input.isTriggered(input1)) $gameMap.jump(0);
if (input2!='no') {
if (Input.isTriggered(input2)) $gameMap.jump(player2);
};
} ;
};
Game_Map.prototype.jump = function(id) {
var sx = 0, sy = 0;
if (id !=0) {
var event = this.event(id);
AudioManager.playSe({name: jumpSE2, volume: 90, pitch: 100, pan: 0} );
} else {
var event = $gamePlayer;
AudioManager.playSe({name: jumpSE1, volume: 90, pitch: 100, pan: 0} );
};
if (!event) return;
switch(event.direction()) { //проверка направления
case 2:
sy = 2;
break;
case 4:
sx = -2;
break;
case 6:
sx = 2;
break;
case 8:
sy = -2;
break;
};
//проверка кодов местности
($gameMap.terrainTag(event.x+sx/2, event.y+sy/2)==tag1) ? event.jump(0,0) :
( [0,tag2].contains($gameMap.terrainTag(event.x+sx/2, event.y+sy/2))&&$gameMap.terrainTag(event.x, event.y)==tag2&&($gameMap.terrainTag(event.x+sx, event.y+sy)!=tag1&&$gameMap.terrainTag(event.x+sx, event.y+sy)!=tag3)) ? event.jump(sx,sy) :
($gameMap.terrainTag(event.x+sx, event.y+sy)==0&&[0,tag3].contains($gameMap.terrainTag(event.x+sx/2, event.y+sy/2)))? event.jump(sx,sy) :
($gameMap.terrainTag(event.x+sx, event.y+sy)==tag2&&$gameMap.terrainTag(event.x+sx/2, event.y+sy/2)==tag3) ? event.jump(sx,sy) :
($gameMap.terrainTag(event.x+sx/2, event.y+sy/2)==tag3)? event.jump(0,0) : event.jump(sx/2,sy/2) ;
};
Input.keyMapper = {
8: 'backspace', // backspace
9: 'tab', // tab
13: 'ok', // enter
16: 'shift', // shift
17: 'control', // control
18: 'alt', // alt
19: 'pause', // pause
20: 'capslock', // capslock
27: 'escape', // escape
32: 'space', // space
33: 'pageup', // pageup
34: 'pagedown', // pagedown
35: 'end', // end
36: 'home', // home
37: 'left', // left arrow
38: 'up', // up arrow
39: 'right', // right arrow
40: 'down', // down arrow
44: 'printscreen', // printscreen
45: 'insert', // insert
46: 'delete', // delete
48: '0', // 0
49: '1', // 1
50: '2', // 2
51: '3', // 3
52: '4', // 4
53: '5', // 5
54: '6', // 6
55: '7', // 7
56: '8', // 8
57: '9', // 9
65: 'a', // A ф
66: 'b', // B и
67: 'c', // C с
68: 'd', // D в
69: 'e', // E у
70: 'f', // F а
71: 'g', // G п
72: 'h', // H р
73: 'i', // I ш
74: 'j', // J о
75: 'k', // K л
76: 'l', // L д
77: 'm', // M ь
78: 'n', // N т
79: 'o', // O щ
80: 'p', // P з
81: 'q', // Q й
82: 'r', // R к
83: 's', // S ы
84: 't', // T е
85: 'u', // U г
86: 'v', // V м
87: 'w', // W ц
88: 'x', // X ч
89: 'y', // Y н
90: 'z', // Z я
96: 'escape', // numpad 0
97: 'numpad1', // numpad 1
98: 'down', // numpad 2
99: 'numpad3', // numpad 3
100: 'left', // numpad 4
101: 'numpad5', // numpad 5
102: 'right', // numpad 6
103: 'numpad7', // numpad 7
104: 'up', // numpad 8
105: 'numpad9', // numpad 9
106: '*', // *
107: '+', // +
109: '-', // -
110: '.', // .
111: '/', // /
112: 'f1', // F1
113: 'f2', // F2
114: 'f3', // F3
115: 'f4', // F4
116: 'f5', // F5
117: 'f6', // F6
118: 'f7', // F7
119: 'f8', // F8
120: 'debug', // F9
121: 'f10', // F10
122: 'f11', // F11
123: 'f12', // F12
144: 'numlock', // numlock
145: 'scrolllock', // scrolllock
186: ';', // :;ж
187: '=', // +=
188: '<', // <,Б
189: '-', // -_
190: '>', // >.Ю
191: '?', // /?,/.
192: '`', // ~`ё
219: '[', // {[х
220: '|', // |
221: ']', // }]ъ
222: '"' // "'э
};
})()
|