Jump to content
New account registrations are disabed. This website is now an archive. Read more here.

higgle2piggle

Member
  • Content Count

    16
  • Joined

  • Last visited

About higgle2piggle

  • Rank
    Newbie

Engines I Use

  • RPG Maker XP
    Yes
  1. Is it possible to create an event, say it's fireball. When you interact with one event, another is created. Without pre creating it. What I mean is, it is created in game play, not predetermined from writhing the editor at a specific location. It's a n event that has been created let's say from the event commands from a common event. Eg. Fire ball, or a bomb.
  2. Thank you very much, that's exactly what I was after. :)
  3. Just a quick one: How can I return an event id into a variable? The reason: In order to use the 'returned event id value' that has been stored into a 'designated variable' of my choice, to be used in the Event Conditions.
  4. Wow, I had a look at the work you have done. It's pretty amazing. You sure know what you are doing. Are you going to release it with documentation?
  5. Is this how I visualize what you are describing - basically: Define Variables: pushObject 1 x pushObject 1 y pushObject 2 x pushObject 2 y pushObject 3 x pushObject 3 y floorButton 1 x floorButton 1 y floorButton 2 x floorButton 2 y Method: For only 1 pushObject and 1 floorObject { if (pushObject 1 x == floorButton 1 x) { if (pushObject 1 y == floorButton 1 y) ON else OFF } end else OFF } end How ill it work for more? Thanks for helping btw.
  6. I've been try to do this event puzzle for almost 2 weeks now, and I just can't get the damn thing to work exactly how I want it. Here is what i'm trying to do. I have a floorButton in the up position. I want it to go down when a player steps on it, and then go back up when he steps of it. (I can do this fine) Then I wanted a pushObject to be moved by the player so that the floorButton and the pushObject have the same position, thus button goes down. ( I can do this fine also) But here is when it gets tricky. I want any pushObject or the player, as there may be pushObjects 10 for example, to make the floorButton go down,. I also want the x,y variables of the floorButton to act as a self variable. So that I define the variable once in the database, then I can copy and paste the floorButton, keeping the event as is, paste the event somewhere else and it is all set to go because its using : condition - any pushObject which is equal to self x,y variables. All I would have to do at this point is just set up the switch that is activated when floorButton is down. The last thing that would make this amazing is this, if the pushButton has turned on the switch, then when the player exits ans enters the map the x,y co-ordinate of the pushObject remains the same as the floorButton which it is on top of. Now, I am able to do every described, except for any pushObject on floorButton, without making a vegetable soup recipe of the event commands setting up every instance of a condition with individual x,y for each pushObject. Thats why I think, if you could label an event, then use that label in the conditions, with the ability to use selfVariables for the floorButtons, it would make RMXP so much more powerful. If you want a demo because its to hard to explain I can prepare one. So, what i am really looking for is an event labeling system. So that I can set up the labelled event in the conditons, For example if pushObject
  7. Has anyone had any luck with the Z index of animations?
  8. The reason I wanted a z index with animations Is because I wanted to do things like terrain animation when walking, dirt dust under feet, water splash under feet. Animations to go behind tileset priority. It would just be a helpfull things to control. And easy to build using animation tool directly from the engine
  9. I'm Using RMXP. Hello, I am having troubles getting the View Range Script by Near Fantastica - 2005 working correctly. I have pasted the script above main, and below Scene_Debug. According to the instructions, you should do this: $view_range.event_view(ev_id, v_range, sw_id, s_sw_id, block) so i did this: $view_range.event_view(3, 4, , "A", true) so that's, event id 3, range 4, nil switch, A selfswitch, block by impassibility false. I put this in my event using script insert, paste it in ther. run game, then the game runs an error?? I really have no idea what i am doing wrong Please help me. Script attached below. #============================================================================== # ** View Range Script v3 gamma #------------------------------------------------------------------------------ # Original version by: Near Fantastica # Original date: June 14, 2005 # # Modifications/edit by: DerVVulfman # Modification date: November 25, 2007 # #============================================================================== # # INTRODUCTION: # The original v3 View Range system allowed a more detailed detection between # player and event ranges than version 2. Adding the ability to use events to # detect the player as well as enemy events facing the player added to its # usefullness. # # Unfortunately, when version 2 was released (at least where I found it), the # instructions for the system's use were only partially correct and did not # inform the users that the system no longer used the event's self-switches. # The newer version now used the RMXP Database's regular switches instead. # # Though it was not my intention to tangle with the View Range system, luck # (and a few friends) nudged me into experimenting with this system. As such # I have not only combined the use of SelfSwitches 'AND' regular switches in # to the system, I have also added a couple more features for use. # # The system now includes a routine to check the range between two different # events which may be useful for 'collision detection' purposes. Also, I have # also altered the Event_Sound routine so the user can set a lower volume or # pitch setting for targettable events. # #============================================================================== # # THE FUNCTIONS: # # There are now four routines that you can use with this system (or 5 if you # script a routine to use the vr_in_range? method). The four are listed below # detailing usage and proper syntax for you. # #-------------------------------------------------------------------------- # # Event View # ========== # This function checks to see if the player is within the range of an event # and turns on the properly designated switch. # # Syntax: # $view_range.event_view(ev_id, v_range, sw_id, s_sw_id, block) # # ev_id - (Event ID) # This is the ID number of the event that the radius/range is # based on. If the player comes within the range of 'this' # event, the system is triggered. # # ev2_id - (Event2 ID) # This is the ID number of the event # # v_range - (View Range) # This is the range(in tiles) in which to perform the check. # # sw_id - (Switch ID) - Defaulted to 'nil' # The RMXP switch number to turn ON. By default, this is set # to 'nil'. You must enter a valid Switch number to use. # # s_sw_id - (Self Switch ID) - Defaulted to 'nil' # The 'Self-Switch' for the event to turn ON. Proper values # to set are "A", "B", "C", or "D". By default, this is set # to 'nil'. You must enter a valid Self-Switch to use. # # block - (Blocked by Tiles) - Defaulted to 'false' # This is a 'true/false' switch that determines if the view # range system is unable to see around impassable tiles. By # default, this is set to 'false'. If it is set to 'true', # the view range system will not detect the player if it is # behind an impassable tile or tiles. # #-------------------------------------------------------------------------- # # Event to Event View # =================== # This function checks to see if a single event is within the range of # another event and turns on the properly designated switch. This new # routine may be useful for collision detection between events. # # Syntax: # $view_range.event2event_view(ev_id, ev2_id, v_range, sw_id, s_sw_id, block) # # ev_id - (Event ID) # This is the ID number of the event that the radius/range is # based on. If the target event moves or appears within the # range of 'this' event, the system is triggered. # # ev2_id - (Event2 ID) # This is the ID number of the target event which to check. # If this event finds itself within range of the other # event's area of effect, the system is triggered. # # v_range - (View Range) # This is the range(in tiles) in which to perform the check. # # sw_id - (Switch ID) - Defaulted to 'nil' # The RMXP switch number to turn ON. By default, this is set # to 'nil'. You must enter a valid Switch number to use. # # s_sw_id - (Self Switch ID) - Defaulted to 'nil' # The 'Self-Switch' for the event to turn ON. Proper values # to set are "A", "B", "C", or "D". By default, this is set # to 'nil'. You must enter a valid Self-Switch to use. # # block - (Blocked by Tiles) - Defaulted to 'false' # This is a 'true/false' switch that determines if the view # range system is unable to see around impassable tiles. By # default, this is set to 'false'. If it is set to 'true', # the view range system will not detect the target event if # it is behind an impassable tile or tiles. # # #-------------------------------------------------------------------------- # # Enemies View # ============ # This function checks to see if the player is within range of an event # that is facing him/her, and turns on the properly designated switch. # # Syntax: # $view_range.enemies_view(ev_id, v_range, sw_id, s_sw_id, block) # # ev_id - (Event ID) # This is the ID number of the event that the radius/range is # based on. If the player is in front of 'this' event and # within the set range, the system is triggered. # # v_range - (View Range) # This is the range(in tiles) in which to perform the check. # # sw_id - (Switch ID) - Defaulted to 'nil' # The RMXP switch number to turn ON. By default, this is set # to 'nil'. You must enter a valid Switch number to use. # # s_sw_id - (Self Switch ID) - Defaulted to 'nil' # The 'Self-Switch' for the event to turn ON. Proper values # to set are "A", "B", "C", or "D". By default, this is set # to 'nil'. You must enter a valid Self-Switch to use. # # block - (Blocked by Tiles) - Defaulted to 'false' # This is a 'true/false' switch that determines if the view # range system is unable to see around impassable tiles. By # default, this is set to 'false'. If it is set to 'true', # the view range system will not detect the player if it is # behind an impassable tile or tiles. # #-------------------------------------------------------------------------- # # Event Sound # =========== # This function checks to see if the player is within range of an event # that is linked to a sound effect. The closer the player is to the event, # the louder the effect is played. # # The maximum sound range of this routine is eight (8) tiles. It is not # recommended to overlap these events as this can cause massive lag on the # game/project as the system will attempt to cycle through the overlapped # calls. Also note that this routine will override the map's default back- # ground sound effect. # # Syntax: # $view_range.event_sound(ev_id, bgs_name, bgs_vol = 100, bgs_pitch = 100) # # ev_id - (Event ID) # This is the ID number of the event that the radius/range is # based on. If the player is in front of 'this' event and # within the set range, the system is triggered. # # bgs_name - (Background Effect's Name) # This is the filename of the background effect. This effect # is stored in the Audio\BGS folder. # # bgs_vol - (Background Effect's Volume) # This is the volume setting of the background effect within # a range of 1 to 100, with 100 being the loudest. # # bgs_pitch - (Background Effect's Pitch) # This is the pitch setting of the background effect within a # range of 50 to 150, with 150 being the highest setting. # #============================================================================== # # HOW IT DETERMINES THE RANGE: # # The Range system works by searching the area of a circle for the player's # 'x' and 'y' position. The view range is set in each event and is the ra- # dius of a circle. # # The equation used is: radius^2 = (Px-Ex)^2 + (Py-Ey)^2 # Where P = player, and E = event # # If the radius is less than or equal to the view range, then the player is # inside the circular area. # #============================================================================== #============================================================================== # ** View Range #------------------------------------------------------------------------------ # This class is Near Fantastica's which checks distances between events. #============================================================================== class View_Range #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize @playing_bgs = [] @bgs = BGS.new @event_local_switch = "" end #-------------------------------------------------------------------------- # * In Range? # element : element # object : object # range : range in tiles # pass_block : if terrain tiles can block view #-------------------------------------------------------------------------- def vr_in_range?(element, object, range, pass_block = false) # Obtain Range x = (element.x - object.x) * (element.x - object.x) y = (element.y - object.y) * (element.y - object.y) # Obtain values to loop and counter value x_loops = x_count = (object.x - element.x).abs y_loops = y_count = (object.y - element.y).abs # Reset player's check location check_player_x = -1 check_player_y = -1 r = x + y if r <= (range * range) # Set the return flag rflag = true # If tiles can block view if pass_block # Horizontal Checks x_loops.times { x_playerchk = ((object.x - element.x) >= 0 ? element.x + x_count : element.x - x_count) x_passingchk = ((object.x - element.x) >= 0 ? (element.x + x_count)-1 : (element.x - x_count)+1) unless $game_player.passable?(x_passingchk, element.y , element.direction) # Change flag rflag = false # Set player check location check_player_x = object.x if x_playerchk == object.x end # Decrease counter x_count -= 1 } # Vertical Checks y_loops.times { y_playerchk = ((object.y - element.y) >= 0 ? element.y + y_count : element.y - y_count) y_passingchk = ((object.y - element.y) >= 0 ? (element.y + y_count)-1 : (element.y - y_count)+1) unless $game_player.passable?(element.x, y_passingchk , element.direction) # Change flag rflag = false # Set player check location check_player_y = object.y if y_playerchk == object.y end # Decrease counter y_count -= 1 } end # Re-enable flag based on player position if check_player_x == object.x && check_player_y == object.y print "uyui" r_flag = true end # Return system-determined flag return rflag else # Return default flag return false end end #-------------------------------------------------------------------------- # * View Switch # ev_id : event ID # sw_id : switch ID # s_sw_id : event's self switch ID #-------------------------------------------------------------------------- def view_switch(ev_id, sw_id = nil, s_sw_id = nil) $game_switches[sw_id] = true if sw_id != nil if s_sw_id != nil key=[$game_map.map_id, ev_id, s_sw_id] $game_self_switches[key] = true end $game_map.need_refresh = true end #-------------------------------------------------------------------------- # * Event Sound # ev_id : Event ID # bgs_name : filename of background sound effect # bgs_vol : background effect's volume # bgs_pitch : background effect's pitch #-------------------------------------------------------------------------- def event_sound(ev_id, bgs_name, bgs_vol = 100, bgs_pitch = 100) event = $game_map.events[ev_id] @bgs.name = bgs_name @bgs.pitch = bgs_pitch radius = ($game_player.x-event.x) * ($game_player.x-event.x) + ($game_player.y-event.y) * ($game_player.y-event.y) if radius > 64 if @playing_bgs[event.id] != nil @playing_bgs[event.id] = nil $game_system.bgs_fade(1) return end elsif radius <= 64 and radius > 49 if @playing_bgs[event.id] == nil @bgs.volume = (bgs_vol * 30)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return end @bgs.volume = (bgs_vol * 30)/100 if @bgs.volume != @playing_bgs[event.id].volume or @bgs.name != @playing_bgs[event.id].name @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return end elsif radius <= 49 and radius > 36 @bgs.volume = (bgs_vol * 40)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return elsif radius <= 36 and radius > 25 @bgs.volume = (bgs_vol * 50)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return elsif radius <= 25 and radius > 16 @bgs.volume = (bgs_vol * 60)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return elsif radius <= 16 and radius > 9 @bgs.volume = (bgs_vol * 70)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return elsif radius <= 9 and radius > 4 @bgs.volume = (bgs_vol * 80)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return elsif radius <= 4 and radius > 1 @bgs.volume = (bgs_vol * 90)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return elsif radius = 1 @bgs.volume = (bgs_vol * 100)/100 @playing_bgs[event.id] = @bgs $game_system.bgs_play(@bgs) return end end #-------------------------------------------------------------------------- # * Event View # ev_id : event ID # v_range : range in tiles # sw_id : switch ID # s_sw_id : event's self switch ID # block : View block (true/false) #-------------------------------------------------------------------------- def event_view(ev_id, v_range, sw_id = nil, s_sw_id = nil, block = false) event = $game_map.events[ev_id] if vr_in_range?(event, $game_player, v_range, block) view_switch(ev_id, sw_id, s_sw_id) end end #-------------------------------------------------------------------------- # * Event to Event View # ev_id : event ID # ev2_id : event ID of target # v_range : range in tiles # sw_id : switch ID # s_sw_id : event's self switch ID # block : View block (true/false) #-------------------------------------------------------------------------- def event2event_view(ev_id, ev2_id, v_range, sw_id = nil, s_sw_id = nil, block = false) event = $game_map.events[ev_id] target = $game_map.events[ev2_id] if vr_in_range?(event, target, v_range, block) view_switch(ev_id, sw_id, s_sw_id) end end #-------------------------------------------------------------------------- # * Enemies View # ev_id : event ID # v_range : range in tiles # sw_id : switch ID # s_sw_id : event's self switch ID # block : View block (true/false) #-------------------------------------------------------------------------- def enemies_view(ev_id, v_range, sw_id= nil, s_sw_id = nil, block = false) event = $game_map.events[ev_id] if event.direction == 2 && $game_player.y >= event.y if vr_in_range?(event, $game_player, v_range, block) view_switch(ev_id, sw_id, s_sw_id) end end if event.direction == 4 && $game_player.x <= event.x if vr_in_range?(event, $game_player, v_range, block) view_switch(ev_id, sw_id, s_sw_id) end end if event.direction == 6 && $game_player.x >= event.x if vr_in_range?(event, $game_player, v_range, block) view_switch(ev_id, sw_id, s_sw_id) end end if event.direction == 8 && $game_player.y <= event.y if vr_in_range?(event, $game_player, v_range, block) view_switch(ev_id, sw_id, s_sw_id) end end end end #============================================================================== # ** Scene_Title #------------------------------------------------------------------------------ # This class performs title screen processing. #============================================================================== class Scene_Title #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- alias vr_scene_title_update update def update $view_range = View_Range.new vr_scene_title_update end end #============================================================================== # ** Game_System #------------------------------------------------------------------------------ # This class handles data surrounding the system. Backround music, etc. # is managed here as well. Refer to "$game_system" for the instance of # this class. #============================================================================== class Game_System #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :playing_bgs end #============================================================================== # ** Background Sounds #------------------------------------------------------------------------------ # Data class for Background SE files. #============================================================================== class BGS #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :name attr_accessor :volume attr_accessor :pitch #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize @name @volume @pitch end end
  10. Hi, i hope this isnt too hard... but, Is there a way to set the layer priority level of an animation, called from the "Show Animation Function"? Eg, show animation under events and respond to tileset priority? Thanks
  11. It works perfectly now. Exactly what I was looking for. Thanks :) Should this thread be re titled something more helpful for people to use as a resource? You worked magic on that swimming script Polraudio !
  12. Hi Polraudio. Thank you. I realized that the passability in the database tileset needs to be "O" not "X"... That's what I was doing wrong. So the script works very well :) I hate to be annoying, but is it an easy task to remove the necessity to press "C" from the script? making the movement seamless from land to water? Or is that pushing the friendship :) Muchly appreciated.
  13. Hi, Thank you very much for helping me out. However, I can't manage to get the script to do anything. I've checked the terrain tag is 2, and item is equipped, but when i walk to the water and press "ok" nothing happens... am I doing something wrong? Cheers
  14. Cool, I'll reproduce the event as you have done. and work on it from there. Thanks for your help. I'll keep this post updated :) No, I've been thinking.. Is their a way to call the Passage function from the data base. Like Row 1 Column 3 passage true or false? I could include this call in the common event. How is the Tileset Passage coded ... therir must be a call script function to manually change the passage when desired. Image 1 is the area where Passage is referenced in the Script Database. Image 2 is how I would wish the call function would work. Is this possible? It shouldnt be too hard. This swimming script does something of the sort. But still not dependent on Equipped Item. http://www.gdunlimited.net/scripts/rpg-maker-xp/environment-and-field-scripts/swimming-system This may work. But its for VX. I dont have VX :( http://www.rpgrevolution.com/forums/index.php?showtopic=30876
  15. Hi, In RMXP I'm trying to make a situation in the game. Find boots and (equip/or just have in inventory) to be able to walk on water. The normal tileset is set to "X" on my water in the database, but when the char finds the boots I want the char to be able to walk on the water... or any water actually. So I think this will need to use terrain tags. But I'm not sure how to set it up. Is there a way I can do this using events, without making lots of events. Just like a Common Event system or something. I cant find any help. If anyone has any answers, it would be much appreciated.
×
×
  • Create New...