iPhone App Directory
RPG Maker VX
 
Gallery Members Search Calendar Help


Welcome Guest ( Log In | Register )

Collapse

>Announcement

Keep an eye out for the upcoming 3rd Quarter Contest!
4 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> Logic Circuits (Directional Event Touch Event), A slightly different request!
Safebox
post Mar 11 2012, 04:21 PM
Post #1



Group Icon


Type: Spriter
Alignment: Lawful Neutral






I was wondering if someone could make a script that would allow for when events are placed beside each other, a conditional branch be triggered in one of the events.

Could someone make the script to allow for directional conditioning as well (2=up, 4=left, 6=right, 8=up, 5=any direction)?
This script could be used to create in-game customisable circuits.

Eg. This event is next to event 1, this event is facing up, event 1 is facing left:
CODE
@>Conditional Branch: Script: ev(0,1,8,4)


Eg. Event 1 is next to event 2, event 1 is facing left, event 2 is facing right:
CODE
@>Conditional Branch: Script: ev(1,2,4,6)


Eg. Event 1 is next to event 2, event 1 is facing down, event 2 is facing in any direction:
CODE
@>Conditional Branch: Script: ev(1,2,2,5)


Image for comparison:
Spoiler:


EDIT: I'm using FlipelyFlip's Event Cloning Script 1.1 & Sky00Valentine's Room Decoration Script 1.1, is there a way to make it compatible?
Decoration Script:
Spoiler:
CODE
#===========================================================================
#
# Sky's Room Decoration System(Upgraded Event Cloning by Flipelyflip)
# Version 1.1
# July 8th, 2010 Started
# July 14th, 2010 Completed
#
#===========================================================================
#
# Features :
# Version 1.0 - (July 14th, 2010)
# - Full Wall Decoration Compatibility.
# - Floor Tiles
# * Graphics that are larger than 1 tile will
# only work if they are able to be walked
# over. (meaning things like tables won't
# work unless you don't mind being able to
# walk over it.) So you can use them but
# it will just look like a glitch in your
# game
# - Currently unable to place one event on top
# of the other.
# - Currently Doors are unable to be placed with
# a 100% glitch look as they could be place
# high up on a wall.
# - In decoration menu you can preview what the
# decoration will look like.
# - Because of this being event clones if you
# make a decoration event with stuff to do
# the decoration will also do that when
# activated.
# Version 1.1 - (July 15th, 2010)
# - Bug fixes
# *Maps not saving decorations fixed.
#
#===========================================================================
#
# Credit
# Sky00Valentine :creator and editor
# Flipelyflip :for creating the original event clone script
#
#===========================================================================
#
# Terms of Use
# ------------
#
# Crediting Rpgmakervx.net and FlipelyFlip
# is the only thing I ask. However feel free
# to credit Sky00Valentine if you see fit.
#
#===========================================================================
#
# Future improvement
# ------------------
#
# - Adding Full Functioning Floor tiles including Tables.
# - Adding in more ways for setup including but not limited to
# Hash Mode, which will be you editting the hash instead of
# item noteboxes.
#
#===========================================================================
#
# Instructions & Installation
# ---------------------------
# - Get Flipelyflips Event Cloning Script, place under materials
#
# - Get $model_cursor.png(located in demo)
#
# - Place this script under Event Cloning Script
#
# - Edit MAP_ID hash by placing in all map_id's you want to have
# decoration mode. (This should only include inside maps.) As I did
# not make this for outside so there may be some glitches.
#
# - Edit Event Map, change it to the map id where you will store all of
# your decoration evetns.
#
# - Edit Wall_Map, change it to the map id where you will store all of
# your wall tiles.(This is so you can place items on walls.
#
# - Edit the three Buttons to be which buttons you want to press
# to do the given function. By default they will be the A
# key to enter into edit mode, S to change from Placement to Removal mode
# and Vice-Versa, X key to go into the decoration Menu, and Enter
# or Z key to place or remove a decoration. (X key is the only one not
# customizable)
#
# - To setup your items go to your item notebox and place this
# Decoration:event_id: where event id is the event you want
# to be placed on the map when using that decoration/item.
# You will need that item in your party's inventory in order
# to place that decoration in placement mode.
# You will lose 1 of that item each time you place 1 of that
# decoration. And you will gain 1 each time you remove a
# decoration from the map.
# Also you must put this in an items notebox as well,
# <WALL> if you want that decoration to be placed
# on the wall, and <FLOOR> if you want it to be placed on
# the floor.
#
# - Make sure you have created the event map and the wall map.
# Following the model.
#
# - Make sure on the Event Map your first event is a blank event
# no graphic and priority is set to same as characters.
#
#===========================================================================
#
# Compatibility & Bugs
# --------------------
# - Through aliasing this script should be 100% Compatible with
# any script.
#
#============================================================================

module Sky
module Decor
MAP_ID = [4,5] # all map id's that you can Enter Decoration Mode on.
#example MAP_ID = [3,5,6] Can only decorate maps 3,5, and 6

Event_Map = 2 #Map ID of the stored events map.
#you store all decoration events on this map

Wall_Map = 1 #Map ID of your wall tiles map.
#you store all you wall tiles here on this map.

Button0 = Input::X #The button you want to press to enter decoration mode
Button1 = Input::C #The button you want to press to place/remove decorations
Button2 = Input::Y #The button you want to press to change to place or remove mode.

end
end

class Game_Event
attr_accessor :event
attr_accessor :through
attr_accessor :d_tag
attr_accessor :item
attr_accessor :pages

alias graphic_initialize initialize
def initialize(map_id, event, cg = false)
@cg = cg
graphic_initialize(map_id,event)
end

alias graphic_setup setup
def setup(new_page)
if @cg
graphic_setup(new_page)
@tile_id = 0
@character_name = $game_party.members[0].character_name
@character_index = $game_party.members[0].character_index
@walk_anime = false
@step_anime = false
@direction = $game_player.direction
else
graphic_setup(new_page)
end
@d_tag = nil
@item = nil
end

alias dont_begin start
def start
dont_begin unless $game_map.edit_mode?
end
end

class Game_Character
alias stop_movement turn_toward_player
def turn_toward_player
unless $game_map.edit_mode?
stop_movement
end
end
end

class Game_Interpreter
def return_event
event = $game_map.events
return event == nil ? nil : event[@event_id]
end
end

