Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.
Original Source
- Original title: Basic Evented Fog of War
- Original author: Quailar
- Original date: March 21, 2015
- Source thread: https://forums.rpgmakerweb.com/threads/basic-evented-fog-of-war.38029/
- Source forum path: Game Development Engines > RPG Maker Tutorials > RMVXAce Tutorials
Summary
Evented Fog Of War FOW Demo This is a basic demo demonstration how you can use eventing to design a basic fog of war system. No real instructions required, the evented system is pretty simple to follow. If you have suggestions of how to improve or make more efficient please share.
Archived First Post
Evented Fog Of War FOW Demo
This is a basic demo demonstration how you can use eventing to design a basic fog of war system.
No real instructions required, the evented system is pretty simple to follow.
If you have suggestions of how to improve or make more efficient please share.
Features:
1 - Parallel
1 - Common Event
Code Requirements:
You will need map extensions provided here and in demo:
http://forums.rpgmakerweb.com/index.php?/topic/25040-ace-useful-script-call-reference/
Demo:
http://s000.tinyupload.com/?file_id=06010062965139142906
Screen:
Protected downloadProtected downloadProtected download
This is a basic demo demonstration how you can use eventing to design a basic fog of war system.
No real instructions required, the evented system is pretty simple to follow.
If you have suggestions of how to improve or make more efficient please share.
Features:
- Unexplored Fog
- Previously Explored Fog
- Current sight
- Enemy invisible when in fog
1 - Parallel
1 - Common Event
Code Requirements:
You will need map extensions provided here and in demo:
http://forums.rpgmakerweb.com/index.php?/topic/25040-ace-useful-script-call-reference/
#--------------------------------------------------------------------------
#Modifications
#--------------------------------------------------------------------------
#Changed Line 88 in Game_Event
#from
# if near_the_screen? && @stop_count > stop_count_threshold
#to
# if @stop_count > stop_count_threshold
#--------------------------------------------------------------------------
# REGION MANIPULATION
#--------------------------------------------------------------------------
class Game_Map
def setTileRegion(reg_x,reg_y,reg_id)
if reg_id > 63 || reg_id < 0
reg_id = 0
end
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]
# binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY
@bLEFT = "%6b" % reg_id
@newvalue = @bLEFT.to_s + @bRIGHT.to_s
@newvalue = @newvalue.to_i(2)
self.data[reg_x, reg_y, 3] = @newvalue
end
def getTileRegion(reg_x,reg_y)
# gets a 14 bit long binary string from the map data array
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]
# binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY
# converts the binary string back to an integer and returns
return(@bLEFT.to_i(2))
end
def getTileShadowID(reg_x,reg_y)
# gets a 14 bit long binary string from the map data array
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]
# returns binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY
# converts the binary string back to an integer and returns
return(@bRIGHT.to_i(2))
end
#--------------------------------------------------------------------------
# MAP MANIPULATION
#--------------------------------------------------------------------------
def getTileIDByLayer(x,y,layer)
return(self.data[x,y,layer])
end
def setTileIDByLayer(x,y,layer,tile_ID)
self.data[x,y,layer] = tile_ID
end
end
#--------------------------------------------------------------------------
# Save Tile Manipulation
#--------------------------------------------------------------------------
class Game_System
def changeTileByInternalID(map_id,x,y,layer,intID)
initialize_pos_list(map_id, layer)
tid = intID
@swapped_pos_tiles[map_id][layer][y] = [] if @swapped_pos_tiles[map_id][layer][y].nil?
@swapped_pos_tiles[map_id][layer][y][x] = tid
$game_map.load_new_map_data
end
end
#--------------------------------------------------------------------------
# Battler Additions
#--------------------------------------------------------------------------
class Game_Battler < Game_BattlerBase
def wtype_equipped?(wtype_id)
return weapons.any? {|weapon| weapon.wtype_id == wtype_id }
end
def atype_equipped?(atype_id)
return armors.any? {|armor| armor.atype_id == atype_id}
end
end
#Modifications
#--------------------------------------------------------------------------
#Changed Line 88 in Game_Event
#from
# if near_the_screen? && @stop_count > stop_count_threshold
#to
# if @stop_count > stop_count_threshold
#--------------------------------------------------------------------------
# REGION MANIPULATION
#--------------------------------------------------------------------------
class Game_Map
def setTileRegion(reg_x,reg_y,reg_id)
if reg_id > 63 || reg_id < 0
reg_id = 0
end
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]
# binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY
@bLEFT = "%6b" % reg_id
@newvalue = @bLEFT.to_s + @bRIGHT.to_s
@newvalue = @newvalue.to_i(2)
self.data[reg_x, reg_y, 3] = @newvalue
end
def getTileRegion(reg_x,reg_y)
# gets a 14 bit long binary string from the map data array
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]
# binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY
# converts the binary string back to an integer and returns
return(@bLEFT.to_i(2))
end
def getTileShadowID(reg_x,reg_y)
# gets a 14 bit long binary string from the map data array
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]
# returns binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY
# converts the binary string back to an integer and returns
return(@bRIGHT.to_i(2))
end
#--------------------------------------------------------------------------
# MAP MANIPULATION
#--------------------------------------------------------------------------
def getTileIDByLayer(x,y,layer)
return(self.data[x,y,layer])
end
def setTileIDByLayer(x,y,layer,tile_ID)
self.data[x,y,layer] = tile_ID
end
end
#--------------------------------------------------------------------------
# Save Tile Manipulation
#--------------------------------------------------------------------------
class Game_System
def changeTileByInternalID(map_id,x,y,layer,intID)
initialize_pos_list(map_id, layer)
tid = intID
@swapped_pos_tiles[map_id][layer][y] = [] if @swapped_pos_tiles[map_id][layer][y].nil?
@swapped_pos_tiles[map_id][layer][y][x] = tid
$game_map.load_new_map_data
end
end
#--------------------------------------------------------------------------
# Battler Additions
#--------------------------------------------------------------------------
class Game_Battler < Game_BattlerBase
def wtype_equipped?(wtype_id)
return weapons.any? {|weapon| weapon.wtype_id == wtype_id }
end
def atype_equipped?(atype_id)
return armors.any? {|armor| armor.atype_id == atype_id}
end
end
http://s000.tinyupload.com/?file_id=06010062965139142906
Screen:
Protected downloadProtected downloadProtected download
Features Mentioned
- Unexplored Fog
- Previously Explored Fog
- Current sight
- Enemy invisible when in fog
- Event Requirements:
- 1 - Parallel
- 1 - Common Event
- Code Requirements:
- You will need map extensions provided here and in demo:
- Spoiler
- #
- #Modifications
- #Changed Line 88 in Game_Event
- #from
- # if near_the_screen? && @stop_count > stop_count_threshold
- #to
- # if @stop_count > stop_count_threshold
Downloads / Referenced Files
Log in to download
Log in, then follow the RPG Maker Developers Group to see these download links.
Log in to downloadReferenced Images / Attachments
Creator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
0
replies
1
view
Topic Summary
Loading summary...


