Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Random Dungeon Generator by Tonbi 0.80

Ormin

Member

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:
#
# �����_���}�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:

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!
 

regi

Sponsor

Please use the
Code:
 tag instead of [spoiler]. (Looks like all the characters were converted into gibberish, makes it a pain to read now :x)
 
Actually, the script is in Japanese.

I went and translated the entire system including the instructions. I even added MORE instructions into the script itself that were not in the original and I rewrote the demo. The demo also has the original script too...

Random Map Generator Script
At Spongen.com
The post shows Tonbi as the thread author, giving credit to Tonbi himself for the great system.

You can find it useful to have it make random maps in-game, changing every time you leave and re-enter. Or you can use it as a tool to generate maps which you can save and paste into another project.
 
First I appologise for the super necro but the link DerVVulfman posted isn't working.

So if you see this DerVVulfman do you think that you could post the translated demo on here please, if you still have it?
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top