class Game_Party
attr_accessor :previous_character
attr_accessor :previous_index
attr_accessor :last_decoration

alias previous_initialize initialize
def initialize
previous_initialize
@previous_character = nil
@previous_index = nil
@last_decoration = 0
end

def set_previous(name,index)
@previous_character = name
@previous_index = index
end

end

class Game_Map
attr_accessor :transfers
attr_accessor :changed_tiles
attr_accessor :current_d_event_id
attr_accessor :d_type

alias edit_mode_initialize initialize
def initialize
@current_d_event_id = 0
@editing = false
@placement = true
@blocking_events = []
@c_through = []
@changed_tiles = {}
edit_mode_initialize
end

alias new_setup setup
def setup(map_id)
new_setup(map_id)
@new_events = {}
if $resaved_maps.include?(@map_id)
@new_events = $resaved_maps[@map_id]
@new_events = {} if @new_events == nil
new_event_setup
end
end

def new_event_setup
for i in @new_events.keys
@events[i] = Game_Event.new(@map_id, @new_events[i][0])
@events[i].moveto(@new_events[i][1], @new_events[i][2])
@events[i].d_tag = @new_events[i][3]
@events[i].item = @new_events[i][4]
end
end

def add_new(event_id,cevent,x,y,d_tag,item)
@new_events[event_id] = [cevent,x,y,d_tag,item]
$resaved_maps[@map_id] = @new_events
end

alias block_transfers_setup setup_events
def setup_events
block_transfers_setup
@transfers = []
for i in @map.events.keys
if @map.events[i].name == "transfer"
@transfers.push(i)
end
end
end

def return_location(x,y,direction)
@return_to_x = x
@return_to_y = y
@return_direction = direction
end

def return_to
$game_player.set_direction(@return_direction)
$game_player.moveto(@return_to_x,@return_to_y)
end

def delete_event(event_id)
if @events[event_id].item != nil
$game_party.gain_item($data_items[@events[event_id].item], 1)
end
@events.delete(event_id)
@new_events.delete(event_id)
$scene = Scene_Map.new
end

def blocking_events
return @blocking_events
end

def edit_mode(switch)
@previous_mode = @editing
@editing = switch
if @previous_mode != @editing and not @editing
placement_mode(true)
end
end

def edit_mode?
return @editing
end

def placement_mode?
return @placement
end

def placement_mode(mode)
@previous_mode = @placement
@placement = mode
if @previous_mode != @placement and not @placement
@c_through = []
end
if not @placement
for i in @events.keys
if not @events[i].through
@c_through.push(i)
@events[i].through = true
end
end
else
for i in @events.keys
if @c_through.include?(i)
@events[i].through = false
end
end
end
end

def change_passibility(map_id,x,y)
nmap = load_data(sprintf("Data/Map%03d.rvdata",map_id))
tile_id = nmap.data[x,y,0]
@changed_tiles[tile_id] = @passages[tile_id] if @passages[tile_id] != 0x00
@passages[tile_id] = 0x00
end

def restore_passage
for i in @changed_tiles.keys
@passages[i] = 0x01
end
refresh
end

