-
Content Count
149 -
Joined
-
Last visited
Community Reputation
54 ✦About Quasi

-
Rank
Advanced Member
- Birthday 08/11/1992
Contact Methods
-
MSN
I use Skype's IM now
-
Website URL
http://quasixi.com/
-
Skype
deinyo
Profile Information
-
Gender
Male
RPG Maker Information
-
RM Skill -
Jack of All Trades
Recent Profile Visitors
6,150 profile views
-
You could use a boolean and if it's true allow the ox update then set it to false once it reaches the location, if it's false do nothing. Just doing that though you would probably need a bunch of different update methods for every move. Or you could make a two method like: def start_move(x, y) @new_x = x @new_y = y @moving = true end def update_moving return unless @moving # We use [].min and [].max so we don't pass our coordinate speed = 1 @sprite.ox = [@sprite.ox + speed, @new_x].min if @sprite.ox < @new_x @sprite.ox = [@sprite.ox - speed, @new_x].max if @sprite.ox > @new_x @sprite.oy = [@sprite.oy + speed, @new_y].min if @sprite.oy < @new_y @sprite.oy = [@sprite.oy - speed, @new_y].max if @sprite.oy > @new_y @moving = false if @sprite.ox == @new_x && @sprite.oy == @new_y end ( this concept is based off how the character sprites move in Game_CharacterBase ) You could also rewrite those 2 methods around to use array values or a hash so you can use the same 2 methods for multiple sprites.
- 4 replies
-
- start and stop
- sprites
-
(and 2 more)
Tagged with:
-
http://gubi.us:8001/redmine/projects/0_010/wiki/Documentation ^ Answers a lot. Specific links to what you need: http://gubi.us:8001/redmine/projects/0_010/wiki/Class_Config http://gubi.us:8001/redmine/projects/0_010/wiki/Skill_Config http://gubi.us:8001/redmine/projects/0_010/wiki/Battle_Setup Easiest way is to look at his demo ( if he still has it up, I haven't touched it in years ) and see how he set it up. And if I remember correctly attack heights is only effected if you're using layy meta ( the iso script )
-
From the sounds of it, you want the event to move to one of the players neighboring tiles? If so then all you have to do is get all 4 neighboring tiles by using the players coordinates some pseudo code, not sure if I remembered the methods correct: def neighboring_tiles(event, player = $game_player) tiles = [] for i in 1..4 dir = i * 2 next unless event.passable?(player.x, player.y, dir) # Only want passable neighbors x1 = $game_map.round_x_with_direction(player.x, dir) y1 = $game_map.round_y_with_direction(player.y, dir) score = Math.hypot(x1 - event.x, y1 - event.y) # How close this tile is to the event tiles << [x1, y1, score] end best = tiles.min_by{|v| v[2]} # Select tile that closest to event return [best[0], best[1]] # return it as array [x, y] end Just gotta plug that into some class, maybe Game Interpreter or Game Character or Game Map, idk and then call it by doing something like: xy = neighboring_tiles($game_map.events[ID]) # this call will only work if it was in game interpreter xy = $game_map.neighboring_tiles($game_map.events[ID]) # if it was in game map xy = $game_map.events[ID].neighboring_tiles($game_map.events[ID]) # if it was in game character # then some pathfinding # not sure if this is how pathfinders set # there calls, but it should be something similar $game_map.events[ID].pathfind_to(xy[0], xy[1])
-
[Solved] Parallel process event won't start when messages are displayed.
Quasi replied to Eva Zumrova's topic in Editor Support and Discussion
I recently made something similar to fix this for a friend. He wanted a parallel process with image stuff, triggered by a switch, to run while there's a msg playing. https://www.dropbox.com/s/omu3tgeevm0xg9g/continual.rb?dl=0 All you have to do is mark any event that you want to keep running during a msg with the comment: <continual> Note: You might want to add some variables in your msg event though so the parallel event knows what part of the msg it's at. Note2: I never really completely tested this, just slapped it together and passed it over, so there's a chance it doesn't work in all situations. -
Making an event return to its starting location from anywhere on a map
Quasi replied to avimage's topic in Editor Support and Discussion
I'd say to grab a pathfinding script, and before the chasing begins grab the events x and y so when the player gets out of range you just use the pathfind on the event to return to his x, y before the chase started. -
That's what my second half the of the post is telling you how to do. Here's an example of using Window_Base and storing an array inside $game_system Then to modify the array all you would do, in this case, $game_system.quest_list then w.e. you want, examples: $game_system.quest_list << "Added an extra line!" $game_system.quest_list.pop #=> removes the last element and returns it $game_system.quest_list.shift #=> removes the first elemnt and returns it #ect Sorry if this isn't what you mean and I'm just misunderstanding.
-
That parameter list on TextWidget lol. You should take in a hash instead with that many options hash = { :name => "John Doe", :age => 27 } Person.create(hash) def self.create(params) @name = params[:name] @age = params[:age] end Taken from -Rub Docs- As for the array thing, I'm too lazy to look through it all, but why don't you use a window_base instead? then when you pass in the array you would do something like: (pseudo code, won't actually work) def refresh @array.each_with_index do |element, index| y = line_height * index draw_text(x, y, w, h, element) end end For the actual array you could probably set it up inside Game System and put in some methods to modify it, (can't remember if attr_accessor will let you modify arrays like .push, .delete, ect.) and just grab it with $game_system.arrayname
-
For some reason, I can walk up walls when I press Ctrl, can I turn that off?
Quasi replied to Puxido's topic in Editor Support and Discussion
That's set by default for debugging, it only works when play testing. If you want to completely turn it off you can open up scripts and go to Game_Player around line 146 you'll see: #-------------------------------------------------------------------------- # * Determine if Debug Pass-through State #-------------------------------------------------------------------------- def debug_through? $TEST && Input.press?(:CTRL) end change that to: #-------------------------------------------------------------------------- # * Determine if Debug Pass-through State #-------------------------------------------------------------------------- def debug_through? return false end or just false, but I like how return false looks. -
I like using Pyxel Edit for sprites, it feels so easy for me how you can pan by holding the scroll button, and zooming by scrolling in/out, and then picking colors (eye dropper? ) with right click. I pretty much don't need to touch the keyboard or toolbar, And if you get the paid version there's the animation feature, so you can test out the sprite while working on it.
-
Not sure if I recall correctly, but that item parameter is only passing the item or skill that was used. While you are trying to check for an Wep, so that second method won't run. And wait why are you using global variables anyways.
-
Depending on what scene/child your script is in, it might have a wait method that looks something like: #-------------------------------------------------------------------------- # * Wait #-------------------------------------------------------------------------- def wait(duration) duration.times {|i| update_basic if i < duration } end But that wait would halt all updating process except animations (depending on what scene you are in). Another way that you can build into the method would be something like @wait -= 1 if @wait <= 0 #run some method now @wait = @delaytime end @wait and @delaytime need to be initialized. This is assuming that this is running in some update method
-
Well there's a couple of ways to do this, but I'd probably do it by making an update method inside Scene_Map Something like: #============================================================================== # ** Scene_Map #------------------------------------------------------------------------------ # This class performs the map screen processing. #============================================================================== class Scene_Map < Scene_Base alias updatealias update def update updatealias somemethod end def somemethod if $game_variables[71] == 50 if $game_switches[184] RPG::SE.new("Key", 80, 100).play RPG::SE.new("Sword4", 80, 100).play $game_switches[184] = true end else if $game_switches[184] RPG::SE.new("Key", 80, 100).play RPG::SE.new("Sword4", 80, 100).play $game_switches[184] = false end end end end I modified you're method a little bit since it was doing nothing when the switch was off so it wasn't needed. Also note on your original on you had if $game_switches[184] = false that should have been an == not =
-
on line 52? If $game_variables[38] == 1 should be if $game_variables[38] == 1 you're also missing an end at the very end on line 95


