Плохо! Плохо!:  0
Показано с 1 по 5 из 5

Тема: Смена региона из игры

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

    По умолчанию Смена региона из игры

    Автор: Hikitsune-Red




    Описание:
    Позволяет менять регионы во время игры.

    Использование:
    Plag-n-play

    Плагин:
    Спойлер Код:
    Код:
    /*:
     * @plugindesc v1.02 A simple plug-in designed to allow the setting of Region ID's in-game
     * @author Hikitsune-Red ??
     *
     * @help
     * ================================================================================
     * SCRIPT CALL:
     * To change a tile's region ID, use the function "$gameMap.setTileId(x, y, r)"
     * where x and y are the tile, and r is the new region #
     * Leaving r empty will turn the region ID into 0
     * 
     * To change a tile range, use the function "$gameMap.setTileSquareId(x, x2, y, y2, r)"
     *
     * ================================================================================
     * TERMS OF USE
     * Free for any commercial or non-commercial project!
     * Just credit Hikitsune-Red ?? in your project
     */
     
    (function() {
    	
    	var _Game_System_initialize = Game_System.prototype.initialize;
    	Game_System.prototype.initialize = function()
    	{
    		_Game_System_initialize.call(this);
    		this.initREDRegions();
    	};
    	
    	Game_System.prototype.initREDRegions = function()
    	{
    		this._REDRegions = {};
    	};
    	
    	Game_System.prototype.REDRegions = function()
    	{
    		if (this._REDRegions === undefined) this.initREDRegions();
    		return this._REDRegions;
    	};
    	
    	Game_System.prototype.getREDRegion = function(mapId, x, y, z)
    	{
    		if (this._REDRegions === undefined) this.initREDRegions();
    		var width = $dataMap.width;
    		var height = $dataMap.height;
    		return this._REDRegions[mapId, (z * height + y) * width + x];
    	};
    	
    	Game_System.prototype.isREDRegion = function(mapId, x, y, z)
    	{
    		if (this._REDRegions === undefined) this.initREDRegions();
    		var width = $dataMap.width;
    		var height = $dataMap.height;
    		return this._REDRegions[mapId, (z * height + y) * width + x] !== undefined;
    	};
    	
    	Game_System.prototype.setREDRegion = function(mapId, x, y, z, regId)
    	{
    		console.log('Setting region id of Map:' + mapId + ' x:' + x + ' Y:' + y + ' to REG:' + regId);
    		var width = $dataMap.width;
    		var height = $dataMap.height;
    		this._REDRegions[mapId, (z * height + y) * width + x] = (regId || 0);
    	};
    	
    	Game_System.prototype.setREDRegionSquare = function(mapId, x, x2, y, y2, regId)
    	{
    		console.log('Setting region square: ');
    		for (i = x; i <= x2; i++) {
    			for (j = y; j <= y2; j++) {
    				$gameSystem.setREDRegion(mapId, i, j, 5, regId);
    			}
    		}
    	};
    	
    	Game_Map.prototype.setTileId = function(x, y, regId) 
    	{
    		$gameSystem.setREDRegion($gameMap._mapId, x, y, 5, regId);
    	};
    	
    	Game_Map.prototype.setTileSquareId = function(x, x2, y, y2, regId)
    	{
    		$gameSystem.setREDRegionSquare($gameMap._mapId, x, x2, y, y2, regId);
    	};
    	
    	var _Game_Map_tileId = Game_Map.prototype.tileId;
    	Game_Map.prototype.tileId = function(x, y, z)
    	{
    		if ($gameSystem.isREDRegion($gameMap._mapId, x, y, z))
    		{
    			var width = $dataMap.width;
    			var height = $dataMap.height;
    			return $gameSystem.getREDRegion($gameMap._mapId, x, y, z);
    		} else {
    			return _Game_Map_tileId.call(this, x, y, z);
    		}
    	};
    	
    }) ();


    Использование:
    Через вызов скрипта $gameMap.setTileId(x, y, r) для смены региона по координатам. $gameMap.setTileSquareId(x, x2, y, y2, r) для смены региона в диапазоне.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  2. #2
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    ты как=то говорил что он сильно хуже тайл-свапа. чем?чего не хватает?

  3. #3
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,940
    Записей в дневнике
    6
    Репутация: 132 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Yuryol Посмотреть сообщение
    ты как=то говорил что он сильно хуже тайл-свапа. чем?чего не хватает?
    Может тем, что он тайлы не меняет, не?
    Или я чего туплю.
    Написано меняет регионы, но setTileId немного смутило....

  4. #4
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от peter8031983 Посмотреть сообщение
    Может тем, что он тайлы не меняет, не?
    Или я чего туплю.
    Написано меняет регионы, но setTileId немного смутило....
    хм,точно,невнимательно прочитал, первым делом команды увидел и на остальное не посмотрел
    Последний раз редактировалось Yuryol; 05.12.2016 в 11:34.

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

    По умолчанию

    Цитата Сообщение от Yuryol Посмотреть сообщение
    ты как=то говорил что он сильно хуже тайл-свапа. чем?чего не хватает?
    Я не про это говорил, но тем не менее отвечу. Тот плагин про который говорил Дирж фуфло, потому что меняет тайлы только на те, который есть в похожей комнате, то есть по сути он просто загружает другую карту. А тайлсвап от Химе может поменять любой тайл на любой, в независимости от того что ты хочешь. Он даже может тебе А тайлы на слой В-Е зафигачить!
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

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

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

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

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

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

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

Ваши права

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