Hi :D
I had a bad need about this script and found the last copy saved on the internet ^^" I'm uploading it here again so it won't be lost .
Please notice that I do not and I won't give any support nor tips for this script, as it's in chinese and is damn hard to understand for me anyway.
SCRIPT:
DEMO:
All credits go to TONBI.
Here's the link I've found:
Enjoy!
I had a bad need about this script and found the last copy saved on the internet ^^" I'm uploading it here again so it won't be lost .
Please notice that I do not and I won't give any support nor tips for this script, as it's in chinese and is damn hard to understand for me anyway.
SCRIPT:
#
# �����_���}�b�v���X�N���v�g�@v0.80 by tonbi
#
#
# �����_���Č�}�b�v�đ�Š�Ž�ě�Ź�ˇ�é�X�N���v�g�Ĺ�ˇ
# Scene_Debug�ć�č�ş�AMain�ć�č�ă�É�A�V�K�Z�b�V�����đ�ě�č�A�\�č�t�Ż�Ä��ž�ł�˘�B
#
# �}�b�v�����y�Ę�ť�X�N���v�g(�Č�Ő�Ĺ)�Ć�Ż���Ě�@�\�đ�ŕ�ď�ľ�Ä�˘�Ü�ˇ�Ě�Ĺ�A
# �y�Ę�ť�X�N���v�g�Í�ü�ę�Č�˘�Ĺ��ž�ł�˘�B
#
# ���g�˘�ű
#
# �Ü�¸�}�b�v�ź�đ�uXXXXX,�����_��,YYY,ZZZ�v�Ć�ľ�Ä��ž�ł�˘�B
# XXXXX�Í�D�Ť�Č�ź�O�đ�ü�ę�Ä��ž�ł�˘�B
# YYY�É�Í�A�ś�Ź�Ě�p�^�[���Ô���đ�ü�ę�Ü�ˇ�B�T���v���đ�Q�Ć�É�ľ�Ä��ž�ł�˘�B
# ZZZ�É�Í�A�á�Q�¨�Ě�˝�ł�đ�ü�ę�Ä��ž�ł�˘�B�ą�ę�ŕ�T���v���đ�Q�l�É�ľ�Ä��ž�ł�˘�B
#
# ���É�A�}�b�v�^�C���đ�ą�Ě�}�b�v�É�ę�č�Ě�@�Ľ�Ĺ�Ŕ�×�Ü�ˇ
# �ą�ę�ŕ���Ż�Ü�š�ń�Ě�Ĺ�T���v���đ�Q�l�É�ľ�Ä��ž�ł�˘�B
# �Á�É���C���[�É���Ó�ľ�Ä��ž�ł�˘�B���C���[�ŕ�T���v���Ę�č�É�B�â�Ž�ł�ę�Ü�ˇ�B
#
# �Ĺ�ă�É�C�x���g�đ�Ý�č�ľ�Ü�ˇ
#
# �C�x���g�Ě�ź�O�đ�uXXXXX,���p�_�v
# �Ć�ˇ�é�Ć�A�ť�Ě�Ę�u�Í�K�¸�n�Ę�É�Č�č�Ü�ˇ�B
# �ą�Ě���p�_�đ�A�C�x���gID�Ě���É�q�˘�Ĺ�˘�Á�Ä�}�b�v�đ�ě�č�Ü�ˇ�B
# (�ź�ü�Ĺ���ń�Ĺ�˘�é�í�Ż�Ĺ�Í�ŕ�ż�ë�ń� �č�Ü�š�ń)
# �Č�é�×��A�}�b�v�Ě�ź�Ł�É���p�_�đ�ě�Á�Ä��ž�ł�˘�B
# �Ü�˝�A�Ł�Í��ľ�ó�Ż�Ä��ž�ł�˘�B(5�^�C���ö�x)�Ç�Ş�ł��Č�č�Ü�ˇ�B
# �˝�ž�ľ�A�ą�Ě���p�_�Ş�ł��Ä�ŕ�A�ę���}�b�v�Í�ě�Ź�ł�ę�Ü�ˇ�B
# �Ü�˝�A���p�_�đ���â�ľ�ˇ�Ź�é�Ć�A�Ç�Ş�¸�č�Ü�ˇ�B
# ���Â�Ĺ�\�Ş�Č�Ě�Ĺ�C�đ�Â�Ż�Ä��ž�ł�˘�B
# �I�X�X���Í�R�Â�Ĺ�R�p�`�Ě�`�É�Ý�č�Ĺ�ˇ
#
# ���p�_�Č�O�Ě�C�x���g�Ĺ�A�Á�É�w�č�Ě�ł�˘�ŕ�Ě�Í�����_���Č�n�Ę�É�Ú�Ž�ł�ę�Ü�ˇ�B
#
# �C�x���g�Ě�ź�O�đ�uXXXXX,�Ĺ�č�v
# �Ć�ˇ�é�Ć�A�ť�Ě�C�x���g�Í�ť�Ě�Ę�u�Ě�ß��Ě�n�Ę�É�Ú�Ž�ł�ę�Ü�ˇ�B
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ĺ�č�v�Ć�ľ�Ä�ŕ�Â�Ĺ�ˇ�B
#
# �C�x���g�Ě�ź�O�đ�uXXXXX,�Ž�S�Ĺ�č�v
# �Ć�ˇ�é�Ć�A�ť�Ě�C�x���g�Í�ť�Ě�Ę�u�Ě�Ü�Ü�É�Č�č�Ü�ˇ�B
# �Š�Ž�J�n�Ě�C�x���g�â�Ŕ�ń�����Ě�C�x���g�Ĺ�A�Ł�É�u�˘�Ä�¨�Ť�˝�˘�¨�É�B
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ž�S�Ĺ�č�v�Ć�ľ�Ä�ŕ�Â�Ĺ�ˇ�B
#
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ç�Ý�u�v
# �Ć�ˇ�é�Ć�A�ť�Ě�C�x���g�Í�����_���Č�Ç�Ě�Ę�u�É�Ú�Ž�ł�ę�Ü�ˇ�B
# �ŕ�â�ź�ž�Č�Ç�Ě�C�x���g�p�Ĺ�ˇ�B�u�Ç�Ý�u,1�v�Ć�R���}�É�ą�˘�Ä�����đ�w�č�ˇ�é�Ć�A
# �ť�Ě�Ş�Ě�Ą���Ş[�Ç�Á]�Ĺ�m�Ű�ł�ę�Ü�ˇ�B(�Ą���P�^�C���Č�ç0�đ�A�R�^�C���Č�ç1�đ�B)
# �ą�ę�É�ć�Á�Ä�ĺ�Ť�˘�C�x���g�ŕ�g�¤�ą�Ć�Ş�Ĺ�Ť�Ü�ˇ
#
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ç�Ý�u�Ĺ�č�v
# �Ć�ˇ�é�Ć�A�ă�L�u�Ç�Ý�u�v�Ć�u�Ĺ�č�v�Ş�K���ł�ę�Ü�ˇ�B
# �Â�Ü�č�A�ł�Ě�Ę�u�Ě�ß��Ě�Ç�É�Ú�Ž�ł�ę�Ü�ˇ�B
# �Ü�˝�u�Ç�Ý�u�Ĺ�č,1�v�Ć�A�Ç�Á���ŕ�w�č�Ĺ�Ť�Ü�ˇ�B
#
# �Ü�˝�A�g�p�ˇ�é�Ű�Í�A�Ť�Ě���Ş�đ�K�p�É���ś�Ä���Ť�ˇ�Ś�Ä��ž�ł�˘�B
#========================================================================
#========================================================================
#���X�N���v�g�V�F���t�Ě���R�ł�ń�Ě�p�[�e�B�ń�Ô�Ú�Ž�Ć� �í�š�Ä�g�¤�ę���Í�A
#�@�ą�Ě�X�N���v�g�đ�ń�Ô�Ú�Ž�ć�č�ŕ�ş�É�ľ�Ä�A
#�@�Ť�đ�A USE_TRAIN_ACTOR = true �Ć�ľ�Ä��ž�ł�˘�B(�g�í�Č�˘�Ć�Ť�Í = false)
USE_TRAIN_ACTOR = false
#========================================================================
#========================================================================
#���N���b�s���O�Ě���Ł�w�č(�Ó�Ą�í�Š�ń�Č�Š�Á�˝�ç�ą�Ě�Ü�Ü�Ĺ�B)
class Game_Character
DRAWRANGEX = 1920 # �}�b�v�L�����Ě�X�v���C�g�đ�X�V�ˇ�é���Ł
DRAWRANGEY = 1664 # �Š�Č�č�ĺ�Ť�˘�L�����`�b�v�đ�g�¤�ę���Í���â�ľ�Ä��ž�ł�˘�B
# X:14 Y:12�^�C���O�ă���§ �^�C�����É128�|�Ż�˝���l�đ�w�č�B
# �ż�Č�Ý�É�ă�ŞX(�Ą)�ş�ŞY(�c)�Ĺ�ˇ�B
end
#========================================================================
#========================================================================
#���Ű�ś�ˇ�é�Š�Ű�Š�B(�Ŕ�Ű�É�����_���@�\�Í�g�í�Č�˘�Ż�Ç�A�ě�é�č�Ô�Í�Č�Ť�˝�˘�ű�É�B)
# �ą�ę�Ĺ�Ű�ś�ł�ę�˝�}�b�v�đ�A�ź�Ě�}�b�v�É�R�s�[�ˇ�ę�Î�A�§�ě�Ě�č�Ô�Ş�Č�Ż�Ü�ˇ�B
class Game_Map
AUTO_MAP_SAVE = true # �}�b�v�đID:999�É�Ű�ś�ˇ�é�Š�Ç�¤�Š�B
# true �Č�ç�Ű�ś�@false �Č�ç�Ű�ś�ľ�Č�˘
# �Ž�Ź�ľ�˝�Q�[���đ�ö�J�ˇ�é�Ű�Ífalse�É�ľ�Ä��ž�ł�˘�B
end
#-------------------------------------------------------------------
# ��Game_Temp�N���X
#--------------------------------------------------------------------
class Game_Temp
alias initialize_tonbi1 initialize
def initialize
initialize_tonbi1
$onscreen = [] # �X�v���C�g�ć�Ę�ŕ�t���O
end
end
#--------------------------------------------------------------------------
# �� Game_Character�N���X
#--------------------------------------------------------------------------
class Game_Character
#--------------------------------------------------------------------------
# �� �t���[���X�V
#--------------------------------------------------------------------------
alias update_tonbi1 update
def update
#�ć�Ę�ă�Ĺ�Ě�Ę�u
sx = @real_x - $game_map.display_x - 1280
sy = @real_y - $game_map.display_y - 960
# �â�Î�l�đ���ß�é
abs_sx = sx > 0 ? sx : -sx
abs_sy = sy > 0 ? sy-3 : -sy
# �c�Š�Ą�Ş DRAWRANGE �^�C���Č�ă�Ł�ę�Ä�˘�é�ę��
if abs_sx > DRAWRANGEX or abs_sy > DRAWRANGEY
# �X�v���C�g�ń�X�V�É�ˇ�é
$onscreen[@id]=false
else
# �X�v���C�g�X�V� �č�É�ˇ�é
$onscreen[@id]=true
end
update_tonbi1
end
end
class Spriteset_Map
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g���ú�ť
#--------------------------------------------------------------------------
attr_accessor :character_sprites
def initialize
$onscreen = []
# �r���[�|�[�g�đ�ě�Ź
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 200
@viewport3.z = 5000
# �^�C���}�b�v�đ�ě�Ź
@tilemap = Tilemap.new(@viewport1)
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names
@tilemap.autotiles = RPG::Cache.autotile(autotile_name)
end
@tilemap.map_data = $game_map.data
@tilemap.priorities = $game_map.priorities
# �p�m���}�v���[���đ�ě�Ź
@panorama = Plane.new(@viewport1)
@panorama.z = -1000
# �t�H�O�v���[���đ�ě�Ź
@fog = Plane.new(@viewport1)
@fog.z = 3000
#########################################################����X
# �L�����N�^�[�X�v���C�g�đ�ě�Ź
# �p�[�e�B�Ć�C�x���g�đ�Ş�Ż�˝�B
@character_sprites = []
@party_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events)
@character_sprites=sprite
$onscreen = true
end
@party_sprites.push(Sprite_Character.new(@viewport1, $game_player))
#########################################################
# �V�ó�đ�ě�Ź
@weather = RPG::Weather.new(@viewport1)
# �s�N�`���đ�ě�Ź
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_screen.pictures))
end
# �^�C�}�[�X�v���C�g�đ�ě�Ź
@timer_sprite = Sprite_Timer.new
# �t���[���X�V
update
end
#--------------------------------------------------------------------------
# �� �đ�ú
#--------------------------------------------------------------------------
def dispose
# �^�C���}�b�v�đ�đ�ú
@tilemap.tileset.dispose
for i in 0..6
@tilemap.autotiles.dispose
end
@tilemap.dispose
# �p�m���}�v���[���đ�đ�ú
@panorama.dispose
# �t�H�O�v���[���đ�đ�ú
@fog.dispose
############################################################����X
# �L�����N�^�[�X�v���C�g�đ�đ�ú
# nil �Č�ç�J�ú�ľ�Č�˘
for i in @character_sprites
if i != nil
i.dispose
end
end
for i in @party_sprites
if i != nil
i.dispose
end
end
############################################################
# �V�ó�đ�đ�ú
@weather.dispose
# �s�N�`���đ�đ�ú
for sprite in @picture_sprites
sprite.dispose
end
# �^�C�}�[�X�v���C�g�đ�đ�ú
@timer_sprite.dispose
# �r���[�|�[�g�đ�đ�ú
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
end
#--------------------------------------------------------------------------
# �� �t���[���X�V
#--------------------------------------------------------------------------
def update
# �p�m���}�Ş�ť�Ý�Ě�ŕ�Ě�Ć�Ů�Č�é�ę��
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
# �t�H�O�Ş�ť�Ý�Ě�ŕ�Ě�Ć�Ů�Č�é�ę��
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
# �^�C���}�b�v�đ�X�V
@tilemap.ox = $game_map.display_x / 4
@tilemap.oy = $game_map.display_y / 4
@tilemap.update
# �p�m���}�v���[���đ�X�V
@panorama.ox = $game_map.display_x / 8
@panorama.oy = $game_map.display_y / 8
# �t�H�O�v���[���đ�X�V
@fog.zoom_x = $game_map.fog_zoom / 100.0
@fog.zoom_y = $game_map.fog_zoom / 100.0
@fog.opacity = $game_map.fog_opacity
@fog.blend_type = $game_map.fog_blend_type
@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
@fog.tone = $game_map.fog_tone
#####################################################����X
# �L�����N�^�[�X�v���C�g�đ�X�V
# �ć�Ę�O�Ě�X�v���C�g�Í�X�V�ľ�Č�˘
for i in $game_map.events.keys
if $onscreen
@character_sprites.update
end
end
# �v���C���[�L�����X�V
for i in @party_sprites
i.update
end
#####################################################
# �V�ó�O���t�B�b�N�đ�X�V
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.ox = $game_map.display_x / 4
@weather.oy = $game_map.display_y / 4
@weather.update
# �s�N�`���đ�X�V
for sprite in @picture_sprites
sprite.update
end
# �^�C�}�[�X�v���C�g�đ�X�V
@timer_sprite.update
# �ć�Ę�Ě�F�˛�Ć�V�F�C�N�Ę�u�đ�Ý�č
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
# �ć�Ę�Ě�t���b�V���F�đ�Ý�č
@viewport3.color = $game_screen.flash_color
# �r���[�|�[�g�đ�X�V
@viewport1.update
@viewport3.update
end
end
if USE_TRAIN_ACTOR == true
module Train_Actor
module Spriteset_Map_Module
def setup_actor_character_sprites(characters)
if !setup_actor_character_sprites?
for character in characters.reverse
@party_sprites.unshift(
Sprite_Character.new(@viewport1, character)
)
end
@setup_actor_character_sprites_flag = true
end
end
end
end
end
#==============================================================================
# �Ą Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# �� �Z�b�g�A�b�v
# map_id : �}�b�v ID
#--------------------------------------------------------------------------
def setup(map_id)
# �}�b�v ID �đ @map_id �É�L�Ż
@map_id = map_id
# �}�b�v�đ�t�@�C���Š�ç���[�h�ľ�A@map �É�Ý�č
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
# �ö�J�C���X�^���X�Ď���É�^�C���Z�b�g�Ě�î�ń�đ�Ý�č
tileset = $data_tilesets[@map.tileset_id]
@tileset_name = tileset.tileset_name
@autotile_names = tileset.autotile_names
@panorama_name = tileset.panorama_name
@panorama_hue = tileset.panorama_hue
@fog_name = tileset.fog_name
@fog_hue = tileset.fog_hue
@fog_opacity = tileset.fog_opacity
@fog_blend_type = tileset.fog_blend_type
@fog_zoom = tileset.fog_zoom
@fog_sx = tileset.fog_sx
@fog_sy = tileset.fog_sy
@battleback_name = tileset.battleback_name
@passages = tileset.passages
@priorities = tileset.priorities
@terrain_tags = tileset.terrain_tags
# �\�Ś�Ŕ�W�đ���ú�ť
@display_x = 0
@display_y = 0
check_special_map #��
# ���t���b�V���v���t���O�đ�N���A
@need_refresh = false
# �}�b�v�C�x���g�Ě�f�[�^�đ�Ý�č
@events = {}
for i in @map.events.keys
@events = Game_Event.new(@map_id, @map.events)
end
# �R�����C�x���g�Ě�f�[�^�đ�Ý�č
@common_events = {}
for i in 1...$data_common_events.size
@common_events = Game_CommonEvent.new(i)
end
# �t�H�O�Ě�e�î�ń�đ���ú�ť
@fog_ox = 0
@fog_oy = 0
@fog_tone = Tone.new(0, 0, 0, 0)
@fog_tone_target = Tone.new(0, 0, 0, 0)
@fog_tone_duration = 0
@fog_opacity_duration = 0
@fog_opacity_target = 0
# �X�N���[���î�ń�đ���ú�ť
@scroll_direction = 2
@scroll_rest = 0
@scroll_speed = 4
end
#--------------------------------------------------------------------------
# �� �}�b�v�đ�Ç�Ý���ń�ž�ź�ă�Ě����
#--------------------------------------------------------------------------
def check_special_map
# �}�b�v�Ě�ź�O�Ě�f�[�^�đ�ć�ž
mapinfo = load_data("Data/MapInfos.rxdata")
# �}�b�v�Ě�T�u�l�[���Ş"�����_��"�Č�ç
if mapinfo[@map_id].subname == "�����_��"
if mapinfo[@map_id].subname(3)=="" or mapinfo[@map_id].subname(3) == nil
p3 = 0
else
p3 = mapinfo[@map_id].subname(3).to_i
end
if mapinfo[@map_id].subname(4)=="false"
p4 = false
end
make_random_map(2,mapinfo[@map_id].subname(2).to_i,p3,p4)
end
end
#--------------------------------------------------------------------------
# �� �����_���}�b�v�đ�ě�Ź�ˇ�é
# wall = �Ç�Ě���ł�@>>�@�ť���_�Ĺ�Í�ł�ř
# type = �Ç�ť�ě�^�C�v�@>>�@�O�ľ�Š�ě�Á�Ä�Ü�š�ń(�ž�@�w�č�ű�@�ŕ�˘�č
# thoughplayer = �v���C���[���p�_������H
# connect = ���p�_�Ě���Ń�ű >> true=�A�ą false=�Q�Â�¸�Â�Ć�§
#
# �Ś�ˇ�×�Ä�Ě�ř���Č�Ş�ť �@�ş�Ě�p�É�ň�Î�ˇ�ą�Ć�ŕ�Â�\
# ex. make_random_map(2,0,,true)
#--------------------------------------------------------------------------
def make_random_map(wall = 2, type = 0, objcnt = 0, connect = true)
# �p�����[�^�Ů�í�Ě�Î�ô
wall = 0 if wall == nil
type = 0 if type == nil
objcnt = 0 if objcnt == nil
unless objcnt.is_a?(Numeric)
objcnt = 0
end
if objcnt < 0
objcnt = 0
end
connect = true if connect != false
# ���ł�f�[�^�z�ń
@heightdata = Table.new(@map.width,@map.height)
# �n�`�f�[�^�z�ń
@maskdata = Table.new(@map.width,@map.height)
# �C�x���g���z�u�f�[�^�z�ń
@oneventdata = Table.new(@map.width,@map.height)
# �}�X�N�Ý�č�f�[�^�z�ń
@masksetting = []
# �ť�ě�ű�@�f�[�^
@makedata = []
# ���Z�ű�@���ú�ť
@targettype=0
@chgtype=0
time = -1
# �e�f�[�^���ú�ť
for i in 0...@map.width
for j in 0...@map.height
time += 1
if time%2000 == 0
Graphics.update
end
@heightdata[i,j] = 0
@maskdata[i,j] = 0
end
end
for i in 0...100
@masksetting = true
end
# ���p�_�î�ń�ć�ž
needposx = []
needposy = []
# �C�x���g�u���p�_�v�đ�Ç�Á
for i in @map.events.keys.sort
time += 1
if time%200 == 0
Graphics.update
end
if event_settype(i) == 1
if connect == true
needposx.push(@map.events.x)
needposy.push(@map.events.y)
needposx.push(@map.events.x)
needposy.push(@map.events.y)
else
needposx.push(@map.events.x)
needposy.push(@map.events.y)
end
end
end
if connect == true
needposx.shift
needposy.shift
end
loop do
if needposx.size <= 2
needposx.push(rand(@map.width))
needposy.push(rand(@map.height))
else
break
end
end
# �ą�ą�Ĺ�ť�ě�ű�@�f�[�^�đ�Z�b�g�ˇ�é
case type
when 0
# �^�C�v0 >> �Q�w��R�^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-15,4,0])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,1,1,1])
@makedata.push([4,0,1,1,1])
@makedata.push([4,1,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,1])
when 1
# �^�C�v1 >> �Q�w�l�H�^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-6,4,1,10])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,2,3,1])
@makedata.push([4,1,2,2,1])
@makedata.push([4,0,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,1])
when 2
# �^�C�v2 >> �Q�w��R��^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-15,4,0])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,2,2,1])
@makedata.push([4,1,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,-1])
when 3
# �^�C�v2 >> �Q�w�l�H��^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-15,4,1,10])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,2,2,1])
@makedata.push([4,1,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,-1])
when 4
# �^�C�v4 >> �Q�w�Š�R�^�C�v �ť�Ě�P
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,3,3,8,8])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-8,4,0,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
when 5
# �^�C�v5 >> �Q�w�l�H�^�C�v �ť�Ě�P
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,3,3,8,8])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-8,4,1,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
when 6
# �^�C�v6 >> �Q�w�Š�R�^�C�v�@�ť�Ě�Q
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,1,1,3,3])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# ���g�ĺ
@makedata.push([4,0,2,2,0])
@makedata.push([4,0,1,2,1])
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-15,4,0,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
when 7
# �^�C�v7 >> �Q�w�l�H�^�C�v�@�ť�Ě�Q
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,1,1,3,3])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# ���g�ĺ
@makedata.push([4,0,2,2,0])
@makedata.push([4,0,1,2,1])
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-15,4,1,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
end
# �Ŕ�Ű�É�ě�é
for make_stat in @makedata
time += 1
if time%2 == 0
Graphics.update
end
case make_stat[0]
when 0 # �Î�Ű�Ď�X (p1[0=���ł 1=�n�`], p2[0=�ă�ü 1=�Á�Z])
rndmap_chtarget(make_stat[1],make_stat[2])
when 1 # �ř���Ý�č (minx, miny, maxz, maxy)
rndmap_setstat(make_stat[1],make_stat[2],make_stat[3],make_stat[4])
when 2 # �}�X�N��X (p1[-1:�S��], p2[ 0=false 1=true 2=onlytrue])
rndmap_chmask(make_stat[1],make_stat[2])
when 3 # �š�ě�Ź (�l,���p�_��,�Ł�m�Ű,�^�C�v)
rndmap_mkroad(make_stat[1],make_stat[2],make_stat[3],make_stat[4],make_stat[5])
when 4 # �g�Ł (�Î�Ű,�c��,�Ą��,�^�C�v)
rndmap_plus(make_stat[1],make_stat[2],make_stat[3],make_stat[4])
when 5 # �S��X (�l)
rndmap_allchg(make_stat[1])
when 6 # �w�č�_ (�l,�Ę�uX,�Ę�uY)
rndmap_putpos(make_stat[1],make_stat[2],make_stat[3])
when 7 # �ü�Í (�l)
rndmap_edge(make_stat[1])
end
end
# �g�p�}�b�v�^�C����
@tilesetting = Table.new(3,40,3)
for i in [0,1,2]
for k in 0...40
for j in [0,1,2]
@tilesetting[j,k,i] = @map.data[j,k,i]
end
end
end
# �â�ł�ˇ�é
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
# �Ç�Ě�ş�Ě�^�C���Ş���Č�ç�n�Ę�É�Ď�X
if @heightdata[j,k] == 1
if @heightdata[j,k+1]==-1
@heightdata[j,k+1] = 0
if @heightdata[j,k+2]==-1 and
@heightdata[j,k+3] == 0
@heightdata[j,k+2] = 0
end
end
end
end
end
# �n�Ę�ě�Ź�@�ť�Ě�ë >> �Ć�č� �Ś�¸�~�Ť�l�ß�é
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
if @heightdata[j,k] == 0
if @heightdata[j,k+1] == -1 or
@heightdata[j,k-1] == -1 or
@heightdata[j+1,k] == -1 or
@heightdata[j-1,k] == -1
set_mapdata2(j,k,0,8)
else
set_mapdata2(j,k,0,0)
end
elsif @heightdata[j,k] == 1
if @heightdata[j,k+1] == -1 or
@heightdata[j,k-1] == -1 or
@heightdata[j+1,k] == -1 or
@heightdata[j-1,k] == -1
set_mapdata2(j,k,0,8)
elsif @heightdata[j,k+1] == 0 or
@heightdata[j,k-1] == 0 or
@heightdata[j+1,k] == 0 or
@heightdata[j-1,k] == 0
set_mapdata2(j,k,0,0)
else
set_mapdata2(j,k,1,4)
end
else
set_mapdata2(j,k,0,8)
end
end
end
# �n�Ę�ě�Ź�@�ť�Ě�ó >> ���Ć�Ě�G�b�a�ě�Ź
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
if @heightdata[j,k] == 0
if @heightdata[j,k+1] == -1
# �ş�Ş��------------------
if @heightdata[j-1,k] == -1
# �ś�ŕ��
for i in [0,1,2]
set_mapdata(j,k+i,0,13+i,1)
end
elsif @heightdata[j+1,k] == -1
# �E��
for i in [0,1,2]
set_mapdata(j,k+i,2,13+i,1)
end
else
# �ź�e�ŕ�n�Ę
for i in [0,1,2]
set_mapdata(j,k+i,1,13+i,1)
end
end
elsif @heightdata[j,k-1] == -1
# ����------------------
if @heightdata[j-1,k] == -1 or
(@heightdata[j-1,k] == 1 and
@heightdata[j-1,k-1] == -1)
# �ś�ŕ��
set_mapdata(j,k,0,11,2)
elsif @heightdata[j+1,k] == -1 or
(@heightdata[j+1,k] == 1 and
@heightdata[j+1,k-1] == -1)
# �E��
set_mapdata(j,k,2,11,2)
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k,1,11,2)
end
elsif @heightdata[j-1,k] == -1 or
(@heightdata[j-1,k] == 1 and
@heightdata[j-1,k-1] == -1)
# �ś�Ş��------------------
set_mapdata(j,k,0,12,1)
elsif @heightdata[j+1,k] == -1 or
(@heightdata[j+1,k] == 1 and
@heightdata[j+1,k-1] == -1)
# �E���------------------
set_mapdata(j,k,2,12,1)
elsif @heightdata[j-1,k-1] == -1
# �ś�ă�Ş��------------------
set_mapdata(j,k,0,9,1)
elsif @heightdata[j-1,k+1] == -1
# �ś�ş�Ş��------------------
set_mapdata(j,k,0,10,1)
elsif @heightdata[j+1,k-1] == -1
# �E����------------------
set_mapdata(j,k,1,9,1)
elsif @heightdata[j+1,k+1] == -1
# �E�ş�Ş��------------------
set_mapdata(j,k,1,10,1)
end
end
if @heightdata[j,k] == 1 and
@heightdata[j,k-1] != -1
if @heightdata[j,k+1] == -1
# �ş�Ş��------------------
if @heightdata[j-1,k] == -1
# �ś�ŕ��
for i in [0,1,2]
# set_mapdata(j,k+i,0,13+i,1)
end
elsif @heightdata[j+1,k] == -1
# �E��
for i in [0,1,2]
# set_mapdata(j,k+i,2,13+i,1)
end
else
# �ź�e�ŕ�n�Ę
for i in [0,1,2]
# set_mapdata(j,k+i,1,13+i,1)
end
end
elsif @heightdata[j,k-1] == -1
# ����------------------
if @heightdata[j-1,k] == -1
# �ś�ŕ��
set_mapdata(j,k,0,11,2)
elsif @heightdata[j+1,k] == -1
# �E��
set_mapdata(j,k,2,11,2)
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k,1,11,2)
end
elsif @heightdata[j-1,k] == -1
# �ś�Ş��------------------
set_mapdata(j,k,0,12,1)
elsif @heightdata[j+1,k] == -1
# �E���------------------
set_mapdata(j,k,2,12,1)
elsif @heightdata[j-1,k-1] == -1
# �ś�ă�Ş��------------------
set_mapdata(j,k,0,9,1)
elsif @heightdata[j-1,k+1] == -1
# �ś�ş�Ş��------------------
set_mapdata(j,k,0,10,1)
elsif @heightdata[j+1,k-1] == -1
# �E����------------------
set_mapdata(j,k,1,9,1)
elsif @heightdata[j+1,k+1] == -1
# �E�ş�Ş��------------------
set_mapdata(j,k,1,10,1)
end
end
end
end
# �n�Ę�ě�Ź�@�ť�Ě�Q >> �Ç�Ć�Ě�G�b�a�ě�Ź
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
if @heightdata[j,k] == 1
if @heightdata[j,k+1] == 0 or
@heightdata[j,k+1] == -1
# �ş�Ş��------------------
if @heightdata[j-1,k] == 0 or
@heightdata[j-1,k] == -1
# �ś�ŕ��
set_mapdata(j,k+0,0,5+0,5)
set_mapdata(j,k+1,0,5+1,5)
set_mapdata(j,k+2,0,5+2,4)
if @heightdata[j,k+3] != 0 and
@heightdata[j,k+2] != 1 and
(@heightdata[j,k+2] != 0 or @heightdata[j-1,k+2] != 0)
set_mapdata(j,k+2,0,16,5)
for i in [0,1]
set_mapdata(j,k+3+i,0,14+i,1)
if @heightdata[j,k+3+i] != -1
break
end
end
end
elsif @heightdata[j+1,k] == 0 or
@heightdata[j+1,k] == -1
# �E��
set_mapdata(j,k+0,2,5+0,5)
set_mapdata(j,k+1,2,5+1,5)
set_mapdata(j,k+2,2,5+2,4)
if @heightdata[j,k+3] != 0 and
@heightdata[j,k+2] != 1 and
(@heightdata[j,k+2] != 0 or @heightdata[j+1,k+2] != 0)
set_mapdata(j,k+2,2,16,5)
for i in [0,1]
set_mapdata(j,k+3+i,2,14+i,1)
if @heightdata[j,k+3+i] != -1
break
end
end
end
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k+0,1,5+0,5)
set_mapdata(j,k+1,1,5+1,5)
set_mapdata(j,k+2,1,5+2,4)
if @heightdata[j,k+3] != 0 and
@heightdata[j,k+2] != 1
set_mapdata(j,k+2,1,16,5)
for i in [0,1]
set_mapdata(j,k+3+i,1,14+i,1)
if @heightdata[j,k+3+i] != -1
break
end
end
end
end
elsif @heightdata[j,k-1] == 0 or
@heightdata[j,k-1] == -1
# ����------------------
if @heightdata[j-1,k] == 0 or
@heightdata[j-1,k] == -1
# �ś�ŕ��
set_mapdata(j,k,0,3,4)
elsif @heightdata[j+1,k] == 0 or
@heightdata[j+1,k] == -1
# �E��
set_mapdata(j,k,2,3,4)
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k,1,3,4)
end
elsif @heightdata[j-1,k] == 0 or
@heightdata[j-1,k] == -1
# �ś�Ş��------------------
set_mapdata(j,k,0,4,4)
elsif @heightdata[j+1,k] == 0 or
@heightdata[j+1,k] == -1
# �E���------------------
set_mapdata(j,k,2,4,4)
elsif @heightdata[j-1,k-1] == 0 or
@heightdata[j-1,k-1] == -1
# �ś�ă�Ş��------------------
set_mapdata(j,k,0,1,4)
elsif @heightdata[j-1,k+1] == 0 or
@heightdata[j-1,k+1] == -1
# �ś�ş�Ş��------------------
set_mapdata(j,k,0,2,4)
elsif @heightdata[j+1,k-1] == 0 or
@heightdata[j+1,k-1] == -1
# �E����------------------
set_mapdata(j,k,1,1,4)
elsif @heightdata[j+1,k+1] == 0 or
@heightdata[j+1,k+1] == -1
# �E�ş�Ş��------------------
set_mapdata(j,k,1,2,4)
end
end
end
end
# �v���C���[�Ě�Ę�u�đ�˛�ß
playerpos_reset($game_temp.player_new_x,$game_temp.player_new_y)
@oneventdata[$game_temp.player_new_x,$game_temp.player_new_y] = 1
time = 0
for i in @map.events.keys.sort
time += 1
if time%100 == 0
Graphics.update
end
# �C�x���g�Ý�u�^�C�v>>�Ž�S�Ĺ�č(�Ĺ�D�ć)
case event_settype(i)
when 3
@oneventdata[@map.events.x,@map.events.y] = 1
end
end
for i in @map.events.keys.sort
time += 1
if time%100 == 0
Graphics.update
end
# �C�x���g��u�^�C�v>>���p�_
case event_settype(i)
when 1
set_defeventpos(i,@map.events.x,@map.events.y)
@oneventdata[@map.events.x,@map.events.y] = 1
end
end
# �C�x���g�Ě�Ę�u�đ�˛�ß
for i in @map.events.keys.sort
time += 1
if time%100 == 0
Graphics.update
end
j = event_settype(i)
case j
when 0 # �����_��
set_defeventpos(i,rand(@map.width-4)+2,rand(@map.width-4)+2)
@oneventdata[@map.events.x,@map.events.y] = 1
when 2 # �Ĺ�č
set_defeventpos(i,@map.events.x,@map.events.y)
@oneventdata[@map.events.x,@map.events.y] = 1
when 100..199 # ���u
set_defeventpos_wall(i,rand(@map.width-4)+2,rand(@map.width-4)+2,j-100)
@oneventdata[@map.events.x,@map.events.y] = 1
@oneventdata[@map.events.x,@map.events.y-1] = 1
for k in 1..(j-100)
@oneventdata[@map.events.x+k,@map.events.y] = 1
@oneventdata[@map.events.x+k,@map.events.y-1] = 1
@oneventdata[@map.events.x-k,@map.events.y] = 1
@oneventdata[@map.events.x-k,@map.events.y-1] = 1
end
when 200..299 # �Ç�Ý�u�Ĺ�č
set_defeventpos_wall(i,@map.events.x,@map.events.y,j-200)
@oneventdata[@map.events.x,@map.events.y] = 1
@oneventdata[@map.events.x,@map.events.y-1] = 1
for k in 1..(j-200)
@oneventdata[@map.events.x+k,@map.events.y] = 1
@oneventdata[@map.events.x+k,@map.events.y-1] = 1
@oneventdata[@map.events.x-k,@map.events.y] = 1
@oneventdata[@map.events.x-k,@map.events.y-1] = 1
end
end
end
# �á�Q�¨�đ�u�
for i in 0...(rand(objcnt)+objcnt/2)
time += 1
if time%500 == 0
Graphics.update
end
j = rand(@map.width)
k = rand(@map.width)
case rand(10)
when 0..4
if standable_newtile?(1,0)
if standable?(j,k)
set_mapdata(j,k,1,0,6)
end
else
if standable2?(j,k)
set_mapdata(j,k,1,0,6)
end
end
when 5..7
if standable_newtile?(2,0)
if standable?(j,k)
set_mapdata(j,k,2,0,6)
end
else
if standable2?(j,k)
set_mapdata(j,k,2,0,6)
end
end
when 8..9
if standable2?(j,k)
if @map.data[j,k-1,2]==0 and
(@map.data[j,k,1]==0 or @map.data[j,k,2]==0)
set_mapdata(j,k,2,2,4) # 4>6?
set_mapdata(j,k-1,2,1,4) # 4>2?
end
end
end
end
# �Ď���Ě�ŕ�e�J�ú(�ą�ę�Ĺ�ł�ę�é�Ě�Š�Č�H)
@heightdata.resize(0,0)
@maskdata.resize(0,0)
@oneventdata.resize(0,0)
@masksetting.clear
@makedata.clear
@tilesetting.resize(0,0,0)
if AUTO_MAP_SAVE
# �Ű�ś�@�\
save_data(@map,sprintf("Data/Map%03d.rxdata", 999))
maplist = load_data("Data/MapInfos.rxdata")
mapinfo = RPG::MapInfo.new
mapinfo.name = sprintf("�����_���Š�Ž�Ű�ś(%s)", maplist[@map_id].name)
mapinfo.parent_id = 0
mapinfo.order = 999
mapinfo.expanded = true
mapinfo.scroll_x = 0
mapinfo.scroll_y = 0
maplist[999]=mapinfo
save_data(maplist,"Data/MapInfos.rxdata")
end
end
#--------------------------------------------------------------------------
# �� �C�x���g���u�^�C�v��
#--------------------------------------------------------------------------
def event_settype(i)
if @map.events.subname == "���p�_"
return 1
end
if @map.events.subname == "�Ĺ�č"
return 2
end
if @map.events.subname == "�Ž�S�Ĺ�č"
return 3
end
for j in 0..1000
if @map.events.pages[0].list[j].code != 108
break
end
# �R�����g�É���p�_�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "���p�_"
return 1
end
# �R�����g�É�Ž�S�Ĺ�č�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "�Ž�S�Ĺ�č"
return 3
end
# �R�����g�É�Ĺ�č�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "�Ĺ�č"
return 2
end
# �R�����g�É�Ç�Ý�u�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "���u"
if @map.events.pages[0].list[j].parameters[0].split(/,/)[1] == nil
return 100
else
k = @map.events.pages[0].list[j].parameters[0].split(/,/)[1]
k = k.to_i
return 100+k
end
end
# �R�����g�É�Ç�Ý�u�Ĺ�č�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "�Ç�Ý�u�Ĺ�č"
if @map.events.pages[0].list[j].parameters[0].split(/,/)[1] == nil
return 200
else
k = @map.events.pages[0].list[j].parameters[0].split(/,/)[1]
k = k.to_i
return 200+k
end
end
end
return 0
end
#--------------------------------------------------------------------------
# �� �C�x���g�đ�w�č�Ę�u�t�ß�É�Ý�u
#--------------------------------------------------------------------------
def set_defeventpos(id,x,y)
if standable2?(x,y)
@map.events[id].x=x
@map.events[id].y=y
return
end
for i in 1..([@map.width,@map.height].max)
if standable2?(x,y+i)
@map.events[id].x=x
@map.events[id].y=y+i
return
end
for j in 1..i
if standable2?(x-j,y+i)
@map.events[id].x=x-j
@map.events[id].y=y+i
return
end
if standable2?(x+j,y+i)
@map.events[id].x=x+j
@map.events[id].y=y+i
return
end
if standable2?(x-j,y-i)
@map.events[id].x=x-j
@map.events[id].y=y-i
return
end
if standable2?(x+j,y-i)
@map.events[id].x=x+j
@map.events[id].y=y-i
return
end
end
end
end
#--------------------------------------------------------------------------
# �� �C�x���g�đ�w�č�Ę�u�t�ß�Ě�Ç�É�Ý�u
# p4 ��
#--------------------------------------------------------------------------
def set_defeventpos_wall(id,x,y,p4)
if standable3?(x,y,p4)
@map.events[id].x=x
@map.events[id].y=y
return
end
for i in 1..([@map.width,@map.height].max)
if standable3?(x,y+i,p4)
@map.events[id].x=x
@map.events[id].y=y+i
return
end
for j in 1..i
if standable3?(x-j,y+i,p4)
@map.events[id].x=x-j
@map.events[id].y=y+i
return
end
if standable3?(x+j,y+i,p4)
@map.events[id].x=x+j
@map.events[id].y=y+i
return
end
if standable3?(x-j,y-i,p4)
@map.events[id].x=x-j
@map.events[id].y=y-i
return
end
if standable3?(x+j,y-i,p4)
@map.events[id].x=x+j
@map.events[id].y=y-i
return
end
end
end
end
#--------------------------------------------------------------------------
# �� �v���C���[�đ�w�č�Ę�u�t�ß�É�Ý�u
#--------------------------------------------------------------------------
def playerpos_reset(x,y)
if standable?(x,y)
$game_temp.player_new_x=x
$game_temp.player_new_y=y
return
end
for i in 1..([@map.width,@map.height].max)
if standable?(x,y+i)
$game_temp.player_new_x=x
$game_temp.player_new_y=y+i
return
end
for j in 0..i
if standable?(x-j,y+i)
$game_temp.player_new_x=x-j
$game_temp.player_new_y=y+i
return
end
if standable?(x+j,y+i)
$game_temp.player_new_x=x+j
$game_temp.player_new_y=y+i
return
end
if standable?(x-j,y-i)
$game_temp.player_new_x=x-j
$game_temp.player_new_y=y-i
return
end
if standable?(x+j,y-i)
$game_temp.player_new_x=x+j
$game_temp.player_new_y=y-i
return
end
end
end
end
#--------------------------------------------------------------------------
# �� �Š�Ş�Í�Ę�ę�é�Š�H(�á�Q�¨�^�C��)
# p1,p2 ��uX,Y
#--------------------------------------------------------------------------
def standable_newtile?(p1,p2)
for i in [2, 1, 0]
tile_id = @tilesetting[p1, p2, i]
if tile_id == nil
return false
elsif @passages[tile_id] & 0x0f == 0x0f
return false
elsif @priorities[tile_id] == 0
return true
end
end
return true
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�É�§�Ä�é�Š�H
# p1,p2 ��uX,Y
#--------------------------------------------------------------------------
def standable?(p1,p2)
if @heightdata[p1,p2] != 0
return false
end
if @oneventdata[p1,p2] ==1
return false
end
for i in [2, 1, 0]
tile_id = @map.data[p1, p2, i]
if tile_id == nil
return false
elsif @passages[tile_id] & 0x0f == 0x0f
return false
elsif @priorities[tile_id] == 0
return true
end
end
return true
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�É�u�˘�Ä�ŕ�ĺ�ä�v�Š�H�i�ü�Í�Ě�C�x���g�Č�Ç�l�ś�Ĺ�j
# p1,p2 ��uX,Y
#--------------------------------------------------------------------------
def standable2?(p1,p2)
# �ť�Ě�Ę�u�ť�č
unless standable?(p1,p2)
return false
end
# �ü�Í�Ě�C�x���g�`�F�b�N(�s�Ť�~�Ü�č�É�Č�ç�Č�˘�Š�H)
# �c�Ö�˛�Ż�ę�é�Š
if standable?(p1+1,p2-1) == false or
standable?(p1+1,p2) == false or
standable?(p1+1,p2+1) == false
if standable?(p1-1,p2-1) == false or
standable?(p1-1,p2) == false or
standable?(p1-1,p2+1) == false
# �ŕ�Ć�ŕ�Ć�c�Ö�˛�Ż�ę�Č�˘���Í�ł��
if standable?(p1,p2-1) == true and
standable?(p1,p2+1) == true
return false
end
end
end
# �Ą�Ö�˛�Ż�ę�é�Š
if standable?(p1+1,p2+1) == false or
standable?(p1,p2+1) == false or
standable?(p1-1,p2+1) == false
if standable?(p1+1,p2-1) == false or
standable?(p1,p2-1) == false or
standable?(p1-1,p2-1) == false
# �ŕ�Ć�ŕ�Ć�Ą�Ö�˛�Ż�ę�Č�˘���Í�ł��
if standable?(p1-1,p2) == true and
standable?(p1+1,p2) == true
return false
end
end
end
if standable?(p1,p2-1) == false and
(standable?(p1-1,p2+1) == false or
standable?(p1,p2+1) == false or
standable?(p1+1,p2+1) == false)
return false
end
if standable?(p1,p2+1) == false and
(standable?(p1-1,p2-1) == false or
standable?(p1+1,p2-1) == false or
standable?(p1+1,p2-1) == false)
return false
end
if standable?(p1-1,p2) == false and
(standable?(p1+1,p2-1) == false or
standable?(p1+1,p2) == false or
standable?(p1+1,p2+1) == false)
return false
end
if standable?(p1+1,p2) == false and
(standable?(p1-1,p2-1) == false or
standable?(p1-1,p2) == false or
standable?(p1-1,p2+1) == false)
return false
end
return true
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�É�u�˘�Ä�ŕ�ĺ�ä�v�Š�H�i�Ç�Ĺ�j
# p1,p2 ��uX,Y
# p3 ��
#--------------------------------------------------------------------------
def standable3?(p1,p2,p3)
# �ş�Ş�ŕ�Ć�ŕ�Ć�§�Ä�Č�˘�Č�ç�s�Â
unless standable?(p1,p2+1)
return false
end
# �ť�Ě�Ę�u�ť�č
if @oneventdata[p1,p2] == 1 or
@oneventdata[p1,p2-1] == 1 or
@heightdata[p1,p2-2] != 1 or
@heightdata[p1,p2-1] == 1 or
@heightdata[p1,p2+1] != 0
return false
end
for i in 1...p3+1
if@heightdata[p1+i,p2-2] != 1 or
@heightdata[p1+i,p2-1] == 1 or
@heightdata[p1+i,p2+1] != 0
return false
end
if@heightdata[p1-i,p2-2] != 1 or
@heightdata[p1-i,p2-1] == 1 or
@heightdata[p1-i,p2+1] != 0
return false
end
end
for i in 1...p3+1
if @oneventdata[p1+i,p2] == 1 or
@oneventdata[p1+i,p2-1] == 1
return false
end
if @oneventdata[p1-i,p2] == 1 or
@oneventdata[p1-i,p2-1] == 1
return false
end
end
return true
end
#--------------------------------------------------------------------------
# �� �}�b�v�^�C���î�ń�Ď�X
# p1,p2 ���Ť�o�ľ�ć�Ę�uX,Y
# p3,p4 �ł�Q�Ć�Ę�uX,Y
# p5 �}�ü�ű�@ 0:�Ę�í 1:�ş���C�� 2:�ă���C�� 3:�ş�Š�ç 4:�ă�Š�ç 5:�ź�ű
#--------------------------------------------------------------------------
def set_mapdata(p1,p2,p3,p4,p5 = 0)
unless self.valid?(p1, p2)
return
end
if @tilesetting[p3,p4,0] != 0 # ���C���[�O������u�
@map.data[p1,p2,0] = @tilesetting[p3,p4,0]
end
case p5
when 0 # �Ę�í
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
if @tilesetting[p3,p4,2] != 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,2]
end
when 1 # �ş�É�u�
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
when 2 # �ă�É�u�
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
when 3 # �ş�Š�ç�u�
if @tilesetting[p3,p4,1] != 0
if @map.data[p1,p2,1] != 0
@map.data[p1,p2,2] = @map.data[p1,p2,1]
end
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
when 4 # �ă�Š�ç�u�
if @tilesetting[p3,p4,1] != 0
if @map.data[p1,p2,2] != 0
@map.data[p1,p2,1] = @map.data[p1,p2,2]
end
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
when 5 # �ź�ű�É�u�
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
when 6 # �u�Ż�é�Č�ç�u�
if @map.data[p1,p2,1] == 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
elsif @map.data[p1,p2,2] == 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
end
end
#--------------------------------------------------------------------------
# �� �}�b�v�^�C���î�ń�Ď�X2 >>�Í�Í�O�ť�č�Č�Ç�ł�ľver
# p1,p2 ���Ť�o�ľ�ć�Ę�uX,Y
# p3,p4 �ł�Q�Ć�Ę�uX,Y
#--------------------------------------------------------------------------
def set_mapdata2(p1,p2,p3,p4)
@map.data[p1,p2,0] = @tilesetting[p3,p4,0]
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
@map.data[p1,p2,2] = @tilesetting[p3,p4,2]
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�Ě�î�ń�Ď�X
# p1,p2 ��uX,Y
# p3 �l
#--------------------------------------------------------------------------
def set_height(p1,p2,p3)
return if p1<0
return if p1>=@map.width
return if p2<0
return if p2>=@map.height
@heightdata[p1,p2]=p3
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�Ě�î�ń�Ď�X
# p1,p2 ��uX,Y
# p3 �l
#--------------------------------------------------------------------------
def set_grounddata(p1,p2,p3)
return if p1<0
return if p1>=@map.width
return if p2<0
return if p2>=@map.height
if @masksetting[@maskdata[p1,p2]] == true
if @targettype==0
if @chgtype==0
@heightdata[p1,p2]=p3
elsif @chgtype==1
@heightdata[p1,p2]+=p3
end
elsif @targettype==1
if @chgtype==0
@maskdata[p1,p2]=p3
elsif @chgtype==1
@maskdata[p1,p2]+=p3
end
end
end
end
#--------------------------------------------------------------------------
# �� ���Z�ű�@�w�č
# p1 �Î�Ű�@>> =0:���ł�@=1:�n�` (�ť�Ý�A���ł0=�n�Ę 1=�Ç
# p2 �ű�@�@>> =0:�ă�ü�@=1:�Á�Z �n�`�Í�}�X�N�ť�č�É�Ě�Ý�g�p
#--------------------------------------------------------------------------
def rndmap_chtarget(p1,p2)
@targettype=p1
@chgtype=p2
end
#--------------------------------------------------------------------------
# �� �Ů�Š�Ě�R�}���h�Ĺ�g�p�ˇ�é�l�đ�Z�b�g
# p1,p2 �Ĺ�Ź X,Y
# p3,p4 �Ĺ�ĺ X,Y �š�ť�ě�Ě�J�n�_�A�I�š�_�Z�b�g�Č�Ç�É�g�p
#--------------------------------------------------------------------------
def rndmap_setstat(p1,p2,p3,p4)
@minx=p1
@miny=p2
@maxx=p3
@maxy=p4
end
#--------------------------------------------------------------------------
# �� �n�`�}�X�N�đ�Ý�č
# p1 = �Î�Ű�n�` (-1= �ˇ�×�Ä)
# p2 = �Ď�X�l (0= ���Ť�ˇ�Ś�Ö�~ 1= ���Ť�ˇ�Ś��� 2= �ť�Ě�n�`�Ě�Ý���Â)
#--------------------------------------------------------------------------
def rndmap_chmask(p1,p2)
if p1>=0
if p2==0
@masksetting[p1]=false
elsif p2 == 1
@masksetting[p1]=true
elsif p2 == 2
for i in 0...100
@masksetting=false
end
@masksetting[p1]=true
end
end
if p1==-1
if p2==0
for i in 0...100
@masksetting=false
end
else
for i in 0...100
@masksetting=true
end
end
end
end
#--------------------------------------------------------------------------
# �� �Q�_�đ�q�Ž�š�ě�Ź
# �n�_�A�I�_�Írndmap_setstat�Ĺ�Ý�č
# p1 = ���Ť�Ď�Ś�é�l
# p2 = �r���_��(�}�C�i�X�Č�ç�}�b�v�T�C�Y40*40�đ�î���É���Î�Ď�ť)
# p3 = �Ł�É�m�Ű�ˇ�é��
# p4 = �r���_�Ě���Ń�ű (0=�ź�ü�Ĺ���Ô 1=�ź�p���C��(?)�Ĺ���Ô)
# p5 = �ł���ˇ�é���p�_�Ě���Ł
#--------------------------------------------------------------------------
def rndmap_mkroad(p1,p2,p3,p4,p5 = 5)
p5 = 5 if p5 == nil
localdata = Table.new(@map.width,@map.height)
aposx = []
aposy = []
aflag = []
for i in 0...@map.width
for j in 0...@map.height
localdata[i,j] = 0
end
end
if p2<0
p2=(p2*-1)*@map.width*@map.height/40/40
end
aposx[0]=@minx
aposy[0]=@miny
aposx[1]=@maxx
aposy[1]=@maxy
if aposx[0]<0
aposx[0]=@map.width+aposx[0]
end
if (aposx[0]>=1000) and (aposx[0]<=1100)
aposx[0]=@map.width*(aposx[0]-1000)/100
end
if aposy[0]<0
aposy[0]=@map.height+aposy[0]
end
if (aposy[0]>=1000) and (aposy[0]<=1100)
aposy[0]=@map.height*(aposy[0]-1000)/100
end
if aposx[1]<0
aposx[1]=@map.width+aposx[1]
end
if (aposx[1]>=1000) and (aposx[1]<=1100)
aposx[1]=@map.width*(aposx[1]-1000)/100
end
if aposy[1]<0
aposy[1]=@map.height+aposy[1]
end
if (aposy[1]>=1000) and (aposy[1]<=1100)
aposy[1]=@map.height*(aposy[1]-1000)/100
end
if p4==0 or p4==1 or p4==2
if p4 == 2
i4 = rand(2)
end
aflag[0] = true
aflag[1] = false
for i in 2...(p2+2)
aposx = rand(@map.width-p3*2) + p3
aposy = rand(@map.height-p3*2) + p3
aflag = false
end
i3=0
i1=aposx[i3]
i2=aposy[i3]
localdata[i1,i2] = 1
for i in 0...p2+2
i7=5000000
for j in 0...p2+2
if aflag[j] == false
i4 = aposx[j]-i1
i4=i4*-1 if i4 < 0
i5 = aposy[j]-i2
i5=i5*-1 if i5 < 0
if (i4**2+i5**2) <=(p5**2) and j != 1
aflag[j] = true
elsif i7 > (i4**2+i5**2)
i7=(i4**2+i5**2)
i6=j
end
end
end
# �n�_ID:i3 �I�_ID:i6
if p4==0
if aposx[i3] > aposx[i6]
i8 = aposx[i3]
i9 = aposy[i3]
i10 = aposx[i6]
i11 = aposy[i6]
else
i8 = aposx[i6]
i9 = aposy[i6]
i10 = aposx[i3]
i11 = aposy[i3]
end
if i8!=i10
for i in 0..(i8-i10)
localdata[i+i10,(i9-i11)*i/(i8-i10)+i11] = 1
end
end
if aposy[i3] > aposy[i6]
i8 = aposx[i3]
i9 = aposy[i3]
i10 = aposx[i6]
i11 = aposy[i6]
else
i8 = aposx[i6]
i9 = aposy[i6]
i10 = aposx[i3]
i11 = aposy[i3]
end
if i9!=i11
for i in 0..(i9-i11)
localdata[(i8-i10)*i/(i9-i11)+i10,i+i11] = 1
end
end
end
if p4==1
i4 = rand(2)
if i4==0
for i in 0..([aposx[i3]-aposx[i6],aposx[i6]-aposx[i3]].max)
localdata[i+[aposx[i3],aposx[i6]].min,aposy[i3]] = 1
end
for i in 0..([aposy[i3]-aposy[i6],aposy[i6]-aposy[i3]].max)
localdata[aposx[i6],i+[aposy[i3],aposy[i6]].min] = 1
end
else
for i in 0..([aposx[i3]-aposx[i6],aposx[i6]-aposx[i3]].max)
localdata[i+[aposx[i3],aposx[i6]].min,aposy[i6]] = 1
end
for i in 0..([aposy[i3]-aposy[i6],aposy[i6]-aposy[i3]].max)
localdata[aposx[i3],i+[aposy[i3],aposy[i6]].min] = 1
end
end
end
i3=i6
i1=aposx[i3]
i2=aposy[i3]
aflag[i3]=true
if i3==1
break
end
end
end
for i in 0...@map.width
for j in 0...@map.height
if localdata[i,j] == 1
set_grounddata(i,j,p1)
end
end
end
end
#--------------------------------------------------------------------------
# �� �Î�Ű�đ�g�Ł
# p1 �Î�Ű
# p2,p3 �g�Ł�ˇ�é��X,Y
# p4 �g�Ł�ű�@ (0=�\�� 1=�l�p)
#--------------------------------------------------------------------------
def rndmap_plus(p1,p2,p3,p4)
localdata = Table.new(@map.width,@map.height)
for i in 0...@map.width
for j in 0...@map.height
if @targettype==0
localdata[i,j] = @heightdata[i,j]
elsif @targettype==1
localdata[i,j] = @maskdata[i,j]
end
end
end
if p4 == 0
for i in 0...@map.width
for j in 0...@map.height
if p1==localdata[i,j]
for k in 1..p2
set_grounddata(i+k,j,p1)
set_grounddata(i-k,j,p1)
end
for k in 1..p3
set_grounddata(i,j+k,p1)
set_grounddata(i,j-k,p1)
end
end
end
end
elsif p4 == 1
for i in 0...@map.width
for j in 0...@map.height
if p1==localdata[i,j]
for k in (i-p2)..(i+p2)
for l in (j-p3)..(j+p3)
set_grounddata(k,l,p1)
end
end
end
end
end
end
end
#--------------------------------------------------------------------------
# �� �ˇ�×�Ä�É�Ý�č
# p1 �l
#--------------------------------------------------------------------------
def rndmap_allchg(p1)
for i in 0...@map.width
for j in 0...@map.height
set_grounddata(i,j,p1)
end
end
end
#--------------------------------------------------------------------------
# �� �w�č�_
# p1 �l
# p2,p3 ��uX,Y
#--------------------------------------------------------------------------
def rndmap_putpos(p1,p2,p3)
i = rand(@maxx-@minx+1)+@minx
j = rand(@maxy-@miny+1)+@miny
for k in (p2-i)..(p2+i)
for l in (p3-j)..(p3+j)
set_grounddata(k,l,p1)
end
end
end
#--------------------------------------------------------------------------
# �� �ü�Í
# p1 �l
#--------------------------------------------------------------------------
def rndmap_edge(p1)
for i in 0...@map.width
set_grounddata(i,0,p1)
set_grounddata(i,@map.height-1,p1)
end
for i in 0...@map.height
set_grounddata(0,i,p1)
set_grounddata(@map.width-1,i,p1)
end
end
end
#==============================================================================
# � RPG::MapInfo >>�T�u�l�[��..","�Č�~�Ě�ś���Ě�ą�Ć�đ subname �É�ć�ž
#==============================================================================
module RPG
class MapInfo
def name
name = @name.split(/,/)[0]
return name != nil ? name : ''
end
def name=(str)
str2 = @name[/^[^,]*(�C.*)/, 1]
@name = str2 != nil ? str + str2 : str
end
def subname(i = 1)
name = @name.split(/,/)
return name != nil ? name : ""
end
end
end
#==============================================================================
# � RPG::Event >>�T�u�l�[��..","�Č�~�Ě�ś���Ě�ą�Ć�đ subname �É�ć�ž
#==============================================================================
module RPG
class Event
def name
name = @name.split(/,/)[0]
return name != nil ? name : ''
end
def name=(str)
str2 = @name[/^[^,]*(�C.*)/, 1]
@name = str2 != nil ? str + str2 : str
end
def subname(i = 1)
name = @name.split(/,/)
return name != nil ? name : ""
end
end
end
# �����_���}�b�v���X�N���v�g�@v0.80 by tonbi
#
#
# �����_���Č�}�b�v�đ�Š�Ž�ě�Ź�ˇ�é�X�N���v�g�Ĺ�ˇ
# Scene_Debug�ć�č�ş�AMain�ć�č�ă�É�A�V�K�Z�b�V�����đ�ě�č�A�\�č�t�Ż�Ä��ž�ł�˘�B
#
# �}�b�v�����y�Ę�ť�X�N���v�g(�Č�Ő�Ĺ)�Ć�Ż���Ě�@�\�đ�ŕ�ď�ľ�Ä�˘�Ü�ˇ�Ě�Ĺ�A
# �y�Ę�ť�X�N���v�g�Í�ü�ę�Č�˘�Ĺ��ž�ł�˘�B
#
# ���g�˘�ű
#
# �Ü�¸�}�b�v�ź�đ�uXXXXX,�����_��,YYY,ZZZ�v�Ć�ľ�Ä��ž�ł�˘�B
# XXXXX�Í�D�Ť�Č�ź�O�đ�ü�ę�Ä��ž�ł�˘�B
# YYY�É�Í�A�ś�Ź�Ě�p�^�[���Ô���đ�ü�ę�Ü�ˇ�B�T���v���đ�Q�Ć�É�ľ�Ä��ž�ł�˘�B
# ZZZ�É�Í�A�á�Q�¨�Ě�˝�ł�đ�ü�ę�Ä��ž�ł�˘�B�ą�ę�ŕ�T���v���đ�Q�l�É�ľ�Ä��ž�ł�˘�B
#
# ���É�A�}�b�v�^�C���đ�ą�Ě�}�b�v�É�ę�č�Ě�@�Ľ�Ĺ�Ŕ�×�Ü�ˇ
# �ą�ę�ŕ���Ż�Ü�š�ń�Ě�Ĺ�T���v���đ�Q�l�É�ľ�Ä��ž�ł�˘�B
# �Á�É���C���[�É���Ó�ľ�Ä��ž�ł�˘�B���C���[�ŕ�T���v���Ę�č�É�B�â�Ž�ł�ę�Ü�ˇ�B
#
# �Ĺ�ă�É�C�x���g�đ�Ý�č�ľ�Ü�ˇ
#
# �C�x���g�Ě�ź�O�đ�uXXXXX,���p�_�v
# �Ć�ˇ�é�Ć�A�ť�Ě�Ę�u�Í�K�¸�n�Ę�É�Č�č�Ü�ˇ�B
# �ą�Ě���p�_�đ�A�C�x���gID�Ě���É�q�˘�Ĺ�˘�Á�Ä�}�b�v�đ�ě�č�Ü�ˇ�B
# (�ź�ü�Ĺ���ń�Ĺ�˘�é�í�Ż�Ĺ�Í�ŕ�ż�ë�ń� �č�Ü�š�ń)
# �Č�é�×��A�}�b�v�Ě�ź�Ł�É���p�_�đ�ě�Á�Ä��ž�ł�˘�B
# �Ü�˝�A�Ł�Í��ľ�ó�Ż�Ä��ž�ł�˘�B(5�^�C���ö�x)�Ç�Ş�ł��Č�č�Ü�ˇ�B
# �˝�ž�ľ�A�ą�Ě���p�_�Ş�ł��Ä�ŕ�A�ę���}�b�v�Í�ě�Ź�ł�ę�Ü�ˇ�B
# �Ü�˝�A���p�_�đ���â�ľ�ˇ�Ź�é�Ć�A�Ç�Ş�¸�č�Ü�ˇ�B
# ���Â�Ĺ�\�Ş�Č�Ě�Ĺ�C�đ�Â�Ż�Ä��ž�ł�˘�B
# �I�X�X���Í�R�Â�Ĺ�R�p�`�Ě�`�É�Ý�č�Ĺ�ˇ
#
# ���p�_�Č�O�Ě�C�x���g�Ĺ�A�Á�É�w�č�Ě�ł�˘�ŕ�Ě�Í�����_���Č�n�Ę�É�Ú�Ž�ł�ę�Ü�ˇ�B
#
# �C�x���g�Ě�ź�O�đ�uXXXXX,�Ĺ�č�v
# �Ć�ˇ�é�Ć�A�ť�Ě�C�x���g�Í�ť�Ě�Ę�u�Ě�ß��Ě�n�Ę�É�Ú�Ž�ł�ę�Ü�ˇ�B
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ĺ�č�v�Ć�ľ�Ä�ŕ�Â�Ĺ�ˇ�B
#
# �C�x���g�Ě�ź�O�đ�uXXXXX,�Ž�S�Ĺ�č�v
# �Ć�ˇ�é�Ć�A�ť�Ě�C�x���g�Í�ť�Ě�Ę�u�Ě�Ü�Ü�É�Č�č�Ü�ˇ�B
# �Š�Ž�J�n�Ě�C�x���g�â�Ŕ�ń�����Ě�C�x���g�Ĺ�A�Ł�É�u�˘�Ä�¨�Ť�˝�˘�¨�É�B
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ž�S�Ĺ�č�v�Ć�ľ�Ä�ŕ�Â�Ĺ�ˇ�B
#
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ç�Ý�u�v
# �Ć�ˇ�é�Ć�A�ť�Ě�C�x���g�Í�����_���Č�Ç�Ě�Ę�u�É�Ú�Ž�ł�ę�Ü�ˇ�B
# �ŕ�â�ź�ž�Č�Ç�Ě�C�x���g�p�Ĺ�ˇ�B�u�Ç�Ý�u,1�v�Ć�R���}�É�ą�˘�Ä�����đ�w�č�ˇ�é�Ć�A
# �ť�Ě�Ş�Ě�Ą���Ş[�Ç�Á]�Ĺ�m�Ű�ł�ę�Ü�ˇ�B(�Ą���P�^�C���Č�ç0�đ�A�R�^�C���Č�ç1�đ�B)
# �ą�ę�É�ć�Á�Ä�ĺ�Ť�˘�C�x���g�ŕ�g�¤�ą�Ć�Ş�Ĺ�Ť�Ü�ˇ
#
# �C�x���g�Ě�P�y�[�W�Ú�Ě���ß�đ���ß�É�ľ�Ä�A�u�����ß : �Ç�Ý�u�Ĺ�č�v
# �Ć�ˇ�é�Ć�A�ă�L�u�Ç�Ý�u�v�Ć�u�Ĺ�č�v�Ş�K���ł�ę�Ü�ˇ�B
# �Â�Ü�č�A�ł�Ě�Ę�u�Ě�ß��Ě�Ç�É�Ú�Ž�ł�ę�Ü�ˇ�B
# �Ü�˝�u�Ç�Ý�u�Ĺ�č,1�v�Ć�A�Ç�Á���ŕ�w�č�Ĺ�Ť�Ü�ˇ�B
#
# �Ü�˝�A�g�p�ˇ�é�Ű�Í�A�Ť�Ě���Ş�đ�K�p�É���ś�Ä���Ť�ˇ�Ś�Ä��ž�ł�˘�B
#========================================================================
#========================================================================
#���X�N���v�g�V�F���t�Ě���R�ł�ń�Ě�p�[�e�B�ń�Ô�Ú�Ž�Ć� �í�š�Ä�g�¤�ę���Í�A
#�@�ą�Ě�X�N���v�g�đ�ń�Ô�Ú�Ž�ć�č�ŕ�ş�É�ľ�Ä�A
#�@�Ť�đ�A USE_TRAIN_ACTOR = true �Ć�ľ�Ä��ž�ł�˘�B(�g�í�Č�˘�Ć�Ť�Í = false)
USE_TRAIN_ACTOR = false
#========================================================================
#========================================================================
#���N���b�s���O�Ě���Ł�w�č(�Ó�Ą�í�Š�ń�Č�Š�Á�˝�ç�ą�Ě�Ü�Ü�Ĺ�B)
class Game_Character
DRAWRANGEX = 1920 # �}�b�v�L�����Ě�X�v���C�g�đ�X�V�ˇ�é���Ł
DRAWRANGEY = 1664 # �Š�Č�č�ĺ�Ť�˘�L�����`�b�v�đ�g�¤�ę���Í���â�ľ�Ä��ž�ł�˘�B
# X:14 Y:12�^�C���O�ă���§ �^�C�����É128�|�Ż�˝���l�đ�w�č�B
# �ż�Č�Ý�É�ă�ŞX(�Ą)�ş�ŞY(�c)�Ĺ�ˇ�B
end
#========================================================================
#========================================================================
#���Ű�ś�ˇ�é�Š�Ű�Š�B(�Ŕ�Ű�É�����_���@�\�Í�g�í�Č�˘�Ż�Ç�A�ě�é�č�Ô�Í�Č�Ť�˝�˘�ű�É�B)
# �ą�ę�Ĺ�Ű�ś�ł�ę�˝�}�b�v�đ�A�ź�Ě�}�b�v�É�R�s�[�ˇ�ę�Î�A�§�ě�Ě�č�Ô�Ş�Č�Ż�Ü�ˇ�B
class Game_Map
AUTO_MAP_SAVE = true # �}�b�v�đID:999�É�Ű�ś�ˇ�é�Š�Ç�¤�Š�B
# true �Č�ç�Ű�ś�@false �Č�ç�Ű�ś�ľ�Č�˘
# �Ž�Ź�ľ�˝�Q�[���đ�ö�J�ˇ�é�Ű�Ífalse�É�ľ�Ä��ž�ł�˘�B
end
#-------------------------------------------------------------------
# ��Game_Temp�N���X
#--------------------------------------------------------------------
class Game_Temp
alias initialize_tonbi1 initialize
def initialize
initialize_tonbi1
$onscreen = [] # �X�v���C�g�ć�Ę�ŕ�t���O
end
end
#--------------------------------------------------------------------------
# �� Game_Character�N���X
#--------------------------------------------------------------------------
class Game_Character
#--------------------------------------------------------------------------
# �� �t���[���X�V
#--------------------------------------------------------------------------
alias update_tonbi1 update
def update
#�ć�Ę�ă�Ĺ�Ě�Ę�u
sx = @real_x - $game_map.display_x - 1280
sy = @real_y - $game_map.display_y - 960
# �â�Î�l�đ���ß�é
abs_sx = sx > 0 ? sx : -sx
abs_sy = sy > 0 ? sy-3 : -sy
# �c�Š�Ą�Ş DRAWRANGE �^�C���Č�ă�Ł�ę�Ä�˘�é�ę��
if abs_sx > DRAWRANGEX or abs_sy > DRAWRANGEY
# �X�v���C�g�ń�X�V�É�ˇ�é
$onscreen[@id]=false
else
# �X�v���C�g�X�V� �č�É�ˇ�é
$onscreen[@id]=true
end
update_tonbi1
end
end
class Spriteset_Map
#--------------------------------------------------------------------------
# �� �I�u�W�F�N�g���ú�ť
#--------------------------------------------------------------------------
attr_accessor :character_sprites
def initialize
$onscreen = []
# �r���[�|�[�g�đ�ě�Ź
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 200
@viewport3.z = 5000
# �^�C���}�b�v�đ�ě�Ź
@tilemap = Tilemap.new(@viewport1)
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names
@tilemap.autotiles = RPG::Cache.autotile(autotile_name)
end
@tilemap.map_data = $game_map.data
@tilemap.priorities = $game_map.priorities
# �p�m���}�v���[���đ�ě�Ź
@panorama = Plane.new(@viewport1)
@panorama.z = -1000
# �t�H�O�v���[���đ�ě�Ź
@fog = Plane.new(@viewport1)
@fog.z = 3000
#########################################################����X
# �L�����N�^�[�X�v���C�g�đ�ě�Ź
# �p�[�e�B�Ć�C�x���g�đ�Ş�Ż�˝�B
@character_sprites = []
@party_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events)
@character_sprites=sprite
$onscreen = true
end
@party_sprites.push(Sprite_Character.new(@viewport1, $game_player))
#########################################################
# �V�ó�đ�ě�Ź
@weather = RPG::Weather.new(@viewport1)
# �s�N�`���đ�ě�Ź
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_screen.pictures))
end
# �^�C�}�[�X�v���C�g�đ�ě�Ź
@timer_sprite = Sprite_Timer.new
# �t���[���X�V
update
end
#--------------------------------------------------------------------------
# �� �đ�ú
#--------------------------------------------------------------------------
def dispose
# �^�C���}�b�v�đ�đ�ú
@tilemap.tileset.dispose
for i in 0..6
@tilemap.autotiles.dispose
end
@tilemap.dispose
# �p�m���}�v���[���đ�đ�ú
@panorama.dispose
# �t�H�O�v���[���đ�đ�ú
@fog.dispose
############################################################����X
# �L�����N�^�[�X�v���C�g�đ�đ�ú
# nil �Č�ç�J�ú�ľ�Č�˘
for i in @character_sprites
if i != nil
i.dispose
end
end
for i in @party_sprites
if i != nil
i.dispose
end
end
############################################################
# �V�ó�đ�đ�ú
@weather.dispose
# �s�N�`���đ�đ�ú
for sprite in @picture_sprites
sprite.dispose
end
# �^�C�}�[�X�v���C�g�đ�đ�ú
@timer_sprite.dispose
# �r���[�|�[�g�đ�đ�ú
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
end
#--------------------------------------------------------------------------
# �� �t���[���X�V
#--------------------------------------------------------------------------
def update
# �p�m���}�Ş�ť�Ý�Ě�ŕ�Ě�Ć�Ů�Č�é�ę��
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
# �t�H�O�Ş�ť�Ý�Ě�ŕ�Ě�Ć�Ů�Č�é�ę��
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
# �^�C���}�b�v�đ�X�V
@tilemap.ox = $game_map.display_x / 4
@tilemap.oy = $game_map.display_y / 4
@tilemap.update
# �p�m���}�v���[���đ�X�V
@panorama.ox = $game_map.display_x / 8
@panorama.oy = $game_map.display_y / 8
# �t�H�O�v���[���đ�X�V
@fog.zoom_x = $game_map.fog_zoom / 100.0
@fog.zoom_y = $game_map.fog_zoom / 100.0
@fog.opacity = $game_map.fog_opacity
@fog.blend_type = $game_map.fog_blend_type
@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
@fog.tone = $game_map.fog_tone
#####################################################����X
# �L�����N�^�[�X�v���C�g�đ�X�V
# �ć�Ę�O�Ě�X�v���C�g�Í�X�V�ľ�Č�˘
for i in $game_map.events.keys
if $onscreen
@character_sprites.update
end
end
# �v���C���[�L�����X�V
for i in @party_sprites
i.update
end
#####################################################
# �V�ó�O���t�B�b�N�đ�X�V
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.ox = $game_map.display_x / 4
@weather.oy = $game_map.display_y / 4
@weather.update
# �s�N�`���đ�X�V
for sprite in @picture_sprites
sprite.update
end
# �^�C�}�[�X�v���C�g�đ�X�V
@timer_sprite.update
# �ć�Ę�Ě�F�˛�Ć�V�F�C�N�Ę�u�đ�Ý�č
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
# �ć�Ę�Ě�t���b�V���F�đ�Ý�č
@viewport3.color = $game_screen.flash_color
# �r���[�|�[�g�đ�X�V
@viewport1.update
@viewport3.update
end
end
if USE_TRAIN_ACTOR == true
module Train_Actor
module Spriteset_Map_Module
def setup_actor_character_sprites(characters)
if !setup_actor_character_sprites?
for character in characters.reverse
@party_sprites.unshift(
Sprite_Character.new(@viewport1, character)
)
end
@setup_actor_character_sprites_flag = true
end
end
end
end
end
#==============================================================================
# �Ą Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# �� �Z�b�g�A�b�v
# map_id : �}�b�v ID
#--------------------------------------------------------------------------
def setup(map_id)
# �}�b�v ID �đ @map_id �É�L�Ż
@map_id = map_id
# �}�b�v�đ�t�@�C���Š�ç���[�h�ľ�A@map �É�Ý�č
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
# �ö�J�C���X�^���X�Ď���É�^�C���Z�b�g�Ě�î�ń�đ�Ý�č
tileset = $data_tilesets[@map.tileset_id]
@tileset_name = tileset.tileset_name
@autotile_names = tileset.autotile_names
@panorama_name = tileset.panorama_name
@panorama_hue = tileset.panorama_hue
@fog_name = tileset.fog_name
@fog_hue = tileset.fog_hue
@fog_opacity = tileset.fog_opacity
@fog_blend_type = tileset.fog_blend_type
@fog_zoom = tileset.fog_zoom
@fog_sx = tileset.fog_sx
@fog_sy = tileset.fog_sy
@battleback_name = tileset.battleback_name
@passages = tileset.passages
@priorities = tileset.priorities
@terrain_tags = tileset.terrain_tags
# �\�Ś�Ŕ�W�đ���ú�ť
@display_x = 0
@display_y = 0
check_special_map #��
# ���t���b�V���v���t���O�đ�N���A
@need_refresh = false
# �}�b�v�C�x���g�Ě�f�[�^�đ�Ý�č
@events = {}
for i in @map.events.keys
@events = Game_Event.new(@map_id, @map.events)
end
# �R�����C�x���g�Ě�f�[�^�đ�Ý�č
@common_events = {}
for i in 1...$data_common_events.size
@common_events = Game_CommonEvent.new(i)
end
# �t�H�O�Ě�e�î�ń�đ���ú�ť
@fog_ox = 0
@fog_oy = 0
@fog_tone = Tone.new(0, 0, 0, 0)
@fog_tone_target = Tone.new(0, 0, 0, 0)
@fog_tone_duration = 0
@fog_opacity_duration = 0
@fog_opacity_target = 0
# �X�N���[���î�ń�đ���ú�ť
@scroll_direction = 2
@scroll_rest = 0
@scroll_speed = 4
end
#--------------------------------------------------------------------------
# �� �}�b�v�đ�Ç�Ý���ń�ž�ź�ă�Ě����
#--------------------------------------------------------------------------
def check_special_map
# �}�b�v�Ě�ź�O�Ě�f�[�^�đ�ć�ž
mapinfo = load_data("Data/MapInfos.rxdata")
# �}�b�v�Ě�T�u�l�[���Ş"�����_��"�Č�ç
if mapinfo[@map_id].subname == "�����_��"
if mapinfo[@map_id].subname(3)=="" or mapinfo[@map_id].subname(3) == nil
p3 = 0
else
p3 = mapinfo[@map_id].subname(3).to_i
end
if mapinfo[@map_id].subname(4)=="false"
p4 = false
end
make_random_map(2,mapinfo[@map_id].subname(2).to_i,p3,p4)
end
end
#--------------------------------------------------------------------------
# �� �����_���}�b�v�đ�ě�Ź�ˇ�é
# wall = �Ç�Ě���ł�@>>�@�ť���_�Ĺ�Í�ł�ř
# type = �Ç�ť�ě�^�C�v�@>>�@�O�ľ�Š�ě�Á�Ä�Ü�š�ń(�ž�@�w�č�ű�@�ŕ�˘�č
# thoughplayer = �v���C���[���p�_������H
# connect = ���p�_�Ě���Ń�ű >> true=�A�ą false=�Q�Â�¸�Â�Ć�§
#
# �Ś�ˇ�×�Ä�Ě�ř���Č�Ş�ť �@�ş�Ě�p�É�ň�Î�ˇ�ą�Ć�ŕ�Â�\
# ex. make_random_map(2,0,,true)
#--------------------------------------------------------------------------
def make_random_map(wall = 2, type = 0, objcnt = 0, connect = true)
# �p�����[�^�Ů�í�Ě�Î�ô
wall = 0 if wall == nil
type = 0 if type == nil
objcnt = 0 if objcnt == nil
unless objcnt.is_a?(Numeric)
objcnt = 0
end
if objcnt < 0
objcnt = 0
end
connect = true if connect != false
# ���ł�f�[�^�z�ń
@heightdata = Table.new(@map.width,@map.height)
# �n�`�f�[�^�z�ń
@maskdata = Table.new(@map.width,@map.height)
# �C�x���g���z�u�f�[�^�z�ń
@oneventdata = Table.new(@map.width,@map.height)
# �}�X�N�Ý�č�f�[�^�z�ń
@masksetting = []
# �ť�ě�ű�@�f�[�^
@makedata = []
# ���Z�ű�@���ú�ť
@targettype=0
@chgtype=0
time = -1
# �e�f�[�^���ú�ť
for i in 0...@map.width
for j in 0...@map.height
time += 1
if time%2000 == 0
Graphics.update
end
@heightdata[i,j] = 0
@maskdata[i,j] = 0
end
end
for i in 0...100
@masksetting = true
end
# ���p�_�î�ń�ć�ž
needposx = []
needposy = []
# �C�x���g�u���p�_�v�đ�Ç�Á
for i in @map.events.keys.sort
time += 1
if time%200 == 0
Graphics.update
end
if event_settype(i) == 1
if connect == true
needposx.push(@map.events.x)
needposy.push(@map.events.y)
needposx.push(@map.events.x)
needposy.push(@map.events.y)
else
needposx.push(@map.events.x)
needposy.push(@map.events.y)
end
end
end
if connect == true
needposx.shift
needposy.shift
end
loop do
if needposx.size <= 2
needposx.push(rand(@map.width))
needposy.push(rand(@map.height))
else
break
end
end
# �ą�ą�Ĺ�ť�ě�ű�@�f�[�^�đ�Z�b�g�ˇ�é
case type
when 0
# �^�C�v0 >> �Q�w��R�^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-15,4,0])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,1,1,1])
@makedata.push([4,0,1,1,1])
@makedata.push([4,1,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,1])
when 1
# �^�C�v1 >> �Q�w�l�H�^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-6,4,1,10])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,2,3,1])
@makedata.push([4,1,2,2,1])
@makedata.push([4,0,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,1])
when 2
# �^�C�v2 >> �Q�w��R��^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-15,4,0])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,2,2,1])
@makedata.push([4,1,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,-1])
when 3
# �^�C�v2 >> �Q�w�l�H��^�C�v
@makedata.push([0,1,0])
@makedata.push([5,1])
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,0,-15,4,1,10])
@makedata.push([1,1,1,1,1])
@makedata.push([6,0,needposx[i*2],needposy[i*2]])
@makedata.push([6,0,needposx[i*2+1],needposy[i*2+1]])
end
@makedata.push([4,0,2,2,1])
@makedata.push([4,1,1,1,1])
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,0])
@makedata.push([2,1,2])
@makedata.push([5,-1])
when 4
# �^�C�v4 >> �Q�w�Š�R�^�C�v �ť�Ě�P
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,3,3,8,8])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-8,4,0,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
when 5
# �^�C�v5 >> �Q�w�l�H�^�C�v �ť�Ě�P
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,3,3,8,8])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-8,4,1,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
when 6
# �^�C�v6 >> �Q�w�Š�R�^�C�v�@�ť�Ě�Q
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,1,1,3,3])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# ���g�ĺ
@makedata.push([4,0,2,2,0])
@makedata.push([4,0,1,2,1])
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-15,4,0,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
when 7
# �^�C�v7 >> �Q�w�l�H�^�C�v�@�ť�Ě�Q
# �n�`[0:�� 1:�n�Ę 2:�Ç]
# �î�{�Ý�č
@makedata.push([0,1,0])
@makedata.push([5,0])
# �Ç�đ�u�
@makedata.push([1,0,0,-1,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,0,-1,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,-1,-1,0,-1])
@makedata.push([3,2,-6,1,0])
@makedata.push([1,0,-1,0,0])
@makedata.push([3,2,-6,1,0])
@makedata.push([4,2,2,2,1])
# ������_����u�
for i in 0...(rand(12*@map.width*@map.height/40/40)+(5*@map.width*@map.height/40/40))
@makedata.push([1,1,1,3,3])
@makedata.push([6,0,rand(@map.width-10)+5,rand(@map.height-10)+5])
end
# ���g�ĺ
@makedata.push([4,0,2,2,0])
@makedata.push([4,0,1,2,1])
# �ü�Í�É�Ç�ě�Ź
@makedata.push([7,2])
@makedata.push([4,2,1,1,1])
# �š�ě�Ź
for i in 0...(needposx.size/2)
@makedata.push([1,needposx[i*2],needposy[i*2],needposx[i*2+1],needposy[i*2+1]])
@makedata.push([3,1,-15,4,1,5])
@makedata.push([1,1,1,1,1])
@makedata.push([6,1,needposx[i*2],needposy[i*2]])
@makedata.push([6,1,needposx[i*2+1],needposy[i*2+1]])
end
# �g�����
@makedata.push([4,1,1,1,1])
@makedata.push([4,1,0,1,1])
@makedata.push([2,0,0])
@makedata.push([4,1,1,0,1])
@makedata.push([2,-1,1])
@makedata.push([4,2,1,1,1])
# ���ł�Ý�č
@makedata.push([0,0,0])
@makedata.push([2,0,2])
@makedata.push([5,-1])
@makedata.push([2,1,2])
@makedata.push([5,0])
@makedata.push([2,2,2])
@makedata.push([5,1])
end
# �Ŕ�Ű�É�ě�é
for make_stat in @makedata
time += 1
if time%2 == 0
Graphics.update
end
case make_stat[0]
when 0 # �Î�Ű�Ď�X (p1[0=���ł 1=�n�`], p2[0=�ă�ü 1=�Á�Z])
rndmap_chtarget(make_stat[1],make_stat[2])
when 1 # �ř���Ý�č (minx, miny, maxz, maxy)
rndmap_setstat(make_stat[1],make_stat[2],make_stat[3],make_stat[4])
when 2 # �}�X�N��X (p1[-1:�S��], p2[ 0=false 1=true 2=onlytrue])
rndmap_chmask(make_stat[1],make_stat[2])
when 3 # �š�ě�Ź (�l,���p�_��,�Ł�m�Ű,�^�C�v)
rndmap_mkroad(make_stat[1],make_stat[2],make_stat[3],make_stat[4],make_stat[5])
when 4 # �g�Ł (�Î�Ű,�c��,�Ą��,�^�C�v)
rndmap_plus(make_stat[1],make_stat[2],make_stat[3],make_stat[4])
when 5 # �S��X (�l)
rndmap_allchg(make_stat[1])
when 6 # �w�č�_ (�l,�Ę�uX,�Ę�uY)
rndmap_putpos(make_stat[1],make_stat[2],make_stat[3])
when 7 # �ü�Í (�l)
rndmap_edge(make_stat[1])
end
end
# �g�p�}�b�v�^�C����
@tilesetting = Table.new(3,40,3)
for i in [0,1,2]
for k in 0...40
for j in [0,1,2]
@tilesetting[j,k,i] = @map.data[j,k,i]
end
end
end
# �â�ł�ˇ�é
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
# �Ç�Ě�ş�Ě�^�C���Ş���Č�ç�n�Ę�É�Ď�X
if @heightdata[j,k] == 1
if @heightdata[j,k+1]==-1
@heightdata[j,k+1] = 0
if @heightdata[j,k+2]==-1 and
@heightdata[j,k+3] == 0
@heightdata[j,k+2] = 0
end
end
end
end
end
# �n�Ę�ě�Ź�@�ť�Ě�ë >> �Ć�č� �Ś�¸�~�Ť�l�ß�é
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
if @heightdata[j,k] == 0
if @heightdata[j,k+1] == -1 or
@heightdata[j,k-1] == -1 or
@heightdata[j+1,k] == -1 or
@heightdata[j-1,k] == -1
set_mapdata2(j,k,0,8)
else
set_mapdata2(j,k,0,0)
end
elsif @heightdata[j,k] == 1
if @heightdata[j,k+1] == -1 or
@heightdata[j,k-1] == -1 or
@heightdata[j+1,k] == -1 or
@heightdata[j-1,k] == -1
set_mapdata2(j,k,0,8)
elsif @heightdata[j,k+1] == 0 or
@heightdata[j,k-1] == 0 or
@heightdata[j+1,k] == 0 or
@heightdata[j-1,k] == 0
set_mapdata2(j,k,0,0)
else
set_mapdata2(j,k,1,4)
end
else
set_mapdata2(j,k,0,8)
end
end
end
# �n�Ę�ě�Ź�@�ť�Ě�ó >> ���Ć�Ě�G�b�a�ě�Ź
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
if @heightdata[j,k] == 0
if @heightdata[j,k+1] == -1
# �ş�Ş��------------------
if @heightdata[j-1,k] == -1
# �ś�ŕ��
for i in [0,1,2]
set_mapdata(j,k+i,0,13+i,1)
end
elsif @heightdata[j+1,k] == -1
# �E��
for i in [0,1,2]
set_mapdata(j,k+i,2,13+i,1)
end
else
# �ź�e�ŕ�n�Ę
for i in [0,1,2]
set_mapdata(j,k+i,1,13+i,1)
end
end
elsif @heightdata[j,k-1] == -1
# ����------------------
if @heightdata[j-1,k] == -1 or
(@heightdata[j-1,k] == 1 and
@heightdata[j-1,k-1] == -1)
# �ś�ŕ��
set_mapdata(j,k,0,11,2)
elsif @heightdata[j+1,k] == -1 or
(@heightdata[j+1,k] == 1 and
@heightdata[j+1,k-1] == -1)
# �E��
set_mapdata(j,k,2,11,2)
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k,1,11,2)
end
elsif @heightdata[j-1,k] == -1 or
(@heightdata[j-1,k] == 1 and
@heightdata[j-1,k-1] == -1)
# �ś�Ş��------------------
set_mapdata(j,k,0,12,1)
elsif @heightdata[j+1,k] == -1 or
(@heightdata[j+1,k] == 1 and
@heightdata[j+1,k-1] == -1)
# �E���------------------
set_mapdata(j,k,2,12,1)
elsif @heightdata[j-1,k-1] == -1
# �ś�ă�Ş��------------------
set_mapdata(j,k,0,9,1)
elsif @heightdata[j-1,k+1] == -1
# �ś�ş�Ş��------------------
set_mapdata(j,k,0,10,1)
elsif @heightdata[j+1,k-1] == -1
# �E����------------------
set_mapdata(j,k,1,9,1)
elsif @heightdata[j+1,k+1] == -1
# �E�ş�Ş��------------------
set_mapdata(j,k,1,10,1)
end
end
if @heightdata[j,k] == 1 and
@heightdata[j,k-1] != -1
if @heightdata[j,k+1] == -1
# �ş�Ş��------------------
if @heightdata[j-1,k] == -1
# �ś�ŕ��
for i in [0,1,2]
# set_mapdata(j,k+i,0,13+i,1)
end
elsif @heightdata[j+1,k] == -1
# �E��
for i in [0,1,2]
# set_mapdata(j,k+i,2,13+i,1)
end
else
# �ź�e�ŕ�n�Ę
for i in [0,1,2]
# set_mapdata(j,k+i,1,13+i,1)
end
end
elsif @heightdata[j,k-1] == -1
# ����------------------
if @heightdata[j-1,k] == -1
# �ś�ŕ��
set_mapdata(j,k,0,11,2)
elsif @heightdata[j+1,k] == -1
# �E��
set_mapdata(j,k,2,11,2)
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k,1,11,2)
end
elsif @heightdata[j-1,k] == -1
# �ś�Ş��------------------
set_mapdata(j,k,0,12,1)
elsif @heightdata[j+1,k] == -1
# �E���------------------
set_mapdata(j,k,2,12,1)
elsif @heightdata[j-1,k-1] == -1
# �ś�ă�Ş��------------------
set_mapdata(j,k,0,9,1)
elsif @heightdata[j-1,k+1] == -1
# �ś�ş�Ş��------------------
set_mapdata(j,k,0,10,1)
elsif @heightdata[j+1,k-1] == -1
# �E����------------------
set_mapdata(j,k,1,9,1)
elsif @heightdata[j+1,k+1] == -1
# �E�ş�Ş��------------------
set_mapdata(j,k,1,10,1)
end
end
end
end
# �n�Ę�ě�Ź�@�ť�Ě�Q >> �Ç�Ć�Ě�G�b�a�ě�Ź
time = 0
for k in 0...@map.height
for j in 0...@map.width
time += 1
# ���Ô�Š�Š�é�Ě�Ĺ�A�č�ú�I�É�ć�Ę�X�V
if time%500 == 0
Graphics.update
end
if @heightdata[j,k] == 1
if @heightdata[j,k+1] == 0 or
@heightdata[j,k+1] == -1
# �ş�Ş��------------------
if @heightdata[j-1,k] == 0 or
@heightdata[j-1,k] == -1
# �ś�ŕ��
set_mapdata(j,k+0,0,5+0,5)
set_mapdata(j,k+1,0,5+1,5)
set_mapdata(j,k+2,0,5+2,4)
if @heightdata[j,k+3] != 0 and
@heightdata[j,k+2] != 1 and
(@heightdata[j,k+2] != 0 or @heightdata[j-1,k+2] != 0)
set_mapdata(j,k+2,0,16,5)
for i in [0,1]
set_mapdata(j,k+3+i,0,14+i,1)
if @heightdata[j,k+3+i] != -1
break
end
end
end
elsif @heightdata[j+1,k] == 0 or
@heightdata[j+1,k] == -1
# �E��
set_mapdata(j,k+0,2,5+0,5)
set_mapdata(j,k+1,2,5+1,5)
set_mapdata(j,k+2,2,5+2,4)
if @heightdata[j,k+3] != 0 and
@heightdata[j,k+2] != 1 and
(@heightdata[j,k+2] != 0 or @heightdata[j+1,k+2] != 0)
set_mapdata(j,k+2,2,16,5)
for i in [0,1]
set_mapdata(j,k+3+i,2,14+i,1)
if @heightdata[j,k+3+i] != -1
break
end
end
end
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k+0,1,5+0,5)
set_mapdata(j,k+1,1,5+1,5)
set_mapdata(j,k+2,1,5+2,4)
if @heightdata[j,k+3] != 0 and
@heightdata[j,k+2] != 1
set_mapdata(j,k+2,1,16,5)
for i in [0,1]
set_mapdata(j,k+3+i,1,14+i,1)
if @heightdata[j,k+3+i] != -1
break
end
end
end
end
elsif @heightdata[j,k-1] == 0 or
@heightdata[j,k-1] == -1
# ����------------------
if @heightdata[j-1,k] == 0 or
@heightdata[j-1,k] == -1
# �ś�ŕ��
set_mapdata(j,k,0,3,4)
elsif @heightdata[j+1,k] == 0 or
@heightdata[j+1,k] == -1
# �E��
set_mapdata(j,k,2,3,4)
else
# �ź�e�ŕ�n�Ę
set_mapdata(j,k,1,3,4)
end
elsif @heightdata[j-1,k] == 0 or
@heightdata[j-1,k] == -1
# �ś�Ş��------------------
set_mapdata(j,k,0,4,4)
elsif @heightdata[j+1,k] == 0 or
@heightdata[j+1,k] == -1
# �E���------------------
set_mapdata(j,k,2,4,4)
elsif @heightdata[j-1,k-1] == 0 or
@heightdata[j-1,k-1] == -1
# �ś�ă�Ş��------------------
set_mapdata(j,k,0,1,4)
elsif @heightdata[j-1,k+1] == 0 or
@heightdata[j-1,k+1] == -1
# �ś�ş�Ş��------------------
set_mapdata(j,k,0,2,4)
elsif @heightdata[j+1,k-1] == 0 or
@heightdata[j+1,k-1] == -1
# �E����------------------
set_mapdata(j,k,1,1,4)
elsif @heightdata[j+1,k+1] == 0 or
@heightdata[j+1,k+1] == -1
# �E�ş�Ş��------------------
set_mapdata(j,k,1,2,4)
end
end
end
end
# �v���C���[�Ě�Ę�u�đ�˛�ß
playerpos_reset($game_temp.player_new_x,$game_temp.player_new_y)
@oneventdata[$game_temp.player_new_x,$game_temp.player_new_y] = 1
time = 0
for i in @map.events.keys.sort
time += 1
if time%100 == 0
Graphics.update
end
# �C�x���g�Ý�u�^�C�v>>�Ž�S�Ĺ�č(�Ĺ�D�ć)
case event_settype(i)
when 3
@oneventdata[@map.events.x,@map.events.y] = 1
end
end
for i in @map.events.keys.sort
time += 1
if time%100 == 0
Graphics.update
end
# �C�x���g��u�^�C�v>>���p�_
case event_settype(i)
when 1
set_defeventpos(i,@map.events.x,@map.events.y)
@oneventdata[@map.events.x,@map.events.y] = 1
end
end
# �C�x���g�Ě�Ę�u�đ�˛�ß
for i in @map.events.keys.sort
time += 1
if time%100 == 0
Graphics.update
end
j = event_settype(i)
case j
when 0 # �����_��
set_defeventpos(i,rand(@map.width-4)+2,rand(@map.width-4)+2)
@oneventdata[@map.events.x,@map.events.y] = 1
when 2 # �Ĺ�č
set_defeventpos(i,@map.events.x,@map.events.y)
@oneventdata[@map.events.x,@map.events.y] = 1
when 100..199 # ���u
set_defeventpos_wall(i,rand(@map.width-4)+2,rand(@map.width-4)+2,j-100)
@oneventdata[@map.events.x,@map.events.y] = 1
@oneventdata[@map.events.x,@map.events.y-1] = 1
for k in 1..(j-100)
@oneventdata[@map.events.x+k,@map.events.y] = 1
@oneventdata[@map.events.x+k,@map.events.y-1] = 1
@oneventdata[@map.events.x-k,@map.events.y] = 1
@oneventdata[@map.events.x-k,@map.events.y-1] = 1
end
when 200..299 # �Ç�Ý�u�Ĺ�č
set_defeventpos_wall(i,@map.events.x,@map.events.y,j-200)
@oneventdata[@map.events.x,@map.events.y] = 1
@oneventdata[@map.events.x,@map.events.y-1] = 1
for k in 1..(j-200)
@oneventdata[@map.events.x+k,@map.events.y] = 1
@oneventdata[@map.events.x+k,@map.events.y-1] = 1
@oneventdata[@map.events.x-k,@map.events.y] = 1
@oneventdata[@map.events.x-k,@map.events.y-1] = 1
end
end
end
# �á�Q�¨�đ�u�
for i in 0...(rand(objcnt)+objcnt/2)
time += 1
if time%500 == 0
Graphics.update
end
j = rand(@map.width)
k = rand(@map.width)
case rand(10)
when 0..4
if standable_newtile?(1,0)
if standable?(j,k)
set_mapdata(j,k,1,0,6)
end
else
if standable2?(j,k)
set_mapdata(j,k,1,0,6)
end
end
when 5..7
if standable_newtile?(2,0)
if standable?(j,k)
set_mapdata(j,k,2,0,6)
end
else
if standable2?(j,k)
set_mapdata(j,k,2,0,6)
end
end
when 8..9
if standable2?(j,k)
if @map.data[j,k-1,2]==0 and
(@map.data[j,k,1]==0 or @map.data[j,k,2]==0)
set_mapdata(j,k,2,2,4) # 4>6?
set_mapdata(j,k-1,2,1,4) # 4>2?
end
end
end
end
# �Ď���Ě�ŕ�e�J�ú(�ą�ę�Ĺ�ł�ę�é�Ě�Š�Č�H)
@heightdata.resize(0,0)
@maskdata.resize(0,0)
@oneventdata.resize(0,0)
@masksetting.clear
@makedata.clear
@tilesetting.resize(0,0,0)
if AUTO_MAP_SAVE
# �Ű�ś�@�\
save_data(@map,sprintf("Data/Map%03d.rxdata", 999))
maplist = load_data("Data/MapInfos.rxdata")
mapinfo = RPG::MapInfo.new
mapinfo.name = sprintf("�����_���Š�Ž�Ű�ś(%s)", maplist[@map_id].name)
mapinfo.parent_id = 0
mapinfo.order = 999
mapinfo.expanded = true
mapinfo.scroll_x = 0
mapinfo.scroll_y = 0
maplist[999]=mapinfo
save_data(maplist,"Data/MapInfos.rxdata")
end
end
#--------------------------------------------------------------------------
# �� �C�x���g���u�^�C�v��
#--------------------------------------------------------------------------
def event_settype(i)
if @map.events.subname == "���p�_"
return 1
end
if @map.events.subname == "�Ĺ�č"
return 2
end
if @map.events.subname == "�Ž�S�Ĺ�č"
return 3
end
for j in 0..1000
if @map.events.pages[0].list[j].code != 108
break
end
# �R�����g�É���p�_�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "���p�_"
return 1
end
# �R�����g�É�Ž�S�Ĺ�č�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "�Ž�S�Ĺ�č"
return 3
end
# �R�����g�É�Ĺ�č�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "�Ĺ�č"
return 2
end
# �R�����g�É�Ç�Ý�u�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "���u"
if @map.events.pages[0].list[j].parameters[0].split(/,/)[1] == nil
return 100
else
k = @map.events.pages[0].list[j].parameters[0].split(/,/)[1]
k = k.to_i
return 100+k
end
end
# �R�����g�É�Ç�Ý�u�Ĺ�č�Ć� �ę�Î
if @map.events.pages[0].list[j].parameters[0].split(/,/)[0] == "�Ç�Ý�u�Ĺ�č"
if @map.events.pages[0].list[j].parameters[0].split(/,/)[1] == nil
return 200
else
k = @map.events.pages[0].list[j].parameters[0].split(/,/)[1]
k = k.to_i
return 200+k
end
end
end
return 0
end
#--------------------------------------------------------------------------
# �� �C�x���g�đ�w�č�Ę�u�t�ß�É�Ý�u
#--------------------------------------------------------------------------
def set_defeventpos(id,x,y)
if standable2?(x,y)
@map.events[id].x=x
@map.events[id].y=y
return
end
for i in 1..([@map.width,@map.height].max)
if standable2?(x,y+i)
@map.events[id].x=x
@map.events[id].y=y+i
return
end
for j in 1..i
if standable2?(x-j,y+i)
@map.events[id].x=x-j
@map.events[id].y=y+i
return
end
if standable2?(x+j,y+i)
@map.events[id].x=x+j
@map.events[id].y=y+i
return
end
if standable2?(x-j,y-i)
@map.events[id].x=x-j
@map.events[id].y=y-i
return
end
if standable2?(x+j,y-i)
@map.events[id].x=x+j
@map.events[id].y=y-i
return
end
end
end
end
#--------------------------------------------------------------------------
# �� �C�x���g�đ�w�č�Ę�u�t�ß�Ě�Ç�É�Ý�u
# p4 ��
#--------------------------------------------------------------------------
def set_defeventpos_wall(id,x,y,p4)
if standable3?(x,y,p4)
@map.events[id].x=x
@map.events[id].y=y
return
end
for i in 1..([@map.width,@map.height].max)
if standable3?(x,y+i,p4)
@map.events[id].x=x
@map.events[id].y=y+i
return
end
for j in 1..i
if standable3?(x-j,y+i,p4)
@map.events[id].x=x-j
@map.events[id].y=y+i
return
end
if standable3?(x+j,y+i,p4)
@map.events[id].x=x+j
@map.events[id].y=y+i
return
end
if standable3?(x-j,y-i,p4)
@map.events[id].x=x-j
@map.events[id].y=y-i
return
end
if standable3?(x+j,y-i,p4)
@map.events[id].x=x+j
@map.events[id].y=y-i
return
end
end
end
end
#--------------------------------------------------------------------------
# �� �v���C���[�đ�w�č�Ę�u�t�ß�É�Ý�u
#--------------------------------------------------------------------------
def playerpos_reset(x,y)
if standable?(x,y)
$game_temp.player_new_x=x
$game_temp.player_new_y=y
return
end
for i in 1..([@map.width,@map.height].max)
if standable?(x,y+i)
$game_temp.player_new_x=x
$game_temp.player_new_y=y+i
return
end
for j in 0..i
if standable?(x-j,y+i)
$game_temp.player_new_x=x-j
$game_temp.player_new_y=y+i
return
end
if standable?(x+j,y+i)
$game_temp.player_new_x=x+j
$game_temp.player_new_y=y+i
return
end
if standable?(x-j,y-i)
$game_temp.player_new_x=x-j
$game_temp.player_new_y=y-i
return
end
if standable?(x+j,y-i)
$game_temp.player_new_x=x+j
$game_temp.player_new_y=y-i
return
end
end
end
end
#--------------------------------------------------------------------------
# �� �Š�Ş�Í�Ę�ę�é�Š�H(�á�Q�¨�^�C��)
# p1,p2 ��uX,Y
#--------------------------------------------------------------------------
def standable_newtile?(p1,p2)
for i in [2, 1, 0]
tile_id = @tilesetting[p1, p2, i]
if tile_id == nil
return false
elsif @passages[tile_id] & 0x0f == 0x0f
return false
elsif @priorities[tile_id] == 0
return true
end
end
return true
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�É�§�Ä�é�Š�H
# p1,p2 ��uX,Y
#--------------------------------------------------------------------------
def standable?(p1,p2)
if @heightdata[p1,p2] != 0
return false
end
if @oneventdata[p1,p2] ==1
return false
end
for i in [2, 1, 0]
tile_id = @map.data[p1, p2, i]
if tile_id == nil
return false
elsif @passages[tile_id] & 0x0f == 0x0f
return false
elsif @priorities[tile_id] == 0
return true
end
end
return true
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�É�u�˘�Ä�ŕ�ĺ�ä�v�Š�H�i�ü�Í�Ě�C�x���g�Č�Ç�l�ś�Ĺ�j
# p1,p2 ��uX,Y
#--------------------------------------------------------------------------
def standable2?(p1,p2)
# �ť�Ě�Ę�u�ť�č
unless standable?(p1,p2)
return false
end
# �ü�Í�Ě�C�x���g�`�F�b�N(�s�Ť�~�Ü�č�É�Č�ç�Č�˘�Š�H)
# �c�Ö�˛�Ż�ę�é�Š
if standable?(p1+1,p2-1) == false or
standable?(p1+1,p2) == false or
standable?(p1+1,p2+1) == false
if standable?(p1-1,p2-1) == false or
standable?(p1-1,p2) == false or
standable?(p1-1,p2+1) == false
# �ŕ�Ć�ŕ�Ć�c�Ö�˛�Ż�ę�Č�˘���Í�ł��
if standable?(p1,p2-1) == true and
standable?(p1,p2+1) == true
return false
end
end
end
# �Ą�Ö�˛�Ż�ę�é�Š
if standable?(p1+1,p2+1) == false or
standable?(p1,p2+1) == false or
standable?(p1-1,p2+1) == false
if standable?(p1+1,p2-1) == false or
standable?(p1,p2-1) == false or
standable?(p1-1,p2-1) == false
# �ŕ�Ć�ŕ�Ć�Ą�Ö�˛�Ż�ę�Č�˘���Í�ł��
if standable?(p1-1,p2) == true and
standable?(p1+1,p2) == true
return false
end
end
end
if standable?(p1,p2-1) == false and
(standable?(p1-1,p2+1) == false or
standable?(p1,p2+1) == false or
standable?(p1+1,p2+1) == false)
return false
end
if standable?(p1,p2+1) == false and
(standable?(p1-1,p2-1) == false or
standable?(p1+1,p2-1) == false or
standable?(p1+1,p2-1) == false)
return false
end
if standable?(p1-1,p2) == false and
(standable?(p1+1,p2-1) == false or
standable?(p1+1,p2) == false or
standable?(p1+1,p2+1) == false)
return false
end
if standable?(p1+1,p2) == false and
(standable?(p1-1,p2-1) == false or
standable?(p1-1,p2) == false or
standable?(p1-1,p2+1) == false)
return false
end
return true
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�É�u�˘�Ä�ŕ�ĺ�ä�v�Š�H�i�Ç�Ĺ�j
# p1,p2 ��uX,Y
# p3 ��
#--------------------------------------------------------------------------
def standable3?(p1,p2,p3)
# �ş�Ş�ŕ�Ć�ŕ�Ć�§�Ä�Č�˘�Č�ç�s�Â
unless standable?(p1,p2+1)
return false
end
# �ť�Ě�Ę�u�ť�č
if @oneventdata[p1,p2] == 1 or
@oneventdata[p1,p2-1] == 1 or
@heightdata[p1,p2-2] != 1 or
@heightdata[p1,p2-1] == 1 or
@heightdata[p1,p2+1] != 0
return false
end
for i in 1...p3+1
if@heightdata[p1+i,p2-2] != 1 or
@heightdata[p1+i,p2-1] == 1 or
@heightdata[p1+i,p2+1] != 0
return false
end
if@heightdata[p1-i,p2-2] != 1 or
@heightdata[p1-i,p2-1] == 1 or
@heightdata[p1-i,p2+1] != 0
return false
end
end
for i in 1...p3+1
if @oneventdata[p1+i,p2] == 1 or
@oneventdata[p1+i,p2-1] == 1
return false
end
if @oneventdata[p1-i,p2] == 1 or
@oneventdata[p1-i,p2-1] == 1
return false
end
end
return true
end
#--------------------------------------------------------------------------
# �� �}�b�v�^�C���î�ń�Ď�X
# p1,p2 ���Ť�o�ľ�ć�Ę�uX,Y
# p3,p4 �ł�Q�Ć�Ę�uX,Y
# p5 �}�ü�ű�@ 0:�Ę�í 1:�ş���C�� 2:�ă���C�� 3:�ş�Š�ç 4:�ă�Š�ç 5:�ź�ű
#--------------------------------------------------------------------------
def set_mapdata(p1,p2,p3,p4,p5 = 0)
unless self.valid?(p1, p2)
return
end
if @tilesetting[p3,p4,0] != 0 # ���C���[�O������u�
@map.data[p1,p2,0] = @tilesetting[p3,p4,0]
end
case p5
when 0 # �Ę�í
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
if @tilesetting[p3,p4,2] != 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,2]
end
when 1 # �ş�É�u�
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
when 2 # �ă�É�u�
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
when 3 # �ş�Š�ç�u�
if @tilesetting[p3,p4,1] != 0
if @map.data[p1,p2,1] != 0
@map.data[p1,p2,2] = @map.data[p1,p2,1]
end
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
when 4 # �ă�Š�ç�u�
if @tilesetting[p3,p4,1] != 0
if @map.data[p1,p2,2] != 0
@map.data[p1,p2,1] = @map.data[p1,p2,2]
end
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
when 5 # �ź�ű�É�u�
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
end
if @tilesetting[p3,p4,1] != 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
when 6 # �u�Ż�é�Č�ç�u�
if @map.data[p1,p2,1] == 0
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
elsif @map.data[p1,p2,2] == 0
@map.data[p1,p2,2] = @tilesetting[p3,p4,1]
end
end
end
#--------------------------------------------------------------------------
# �� �}�b�v�^�C���î�ń�Ď�X2 >>�Í�Í�O�ť�č�Č�Ç�ł�ľver
# p1,p2 ���Ť�o�ľ�ć�Ę�uX,Y
# p3,p4 �ł�Q�Ć�Ę�uX,Y
#--------------------------------------------------------------------------
def set_mapdata2(p1,p2,p3,p4)
@map.data[p1,p2,0] = @tilesetting[p3,p4,0]
@map.data[p1,p2,1] = @tilesetting[p3,p4,1]
@map.data[p1,p2,2] = @tilesetting[p3,p4,2]
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�Ě�î�ń�Ď�X
# p1,p2 ��uX,Y
# p3 �l
#--------------------------------------------------------------------------
def set_height(p1,p2,p3)
return if p1<0
return if p1>=@map.width
return if p2<0
return if p2>=@map.height
@heightdata[p1,p2]=p3
end
#--------------------------------------------------------------------------
# �� �w�č�Ę�u�Ě�î�ń�Ď�X
# p1,p2 ��uX,Y
# p3 �l
#--------------------------------------------------------------------------
def set_grounddata(p1,p2,p3)
return if p1<0
return if p1>=@map.width
return if p2<0
return if p2>=@map.height
if @masksetting[@maskdata[p1,p2]] == true
if @targettype==0
if @chgtype==0
@heightdata[p1,p2]=p3
elsif @chgtype==1
@heightdata[p1,p2]+=p3
end
elsif @targettype==1
if @chgtype==0
@maskdata[p1,p2]=p3
elsif @chgtype==1
@maskdata[p1,p2]+=p3
end
end
end
end
#--------------------------------------------------------------------------
# �� ���Z�ű�@�w�č
# p1 �Î�Ű�@>> =0:���ł�@=1:�n�` (�ť�Ý�A���ł0=�n�Ę 1=�Ç
# p2 �ű�@�@>> =0:�ă�ü�@=1:�Á�Z �n�`�Í�}�X�N�ť�č�É�Ě�Ý�g�p
#--------------------------------------------------------------------------
def rndmap_chtarget(p1,p2)
@targettype=p1
@chgtype=p2
end
#--------------------------------------------------------------------------
# �� �Ů�Š�Ě�R�}���h�Ĺ�g�p�ˇ�é�l�đ�Z�b�g
# p1,p2 �Ĺ�Ź X,Y
# p3,p4 �Ĺ�ĺ X,Y �š�ť�ě�Ě�J�n�_�A�I�š�_�Z�b�g�Č�Ç�É�g�p
#--------------------------------------------------------------------------
def rndmap_setstat(p1,p2,p3,p4)
@minx=p1
@miny=p2
@maxx=p3
@maxy=p4
end
#--------------------------------------------------------------------------
# �� �n�`�}�X�N�đ�Ý�č
# p1 = �Î�Ű�n�` (-1= �ˇ�×�Ä)
# p2 = �Ď�X�l (0= ���Ť�ˇ�Ś�Ö�~ 1= ���Ť�ˇ�Ś��� 2= �ť�Ě�n�`�Ě�Ý���Â)
#--------------------------------------------------------------------------
def rndmap_chmask(p1,p2)
if p1>=0
if p2==0
@masksetting[p1]=false
elsif p2 == 1
@masksetting[p1]=true
elsif p2 == 2
for i in 0...100
@masksetting=false
end
@masksetting[p1]=true
end
end
if p1==-1
if p2==0
for i in 0...100
@masksetting=false
end
else
for i in 0...100
@masksetting=true
end
end
end
end
#--------------------------------------------------------------------------
# �� �Q�_�đ�q�Ž�š�ě�Ź
# �n�_�A�I�_�Írndmap_setstat�Ĺ�Ý�č
# p1 = ���Ť�Ď�Ś�é�l
# p2 = �r���_��(�}�C�i�X�Č�ç�}�b�v�T�C�Y40*40�đ�î���É���Î�Ď�ť)
# p3 = �Ł�É�m�Ű�ˇ�é��
# p4 = �r���_�Ě���Ń�ű (0=�ź�ü�Ĺ���Ô 1=�ź�p���C��(?)�Ĺ���Ô)
# p5 = �ł���ˇ�é���p�_�Ě���Ł
#--------------------------------------------------------------------------
def rndmap_mkroad(p1,p2,p3,p4,p5 = 5)
p5 = 5 if p5 == nil
localdata = Table.new(@map.width,@map.height)
aposx = []
aposy = []
aflag = []
for i in 0...@map.width
for j in 0...@map.height
localdata[i,j] = 0
end
end
if p2<0
p2=(p2*-1)*@map.width*@map.height/40/40
end
aposx[0]=@minx
aposy[0]=@miny
aposx[1]=@maxx
aposy[1]=@maxy
if aposx[0]<0
aposx[0]=@map.width+aposx[0]
end
if (aposx[0]>=1000) and (aposx[0]<=1100)
aposx[0]=@map.width*(aposx[0]-1000)/100
end
if aposy[0]<0
aposy[0]=@map.height+aposy[0]
end
if (aposy[0]>=1000) and (aposy[0]<=1100)
aposy[0]=@map.height*(aposy[0]-1000)/100
end
if aposx[1]<0
aposx[1]=@map.width+aposx[1]
end
if (aposx[1]>=1000) and (aposx[1]<=1100)
aposx[1]=@map.width*(aposx[1]-1000)/100
end
if aposy[1]<0
aposy[1]=@map.height+aposy[1]
end
if (aposy[1]>=1000) and (aposy[1]<=1100)
aposy[1]=@map.height*(aposy[1]-1000)/100
end
if p4==0 or p4==1 or p4==2
if p4 == 2
i4 = rand(2)
end
aflag[0] = true
aflag[1] = false
for i in 2...(p2+2)
aposx = rand(@map.width-p3*2) + p3
aposy = rand(@map.height-p3*2) + p3
aflag = false
end
i3=0
i1=aposx[i3]
i2=aposy[i3]
localdata[i1,i2] = 1
for i in 0...p2+2
i7=5000000
for j in 0...p2+2
if aflag[j] == false
i4 = aposx[j]-i1
i4=i4*-1 if i4 < 0
i5 = aposy[j]-i2
i5=i5*-1 if i5 < 0
if (i4**2+i5**2) <=(p5**2) and j != 1
aflag[j] = true
elsif i7 > (i4**2+i5**2)
i7=(i4**2+i5**2)
i6=j
end
end
end
# �n�_ID:i3 �I�_ID:i6
if p4==0
if aposx[i3] > aposx[i6]
i8 = aposx[i3]
i9 = aposy[i3]
i10 = aposx[i6]
i11 = aposy[i6]
else
i8 = aposx[i6]
i9 = aposy[i6]
i10 = aposx[i3]
i11 = aposy[i3]
end
if i8!=i10
for i in 0..(i8-i10)
localdata[i+i10,(i9-i11)*i/(i8-i10)+i11] = 1
end
end
if aposy[i3] > aposy[i6]
i8 = aposx[i3]
i9 = aposy[i3]
i10 = aposx[i6]
i11 = aposy[i6]
else
i8 = aposx[i6]
i9 = aposy[i6]
i10 = aposx[i3]
i11 = aposy[i3]
end
if i9!=i11
for i in 0..(i9-i11)
localdata[(i8-i10)*i/(i9-i11)+i10,i+i11] = 1
end
end
end
if p4==1
i4 = rand(2)
if i4==0
for i in 0..([aposx[i3]-aposx[i6],aposx[i6]-aposx[i3]].max)
localdata[i+[aposx[i3],aposx[i6]].min,aposy[i3]] = 1
end
for i in 0..([aposy[i3]-aposy[i6],aposy[i6]-aposy[i3]].max)
localdata[aposx[i6],i+[aposy[i3],aposy[i6]].min] = 1
end
else
for i in 0..([aposx[i3]-aposx[i6],aposx[i6]-aposx[i3]].max)
localdata[i+[aposx[i3],aposx[i6]].min,aposy[i6]] = 1
end
for i in 0..([aposy[i3]-aposy[i6],aposy[i6]-aposy[i3]].max)
localdata[aposx[i3],i+[aposy[i3],aposy[i6]].min] = 1
end
end
end
i3=i6
i1=aposx[i3]
i2=aposy[i3]
aflag[i3]=true
if i3==1
break
end
end
end
for i in 0...@map.width
for j in 0...@map.height
if localdata[i,j] == 1
set_grounddata(i,j,p1)
end
end
end
end
#--------------------------------------------------------------------------
# �� �Î�Ű�đ�g�Ł
# p1 �Î�Ű
# p2,p3 �g�Ł�ˇ�é��X,Y
# p4 �g�Ł�ű�@ (0=�\�� 1=�l�p)
#--------------------------------------------------------------------------
def rndmap_plus(p1,p2,p3,p4)
localdata = Table.new(@map.width,@map.height)
for i in 0...@map.width
for j in 0...@map.height
if @targettype==0
localdata[i,j] = @heightdata[i,j]
elsif @targettype==1
localdata[i,j] = @maskdata[i,j]
end
end
end
if p4 == 0
for i in 0...@map.width
for j in 0...@map.height
if p1==localdata[i,j]
for k in 1..p2
set_grounddata(i+k,j,p1)
set_grounddata(i-k,j,p1)
end
for k in 1..p3
set_grounddata(i,j+k,p1)
set_grounddata(i,j-k,p1)
end
end
end
end
elsif p4 == 1
for i in 0...@map.width
for j in 0...@map.height
if p1==localdata[i,j]
for k in (i-p2)..(i+p2)
for l in (j-p3)..(j+p3)
set_grounddata(k,l,p1)
end
end
end
end
end
end
end
#--------------------------------------------------------------------------
# �� �ˇ�×�Ä�É�Ý�č
# p1 �l
#--------------------------------------------------------------------------
def rndmap_allchg(p1)
for i in 0...@map.width
for j in 0...@map.height
set_grounddata(i,j,p1)
end
end
end
#--------------------------------------------------------------------------
# �� �w�č�_
# p1 �l
# p2,p3 ��uX,Y
#--------------------------------------------------------------------------
def rndmap_putpos(p1,p2,p3)
i = rand(@maxx-@minx+1)+@minx
j = rand(@maxy-@miny+1)+@miny
for k in (p2-i)..(p2+i)
for l in (p3-j)..(p3+j)
set_grounddata(k,l,p1)
end
end
end
#--------------------------------------------------------------------------
# �� �ü�Í
# p1 �l
#--------------------------------------------------------------------------
def rndmap_edge(p1)
for i in 0...@map.width
set_grounddata(i,0,p1)
set_grounddata(i,@map.height-1,p1)
end
for i in 0...@map.height
set_grounddata(0,i,p1)
set_grounddata(@map.width-1,i,p1)
end
end
end
#==============================================================================
# � RPG::MapInfo >>�T�u�l�[��..","�Č�~�Ě�ś���Ě�ą�Ć�đ subname �É�ć�ž
#==============================================================================
module RPG
class MapInfo
def name
name = @name.split(/,/)[0]
return name != nil ? name : ''
end
def name=(str)
str2 = @name[/^[^,]*(�C.*)/, 1]
@name = str2 != nil ? str + str2 : str
end
def subname(i = 1)
name = @name.split(/,/)
return name != nil ? name : ""
end
end
end
#==============================================================================
# � RPG::Event >>�T�u�l�[��..","�Č�~�Ě�ś���Ě�ą�Ć�đ subname �É�ć�ž
#==============================================================================
module RPG
class Event
def name
name = @name.split(/,/)[0]
return name != nil ? name : ''
end
def name=(str)
str2 = @name[/^[^,]*(�C.*)/, 1]
@name = str2 != nil ? str + str2 : str
end
def subname(i = 1)
name = @name.split(/,/)
return name != nil ? name : ""
end
end
end
DEMO:
http://rapidshare.com/files/412773271/RandomMapSample.exe
http://www.megaupload.com/?d=LP8R88NX
http://hotfile.com/dl/61887332/52c0a5f/ ... e.exe.html
http://www.zshare.net/download/7931604190efad17/
http://uploading.com/files/8eba848b/Ran ... ample.exe/
http://www.megaupload.com/?d=LP8R88NX
http://hotfile.com/dl/61887332/52c0a5f/ ... e.exe.html
http://www.zshare.net/download/7931604190efad17/
http://uploading.com/files/8eba848b/Ran ... ample.exe/
All credits go to TONBI.
Here's the link I've found:
http://www.mc.ccnw.ne.jp/sarada/toshi/rgss_rand_map.txt
Enjoy!