def add_event(map_id,id,x,y,cg=false)
s = 1
(1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
ev = map.events[id]
ev.id = s
if events_xy(x, y).empty? or (events_xy(x,y)[0].event.name == "transfer" and events_xy(x,y).size == 1)
if cg
@events[s] = Game_Event.new(@map_id,ev,true)
@blocking_events.push(@events[s].id)
else
@events[s] = Game_Event.new(@map_id, ev)
@events[s].d_tag = 1 unless @transfers.include?(@events[s].id)
@events[s].item = $game_party.last_decoration unless @transfers.include?(@events[s].id)
$game_party.lose_item($data_items[@events[s].item], 1) unless @transfers.include?(@events[s].id)
end
@events[s].moveto(x, y)
add_new(s,ev,x,y,@events[s].d_tag,@events[s].item)
return @events[s].id
end
end
end

class Scene_Map

alias new_window start
def start
new_window
unless $cd == nil or $cd.disposed?
$cd.dispose
end
if $game_map.edit_mode?
update_current_decoration_window
end
end

def update_current_decoration_window
$cd = Window_Base.new(0,0,190,88) if $cd == nil or $cd.disposed?
$cd.contents.clear
$cd.opacity = 100
if $game_party.last_decoration > 0
decoration = "#{$data_items[$game_party.last_decoration].name}"
else
decoration = "None selected"
end
if $game_map.placement_mode?
mode = "Placement Mode"
else
mode = "Removal Mode"
if $game_map.events_xy($game_player.x,$game_player.y).size > 0 and $game_map.events_xy($game_player.x,
$game_player.y)[0].item != nil
decoration = $data_items[$game_map.events_xy($game_player.x,
$game_player.y)[0].item].name
else
decoration = ""
end
end
$cd.contents.draw_text(0,0,158,24,mode,1)
$cd.contents.draw_text(0,32,158,24,decoration,1)
end

alias extra_event_update update
def update
extra_event_update
unless $game_message.visible
if Sky::Decor::MAP_ID.include?($game_map.map_id)
if Input.trigger?(Sky::Decor::Button0)
if $game_map.edit_mode?
$game_party.members[0].set_graphic($game_party.previous_character,
$game_party.previous_index,$game_party.members[0].face_name,
$game_party.members[0].face_index)
for i in 0...$game_map.blocking_events.size
$game_map.delete_event($game_map.blocking_events[i])
end
$game_map.blocking_events.clear
$game_map.restore_passage
$game_map.return_to
$game_map.edit_mode(false)
else
$game_map.add_event(Sky::Decor::Event_Map,1,$game_player.x,$game_player.y,true)
$game_map.return_location($game_player.x,$game_player.y,$game_player.direction)
$scene = Scene_Map.new
$game_party.set_previous($game_party.members[0].character_name,$game_party.members[0].character_index)
$game_party.members[0].set_graphic("$Model Cursor",0,$game_party.members[0].face_name,$game_party.members[0].face_index)
for i in 0...$game_map.transfers.size
enew_x = $game_map.events[$game_map.transfers[i]].event.x
enew_y = $game_map.events[$game_map.transfers[i]].event.y
$game_map.blocking_events.push($game_map.add_event(Sky::Decor::Event_Map,1,enew_x,enew_y))
end
mapp = load_data(sprintf("Data/Map%03d.rvdata", Sky::Decor::Wall_Map))
for i in 0...mapp.width
unless i % 4 == 0
for a in 0...mapp.height
unless a % 4 == 0
$game_map.change_passibility(Sky::Decor::Wall_Map,i,a)
end
end
end
end
$game_map.edit_mode(true)
update_current_decoration_window
end
$game_player.refresh
elsif Input.trigger?(Sky::Decor::Button2)
if $game_map.edit_mode?
if $game_map.placement_mode?
$game_map.placement_mode(false)
$cd.contents.clear unless $cd == nil or $cd.disposed?
update_current_decoration_window
else
$game_map.placement_mode(true)
$cd.contents.clear unless $cd == nil or $cd.disposed?
update_current_decoration_window
end
end
elsif Input.trigger?(Sky::Decor::Button1)
if $game_map.edit_mode?
if $game_map.placement_mode?
enew_x = $game_player.x
enew_y = $game_player.y
tile_id = $game_map.data[enew_x,enew_y,0]
unless not $game_party.has_item?($data_items[$game_party.last_decoration]) or $game_map.current_d_event_id == 0
if $game_map.changed_tiles.include?(tile_id)
$game_map.add_event(Sky::Decor::Event_Map,($game_map.current_d_event_id),
enew_x,enew_y) if $game_map.d_type == "Wall"
else
$game_map.add_event(Sky::Decor::Event_Map,($game_map.current_d_event_id),
enew_x,enew_y) if $game_map.d_type == "Floor"
end
end
$scene = Scene_Map.new
else
event = $game_map.events_xy($game_player.x,$game_player.y)
unless event == nil or event.size == 0
$game_map.delete_event(event[event.size - 1].id) unless event[event.size - 1].d_tag == nil
end
end
end
end
if $game_map.edit_mode?
update_current_decoration_window
end
end
end
if not $game_party.has_item?($data_items[$game_party.last_decoration])
$game_party.last_decoration = 0
end
end

alias insert_decoration_menu call_menu
def call_menu
unless $game_map.edit_mode?
insert_decoration_menu
else
$game_temp.next_scene = nil
$cd.opacity = 0 unless $cd == nil or $cd.disposed?
$cd.contents_opacity = 0 unless $cd == nil or $cd.disposed?
$scene = Scene_Decoration_Menu.new
end
end
end

class Window_Decoration < Window_Selectable
attr_accessor :data
def initialize
super(0,0,240,416)
self.index = 0
refresh
end

def item
return @data[self.index]
end

def decoration(item)
return if item == nil
notes = item.note
notes.each_line{|x| return x[11,x.rindex(':') - 11]}
end

def type(item)
return if item == nil
notes = item.note
notes.each_line{|x|
if x.include?("<WALL>")
return "Wall"
elsif x.include?("<FLOOR>")
return "Floor"
end
}
end

def refresh
@data = []
for item in $game_party.items
next unless include?(item)
@data.push(item)
if item.id == $game_party.last_decoration
self.index = @data.size - 1
end
end
@data.push(nil) if @data.size == 0
@item_max = @data.size
width = 0
for i in @data
break if i == nil
new_width = self.contents.text_size("#{i.name} ").width
width = new_width if new_width > width
end
self.width = [240, width].max
self.height = [page_row_max * WLH,@item_max * WLH].min + 32
create_contents
for i in 0...@item_max
draw_item(i)
end
end

def include?(item)
return false if item == nil
notes = item.note
notes.each_line{|x| return true if x.include?("Decoration:")}
return false
end

def draw_item(index)
rect = item_rect(index)
item = @data[index]
if item != nil
number = $game_party.item_number(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
else
rect.width -= 4
self.contents.draw_text(rect,"- None -",1)
end
end
end

class Scene_Decoration_Menu < Scene_Base
def start
@viewport = Viewport.new(0,0,544,416)
create_menu_background
@decoration = Window_Decoration.new
@image = Window_Base.new(340,0,206,180)
image_update unless @decoration.item == nil
@previous_selection = 0
end

def tileset_bitmap(tile_id)
set_number = tile_id / 256
return Cache.system("TileB") if set_number == 0
return Cache.system("TileC") if set_number == 1
return Cache.system("TileD") if set_number == 2
return Cache.system("TileE") if set_number == 3
return nil
end

def update
@decoration.update
@image.update
if Input.trigger?(Input::cool.gif
dispose
elsif Input.trigger?(Input::C)
$game_party.last_decoration = @decoration.item.id unless @decoration.item == nil
$game_map.current_d_event_id = @decoration.decoration(@decoration.item).to_i
$game_map.d_type = @decoration.type(@decoration.item)
dispose
elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or (@previous_selection != @decoration.index)
unless @decoration.item == nil
unless @image.disposed?
image_update
end
end
@previous_selection = @decoration.index
end
end

def image_update
@image.contents.clear
event_id = @decoration.decoration(@decoration.item).to_i
emap = load_data(sprintf("Data/Map%03d.rvdata",Sky::Decor::Event_Map))
tile_id = emap.events[event_id].pages[0].graphic.tile_id
if emap.events[event_id].pages[0].graphic.tile_id == 0
name = emap.events[event_id].pages[0].graphic.character_name
index = emap.events[event_id].pages[0].graphic.character_index
bitmap = Cache.character(name)
sign = name[/^[\!\$]./]
if sign != nil and sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
n = index
x = (@image.contents.width / 2) - (@cw / 2)
y = (@image.contents.height / 2) - (@ch / 2)
src_rect = Rect.new((n%4*3+1)*@cw, (n/4*4)*@ch, @cw, @ch)
@image.contents.blt(x, y, bitmap, src_rect)
else
bitmap = tileset_bitmap(tile_id)
sx = (tile_id / 128 % 2 * 8 + tile_id % 8) * 32;
sy = tile_id % 256 / 8 % 16 * 32;
src_rect = Rect.new(sx, sy, 32, 32)
x = (@image.contents.width / 2) - (32 / 2)
y = (@image.contents.height / 2) - (32 / 2)
@image.contents.blt(x,y,bitmap,src_rect)
end
end
def dispose
@decoration.dispose
@image.dispose
$scene = Scene_Map.new
end
end

class Scene_File

alias place_data write_save_data
def write_save_data(file)
place_data(file)
Marshal.dump($resaved_maps, file)
end

alias get_data read_save_data
def read_save_data(file)
get_data(file)
$resaved_maps = Marshal.load(file)
end

end

class Scene_Title
alias new_array command_new_game
def command_new_game
$resaved_maps = {}
new_array
end
end

Event Cloning:
Spoiler:
CODE
#==============================================================================
# ** Events Cloning Script V1.1
#------------------------------------------------------------------------------
# by FlipelyFlip
#------------------------------------------------------------------------------
# thx goes to: Kread-EX
#==============================================================================
=begin
This little script allows you to copy an event from another map to set it on the
located coordinates. You can also call it by variables. You have to config the
Variables under the module Flipely. So you can set the x and y coordinate at the
variables to random. If the coordinates are on an impassable place, they will be
set one place right and one place down. If this place is also impassable, it will
add again the one place right and one place down.
This Feature is only at the variable available.

To call the script you can chose between
$game_map.add_event(map_id,event_id,x,y)

or you will do it with variables, then you have to set up the variables before
calling it with Flipely.koordinaten .

greetings FlipelyFlip
=end

class Spriteset_Map
def refresh
$game_map.need_refresh = true
unless @character_sprites == nil
for sprite in @character_sprites
sprite.dispose
end
end
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
end
end

class Game_Map
def add_event(map_id,id,x,y)
s = 1
(1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
ev = map.events[id]
ev.id = s
@events[s] = Game_Event.new(@map_id, ev)
@events[s].moveto(x, y)
return @events[s].id
end
end

module Flipely
def self.passable?
return $game_map.passable?($game_variables[id], $game_variables[id], flag = 0x01)
end
end

module Flipely
def self.koordinaten
if Flipely.passable? == true
$game_map.add_event($game_variables[id],$game_variables[id],$game_variables[id],$game_variables[id])
$scene = Scene_Map.new
else
$game_variables[id] += 1 # change it if you want
$game_variables[id] += 1 # change it if you want
Flipely.koordinaten
end
end
end


This post has been edited by Safebox: May 8 2012, 08:16 AM
Go to the top of the page
 
+Quote Post
   
Safebox
post Mar 18 2012, 09:47 PM
Post #2



Group Icon


Type: Spriter
Alignment: Lawful Neutral




BUMP
added images
Go to the top of the page
 
+Quote Post
   
Omegas7
post Mar 19 2012, 04:03 AM
Post #3


stai sprecando il tuo tempo
Group Icon


Type: Coder
Alignment: Chaotic Evil




According to your format:

CODE
ev(0,1,8)


You want to check if event 0 (in this case, the player) is facing north, and check if event 1 is north as well (next to event 0)?


--------------------
Chooo Chooo
Go to the top of the page
 
+Quote Post
   
Safebox
post Mar 19 2012, 07:29 AM
Post #4



Group Icon


Type: Spriter
Alignment: Lawful Neutral




What about it?
0 represents "This event" not "Player"

This post has been edited by Safebox: Mar 19 2012, 05:49 PM
Go to the top of the page
 
+Quote Post
   
Safebox
post Mar 19 2012, 05:48 PM
Post #5



Group Icon


Type: Spriter
Alignment: Lawful Neutral




Oh, here's the new format of what I meant:

Eg. This event is next to event 1, this event is facing up, event 1 is facing left:
CODE
@>Conditional Branch: Script: ev(0,1,8,4)


Eg. Event 1 is next to event 2, event 1 is facing left, event 2 is facing right:
CODE
@>Conditional Branch: Script: ev(1,2,4,6)


Eg. Event 1 is next to event 2, event 1 is facing down, event 2 is facing in any direction:
CODE
@>Conditional Branch: Script: ev(1,2,2,5)
Go to the top of the page
 
+Quote Post
   
Omegas7
post Mar 20 2012, 02:20 AM
Post #6


stai sprecando il tuo tempo
Group Icon


Type: Coder
Alignment: Chaotic Evil




QUOTE (Safebox @ Mar 19 2012, 03:29 AM) *
What about it?


It is called clarification. You're supposed to say "yeah, you're right" or "no, it is wrong".

Anyway, taking a look at your latest format, I guess this should do:

CODE
def ev(source,target,sourceDirection,targetDirection)
  sourceID = source; sourceID = @event_id if source == 0
  sourcePosition = [$game_map.events[sourceID].x,$game_map.events[sourceID].y]
  targetPosition = [$game_map.events[target].x,$game_map.events[target].y]
  if ((sourcePosition[0] == targetPosition[0]) && ((sourcePosition[1] - targetPosition[1]).abs == 1)) || ((sourcePosition[1] == targetPosition[1]) && ((sourcePosition[0] - targetPosition[0]).abs == 1))
    if ($game_map.events[sourceID].direction == sourceDirection) && ($game_map.events[target].direction == targetDirection)
      return true
    end
  end
  return false
end


You use it by doing a Conditional Branch, script mode, and line is just like your examples:
CODE
ev(0,1,8,4)

"This event is next to event 001, this event faces north, and that event faces west"

CODE
ev(3,6,6,8)

"Event 003 is next to event 006, event 003 faces east, and that event faces north"


--------------------
Chooo Chooo
Go to the top of the page
 
+Quote Post
   
Safebox
post Mar 20 2012, 06:15 AM
Post #7



Group Icon


Type: Spriter
Alignment: Lawful Neutral




So the purpose of the numbers is just the same as I requested?

2=\/
4=<
6=>
8=^
5=O

0=this event

or is it slightly different?

EDIT: Ok thanks! I appreciate it!

EDIT2: Is there a way to make it compatible with Sky00Valentine's Decoration Script (or FlipelyFlip's Event Cloning script)?
Decoration Script:
Spoiler:
CODE
#===========================================================================
#
# Sky's Room Decoration System(Upgraded Event Cloning by Flipelyflip)
# Version 1.1
# July 8th, 2010 Started
# July 14th, 2010 Completed
#
#===========================================================================
#
# Features :
# Version 1.0 - (July 14th, 2010)
# - Full Wall Decoration Compatibility.
# - Floor Tiles
# * Graphics that are larger than 1 tile will
# only work if they are able to be walked
# over. (meaning things like tables won't
# work unless you don't mind being able to
# walk over it.) So you can use them but
# it will just look like a glitch in your
# game
# - Currently unable to place one event on top
# of the other.
# - Currently Doors are unable to be placed with
# a 100% glitch look as they could be place
# high up on a wall.
# - In decoration menu you can preview what the
# decoration will look like.
# - Because of this being event clones if you
# make a decoration event with stuff to do
# the decoration will also do that when
# activated.
# Version 1.1 - (July 15th, 2010)
# - Bug fixes
# *Maps not saving decorations fixed.
#
#===========================================================================
#
# Credit
# Sky00Valentine :creator and editor
# Flipelyflip :for creating the original event clone script
#
#===========================================================================
#
# Terms of Use
# ------------
#
# Crediting Rpgmakervx.net and FlipelyFlip
# is the only thing I ask. However feel free
# to credit Sky00Valentine if you see fit.
#
#===========================================================================
#
# Future improvement
# ------------------
#
# - Adding Full Functioning Floor tiles including Tables.
# - Adding in more ways for setup including but not limited to
# Hash Mode, which will be you editting the hash instead of
# item noteboxes.
#
#===========================================================================
#
# Instructions & Installation
# ---------------------------
# - Get Flipelyflips Event Cloning Script, place under materials
#
# - Get $model_cursor.png(located in demo)
#
# - Place this script under Event Cloning Script
#
# - Edit MAP_ID hash by placing in all map_id's you want to have
# decoration mode. (This should only include inside maps.) As I did
# not make this for outside so there may be some glitches.
#
# - Edit Event Map, change it to the map id where you will store all of
# your decoration evetns.
#
# - Edit Wall_Map, change it to the map id where you will store all of
# your wall tiles.(This is so you can place items on walls.
#
# - Edit the three Buttons to be which buttons you want to press
# to do the given function. By default they will be the A
# key to enter into edit mode, S to change from Placement to Removal mode
# and Vice-Versa, X key to go into the decoration Menu, and Enter
# or Z key to place or remove a decoration. (X key is the only one not
# customizable)
#
# - To setup your items go to your item notebox and place this
# Decoration:event_id: where event id is the event you want
# to be placed on the map when using that decoration/item.
# You will need that item in your party's inventory in order
# to place that decoration in placement mode.
# You will lose 1 of that item each time you place 1 of that
# decoration. And you will gain 1 each time you remove a
# decoration from the map.
# Also you must put this in an items notebox as well,
# <WALL> if you want that decoration to be placed
# on the wall, and <FLOOR> if you want it to be placed on
# the floor.
#
# - Make sure you have created the event map and the wall map.
# Following the model.
#
# - Make sure on the Event Map your first event is a blank event
# no graphic and priority is set to same as characters.
#
#===========================================================================
#
# Compatibility & Bugs
# --------------------
# - Through aliasing this script should be 100% Compatible with
# any script.
#
#============================================================================

module Sky
module Decor
MAP_ID = [1] # all map id's that you can Enter Decoration Mode on.
#example MAP_ID = [3,5,6] Can only decorate maps 3,5, and 6

Event_Map = 3 #Map ID of the stored events map.
#you store all decoration events on this map

Wall_Map = 2 #Map ID of your wall tiles map.
#you store all you wall tiles here on this map.

Button0 = Input::X #The button you want to press to enter decoration mode
Button1 = Input::C #The button you want to press to place/remove decorations
Button2 = Input::Y #The button you want to press to change to place or remove mode.

end
end

class Game_Event
attr_accessor :event
attr_accessor :through
attr_accessor :d_tag
attr_accessor :item
attr_accessor :pages

alias graphic_initialize initialize
def initialize(map_id, event, cg = false)
@cg = cg
graphic_initialize(map_id,event)
end

alias graphic_setup setup
def setup(new_page)
if @cg
graphic_setup(new_page)
@tile_id = 0
@character_name = $game_party.members[0].character_name
@character_index = $game_party.members[0].character_index
@walk_anime = false
@step_anime = false
@direction = $game_player.direction
else
graphic_setup(new_page)
end
@d_tag = nil
@item = nil
end

alias dont_begin start
def start
dont_begin unless $game_map.edit_mode?
end
end

class Game_Character
alias stop_movement turn_toward_player
def turn_toward_player
unless $game_map.edit_mode?
stop_movement
end
end
end

class Game_Interpreter
def return_event
event = $game_map.events
return event == nil ? nil : event[@event_id]
end
end

class Game_Party
attr_accessor :previous_character
attr_accessor :previous_index
attr_accessor :last_decoration

alias previous_initialize initialize
def initialize
previous_initialize
@previous_character = nil
@previous_index = nil
@last_decoration = 0
end

def set_previous(name,index)
@previous_character = name
@previous_index = index
end

end

class Game_Map
attr_accessor :transfers
attr_accessor :changed_tiles
attr_accessor :current_d_event_id
attr_accessor :d_type

alias edit_mode_initialize initialize
def initialize
@current_d_event_id = 0
@editing = false
@placement = true
@blocking_events = []
@c_through = []
@changed_tiles = {}
edit_mode_initialize
end

alias new_setup setup
def setup(map_id)
new_setup(map_id)
@new_events = {}
if $resaved_maps.include?(@map_id)
@new_events = $resaved_maps[@map_id]
@new_events = {} if @new_events == nil
new_event_setup
end
end

def new_event_setup
for i in @new_events.keys
@events[i] = Game_Event.new(@map_id, @new_events[i][0])
@events[i].moveto(@new_events[i][1], @new_events[i][2])
@events[i].d_tag = @new_events[i][3]
@events[i].item = @new_events[i][4]
end
end

def add_new(event_id,cevent,x,y,d_tag,item)
@new_events[event_id] = [cevent,x,y,d_tag,item]
$resaved_maps[@map_id] = @new_events
end

alias block_transfers_setup setup_events
def setup_events
block_transfers_setup
@transfers = []
for i in @map.events.keys
if @map.events[i].name == "transfer"
@transfers.push(i)
end
end
end

def return_location(x,y,direction)
@return_to_x = x
@return_to_y = y
@return_direction = direction
end

def return_to
$game_player.set_direction(@return_direction)
$game_player.moveto(@return_to_x,@return_to_y)
end

def delete_event(event_id)
if @events[event_id].item != nil
$game_party.gain_item($data_items[@events[event_id].item], 1)
end
@events.delete(event_id)
@new_events.delete(event_id)
$scene = Scene_Map.new
end

def blocking_events
return @blocking_events
end

def edit_mode(switch)
@previous_mode = @editing
@editing = switch
if @previous_mode != @editing and not @editing
placement_mode(true)
end
end

def edit_mode?
return @editing
end

def placement_mode?
return @placement
end

def placement_mode(mode)
@previous_mode = @placement
@placement = mode
if @previous_mode != @placement and not @placement
@c_through = []
end
if not @placement
for i in @events.keys
if not @events[i].through
@c_through.push(i)
@events[i].through = true
end
end
else
for i in @events.keys
if @c_through.include?(i)
@events[i].through = false
end
end
end
end

def change_passibility(map_id,x,y)
nmap = load_data(sprintf("Data/Map%03d.rvdata",map_id))
tile_id = nmap.data[x,y,0]
@changed_tiles[tile_id] = @passages[tile_id] if @passages[tile_id] != 0x00
@passages[tile_id] = 0x00
end

def restore_passage
for i in @changed_tiles.keys
@passages[i] = 0x01
end
refresh
end

def add_event(map_id,id,x,y,cg=false)
s = 1
(1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
ev = map.events[id]
ev.id = s
if events_xy(x, y).empty? or (events_xy(x,y)[0].event.name == "transfer" and events_xy(x,y).size == 1)
if cg
@events[s] = Game_Event.new(@map_id,ev,true)
@blocking_events.push(@events[s].id)
else
@events[s] = Game_Event.new(@map_id, ev)
@events[s].d_tag = 1 unless @transfers.include?(@events[s].id)
@events[s].item = $game_party.last_decoration unless @transfers.include?(@events[s].id)
$game_party.lose_item($data_items[@events[s].item], 1) unless @transfers.include?(@events[s].id)
end
@events[s].moveto(x, y)
add_new(s,ev,x,y,@events[s].d_tag,@events[s].item)
return @events[s].id
end
end
end

class Scene_Map

alias new_window start
def start
new_window
unless $cd == nil or $cd.disposed?
$cd.dispose
end
if $game_map.edit_mode?
update_current_decoration_window
end
end

def update_current_decoration_window
$cd = Window_Base.new(0,0,190,88) if $cd == nil or $cd.disposed?
$cd.contents.clear
$cd.opacity = 100
if $game_party.last_decoration > 0
decoration = "#{$data_items[$game_party.last_decoration].name}"
else
decoration = "None selected"
end
if $game_map.placement_mode?
mode = "Placement Mode"
else
mode = "Removal Mode"
if $game_map.events_xy($game_player.x,$game_player.y).size > 0 and $game_map.events_xy($game_player.x,
$game_player.y)[0].item != nil
decoration = $data_items[$game_map.events_xy($game_player.x,
$game_player.y)[0].item].name
else
decoration = ""
end
end
$cd.contents.draw_text(0,0,158,24,mode,1)
$cd.contents.draw_text(0,32,158,24,decoration,1)
end

alias extra_event_update update
def update
extra_event_update
unless $game_message.visible
if Sky::Decor::MAP_ID.include?($game_map.map_id)
if Input.trigger?(Sky::Decor::Button0)
if $game_map.edit_mode?
$game_party.members[0].set_graphic($game_party.previous_character,
$game_party.previous_index,$game_party.members[0].face_name,
$game_party.members[0].face_index)
for i in 0...$game_map.blocking_events.size
$game_map.delete_event($game_map.blocking_events[i])
end
$game_map.blocking_events.clear
$game_map.restore_passage
$game_map.return_to
$game_map.edit_mode(false)
else
$game_map.add_event(Sky::Decor::Event_Map,1,$game_player.x,$game_player.y,true)
$game_map.return_location($game_player.x,$game_player.y,$game_player.direction)
$scene = Scene_Map.new
$game_party.set_previous($game_party.members[0].character_name,$game_party.members[0].character_index)
$game_party.members[0].set_graphic("$Model Cursor",0,$game_party.members[0].face_name,$game_party.members[0].face_index)
for i in 0...$game_map.transfers.size
enew_x = $game_map.events[$game_map.transfers[i]].event.x
enew_y = $game_map.events[$game_map.transfers[i]].event.y
$game_map.blocking_events.push($game_map.add_event(Sky::Decor::Event_Map,1,enew_x,enew_y))
end
mapp = load_data(sprintf("Data/Map%03d.rvdata", Sky::Decor::Wall_Map))
for i in 0...mapp.width
unless i % 4 == 0
for a in 0...mapp.height
unless a % 4 == 0
$game_map.change_passibility(Sky::Decor::Wall_Map,i,a)
end
end
end
end
$game_map.edit_mode(true)
update_current_decoration_window
end
$game_player.refresh
elsif Input.trigger?(Sky::Decor::Button2)
if $game_map.edit_mode?
if $game_map.placement_mode?
$game_map.placement_mode(false)
$cd.contents.clear unless $cd == nil or $cd.disposed?
update_current_decoration_window
else
$game_map.placement_mode(true)
$cd.contents.clear unless $cd == nil or $cd.disposed?
update_current_decoration_window
end
end
elsif Input.trigger?(Sky::Decor::Button1)
if $game_map.edit_mode?
if $game_map.placement_mode?
enew_x = $game_player.x
enew_y = $game_player.y
tile_id = $game_map.data[enew_x,enew_y,0]
unless not $game_party.has_item?($data_items[$game_party.last_decoration]) or $game_map.current_d_event_id == 0
if $game_map.changed_tiles.include?(tile_id)
$game_map.add_event(Sky::Decor::Event_Map,($game_map.current_d_event_id),
enew_x,enew_y) if $game_map.d_type == "Wall"
else
$game_map.add_event(Sky::Decor::Event_Map,($game_map.current_d_event_id),
enew_x,enew_y) if $game_map.d_type == "Floor"
end
end
$scene = Scene_Map.new
else
event = $game_map.events_xy($game_player.x,$game_player.y)
unless event == nil or event.size == 0
$game_map.delete_event(event[event.size - 1].id) unless event[event.size - 1].d_tag == nil
end
end
end
end
if $game_map.edit_mode?
update_current_decoration_window
end
end
end
if not $game_party.has_item?($data_items[$game_party.last_decoration])
$game_party.last_decoration = 0
end
end

alias insert_decoration_menu call_menu
def call_menu
unless $game_map.edit_mode?
insert_decoration_menu
else
$game_temp.next_scene = nil
$cd.opacity = 0 unless $cd == nil or $cd.disposed?
$cd.contents_opacity = 0 unless $cd == nil or $cd.disposed?
$scene = Scene_Decoration_Menu.new
end
end
end

class Window_Decoration < Window_Selectable
attr_accessor :data
def initialize
super(0,0,240,416)
self.index = 0
refresh
end

def item
return @data[self.index]
end

def decoration(item)
return if item == nil
notes = item.note
notes.each_line{|x| return x[11,x.rindex(':') - 11]}
end

def type(item)
return if item == nil
notes = item.note
notes.each_line{|x|
if x.include?("<WALL>")
return "Wall"
elsif x.include?("<FLOOR>")
return "Floor"
end
}
end

def refresh
@data = []
for item in $game_party.items
next unless include?(item)
@data.push(item)
if item.id == $game_party.last_decoration
self.index = @data.size - 1
end
end
@data.push(nil) if @data.size == 0
@item_max = @data.size
width = 0
for i in @data
break if i == nil
new_width = self.contents.text_size("#{i.name} ").width
width = new_width if new_width > width
end
self.width = [240, width].max
self.height = [page_row_max * WLH,@item_max * WLH].min + 32
create_contents
for i in 0...@item_max
draw_item(i)
end
end

def include?(item)
return false if item == nil
notes = item.note
notes.each_line{|x| return true if x.include?("Decoration:")}
return false
end

def draw_item(index)
rect = item_rect(index)
item = @data[index]
if item != nil
number = $game_party.item_number(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
else
rect.width -= 4
self.contents.draw_text(rect,"- None -",1)
end
end
end

class Scene_Decoration_Menu < Scene_Base
def start
@viewport = Viewport.new(0,0,544,416)
create_menu_background
@decoration = Window_Decoration.new
@image = Window_Base.new(340,0,206,180)
image_update unless @decoration.item == nil
@previous_selection = 0
end

def tileset_bitmap(tile_id)
set_number = tile_id / 256
return Cache.system("TileB") if set_number == 0
return Cache.system("TileC") if set_number == 1
return Cache.system("TileD") if set_number == 2
return Cache.system("TileE") if set_number == 3
return nil
end

def update
@decoration.update
@image.update
if Input.trigger?(Input::cool.gif
dispose
elsif Input.trigger?(Input::C)
$game_party.last_decoration = @decoration.item.id unless @decoration.item == nil
$game_map.current_d_event_id = @decoration.decoration(@decoration.item).to_i
$game_map.d_type = @decoration.type(@decoration.item)
dispose
elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or (@previous_selection != @decoration.index)
unless @decoration.item == nil
unless @image.disposed?
image_update
end
end
@previous_selection = @decoration.index
end
end

def image_update
@image.contents.clear
event_id = @decoration.decoration(@decoration.item).to_i
emap = load_data(sprintf("Data/Map%03d.rvdata",Sky::Decor::Event_Map))
tile_id = emap.events[event_id].pages[0].graphic.tile_id
if emap.events[event_id].pages[0].graphic.tile_id == 0
name = emap.events[event_id].pages[0].graphic.character_name
index = emap.events[event_id].pages[0].graphic.character_index
bitmap = Cache.character(name)
sign = name[/^[\!\$]./]
if sign != nil and sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
n = index
x = (@image.contents.width / 2) - (@cw / 2)
y = (@image.contents.height / 2) - (@ch / 2)
src_rect = Rect.new((n%4*3+1)*@cw, (n/4*4)*@ch, @cw, @ch)
@image.contents.blt(x, y, bitmap, src_rect)
else
bitmap = tileset_bitmap(tile_id)
sx = (tile_id / 128 % 2 * 8 + tile_id % 8) * 32;
sy = tile_id % 256 / 8 % 16 * 32;
src_rect = Rect.new(sx, sy, 32, 32)
x = (@image.contents.width / 2) - (32 / 2)
y = (@image.contents.height / 2) - (32 / 2)
@image.contents.blt(x,y,bitmap,src_rect)
end
end
def dispose
@decoration.dispose
@image.dispose
$scene = Scene_Map.new
end
end

class Scene_File

alias place_data write_save_data
def write_save_data(file)
place_data(file)
Marshal.dump($resaved_maps, file)
end

alias get_data read_save_data
def read_save_data(file)
get_data(file)
$resaved_maps = Marshal.load(file)
end

end

class Scene_Title
alias new_array command_new_game
def command_new_game
$resaved_maps = {}
new_array
end
end

Event Cloning:
Spoiler:
CODE
#==============================================================================
# ** Events Cloning Script V1.1
#------------------------------------------------------------------------------
# by FlipelyFlip
#------------------------------------------------------------------------------
# thx goes to: Kread-EX
#==============================================================================
=begin
This little script allows you to copy an event from another map to set it on the
located coordinates. You can also call it by variables. You have to config the
Variables under the module Flipely. So you can set the x and y coordinate at the
variables to random. If the coordinates are on an impassable place, they will be
set one place right and one place down. If this place is also impassable, it will
add again the one place right and one place down.
This Feature is only at the variable available.

To call the script you can chose between
$game_map.add_event(map_id,event_id,x,y)

or you will do it with variables, then you have to set up the variables before
calling it with Flipely.koordinaten .

greetings FlipelyFlip
=end

class Spriteset_Map
def refresh
$game_map.need_refresh = true
unless @character_sprites == nil
for sprite in @character_sprites
sprite.dispose
end
end
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
end
end

class Game_Map
def add_event(map_id,id,x,y)
s = 1
(1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
ev = map.events[id]
ev.id = s
@events[s] = Game_Event.new(@map_id, ev)
@events[s].moveto(x, y)
return @events[s].id
end
end

module Flipely
def self.passable?
return $game_map.passable?($game_variables[id], $game_variables[id], flag = 0x01)
end
end

module Flipely
def self.koordinaten
if Flipely.passable? == true
$game_map.add_event($game_variables[id],$game_variables[id],$game_variables[id],$game_variables[id])
$scene = Scene_Map.new
else
$game_variables[id] += 1 # change it if you want
$game_variables[id] += 1 # change it if you want
Flipely.koordinaten
end
end
end


This post has been edited by Safebox: Mar 20 2012, 03:20 PM
Go to the top of the page
 
+Quote Post
   
Omegas7
post Mar 20 2012, 11:12 PM
Post #8


stai sprecando il tuo tempo
Group Icon


Type: Coder
Alignment: Chaotic Evil




QUOTE (Safebox @ Mar 20 2012, 01:15 AM) *
So the purpose of the numbers is just the same as I requested?

Yes, fortunately you used the standard way of describing those directions.

QUOTE (Safebox @ Mar 20 2012, 01:15 AM) *
Is there a way to make it compatible with Sky00Valentine's Decoration Script (or FlipelyFlip's Event Cloning script)?

State the exact nature of the problem.


--------------------
Chooo Chooo
Go to the top of the page
 
+Quote Post
   
Safebox
post Mar 21 2012, 05:56 AM
Post #9



Group Icon


Type: Spriter
Alignment: Lawful Neutral




Sky00Valentine's Decoration Script allows you to build by cloning events from another map & placing them on the current one. When an object is cloned to the current map it loses its Event ID (I think anyway). Which is why the script becomes virtually redundant when the event is cloned, because it becomes a "ghost" of itself.
Go to the top of the page
 
+Quote Post
   
Safebox
post Mar 24 2012, 11:12 AM
Post #10



Group Icon


Type: Spriter
Alignment: Lawful Neutral




BUMP
Go to the top of the page
 
+Quote Post
   
Safebox
post Apr 5 2012, 02:49 PM
Post #11



Group Icon


Type: Spriter
Alignment: Lawful Neutral




BUMP
Please tell me this can be done sad.gif
Go to the top of the page
 
+Quote Post
   
Omegas7
post Apr 7 2012, 04:23 AM
Post #12


stai sprecando il tuo tempo
Group Icon


Type: Coder
Alignment: Chaotic Evil




Apologies, I forgot this existed. I can't check it out right now, and I will probably be away for some days. I will take a look sometime later.


--------------------
Chooo Chooo
Go to the top of the page
 
+Quote Post
   
Safebox
post Apr 7 2012, 03:06 PM
Post #13



Group Icon


Type: Spriter
Alignment: Lawful Neutral




Thats ok
Go to the top of the page
 
+Quote Post
   
Safebox
post Apr 15 2012, 10:11 AM
Post #14



Group Icon


Type: Spriter
Alignment: Lawful Neutral




I am going to BUMP this topic 3 more times. After that a Moderator can close it :/
Go to the top of the page
 
+Quote Post
   
mithos
post Apr 15 2012, 06:44 PM
Post #15


Meowthos the zombie cat!!
Group Icon


Type: Coder
Alignment: Lawful Good




I'm taking a look at this, I'll let you know what I can do / if it can be done in the next day or two smile.gif


--------------------
I've been away for a while. Here's my really quite old stuff
Spoiler:


If it's in one of my threads you can use it so long as you read this, and give me a link to any derivatives (i.e. works based off mine). Credit Mithos.
Full legal bit
(Click image for human-readable version :P )
My Stuff:
My Games:
Spoiler:

Story <60%> Mapping<20%> Art<80%> Scripts<97%> Database<50%>
The Legend of Zelda: Restoration of Time Story<20%> Mapping<0%> Art<2%> Scripts<70%> Database<0%>
Absolute Power Story<21%> Mapping<0%> Art<2%> Scripts<0%> Database<0%>

My Sprites:
My Scripts:
I support:
Spoiler:





Go to the top of the page
 
+Quote Post
   
Safebox
post Apr 16 2012, 03:50 PM
Post #16



Group Icon


Type: Spriter
Alignment: Lawful Neutral




Ok tahnks happy.gif
Go to the top of the page
 
+Quote Post
   
Safebox
post Apr 21 2012, 04:40 PM
Post #17



Group Icon


Type: Spriter
Alignment: Lawful Neutral




B to the U to the MP!
BUMP
Go to the top of the page
 
+Quote Post
   
Omegas7
post Apr 21 2012, 06:21 PM
Post #18


stai sprecando il tuo tempo
Group Icon


Type: Coder
Alignment: Chaotic Evil




Thank you mithos. I'll forget about this now.


--------------------
Chooo Chooo
Go to the top of the page
 
+Quote Post
   
Safebox
post Apr 21 2012, 09:07 PM
Post #19



Group Icon


Type: Spriter
Alignment: Lawful Neutral




...can you not at least try as well? because I mean, you ARE one of the best script writers on the VX community

This post has been edited by Safebox: Apr 21 2012, 09:07 PM
Go to the top of the page
 
+Quote Post
   
mithos
post Apr 21 2012, 11:16 PM
Post #20


Meowthos the zombie cat!!
Group Icon


Type: Coder
Alignment: Lawful Good




Okay I have a couple of ways I can do this, not sure which you want.

One way would be to set up your events as normal, with a couple of changes to the script, meaning that when you copied events, every copy (for example) of event 1 would check every copy of event 2 etc. => not exactly what I thought you had in mind.

Another would be, rather than using event IDs as you are, is there any reason you shouldn't use event x,y coordinates. So for example, event 1 could check the current state of the event at 7,3; and use that result. If desired I could even make the coordinates relative to the event doing the checking (so 1,0 would check the square immediately to the right of the event doing the checking)


--------------------
I've been away for a while. Here's my really quite old stuff
Spoiler:


If it's in one of my threads you can use it so long as you read this, and give me a link to any derivatives (i.e. works based off mine). Credit Mithos.
Full legal bit
(Click image for human-readable version :P )
My Stuff:
My Games:
Spoiler:

Story <60%> Mapping<20%> Art<80%> Scripts<97%> Database<50%>
The Legend of Zelda: Restoration of Time Story<20%> Mapping<0%> Art<2%> Scripts<70%> Database<0%>
Absolute Power Story<21%> Mapping<0%> Art<2%> Scripts<0%> Database<0%>

My Sprites:
My Scripts:
I support:
Spoiler:





Go to the top of the page
 
+Quote Post
   

4 Pages V   1 2 3 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 2nd October 2014 - 01:35 PM

RPGMakerVX.net is an Privacy Policy, Legal.