-
Posts
221 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Lomax_Iced
-
-
No.. (per ora ho una sorta di problemuccio con i certificati internet, in cui alcuni siti (quali: google, youtube, facebook, paypal, ecc) non mi permette di accedervi. li reputa dannosi. Altri in cui non mi visualizza gli elementi in css. e poi siti come questo qua in cui invece sembra che tutto si visualizza al meglio. Cioè non ho alcun problema nella visualizzazione delle pagine ed interagire con esse.
Comunque per rispondere alla tua domanda, uso un comunissimo FireFox (per ora). -
Anche il fatto di tenere molti più eventi senza laggare.
^ ^
*colpo di tosse* cof cof
ehm..
http://www.rpg2s.net/forum/index.php/topic/20328-anti-event-lag/
-
Cooontinuando a far valere la tesi che rpg maker xp può essere di gran lunga migliore del suo figliastro rpg maker mv..
Quest'oggi, vi mostro come, tramite questo script, potrete inserire in mappa molti più eventi del normale. E il tutto non vi farà laggare assolutissimamente la scena.
Questa risorsa è stata ideata da Near Fantastica (citatelo nei crediti mi raccomando.
)
E ve la mostro:Script:
#====================================== # ■ Anti Event Lag Script #====================================== # By: Near Fantastica # Date: 12.06.05 # Version: 3 #====================================== #====================================== # ■ Game_Map #====================================== class Game_Map #-------------------------------------------------------------------------- def in_range?(object) screne_x = $game_map.display_x screne_x -= 256 screne_y = $game_map.display_y screne_y -= 256 screne_width = $game_map.display_x screne_width += 2816 screne_height = $game_map.display_y screne_height += 2176 return false if object.real_x <= screne_x return false if object.real_x >= screne_width return false if object.real_y <= screne_y return false if object.real_y >= screne_height return true end #-------------------------------------------------------------------------- def update if @scroll_rest > 0 distance = 2 ** @scroll_speed case @scroll_direction when 2 scroll_down(distance) when 4 scroll_left(distance) when 6 scroll_right(distance) when 8 scroll_up(distance) end @scroll_rest -= distance end for event in @events.values if in_range?(event) or event.trigger == 3 or event.trigger == 4 event.update end end for common_event in @common_events.values common_event.update end @fog_ox -= @fog_sx / 8.0 @fog_oy -= @fog_sy / 8.0 if @fog_tone_duration >= 1 d = @fog_tone_duration target = @fog_tone_target @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d @fog_tone_duration -= 1 end if @fog_opacity_duration >= 1 d = @fog_opacity_duration @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d @fog_opacity_duration -= 1 end end end #====================================== # ■ Spriteset_Map #====================================== class Spriteset_Map #-------------------------------------------------------------------------- def in_range?(object) screne_x = $game_map.display_x screne_x -= 256 screne_y = $game_map.display_y screne_y -= 256 screne_width = $game_map.display_x screne_width += 2816 screne_height = $game_map.display_y screne_height += 2176 return false if object.real_x <= screne_x return false if object.real_x >= screne_width return false if object.real_y <= screne_y return false if object.real_y >= screne_height return true end #-------------------------------------------------------------------------- def update 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 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 @tilemap.ox = $game_map.display_x / 4 @tilemap.oy = $game_map.display_y / 4 @tilemap.update @panorama.ox = $game_map.display_x / 8 @panorama.oy = $game_map.display_y / 8 @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 i=0 for sprite in @character_sprites if sprite.character.is_a?(Game_Event) if in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4 sprite.update i+=1 end else sprite.update i+=1 end end #p i @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 for sprite in @picture_sprites sprite.update end @timer_sprite.update @viewport1.tone = $game_screen.tone @viewport1.ox = $game_screen.shake @viewport3.color = $game_screen.flash_color @viewport1.update @viewport3.update end end
Corretto piccolo bug:
Benissimo:
Ora che avete lo script, recatevi, dentro il vostro script editor, nel primo def update ..qui in sostanza:
def update if @scroll_rest > 0 distance = 2 ** @scroll_speed case @scroll_direction
Fatto :huh: ?
Bene.
E aggiungete prima di if @scroll_rest > 0 quest'altra condizione:def update # Refresh map if necessary #Modifica apportata da Heretic86 if $game_map.need_refresh refresh end # If scrolling if @scroll_rest > 0Fatta questa modifica potrete (a dire degli autori) aggiungere più di 999 eventi per mappa.
Non male no?!
@ Guardian:
Mi manca solo scovare lo script per il mobile e per il tuch e poi all'RMMV gli farà un baffo.. xD ahah
-
Perfetto! Dunque ho provato e testato il tool RMMV.
E' bello. Mi sono entusiasmato. Ha delle limitazioni e soprattutto giocandoci un po mi sono accorto cheRPG MAKER XP potrebbe benissimo eguagliarlo. Ha tutte le caratteristiche per competere.
E' vero l'RMMV ha quelle caratteristiche ...di base. In RPGXP, bisogna implementarle.
Ma vi assicuro che una volta fatto, ne resterete soddisfatti. Anche perché l'XP ha un fattore a suo vantaggio che gli altri suoi fratelli e cugini non hanno. Ovvero il custom grafico.
Perché sostengo questa tesi?
Perché mettendo gli scripts giusti nel RPG Maker XP da quasi le stesse prestazioni dell'Mv ed anche meglio perché i progetti risultano meno pesanti.
E' vero che RMMV ha il via libera per i dispositivi android e tuchpad che l'xp se li sogna. Ma non è vero nemmeno questo, perché venivano rilasciati anche prima i giochini fatti con rpg maker per android.
Comunque stop con la premessa!
Voglio condividere con voi una delle perle di scripts che potrebbero rendere l'RPG Maker XP al pari con l'MV.
Sto parlando del vero ed autentico SUPER SIMPLE MOUSE SCRIPT realizzato daShaz, Near Fantastica, SephirothSpawn, Amaranth
Lo script si divide in 5 sezioni. Ve lo mostro:
1a sezione:
STARTGAME
E' davvero così breve???
Si è davvero così breve. Ma è solo l'inizio.module StartGame $game_mouse = true end
Questo qui sopra attiva e disattiva tutto il processo composto dalle 5 sezioni di scripts.
true === attiva la funzionefalse === disattiva la funzione
Basta cambiare quel valore lì. Per adesso è settato su Attiva.
2a sezione:
MOUSE1
#============================================================================== # ** Modules.Mouse Input (7.0) By Near Fantastica & SephirothSpawn #============================================================================== module Mouse #-------------------------------------------------------------------------- # * Mouse to Input Triggers # # key => Input::KeyCONSTANT (key: 0 - Left, 1 - Middle, 2 - Right) #-------------------------------------------------------------------------- Mouse_to_Input_Triggers = {0 => Input::C, 1 => Input::B, 2 => Input::A} #-------------------------------------------------------------------------- # * API Declaration #-------------------------------------------------------------------------- GAKS = Win32API.new('user32', 'GetAsyncKeyState', 'i', 'i') GSM = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i') Cursor_Pos = Win32API.new('user32', 'GetCursorPos', 'p', 'i') $ShowCursor = Win32API.new('user32', 'ShowCursor', 'i', 'l') Scr2cli = Win32API.new('user32', 'ScreenToClient', %w(l p), 'i') Client_rect = Win32API.new('user32', 'GetClientRect', %w(l p), 'i') Findwindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l') Readini = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l') # if graphical effects turned on, show fancy cursor $ShowCursor.call($game_mouse ? 0 : 1) @triggers = [[0, 1], [0, 2], [0, 4]] @old_pos = 0 @pos_i = 0 #-------------------------------------------------------------------------- # * Mouse Grid Position #-------------------------------------------------------------------------- def self.grid # Return Nil if Position is Nil return nil if @pos.nil? # Get X & Y Locations x = (@pos[0] + $game_map.display_x / 4) / 32 y = (@pos[1] + $game_map.display_y / 4) / 32 # Vehicle Stuff $mouse_x = x $mouse_y = y # Return X & Y return [x, y] end #-------------------------------------------------------------------------- # * Mouse Position #-------------------------------------------------------------------------- def self.position return @pos == nil ? [0, 0] : @pos end #-------------------------------------------------------------------------- # * Mouse Global Position #-------------------------------------------------------------------------- def self.global_pos # Packs 0 Position pos = [0, 0].pack('ll') # Returns Unpacked Cursor Position Call return Cursor_Pos.call(pos) == 0 ? nil : pos.unpack('ll') end #-------------------------------------------------------------------------- # * Screen to Client #-------------------------------------------------------------------------- def self.screen_to_client(x=0, y=0) pos = [x, y].pack('ll') return Scr2cli.call(self.hwnd, pos) == 0 ? nil : pos.unpack('ll') end #-------------------------------------------------------------------------- # * Mouse Position #-------------------------------------------------------------------------- def self.pos global_pos = [0, 0].pack('ll') gx, gy = Cursor_Pos.call(global_pos) == 0 ? nil : global_pos.unpack('ll') local_pos = [gx, gy].pack('ll') x, y = Scr2cli.call(self.hwnd, local_pos) == 0 ? nil : local_pos.unpack('ll') # Begins Test begin # Return X & Y or Nil Depending on Mouse Position if (x >= 0 && y >= 0 && x <= 640 && y <= 480) return x, y else return -20, -20 end rescue return 0, 0 #nil end end #-------------------------------------------------------------------------- # * Update Mouse Position #-------------------------------------------------------------------------- def self.update # Update Position old_pos = @pos @pos = self.pos # agf = hide system mouse if !$mouse_sprite.visible && old_pos != @pos $mouse_sprite.visible = true end # when mouse leaves game window, show system mouse if old_pos != [-20, -20] && @pos == [-20, -20] $ShowCursor.call(1) # when mouse is in game window, show custom mouse if it's turned on elsif old_pos == [-20, -20] && @pos != [-20, -20] $ShowCursor.call($game_mouse ? 0 : 1) end # Update Triggers for i in @triggers # Gets Async State n = GAKS.call(i[1]) # If 0 or 1 if [0, 1].include?(n) i[0] = (i[0] > 0 ? i[0] * -1 : 0) else i[0] = (i[0] > 0 ? i[0] + 1 : 1) end end end #-------------------------------------------------------------------------- # * Trigger? # id : 0:Left, 1:Right, 2:Center #-------------------------------------------------------------------------- def self.trigger?(id = 0) #only user trigger if in range of screen pos = self.pos if pos != [-20,-20] case id when 0 # Left return @triggers[id][0] == 1 when 1 # Right (only when menu enabled) if @triggers[1][0] == 1 && !$game_system.menu_disabled return @triggers[id][0] == 1 end when 2 # Center return @triggers[id][0] == 1 end end end #-------------------------------------------------------------------------- # * Repeat? # id : 0:Left, 1:Right, 2:Center #-------------------------------------------------------------------------- def self.repeat?(id = 0) if @triggers[id][0] <= 0 return false else return @triggers[id][0] % 5 == 1 && @triggers[id][0] % 5 != 2 end end #-------------------------------------------------------------------------- # * Screen to Client #-------------------------------------------------------------------------- def self.screen_to_client(x=0, y=0) # Pack X & Y pos = [x, y].pack('ll') # Return Unpacked Position or Nil return Scr2cli.call(self.hwnd, pos) == 0 ? nil : pos.unpack('ll') end #-------------------------------------------------------------------------- # * Hwnd - window handle #-------------------------------------------------------------------------- def self.hwnd if @hwnd.nil? # Finds Game Name from ini file game_name = "\0" * 256 Readini.call('Game', 'Title', '', game_name, 255, ".\\Game.ini") game_name.delete!("\0") # Finds Window @hwnd = Findwindow.call('RGSS Player', game_name) end return @hwnd end #-------------------------------------------------------------------------- # * Client Size #-------------------------------------------------------------------------- def self.client_size # Packs Empty Rect rect = [0, 0, 0, 0].pack('l4') # Gets Game Window Rect Client_rect.call(self.hwnd, rect) # Unpacks Right & Bottom right, bottom = rect.unpack('l4')[2..3] # Returns Right & Bottom return right, bottom end end #============================================================================== # ** Input #============================================================================== class << Input #------------------------------------------------------------------------ # * Alias Listings #------------------------------------------------------------------------ unless self.method_defined?(:seph_mouse_input_update) alias_method :seph_mouse_input_update, :update alias_method :seph_mouse_input_trigger?, :trigger? alias_method :seph_mouse_input_repeat?, :repeat? end #------------------------------------------------------------------------ # * Frame Update #------------------------------------------------------------------------ def update # Update Mouse Mouse.update # Original Update seph_mouse_input_update end #-------------------------------------------------------------------------- # * Trigger? Test #-------------------------------------------------------------------------- def trigger?(constant) # Return true if original test is true return true if seph_mouse_input_trigger?(constant) # If Mouse Position isn't Nil unless Mouse.pos.nil? # If Mouse Trigger to Input Trigger Has Constant if Mouse::Mouse_to_Input_Triggers.has_value?(constant) # Return True if Mouse Triggered mouse_trigger = Mouse::Mouse_to_Input_Triggers.index(constant) return true if Mouse.trigger?(mouse_trigger) end end # Return False return false end #-------------------------------------------------------------------------- # * Repeat? Test #-------------------------------------------------------------------------- def repeat?(constant) # Return true if original test is true return true if seph_mouse_input_repeat?(constant) # If Mouse Position isn't Nil unless Mouse.pos.nil? # If Mouse Trigger to Input Trigger Has Constant if Mouse::Mouse_to_Input_Triggers.has_value?(constant) # Return True if Mouse Triggered mouse_trigger = Mouse::Mouse_to_Input_Triggers.index(constant) return true if Mouse.repeat?(mouse_trigger) end end # Return False return false end end #============================================================================== # ¦ Path Finding #============================================================================== # Near Fantastica # Version 1 # 29.11.05 #============================================================================== class Game_Character #-------------------------------------------------------------------------- alias nf_pf_game_character_initialize initialize alias nf_pf_game_character_update update #-------------------------------------------------------------------------- attr_accessor :map attr_accessor :runpath attr_accessor :ovrdest #-------------------------------------------------------------------------- def initialize nf_pf_game_character_initialize @map = nil @runpath = false @ovrdest = false end #-------------------------------------------------------------------------- def update run_path if @runpath == true nf_pf_game_character_update end #-------------------------------------------------------------------------- def run_path return if moving? step = @map[@x,@y] if step == 1 @map = nil @runpath = false return end dir = rand(2) case dir when 0 move_right if @map[@x+1,@y] == step - 1 and step != 0 move_down if @map[@x,@y+1] == step - 1 and step != 0 move_left if @map[@x-1,@y] == step -1 and step != 0 move_up if @map[@x,@y-1] == step - 1 and step != 0 when 1 move_up if @map[@x,@y-1] == step - 1 and step != 0 move_left if @map[@x-1,@y] == step -1 and step != 0 move_down if @map[@x,@y+1] == step - 1 and step != 0 move_right if @map[@x+1,@y] == step - 1 and step != 0 end end #-------------------------------------------------------------------------- def find_path(x,y, force = true) sx, sy = @x, @y result = setup_map(sx,sy,x,y) @runpath = result[0] @map = result[1] @map[sx,sy] = result[2] if result[2] != nil $game_player.ignore_movement = @runpath ? force : false end #-------------------------------------------------------------------------- def clear_path @map = nil @runpath = false @ovrdest = false $game_player.ignore_movement = false end #-------------------------------------------------------------------------- def setup_map(sx,sy,ex,ey) map = Table.new($game_map.width, $game_map.height) # Shaz - adding this comment to the second line of the event commands # Mouse[0,1] # will cause the player to go to the tile BELOW the event, turn up, # and interact with the event ([0,1] is x+0, y+1) tx = ex ty = ey event = $game_map.event_at(ex, ey) if !event.nil? && !event.list.nil? && !event.erased && event.list.size > 1 && event.list[1].code == 108 text = event.list[1].parameters.to_s text.gsub!(/[Mm][Oo][Uu][Ss][Ee]\[([-,0-9]+),([-,0-9]+)\]/) do tx = ex + $1.to_i ty = ey + $2.to_i map[ex, ey] = 999 @ovrdest = true end end update_counter = 0 map[tx,ty] = 1 old_positions = [] new_positions = [] old_positions.push([tx, ty]) depth = 2 $path_allow = false depth.upto(100){|step| loop do break if old_positions[0] == nil x,y = old_positions.shift return [true, map, step-1] if x == sx and y == sy if map[x,y + 1] == 0 and $game_player.passable?(x, y, 2, step, tx, ty) map[x,y + 1] = step new_positions.push([x,y + 1]) end if map[x - 1,y] == 0 and $game_player.passable?(x, y, 4, step, tx, ty) map[x - 1,y] = step new_positions.push([x - 1,y]) end if map[x + 1,y] == 0 and $game_player.passable?(x, y, 6, step, tx, ty) map[x + 1,y] = step new_positions.push([x + 1,y]) end if map[x,y - 1] == 0 and $game_player.passable?(x, y, 8, step, tx, ty) map[x,y - 1] = step new_positions.push([x,y - 1]) end # If we've checked quite a few tiles, allow graphics and input # to update - to avoid the 'script hanging' error update_counter += 1 if update_counter > 100 Graphics.update update_counter = 0 end end old_positions = new_positions new_positions = [] } @ovrdest = false return [false, nil, nil] end end class Game_Map #-------------------------------------------------------------------------- alias pf_game_map_setup setup #-------------------------------------------------------------------------- def setup(map_id) pf_game_map_setup(map_id) $game_player.clear_path end end class Game_Player attr_accessor :ignore_movement #-------------------------------------------------------------------------- alias pf_game_player_update update #-------------------------------------------------------------------------- def update $game_player.clear_path if Input.dir4 != 0 pf_game_player_update end end class Interpreter #-------------------------------------------------------------------------- def event return $game_map.events[@event_id] end end
3a sezione:
MOUSE2
#============================================================================== # ** MouseCursor #============================================================================== module MouseCursor Default_Cursor = 'Arrow' Event_Cursor = 'Arrow3' Actor_Cursor = 'Arrow' Enemy_Cursor = 'Arrow4' Item_Cursor = true Skill_Cursor = true Dummy = Bitmap.new(32, 32) end #============================================================================== # ** Sprite_Mouse #============================================================================== class Sprite_Mouse < Sprite #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super self.z = 10100 self.ox = 4 update end #-------------------------------------------------------------------------- # ** Frame Update #-------------------------------------------------------------------------- def update super # Update Visibility self.visible = $scene != nil # If Visible if self.visible # If Non-nil Mouse Position if Mouse.position != nil # Gets Mouse Position mx, my = *Mouse.position # Update POsition self.x = mx unless mx.nil? self.y = my unless my.nil? end # If Scene changes or Mouse is Triggered if @scene != $scene.class || Mouse.trigger? # Update Scene Instance @scene = $scene.class # Update Bitmap set_bitmap(MouseCursor::Default_Cursor) end end end #-------------------------------------------------------------------------- # ** Set Bitmap #-------------------------------------------------------------------------- def set_bitmap(cursor, xNPCname = nil) # show fancy cursor only if custom mouse on if $game_mouse # If Cursor Info matches if (@_cursor == cursor) && (@_NPCname == xNPCname) return end # Reset Cursor Info @_cursor = cursor @_NPCname = xNPCname # Gets Dummy dummy = MouseCursor::Dummy # Gets Item Cursor Bitmap item_cursor = cursor.nil? ? MouseCursor::Default_Cursor : cursor # Start Cursor Bitmap bitmap = RPG::Cache.icon(item_cursor) if item_cursor != '' # Show NPC name if @_NPCname != nil # Get name width w = dummy.text_size(@_NPCname).width h = dummy.font.size b = RPG::Cache.icon(item_cursor) # Create New Bitmap bitmap = Bitmap.new((bitmap.nil? ? w : 40 + w), [b.height, h + 2].max) bitmap.font.size = dummy.font.size bitmap.blt(0, 0, b, b.rect) # Draw NPC Name x = item_cursor == '' ? 0 : 32 bitmap.font.color = Color.new(0, 0, 0, 255) # black bitmap.draw_text(b.width + 9, 0, w, h, @_NPCname) # 0 bitmap.draw_text(b.width + 11, 0, w, h, @_NPCname) # 0 bitmap.draw_text(b.width + 10, -1, w, h, @_NPCname) # -1 bitmap.draw_text(b.width + 10, 1, w, h, @_NPCname) # 1 bitmap.font.color = Color.new(255, 255, 255, 255) # white bitmap.draw_text(b.width + 10, 0, w, h, @_NPCname) end # Set Bitmap self.bitmap = bitmap elsif self.bitmap @_cursor = nil self.bitmap = nil end end #-------------------------------------------------------------------------- # ** Frame Update : Update Event Cursors #-------------------------------------------------------------------------- def update_event_cursors # If Nil Grid Position if Mouse.grid.nil? # Set Default Cursor set_bitmap(MouseCursor::Default_Cursor) return end # Gets Mouse Position x, y = *Mouse.grid # Gets Mouse Position mx, my = *Mouse.position # Gets Mouse Event event = $game_map.event_at(x, y) # If Non-Nil Event or not over map HUD unless event.nil? # If Not Erased or Nil List if event.list != nil && event.erased == false && event.list[0].code == 108 # Get the cursor to show icon = event.list[0].parameters icon = icon.to_s if !((icon == "Arrow2") || (icon == "Arrow3") || (icon == "Arrow4") || (icon == "Arrow5") || (icon == "Arrow6") || (icon == "Arrow7")) icon = MouseCursor::Default_Cursor end xNPCname = nil if event.list.size > 1 && event.list[1].code == 108 text = event.list[1].parameters.to_s text.gsub!(/[Nn][Aa][Mm][Ee] (.*)/) do xNPCname = $1.to_s end end set_bitmap(icon, xNPCname) return end return end # Set Default Cursor set_bitmap(MouseCursor::Default_Cursor) end end #============================================================================== # ** Input #============================================================================== class << Input #------------------------------------------------------------------------ # * Alias Listings #------------------------------------------------------------------------ unless self.method_defined?(:sephlamchop_mousesys_input_update) alias_method :sephlamchop_mousesys_input_update, :update end #------------------------------------------------------------------------ # * Frame Update #-------------------------------------------------------------------------- def update $mouse_sprite.update if $mouse_sprite.visible # Original Update sephlamchop_mousesys_input_update end end4a sezione
MOUSE3_1
WORLD_MAP_ID = 1 #============================================================================== # ** Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # * Event At #-------------------------------------------------------------------------- def event_at(x, y) for event in @events.values return event if event.x == x && event.y == y end return nil end #-------------------------------------------------------------------------- # * Events At (returns multiple events at the same position in an array) #-------------------------------------------------------------------------- def events_at(x, y) eventarray = [] for event in @events.values eventarray.push event if event.x == x && event.y == y end return eventarray if eventarray.size > 0 return nil end end #============================================================================== # ** Game_Event #============================================================================== class Game_Event #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :erased # trigger attr_accessor :mouse_autostart # mouse autostart boolean attr_accessor :mouse_cursor_icon # mouse cursor icon attr_accessor :mouse_cursor_desc # mouse cursor desc attr_reader :name # name of event #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :sephlamchop_mousesys_gmevt_refresh, :refresh #-------------------------------------------------------------------------- # * Start Event #-------------------------------------------------------------------------- def start # If list of event commands is not empty if @list && @list.size > 1 @starting = true end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Original Refresh sephlamchop_mousesys_gmevt_refresh # Click triggers event for action button, player or event touch @mouse_autostart = [0, 1, 2].include?(@trigger) @mouse_cursor_icon = MouseCursor::Event_Cursor @mouse_cursor_desc = nil # Return if Erased or Nil List #return if @erased || @list.nil? end end #============================================================================== # ** Game_Character #============================================================================== class Game_Character def passable?(x, y, d, step = 999, tx = nil, ty = nil) # Get new coordinates new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0) new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) # If coordinates are outside of map unless $game_map.valid?(new_x, new_y) return false end # If through is ON if @through return true end # Able to leave current tile in desired direction? # SHAZ: for counter, must be old, counter, new, in a straight line unless $game_map.passable?(x, y, d, self) || (step == 2 && $game_map.event_at(x, y)) || (step == 3 && $game_map.counter?(x, y) && tx != nil && ty != nil && new_x - x == x - tx && new_y - y == y - ty) return false end # Able to enter adjoining tile in current direction? unless $game_map.passable?(new_x, new_y, 10 - d) || (step == 2 && $game_map.counter?(new_x, new_y)) return false end # SHAZ - ignore events sitting on a counter next to the destination if step != 2 || !$game_map.counter?(new_x, new_y) # Loop all events for event in $game_map.events.values # If event coordinates are consistent with move destination if event.x == new_x and event.y == new_y @state = true # If through is OFF unless event.through # If self is event if self != $game_player return false end # With self as the player and partner graphic as character if event.character_name != "" return false end end end end end # If on world map, don't allow to go through events. Otherwise, # the event will be triggered while the PC is walking if $game_map.map_id == WORLD_MAP_ID && @state == false return false end # If player coordinates are consistent with move destination if $game_player.x == new_x && $game_player.y == new_y && self != $game_player # If through is OFF unless $game_player.through # If your own graphic is the character if @character_name != "" return false end end end return true end end #============================================================================== # ** Game_Player #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :sephlamchop_mousesys_gmplyr_update, :update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Unless Interpreter Running, Forcing a Route or Message Showing unless $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing # Find Path If Mouse Triggered if Mouse.trigger?(0) && Mouse.grid != nil # Check if mouse is over HUD on map screen_x,screen_y = Mouse.pos # Gets Mouse X & Y mx, my = *Mouse.grid # Turn Character in direction newd_x = (@x - mx).abs newd_y = (@y - my).abs if @x > mx turn_left if newd_x >= newd_y elsif @x < mx turn_right if newd_x >= newd_y end if @y > my turn_up if newd_x < newd_y elsif @y < my turn_down if newd_x < newd_y end # Run Pathfinding find_path(mx, my, false) # Gets Event @eventarray = @runpath ? $game_map.events_at(mx, my) : nil # If Event At Grid Location unless @eventarray.nil? @eventarray.each do |event| # If Event Autostart if !event.mouse_autostart @eventarray.delete(event) end end @eventarray = nil if @eventarray.size == 0 end end end if @move_route_forcing clear_path @eventarray = nil end # Original Update sephlamchop_mousesys_gmplyr_update # If Non-nil Event Autostarter if @eventarray != nil && !moving? && (!@ovrdest || @map.nil? || @map[@x,@y] == 1) # Gets Event @eventarray.each do |event| # If Event Within Range if event and (@x == event.x or @y == event.y) # SHAZ - trigger event when: # - Action button and standing on or beside, or with a counter between # - player/event touch and standing as close as possible (on, if possible) distance = Math.hypot(@x - event.x, @y - event.y) dir = @x < event.x ? 6 : @x > event.x ? 4 : @y < event.y ? 2 : @y > event.y ? 8 : 0 if (event.trigger == 0 and (distance < 2 or (distance == 2 and $game_map.counter?((@x+event.x)/2, (@y+event.y)/2)))) or ([1,2].include?(event.trigger) and ((distance == 0 and $game_player.passable?(@x, @y, dir)) or (distance == 1 and !$game_player.passable?(@x, @y, dir)))) # Turn toward Event if @x == event.x turn_up if @y > event.y turn_down if @y < event.y else turn_left if @x > event.x turn_right if @x < event.x end # Start Event clear_path event.start @eventarray.delete(event) @eventarray = nil if @eventarray.size == 0 end end end end end def passable?(x1, y1, d, step = 999, tx = nil, ty = nil) super end end #============================================================================== # ** Mouse Selectable Windows #------------------------------------------------------------------------------ # SephirothSpawn # Version 2.1 #============================================================================== #============================================================================== # ** Window_Base #============================================================================== class Window_Base #-------------------------------------------------------------------------- # * Frame Update : Mouse Cursor - Item #-------------------------------------------------------------------------- def update_mouse_cursors_item(item, cursor, show) # Return if not Active return unless self.active # Return if nil Position return if Mouse.position.nil? # Gets Mouse Position mx, my = Mouse.position # Gets Cursor Position cr = self.cursor_rect cx, cy = cr.x + self.x + 16, cr.y + self.y + 16 cw, ch = cr.width, cr.height # If Not on Item if mx.between?(self.x, self.x + self.width) == false || my.between?(self.y, self.y + self.height) == false || item.nil? || @item_max == 0 || mx.between?(cx, cx + cw) == false || my.between?(cy, cy + ch) == false # Clear Mouse Index @mouse_index = nil # Set Mouse to Default Cursor $mouse_sprite.set_bitmap(MouseCursor::Default_Cursor) return end # If Index is different than mouse index and window active if @mouse_index != @index # Reset Index @mouse_index = @index # set to item icon if cursor is true cursor = item.icon_name if cursor # Set Bitmap $mouse_sprite.set_bitmap(cursor) end end end class Window_Selectable #-------------------------------------------------------------------------- # * Default Settings #-------------------------------------------------------------------------- Default_Mouse_Selectable = true Default_Window_Padding = 16 #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :mouse_selectable attr_accessor :window_padding #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_mouseselectable_wndslct_init, :initialize alias_method :seph_mouseselectable_wndslct_update, :update #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y, width, height) # Original Initialization seph_mouseselectable_wndslct_init(x, y, width, height) # Set Mouse Selectable Flag @mouse_selectable = Default_Mouse_Selectable @window_padding = Default_Window_Padding end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # agf = hide mouse if $mouse_sprite.visible == true # If Mouse Selectable, Active, at Least 1 Item and Non-negitive index if self.mouse_selectable && self.active && @item_max > 0 && @index >= 0 # Gets Mouse Position mouse_x, mouse_y = *Mouse.position # If Mouse Within Window if mouse_x.between? (self.x, self.x + self.width) && mouse_y.between? (self.y, self.y + self.height) # Calculates Mouse X and Y Position Within Window mouse_x -= self.x; mouse_y -= self.y # Subtracts Window Padding mouse_x -= @window_padding; mouse_y -= @window_padding # Subtracts Mouse Oh mouse_y -= self.mouse_oh # Gets Cursor Width cursor_width = (self.width / @column_max - 32) # Passes Through Item Max for i in 0...@item_max # Calculates Index Position x = i % @column_max * (cursor_width + 32) y = i / @column_max * self.oh - self.oy # If Mouse Between Rect if mouse_x.between?(x, x + cursor_width) && mouse_y.between?(y, y + self.oh) # Set Index prev_index = @index @index = i if prev_index != @index $game_system.se_play($data_system.cursor_se) end break end end end end end # Original Update seph_mouseselectable_wndslct_update end #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 32 end #-------------------------------------------------------------------------- # * Mouse Oh #-------------------------------------------------------------------------- def mouse_oh return 0 end end5a sezione
MOUSE3_2
#============================================================================== # ** Window_MenuStatus #============================================================================== class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 60 end end #============================================================================== # ** Window_Target #============================================================================== class Window_Target < Window_Selectable #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 105 end end #============================================================================== # ** Window_BattleReserve #============================================================================== class Window_BattleReserve < Window_Selectable #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 105 end end #============================================================================== # ** Window_EquipRight #============================================================================== class Window_EquipRight < Window_Selectable #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 50 end #-------------------------------------------------------------------------- # * Mouse Oh #-------------------------------------------------------------------------- def mouse_oh return 140 end end #============================================================================== # ** Window_Message #============================================================================== class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # * Mouse Oh #-------------------------------------------------------------------------- def mouse_oh return $game_temp.choice_start * 32 end end #============================================================================== # ** Window_Party #============================================================================== class Window_Party < Window_Selectable #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 52 end end #============================================================================== # ** Window_Menu #============================================================================== class Window_Menu < Window_Selectable #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 35 end end #============================================================================== # ** Window_ActorCommand #============================================================================== class Window_ActorCommand < Window_Selectable #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update if $mouse_sprite.visible # if Mouse sleectable, active, at least 1 item and non-negative index if self.mouse_selectable && self.active && @item_max > 0 && @index >= 0 # Get / check mouse position mouse_x, mouse_y = *Mouse.position if mouse_x.between?(self.x, self.x + self.width) && mouse_y.between?(self.y, self.y + self.height) # Calculates mouse position within window mouse_x -= self.x mouse_y -= self.y # Subtracts widnow padding and overhead mouse_x -= @window_padding mouse_y -= @window_padding - self.mouse_oh # Look through all items for i in 0...@item_max ix,iy = @positions[i] if mouse_x.between?(ix, ix + 32) && mouse_y.between?(iy, iy + self.oh) if i != @index $game_system.se_play($data_system.cursor_se) end @index = i break end end end end end super end #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 32 end end #============================================================================== # ** Window_NameInput #============================================================================== class Window_NameInput < Window_Base #-------------------------------------------------------------------------- # * Default Settings #-------------------------------------------------------------------------- Default_Mouse_Selectable = true Default_Window_Padding = 16 #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :mouse_selectable attr_accessor :window_padding #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :shaz_mouseselectable_wndslct_init, :initialize alias_method :shaz_mouseselectable_wndslct_update, :update #-------------------------------------------------------------------------- # ● Initialize the Name Input window #-------------------------------------------------------------------------- def initialize # Original Initialization shaz_mouseselectable_wndslct_init # Set Mouse Selectable Flag @mouse_selectable = Default_Mouse_Selectable @window_padding = Default_Window_Padding end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # if mouse selectable, visible, active, and non-negative index if $mouse_sprite.visible && self.mouse_selectable && self.active && @index >= 0 # Get mouse position mouse_x, mouse_y = *Mouse.position # If mouse within window if mouse_x.between? (self.x, self.x + self.width) && mouse_y.between? (self.y, self.y + self.height) # Calculates mouse X and Y positions within window mouse_x -= self.x; mouse_y -= self.y # Subtracts window padding mouse_x -= @window_padding; mouse_y -= @window_padding # Subtracts mouse oh mouse_y -= self.mouse_oh # Gets cursor width cursor_width = 28 # If not Submit button, pass through all items if mouse_x.between?(428, 428+48) && mouse_y.between?(9*32, 9*32+32) $game_system.se_play($data_system.cursor_se) if @index != 180 @index = 180 else for i in 0..90 # Calculate index position x = 140 + i / 5 / 9 * 180 + i % 5 * 32 y = i / 5 % 9 * 32 # If mouse between rect if mouse_x.between?(x, x + cursor_width) && mouse_y.between?(y, y + self.oh) # set index prev_index = @index @index = i if prev_index != @index $game_system.se_play($data_system.cursor_se) end break end end end end end # Original update shaz_mouseselectable_wndslct_update end #-------------------------------------------------------------------------- # * Oh #-------------------------------------------------------------------------- def oh return 32 end #-------------------------------------------------------------------------- # * Mouse Oh #-------------------------------------------------------------------------- def mouse_oh return 0 end end #============================================================================== # ** Scene_File #============================================================================== class Scene_File #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :sephlamchop_mousesys_scnfl_update, :update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # agf = hide mouse if $mouse_sprite.visible == true # If Mouse Position isn't Nil if Mouse.pos != nil # Gets Mouse Position x, y = Mouse.pos y = y + 32 # Pass Through Savefile Windows for i in 0...@savefile_windows.size # Gets Window w = @savefile_windows[i] # Don't allow user to select autosave slot in Load Menu if @autosave_slot == false i = 1 if i == 0 end # If Within Window Range if x.between?(w.x, w.x + w.width) && y.between?(w.y, w.y + w.height) && w.active prev_index = @file_index # Set File Index @file_index = i # Turns Window On w.selected = true # Play SE if prev_index != @file_index $game_system.se_play($data_system.cursor_se) end # Unhighlight remaining windows for j in 0...@savefile_windows.size if j != i @savefile_windows[j].selected = false end end # Don't select autosave slot in Load Menu if @autosave_slot == false @savefile_windows[0].selected = false if i == 1 end # Break Main Loop break end end end end # Original Update sephlamchop_mousesys_scnfl_update end end #============================================================================== # ** Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # * Battler Width #-------------------------------------------------------------------------- def battler_width return RPG::Cache.battler(@battler_name, @battler_hue).width end #-------------------------------------------------------------------------- # * Battler Height #-------------------------------------------------------------------------- def battler_height return RPG::Cache.battler(@battler_name, @battler_hue).height end end #============================================================================== # ** Arrow_Enemy #============================================================================== class Arrow_Enemy < Arrow_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_mouseselectablewindows_arrenmy_update, :update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Original Update seph_mouseselectablewindows_arrenmy_update if $mouse_sprite.visible == true # Return if Nil Mouse Position return if Mouse.position.nil? # Gets Mouse Position mx, my = *Mouse.position # Pass Through Enemies $game_troop.enemies.each do |enemy| # Skip if Non-Existing Enemy next unless enemy.exist? # Gets Paddings w, h = enemy.battler_width / 2, enemy.battler_height # If Within Mouse Padding Range if mx.between?(enemy.screen_x - w, enemy.screen_x + w) && my.between?(enemy.screen_y - h, enemy.screen_y + 10) # Set Index @index = $game_troop.enemies.index(enemy) # Set mouse cursor to bitmap $mouse_sprite.set_bitmap(MouseCursor::Enemy_Cursor) return # break end end # Set Mouse to Default Cursor $mouse_sprite.set_bitmap(MouseCursor::Default_Cursor) end end end #============================================================================== # ** Arrow_Actor #============================================================================== class Arrow_Actor < Arrow_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_mouseselectablewindows_arractr_update, :update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Original Update seph_mouseselectablewindows_arractr_update # Return if Nil Mouse Position return if Mouse.position.nil? # Gets Mouse Position mx, my = *Mouse.position # Pass Through Actors $game_party.actors.each do |actor| # Gets Paddings w, h = actor.battler_width / 2, actor.battler_height # If Within Mouse Padding Range if mx.between?(actor.screen_x - w, actor.screen_x + w) && my.between?(actor.screen_y - h, actor.screen_y + 10) # Set Index @index = $game_party.actors.index(actor) end end end end #============================================================================== # ** Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :sephlamchop_mousesys_scnmap_update, :update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Unless Message Showing unless $game_temp.message_text # Update Event Cursors $mouse_sprite.update_event_cursors end # Original Update sephlamchop_mousesys_scnmap_update end end #============================================================================== # ** Interpreter #============================================================================== class Interpreter #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :shaz_mousesys_intrprtr_command_101, :command_101 #-------------------------------------------------------------------------- # * Show Text #-------------------------------------------------------------------------- def command_101 # return mouse sprite to default cursor $mouse_sprite.set_bitmap(MouseCursor::Default_Cursor) # original command_101 shaz_mousesys_intrprtr_command_101 end end $mouse_sprite = Sprite_Mouse.new # game mouse is visible, system mouse is hidden $mouse_sprite.visible = trueBene e questi sono i componenti che servono per avere un corretto o meglio quasi corretto utilizzo del Mouse in gioco.
Vi segnalo subito che esiste un bug di poco conto ma che comunque un po fa storcere il naso,se (una volta attivata la funzione) andate nel menu di equipaggiamento e giocante con le voci lì.
attivando e disattivando gli accessori le armature e le armi ecc, noterete che il cursore del Mouse non vi segue e si sofferma solo sulla prima voce che avete selezionato, o attivandola o il contrario.
Comunque potete sempre uscire utilizzando il tasto destro del mouse e tutto si aggiusta.
Ma ripeto sarà stata una piccola dimenticanza degli autori dello scripts.
Chi la sa risolvere ben venga. Per il resto lo script è funzionalissimo e utile per chi vuole usare sia comandi da tastiera che dal mouse, una funzione non esclude l'altra.
Un'ultima cosa ma importantissima :create un cursore, la dimenzione sceglietela voi, nominatelo Arrow e allocatelo nella cartella Icons del
vostro progetto. Detto questo ho detto tutto.
Spero possa esservi utile. Ehm niente...citate gli autori degli scripts mi raccomando e ah si,
@Guardian:
Ovviamente, prima di postare, mi sono spulciato tutte e 16 le pagine della sezione Script RGSS (XP) ed anche se ci sono altri post che trattano l'argomento e hanno rilasciato vari scripts allegati ad asso, comunque ti assicuro che una volta provati ho riscontrato dei Bugs pazzeschi. Uno addirittura era una vera e propria trappola mortale, che mi intrappolava dentro lo scene_equip perché non mi permetteva di tornare indietro. :)
Comunque Bella raga notte a tutti.
-
No no io vedo tutto. infatti ho acquisito la risorsa
. . .
Allora riporto ufficialmente a galla il topic.
Ecco ciò che vedo:
Game Player:class Game_Player < Game_Character attr_reader :vehicle_type # type of vehicle currenting being ridden def initialize super() @last_vehicle_type = -1 @vehicle_type = -1 @vehicle_getting_on = false # Boarding vehicle flag @vehicle_getting_off = false # Getting off vehicle flag @transferring = false # Player transfer flag @new_map_id = 0 # Destination map ID @new_x = 0 # Destination X coordinate @new_y = 0 # Destination Y coordinate @new_direction = 0 # Post-movement direction @walking_bgm = nil # For walking BGM memory end def passable?(x, y, d) return false unless $game_map.valid?(x, y) if $DEBUG and Input.press?(Input::CTRL) return true end if @through unless $game_player.in_airship? return true end end return false unless map_passable?(x, y) # Map Impassable? return true # Passable end def map_passable?(x, y) case @vehicle_type when 0 # Boat return $game_map.boat_passable?(x, y) when 1 # Ship return $game_map.ship_passable?(x, y) when 2 # Airship return $game_map.airship_passable?(x, y) else # Walking return Game_Character.new.passabile?(x, y, $game_player.direction) end end def can_walk?(x, y) @last_vehicle_type = @vehicle_type # Remove vehicle type @vehicle_type = -1 # Temporarily set to walking result = Game_Character.new.passabile?(x, y, $game_player.direction) # Determine if passable @vehicle_type = @last_vehicle_type # Restore vehicle type return result end def airship_land_ok?(x, y) unless $game_map.airship_land_ok?(x, y) return false # The tile passable attribute is unlandable end unless $game_map.events_xy(x, y).empty? return false # Cannot land where there is an event end return true # Can land end def veicolo_utilizzato? return @last_vehicle_type >= 0 end def utilizzato_aereo? return @last_vehicle_type == 2 end def in_vehicle? return @vehicle_type >= 0 end def in_airship? return @vehicle_type == 2 end alias player_moveto moveto def moveto(x, y) player_moveto(x, y) if in_vehicle? # Riding in vehicle vehicle = $game_map.vehicles[@vehicle_type] # Get vehicle vehicle.refresh # Refresh end end alias player_steps increase_steps def increase_steps return if in_vehicle? player_steps end def move_by_input return unless movable? return if $game_map.interpreter.running? case Input.dir4 when 2; move_down when 4; move_left when 6; move_right when 8; move_up end end def movable? return false if moving? # Moving return false if @move_route_forcing # On forced move route return false if @vehicle_getting_on # Boarding vehicle return false if @vehicle_getting_off # Getting off vehicle return false if $game_temp.message_window_showing # Displaying a message return false if in_airship? and not $game_map.airship.movable? return true end def update last_real_x = @real_x last_real_y = @real_y last_moving = moving? move_by_input super update_scroll(last_real_x, last_real_y) update_vehicle update_nonmoving(last_moving) end def update_scroll(last_real_x, last_real_y) ax1 = $game_map.adjust_x(last_real_x) ay1 = $game_map.adjust_y(last_real_y) ax2 = $game_map.adjust_x(@real_x) ay2 = $game_map.adjust_y(@real_y) if ay2 > ay1 and ay2 > CENTER_Y $game_map.scroll_down(ay2 - ay1) end if ax2 < ax1 and ax2 < CENTER_X $game_map.scroll_left(ax1 - ax2) end if ax2 > ax1 and ax2 > CENTER_X $game_map.scroll_right(ax2 - ax1) end if ay2 < ay1 and ay2 < CENTER_Y $game_map.scroll_up(ay1 - ay2) end end def update_vehicle return unless in_vehicle? vehicle = $game_map.vehicles[@vehicle_type] if @vehicle_getting_on # Boarding? if not moving? @direction = vehicle.direction # Change direction @move_speed = vehicle.speed # Change movement speed @vehicle_getting_on = false # Finish boarding operation @transparent = true # Transparency end elsif @vehicle_getting_off # Getting off? if not moving? and vehicle.altitude == 0 @vehicle_getting_off = false # Finish getting off operation @vehicle_type = -1 # Erase vehicle type @last_vehicle_type = -1 @transparent = false # Remove transparency end else # Riding in vehicle vehicle.sync_with_player # Move at the same time as player end end def update_nonmoving(last_moving) return if $game_map.interpreter.running? return if moving? return if check_touch_event if last_moving if not $game_temp.message_window_showing and Input.trigger?(Input::C) return if get_on_off_vehicle return if check_action_event end update_encounter if last_moving end def update_encounter return if $TEST and Input.press?(Input::CTRL) # During test play? return if in_vehicle? # Riding in vehicle? if $game_map.bush?(@x, @y) # If in bush @encounter_count -= 2 # Reduce encounters by 2 else # If not in bush @encounter_count -= 1 # Reduce encounters by 1 end end def check_touch_event return false if in_airship? return check_event_trigger_here([1,2]) end def check_action_event return false if in_airship? return true if check_event_trigger_here([0]) return check_event_trigger_there([0,1,2]) end def get_on_off_vehicle return false unless movable? if in_vehicle? return get_off_vehicle else return get_on_vehicle end end def get_on_vehicle front_x = $game_map.x_with_direction(@x, @direction) front_y = $game_map.y_with_direction(@y, @direction) if $game_map.airship.pos?(@x, @y) # Is it overlapping with airship? get_on_airship return true elsif $game_map.ship.pos?(front_x, front_y) # Is there a ship in front? get_on_ship return true elsif $game_map.boat.pos?(front_x, front_y) # Is there a boat in front? get_on_boat return true end return false end def get_on_boat @vehicle_getting_on = true # Boarding flag @vehicle_type = 0 # Set vehicle type force_move_forward # Move one step forward @walking_bgm = $game_temp.map_bgm # Memorize walking BGM $game_map.boat.get_on # Boarding processing end def get_on_ship @vehicle_getting_on = true # Board @vehicle_type = 1 # Set vehicle type force_move_forward # Move one step forward @walking_bgm = $game_temp.map_bgm # Memorize walking BGM $game_map.ship.get_on # Boarding processing end def get_on_airship @vehicle_getting_on = true # Start boarding operation @vehicle_type = 2 # Set vehicle type @through = true # Passage ON @walking_bgm = $game_temp.map_bgm # Memorize walking BGM $game_map.airship.get_on # Boarding processing end def get_off_vehicle if in_airship? # Airship return unless airship_land_ok?(@x, @y) # Can't land? else # Boat/ship front_x = $game_map.x_with_direction(@x, @direction) front_y = $game_map.y_with_direction(@y, @direction) return unless can_walk?(front_x, front_y) # Can't touch land? end $game_map.vehicles[@vehicle_type].get_off # Get off processing if in_airship? # Airship @direction = 2 # Face down else # Boat/ship force_move_forward # Move one step forward @transparent = false # Remove transparency end @vehicle_getting_off = true # Start getting off operation @move_speed = 4 # Return move speed @through = false # Passage OFF $game_system.bgm_play(@walking_bgm) # Restore walking BGM make_encounter_count # Initialize encounter end def force_move_forward @through = true # Passage ON move_forward # Move one step forward @through = false # Passage OFF end end
poi..
Game_Map
class Game_Map attr_reader :screen # map screen state attr_reader :interpreter # map event interpreter attr_reader :parallax_name # parallax background filename attr_reader :events # events attr_reader :vehicles # vehicle alias map_initialize initialize def initialize map_initialize @screen = Game_Screen.new @interpreter = $game_system.map_interpreter create_vehicles end def valid?(x, y) return (x >= -1 and x <= width and y >= -1 and y <= height) if $game_player.veicolo_utilizzato? and not $game_player.utilizzato_aereo? return (x >= 0 and x < width and y >= 0 and y < height) end alias map_setup setup def setup(map_id) map_setup(map_id) $nome_mappa = load_data("Data/MapInfos.rxdata") $nome_mappa[@map_id].name $scroll_x = load_data("Data/MapInfos.rxdata") $scroll_x[@map_id].scroll_x $scroll_y = load_data("Data/MapInfos.rxdata") $scroll_y[@map_id].scroll_y referesh_vehicles setup_scroll end def create_vehicles @vehicles = [] @vehicles[0] = Game_Vehicle.new(0) # Boat @vehicles[1] = Game_Vehicle.new(1) # Ship @vehicles[2] = Game_Vehicle.new(2) # Airship end def referesh_vehicles for vehicle in @vehicles vehicle.refresh end end def boat return @vehicles[0] end def ship return @vehicles[1] end def airship return @vehicles[2] end def setup_scroll @scroll_direction = 2 @scroll_rest = 0 @scroll_speed = 4 @margin_x = (width - 20) * 256 / 2 # Screen non-display width /2 @margin_y = (height - 15) * 256 / 2 # Screen non-display height /2 end def set_display_pos(x, y) @display_x = (x + @map.width * 256) % (@map.width * 256) @display_y = (y + @map.height * 256) % (@map.height * 256) end def adjust_x(x) return x - @display_x end def adjust_y(y) return y - @display_y end def x_with_direction(x, direction) return x + (direction == 6 ? 1 : direction == 4 ? -1 : 0) end def y_with_direction(y, direction) return y + (direction == 2 ? 1 : direction == 8 ? -1 : 0) end def events_xy(x, y) result = [] for event in $game_map.events.values result.push(event) if event.pos?(x, y) end return result end def refresh if @map_id > 0 for event in @events.values event.refresh end for common_event in @common_events.values common_event.refresh end end @need_refresh = false end alias passabile passable? def passable?(x ,y, d, self_event = nil) for i in [2, 1, 0] tile_id = data[x, y, i] if tile_id == nil return false unless $game_player.veicolo_utilizzato? return true end end passabile(x, y, d, self_event = nil) end def v_passable?(x, y, d) new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0) new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) for event in $game_map.events.values if event.x == new_x and event.y == new_y and not $game_player.in_airship? unless event.through if self != $game_player return false end if event.character_name != "" return false end end end end if $game_player.x == new_x and $game_player.y == new_y and not $game_player.in_airship? unless $game_player.through if @character_name != "" return false end end end unless $game_map.valid?(new_x, new_y) return false end if @through return true end for event in @vehicles unless $game_map.valid?(new_x, new_y) return false end if event.x == new_x and event.y == new_y and event.map_id == $game_map.map_id and not $game_player.in_airship? unless event.through if self != $game_player return false end if event.character_name != "" return false end end end end if $game_player.x == new_x and $game_player.y == new_y unless $game_player.through if @character_name != "" return false end end end if $game_player.vehicle_type == 0 if CANOA.include?(terrain_tag(new_x,new_y)) return true end end if $game_player.vehicle_type == 1 if BARCA.include?(terrain_tag(new_x,new_y)) return true end end if $game_player.in_airship? if AEREO.include?(terrain_tag(new_x,new_y)) return true end end unless $game_map.passable?(x, y, d, self) return false end unless $game_map.passable?(new_x, new_y, 10 - d) return false end return true end def boat_passable?(x, y) return v_passable?(x, y, $game_player.direction) end def ship_passable?(x, y) return v_passable?(x, y, $game_player.direction) end def airship_passable?(x, y) return v_passable?(x, y, $game_player.direction) end def airship_land_ok?(x, y) return true if passable?(x, y, $game_player.direction) end alias map_update update def update map_update update_vehicles end def update_scroll if @scroll_rest > 0 # If scrolling distance = 2 ** @scroll_speed # Convert to distance case @scroll_direction when 2 # Down scroll_down(distance) when 4 # Left scroll_left(distance) when 6 # Right scroll_right(distance) when 8 # Up scroll_up(distance) end @scroll_rest -= distance # Subtract scrolled distance end end def update_vehicles for vehicle in @vehicles vehicle.update end end end
ed infine:
GAME CHARACTER / SPRITESET MAP:class Game_Character def map_passable?(x, y) return $game_map.passable?(x, y) end def pos?(x, y) return (@x == x and @y == y) end def pos_nt?(x, y) return (pos?(x, y) and not @through) end def passabile?(x, y, d) new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0) new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) unless $game_map.valid?(new_x, new_y) return false end if @through return true end unless $game_map.passable?(x, y, d, self) return false end unless $game_map.passable?(new_x, new_y, 10 - d) return false unless $game_player.veicolo_utilizzato? end for event in $game_map.events.values if event.x == new_x and event.y == new_y if event.character_name == "" return true end unless event.through if self != $game_player return false end if event.character_name != "" return false end end end end if $game_player.x == new_x and $game_player.y == new_y unless $game_player.through if @character_name != "" return false end end end return true end end class Spriteset_Map alias shadow_initialize initialize def initialize shadow_initialize for vehicle in $game_map.vehicles sprite = Sprite_Character.new(@viewport1, vehicle) @character_sprites.push(sprite) end @shadow_sprite = Sprite.new @shadow_sprite.bitmap = RPG::Cache.character("Shadow",1) @shadow_sprite.ox = @shadow_sprite.bitmap.width / 2 @shadow_sprite.oy = @shadow_sprite.bitmap.height @shadow_sprite.z = 180 end alias shadow_dispose dispose def dispose shadow_dispose @shadow_sprite.dispose end alias shadow_update update def update shadow_update airship = $game_map.airship if @shadow_sprite != nil @shadow_sprite.x = airship.screen_x @shadow_sprite.y = airship.screen_y + airship.altitude @shadow_sprite.opacity = airship.altitude * 8 @shadow_sprite.update end end endLink della demo scaricabilissima..

http://www.mediafire...001i0o9d44mm4r1
Qualche anteprima:http://i63.tinypic.com/2sakygn.jpg
http://i63.tinypic.com/2zroqyf.jpg
http://i67.tinypic.com/kec83m.jpg
ECCO LO SCRIPT GAME_VEHICLE ;)#--------------------------Vehicle System---------------------------------- #Script adattato da Vx a Xp da Valentino Avon. Questa conversione è stata molto #lunga, per favore creditatemi se usate lo script ;) # #--------------------------Configurazione---------------------------------- BGM_AEREO = "Airship" #bgm riprodotti usando i veicoli BGM_BARCA = "Ship" BGM_CANOA = "Ship" MAPPA_AEREO = 1 #mappe iniziali dei veicoli MAPPA_BARCA = 1 MAPPA_CANOA = 1 X_Y_CANOA_INIZ = [9,9] #cordinate iniziali dei veicoli [X,Y] X_Y_BARCA_INIZ = [17,14] X_Y_AEREO_INIZ = [30,6] CANOA = [2] #terrain tag dove la canoa può passare (fiumi) BARCA = [1] #terrain tag dove la barca può passare (acqua) AEREO = [0,1,2,3,4,5,6,7] #terrain tag dove l'aereo può passare (ovunque) AEREO_ATT = [0,3,4,5,6,7] #terrain tag dove l'aereo può atterrare (comunque l'aereo non può atterrare dove non si può passare) #------------------------FINE configurazione-------------------------------- class Game_Vehicle < Game_Character MAX_ALTITUDE = 32 # the airship flies at attr_reader :type # vehicle type (0..2) attr_reader :altitude # altitude (for the airship) attr_reader :driving # driving flag attr_accessor :character_name attr_accessor :bgm attr_accessor :map_id def initialize(type) super() @type = type @altitude = 0 @driving = false @direction = 4 @walk_anime = false @step_anime = false load_system_settings end def crea_veicolo case @type when 0 @character_name = "Canoa" @map_id = MAPPA_CANOA @x = X_Y_CANOA_INIZ[0] @y = X_Y_CANOA_INIZ[1] @bgm = BGM_CANOA when 1 @character_name = "Barca" @map_id = MAPPA_BARCA @x = X_Y_BARCA_INIZ[0] @y = X_Y_BARCA_INIZ[1] @bgm = BGM_BARCA when 2 @character_name = "Aereo" @map_id = MAPPA_AEREO @x = X_Y_AEREO_INIZ[0] @y = X_Y_AEREO_INIZ[1] @bgm = BGM_AEREO end end def load_system_settings case @type when 0; sys_vehicle = self when 1; sys_vehicle = self when 2; sys_vehicle = self else; sys_vehicle = nil end if sys_vehicle != nil sys_vehicle.crea_veicolo @character_index = @type end end def refresh if @driving @map_id = $game_map.map_id sync_with_player elsif @map_id == $game_map.map_id moveto(@x, @y) end case @type when 0; @priority_type = 1 @move_speed = 4 when 1; @priority_type = 1 @move_speed = 5 when 2; @priority_type = @driving ? 2 : 0 @move_speed = 6 end @walk_anime = @driving @step_anime = @driving end def set_location(map_id, x, y) @map_id = map_id @x = x @y = y refresh end def pos?(x, y) return (@map_id == $game_map.map_id and super(x, y)) end def transparent return (@map_id != $game_map.map_id or super) end def get_on @driving = true @walk_anime = true @step_anime = true if @type == 2 # If airship @priority_type = 2 # Change priority to "Above Characters" end Audio.bgm_play("Audio/Bgm/"[email protected]<script data-cfhash='f9e31' type="text/javascript">/* */</script>,100,100) # Start BGM end def get_off @driving = false @walk_anime = false @step_anime = false @direction = $game_player.direction end def sync_with_player @x = $game_player.x @y = $game_player.y @real_x = $game_player.real_x @real_y = $game_player.real_y @direction = $game_player.direction bush_depth end def speed return @move_speed end def screen_y return super - altitude end def movable? return false if (@type == 2 and @altitude < MAX_ALTITUDE) return (not moving?) end def update super if @type == 2 # If airship if @driving if @altitude < MAX_ALTITUDE @altitude += 1 # Increase altitude end elsif @altitude > 0 @altitude -= 1 # Decrease altitude if @altitude == 0 @priority_type = 0 # Return priority to "Below Characters" end end end end end
ahah mi sono accorto solo ora che mi ero scordato di inserire lo script principale xD (che testa che ho)
Guardian, che ne pensi? Io credo sia meglio riportare tutto al primo post di Valentino, ti va? -
C'è uno screen nel sito dove ho racimolato la risorsa che mostra appunto la visualizzazione su mappa, tramite una normale window. Quindi credo che lo si possa richiamare tranquillamente da un plugin command.
-
Che ore sono..? Non lo so, ma senza ombra di dubbio questo script ve lo dirà. In game.
//============================================================================= // Timer Enhancements // Author gameus // Version 1.0 //----------------------------------------------------------------------------- // Intro: // Adds a few options to change up the timer. Adds the option to change // position, manually or automatically, change the color, text size, and even // add a background image. // // Instructions: // Place in your plugins folder and save as 'TimerEnhancements.js' // Configure the options as you please. // // Credits: // gameus ~ For creating it. //============================================================================= /*: * @plugindesc Changes position and appearance of the Timer * @author gameus * * @param Auto Position * @desc Auto position the timer. 0: Manual, 1: Upper Left, 2: Upper Right, 3: Lower Left, 4: Lower Right * @default 0 * * @param Position X * @desc X coordinate for the timer. * @default 0 * * @param Position Y * @desc Y Coordinate for the timer. * @default 0 * * @param Text Size * @desc Defines the size of the text * @default 32 * * @param Text Color * @desc Defines the text color in RGB. e.g. 255,128,255 * @default 255, 255, 255 * * @param Background * @desc If false won't draw a background, otherwise, set it to the name of the picture. * @default false * * @param Background Transparency * @desc Background image's transparency. 0-255 * @default 255 * * @help This plugin does not provide plugin commands. */ var GameusScripts = GameusScripts || {}; var GameusScripts['TimerEnhancements'] = 1.0; (function() { var parameters = PluginManager.parameters('TimerEnhancements'); var gameus_Timer_Enhancements_createBitmap = Sprite_Timer.prototype.createBitmap; var gameus_Timer_Enhancements_updatePosition = Sprite_Timer.prototype.updatePosition; var gameus_Timer_Enhancements_redraw = Sprite_Timer.prototype.redraw; function toHex(n) { n = parseInt(n,10); if (isNaN(n)) return "00"; n = Math.max(0,Math.min(n,255)); return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); }; function rgbToHex(rgb) { nrgb = rgb.replace(/\s+/g, ''); nrgb = nrgb.split(','); return ("#" + toHex(nrgb[0]) + toHex(nrgb[1]) + toHex(nrgb[2])); }; Sprite_Timer.prototype.createBitmap = function() { gameus_Timer_Enhancements_createBitmap.call(this); this.backgroundImage = false; if (parameters['Background'].toLowerCase() !== "false") { var bmp = ImageManager.loadPicture(parameters['Background']); bmp.addLoadListener(this.onLoadBackground.bind(this, bmp)); } this.bitmap.fontSize = parameters['Text Size']; }; Sprite_Timer.prototype.onLoadBackground = function(bmp) { this.bitmap = new Bitmap(bmp.width, bmp.height); this.backgroundImage = bmp; }; Sprite_Timer.prototype.updatePosition = function() { gameus_Timer_Enhancements_updatePosition.call(this); var newX = 0; var newY = 0; switch (parameters['Auto Position'].toLowerCase()) { case "0": newX = Number(parameters['Position X']); newY = Number(parameters['Position Y']); break; case "2": newX = Graphics.width - this.bitmap.width; break; case "3": newY = Graphics.height - this.bitmap.height; break; case "4": newX = Graphics.width - this.bitmap.width; newY = Graphics.height - this.bitmap.height; break; } this.x = newX; this.y = newY; }; Sprite_Timer.prototype.redraw = function() { gameus_Timer_Enhancements_redraw.call(this); var text = this.timerText(); var width = this.bitmap.width; var height = this.bitmap.height; var backWidth = this.backgroundImage.width; var backHeight = this.backgroundImage.height; this.bitmap.clear(); this.bitmap.paintOpacity = Number(parameters['Background Transparency']); if (this.backgroundImage !== false) this.bitmap.blt(this.backgroundImage, 0, 0, backWidth, backHeight, 0, 0); this.bitmap.paintOpacity = 255; this.bitmap.textColor = rgbToHex(parameters['Text Color']); this.bitmap.drawText(text, 0, 0, width, height, 'center'); }; })();Un'altra creazione di Gameaus, spero che vi possa piacere. Con quest'addon potrete personalizzare
la modalità di visualizzazione del tempo. Cambiandone il colore e quant'altro.
Spero possa servirvi. e niente. ciao..
-
Olà gente dunque mi sono imbattuto in un tale che ha generato questo simpatico script per RMMV
E' un Add-On :In sostanza lo script permette di utilizzare infiniti self switches in qualsiasi evento.
Ma troverete maggiori delucidazioni all'interno dello script.
Script:
//============================================================================= // More Self Switches // Author gameus // Version 1.0 //----------------------------------------------------------------------------- // Intro: // Allows you to use infinite self switches in any event. // // Instructions: // Place in your plugins folder and save as 'MoreSelfSwitches.js' // // To create a custom self switch, you must first check the self switch box // on any page. Then add a comment at the top of the page and follow the format // // switch:custom_switch_name // // After that, use the Plugin Command and call // // SelfSwitch custom_switch_name true/false // // Thus allowing as many self switches as you want, with whatever name! // // Credits: // gameus ~ For creating it. //============================================================================= /*: * @plugindesc Allows for infinite self switches in events. * @author gameus * * @help * Instructions: * Place in your plugins folder and save as 'MoreSelfSwitches.js' * * To create a custom self switch, you must first check the self switch box * on any page. Then add a comment at the top of the page and follow the format * * switch:custom_switch_name * * After that, use the Plugin Command and call * * SelfSwitch custom_switch_name true/false * * Thus allowing as many self switches as you want, with whatever name! */ var GameusScripts = GameusScripts || {}; GameusScripts['MoreSelfSwitches'] = 1.0; (function() { var gameus_SelfSwitch_initialize = Game_Event.prototype.initialize; var gameus_SelfSwitch_plugin_command = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function(command, args) { gameus_SelfSwitch_plugin_command.call(this, command, args); if (command.toLowerCase() == "selfswitch") { var _switch = args[0]; var _state = Boolean(args[1]); var _key = [this._mapId, this._eventId, _switch]; $gameSelfSwitches.setValue(_key, _state); } }; Game_Event.prototype.initialize = function(mapId, eventId) { gameus_SelfSwitch_initialize.call(this, mapId, eventId); var pages = this.event().pages; for (i = 0; i < pages.length; i += 1) { var page = pages[i]; for (j = 0; j < page.list.length; j += 1) { var command = page.list[j]; if (command.code === 408 || command.code === 108) this.checkCustomSwitch(page, command.parameters[0]); } } }; Game_Event.prototype.checkCustomSwitch = function(page, code) { var args = code.split(":"); if (args[0] !== null && args[0].toLowerCase() == "switch" && args[1] !== null) { page.conditions.selfSwitchCh = args[1]; page.conditions.selfSwitchValid = true; } }; })();
Se ho capito bene:
1) create un evento chesso di 6 paginein queste sei pagine inserite (esempio) sei testi diversi dall'opzione di default textbox... tipo:
2) Pag1: Lo sai chePag2: Lomax
Pag3: è un
Pag4: granPag5: figo
Pag6: pazzesco!!3)
benissimo appena sotto i testi inserite i vari Plugin Command:
inserendo questa dicitura::
4) Pag1
Text: "Lo sai che"
Plugin Command: SelfSwitch 1 truePag2
Text: "Lomax"
Plugin Command: SelfSwitch 2 truePag3
Text: "è un"
Plugin Command: SelfSwitch 3 truePag4
Text: "gran"
Plugin Command: SelfSwitch 4 truePag5
Text: "figo"
Plugin Command: SelfSwitch 5 truePag6
Text: "pazzesco"
5)una cosa importantissima dalla Pag2 fino a (in questo caso) Pag6
settate in condizioni (appena sotto il nome dell'evento) l'opzione selfswitchad esempio il primo A
Spero di essere stato comprensibile e di aver reso felice qualcuno condividendo tal cosa.
Lasciate perdere il testo di esempio (è megalomania..) vabbe, un saluto e creditate no me,ma Gameaus
-
Riporto su per via di un errore di sintassi/dimenticanza/distrazione, poca roba di cui però i niubbi possono andre in crisi:
In Vehicle_System_P4 verso la riga 71 c'è un end posizionato male che potrebbe causare finestrelle che segnalano errori.basta metterlo al suo poso ovvero in chiusura del suo rispettivo def dispose e tutto si aggiusta.
Per gli amanti del "Faccio Io che viene meglio" tipo quelli che sistemano gli script disordinati, che chiudono i metodi e le classi con le cornicette verdi per i commenti ecc..
e magari pensano di voler rinominare lo script in "Game_Vehicle" come nel Vx, Vx-Ace, Mv e magari inserire questo vostro mattone rilegando le quattro pagine in un unico script magari incastrandolo fra i vari Game_System, Game_Player ecc beh...
Sappiate che non sarà una buona idea.
Una volta richiamato, vi appariranno degli errori (in pratica non vi leggeranno gli alias "shadow_dispose" e "shadow_update".
Quindi consiglio di lasciare stare tutto appena prima del Main sotto tutti gli script di default. Potete rilegare il tutto in un unico script ma
basta che lo inseriate sotto tutti gli script standard ma prima del Main dell'editor.
Detto questo..ho condiviso un'altra delle mie genialate, tratte da.i pasticci di Lomax (si impara sempre qualcosa xD )(
-
Integrist aimè è una rete aziendale che ci fornisce internet anche a casa, ma .. non la consiglierei a nessuno.
Ultimamente stiamo avendo problemi con la connessione dati. Però chiedendo fra le mie conoscenze, anche alcuni miei amici stanno riscontrando dei problemi in questione di validità dei certificati. Se è comune non dovrebbe essere questione della mia rete internet.
sto attendendo la fibra. E' indubiamente migliore e sicura.
------------------------------------Edit:
Ho letto. ho svolto tutti ciò che c'era da svolgere e ho riscontrato che queste dll non risondono:
gpkcsp.dllsccbase.dll
crypdlg.dll
shdocvw.dll
mshtml.dll
brawseui.dll
jscript.dll
aleaut32.dll
actxprxy.dll
Queste citate richiamandole con il comando esegui non fungono.
Come mi occorre procedere? -
Raga è da qualche giorno che ho seri problemi con internet, a quanto pare non solo io nella mia zona. In sostanza non riesco più ad accedere ai siti che hanno suffisso htts. tipo ad esempio google, oppure facebook, oppure ancora youtube e a tanti altri.
Questo da terminale del pc, invece dal telefonino sembrerebbe di si. tutto è ok.
Mi chiedevo se a voi succede la stessa cosa..
E come si risolve.
Adesso uso bing come motore di ricerca e soltanto così mi permette di accedere a qualche sito, come questo e veramente ad altri pochissimi.
Documentandomi è già successo in passato. Solo che il difetto era solo per internet esplorer. Ma io in questo terminale uso firefox e nell'altro chrome eppure in entrambi ho lo stesso problema.
Fatemi sapere se potete.
Grazie raga
-
Grazie per le info.
Una volta istallato il programma, vedevo la schermata tutta bianca, allora seguendo il consiglio di (non mi ricordo come si chiama questo utente) comunque colui che ha realizzato la recensione. ho messo la opengl32.dll. Fate conto che attualmente uso un Windows 7 a 32 bit come OS.
Ma se disinstallo l'RPGMV e lo reinstallo, non perdo la licenza provvisoria dei 20 giorni, vero?
. . .
D:qualcuno e riuscito a far partire il prohramma su windows xp? O qualcuno sa se e possibile che riesca a partire su xp
(Scusate se scrivo la domanda cosi ma sul telefono nn mi fa cambiare il colore)E' più semplice che tu aggiorni il tuo OS al seven. Perché comunque è più facile fare girare i programmi del xp sul seven che viceversa.
Guarda qui ho provato a cercare..
https://www.google.it/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=come%20visualizzare%20programmi%20per%20seven%20su%20windows%20xp&es_th=1
e non mi da nulla.
Mi spiace, ti capisco comunque anche io reputo l'xp un buon sistema operativo per fare determinate operazioni. ma aimè bisogna avere almeno un terminale aggiornato. -
Salve ragazzi avrei una domanda. Premesso che sto usando ancora il trial.
Nel database non riesco a spulciare le altre voci, cioè a parte la voce Attori, tutte le altre non sono selezionabili.
Mi devo attaccare al tram, aspettando di comprare il tool? Oppure
è una qualche .dll che non ho istallato che non mi permette di usare la demo a pieno?
(*Fa che non sia la prima, fa che non sia la prima..*) -
Si perché era solo un voler comunicare al mondo che per me l'Mv è paragonabile ad una stra****pazzesca!
Bu non lo so sarà per il generatore di char..o altre chicche. sto tool mi fa simpatia e dovevo comunicarlo al mondo.
Forse sono stato un po impulsivo?! O.o Tipo che l'ho provato sono corso alla finestra e....subito ho desiderato di
urlare al creato che si sto tooletto mi gasa :|
Poi sicuramente oddio avrà i suoi difetti ma questo lo si vedrà a lunga corsa. Qualche contro rimanendo sobri..
grafica cubettosa colori sparaflesciosi, c'era un difetto di Variabili Globali ma che è stato già risolto. Ah si e la pesantezza.
Ma comunque tutti questi chiamiamoli difetti, sono risolvibili tramite nuove implementazioni di risorse grafiche.
Per la pesantezza ci sono dei trucchetti per ridurla. Per esempio ho sentito che per i files sonori, basta usare un formato più leggero.
Per le grafiche ci sono un sacco di escamotage per garantire una buona scena, diminuendo il numero di sprite presenti in essa.
Quindi indubbiamente trovo molto molto molto questo tool forse il giusto compromesso fra un editor intuitivo e quindi facile da usare e
al tempo stesso utile e professionale. O comunque che inizia ad istradare l'aspirante makeratore verso sistemi e linguaggi più seri.
Almeno questo è il mio parere.
Detto ciò torno a dilettarmi con il suddetto xD
-
Lo so Lo so mi sento euforico a livello +99999 !!
Ho appena scaricato la versione trial del nostro nuovo tooletto. Fra qualche settimana ho intenzione di acquistarlo assolutamente. Alcuni di voi già sanno che io impazzisco per XP perché ho provato il Vx-Ace ma non mi ha entusiasmato tanto, dal punto di vista di mapping. Attenzione non fraintendetemi ha molte potenzialità indiscusse il Vx-Ace solo che diciamo che se devo paragonarlo ad una ragazza potrei dire...si carina ma non è il mio tipo!
Invece questo nuovo RPGMV è una stra****pazzesca!!! xD scusate il gergo e lo sfogo xP
. . .
Ho un tempo limitato di 20 giorni.
In questi 20 giorni devo assolutamente spulciarmelo tutto.
Così a prima vista lo reputo più organizzato dei suoi predecessori. Certo monta grafiche Vx in alcune categorie Migliorate come i png con i faces caratterizzati e simpaticissimi characters dalle espressioni buffe.
Ricordate qualche mio character da me pixellato in passato tentai pure io di dare espressività ai pupini che popolavano i miei screen presi dal mio game. Be mi fa piacere che abbiano inserito nel tool questa possibilità già di default.
Di fatti la genialata è stata quella di inserire un generatore di charaset che implementasse anche i faces e i battlers in un'unica fase di assemblaggio. Metto un Like in questo! (8
Ho provato a fare un piccolo mapping di base e mi diverte..certo la grafica è dai colori sparaflesciosi come nel Vx ma quella è poca roba..nel suo insieme non mi dispiace. Che dire.. penso proprio che diverrò poligamo, amerò sia la mia vecchia RMXP che questa nuova giovincella RPGMV xD
Scaricatelo provatelo vi entusiasmerete ve lo garantisco! :D -
Chi ha tempo..non aspetti tempo..
Concordo con testament
Inviato dal mio GT-I9105P utilizzando Tapatalk
-
Ciao :)
Che tipo di dinosauri hai bisogno ? Erbivori? Carnivori? Acquatici? Volatili? Nel web ci sono un'infinità di modelli! :D
https://www.google.it/search?q=immagini&espv=2&biw=1422&bih=663&site=webhp&source=lnms&tbm=isch&sa=X&ved=0CAYQ_AUoAWoVChMIxI6s_PjfyAIVRfRyCh20tQIZ#tbm=isch&q=nomi+dinosauri&imgrc=DM30QdsYgnGg5M%3A
Se non hai ancora risolto, puoi scegliere il modello che più ti piace ed io se posso proverò a cimentarmi nell'impresa di pixellarne uno :D
Facci sapere :) -
Sappi solo che ci sto lavorando. xD è solo questione di fantasia.

-
Avete presente questo giovine..?

Faccia sveglia..è vve?!
Bene da questa immagine ho estrapolato il berretto, l'ho modificato
un po, l'ho riadattato, ho fatto i miei pastrocchi ed ecco il risultato..
(Ma non è il risultato finale)
Non sapendo se a te andava bene già così oppure lo volessi
perfettamente fedele al chara..
Spero che il mio intervento ti sia stato utile. ciao :) -
Ciao ho letto la tua richiesta giorni fa e non avendo materiale a riguardo l'ho cestinata.
Poi oggi mi sono imbattuto in questa immagine:
Così mi sono ricordato della tua richiesta e ho estrapolato la campana dall'immagine.
è in queste dimensioni mastodontiche così tu puoi modificarla come meglio credi.
Rimpicciolendola e ridimensionandola a tuo piacimento.
Io ad esempio l'ho resa in queste proporzioni:
Poi non sapendomi orientare (non conoscendo le tue richieste precise) l'ho lasciata grezza.
Spero ti sia utile. :)
-
Già non lo metto in dubbio.. *mi riferivo ad Holy*
-
Scusate l'assenza ma tra il lavoro e le altre cose da fare, ho trascurato un po questa iniziativa. Ma rieccomi qui, continuiamo seguendo l'ordine dello script editor:
Game_SelfSwitches# ============================================================================== # ** Game_SelfSwitches # ------------------------------------------------------------------------------ # Questa classe gestisce gli interruttori automatici. # È una sezione che incorpora la classe " Hash ". # ------------------------------------------------------------------------------ # la variabile di riferimento è " $ game_self_switches ". # ============================================================================== class Game_SelfSwitches #-------------------------------------------------------------------------- # * Inizializzazione oggetti #-------------------------------------------------------------------------- def initialize @data = {} end #-------------------------------------------------------------------------- # * Metodo per ottenere l'interruttore automatico # chiave : key #-------------------------------------------------------------------------- def [](key) return @data[key] == true ? true : false end #-------------------------------------------------------------------------- # * Metodo per selezionare l'interruttore automatico e conferirgli un valore # chiave : key # valore : ON (true) / OFF (false) #-------------------------------------------------------------------------- def []=(key, value) @data[key] = value end end
Adesso proveremo ad analizzare questa classe:
Cos'è un Interruttore Automatico?
Un interruttore, in rpg maker, è un qualcosa che permette di attivare o disattivare alcuni blocchi di azioni che noi intendiamo far eseguire al nostro personaggio oppure agli eventi presenti in mappa.
Io penso che questo script sia molto intuitivo da comprendere e non necessita di molte spiegazioni.
Ma se desiderate conoscere di preciso, l'utilizzo che può avere uno switch, consiglio, se siete neofiti, di impostarli tramite evento.
Ecco un tutorial apposito (è per Vx-Ace, ma la spiegazione è valida anche per rmxp)
Spero vi sia tutto ben chiaro :)
Ora continuiamo con le nostre traduzioni
Ecco la volta di Game_Screen:
#============================================================================== # ** Game_Screen #------------------------------------------------------------------------------ # Questa classe gestisce dati di manutenzione schermo, come il cambiamento # della tonalità dEL colore, l'effetto bagliore, ecc #------------------------------------------------------------------------------ # la variabile di riferimento è "$ game_screen". #============================================================================== class Game_Screen #-------------------------------------------------------------------------- # * Variabili d'istanza pubblica #-------------------------------------------------------------------------- attr_reader :tone # effetto tonalità del colore attr_reader :flash_color # effetto bagliore del colore attr_reader :shake # effetto tremolo attr_reader :pictures # immagini attr_reader :weather_type # tipo di clima meteorologico attr_reader :weather_max # numero massimo di immagini meteo #-------------------------------------------------------------------------- # * Metodo di inizializzazione #-------------------------------------------------------------------------- # Conferisce i valori di partenza alle variabili d'istanza appena create. #-------------------------------------------------------------------------- def initialize @tone = Tone.new(0, 0, 0, 0) @tone_target = Tone.new(0, 0, 0, 0) @tone_duration = 0 @flash_color = Color.new(0, 0, 0, 0) @flash_duration = 0 @shake_power = 0 @shake_speed = 0 @shake_duration = 0 @shake_direction = 1 @shake = 0 @pictures = [nil] for i in 1..100 @pictures.push(Game_Picture.new(i)) end @weather_type = 0 @weather_max = 0.0 @weather_type_target = 0 @weather_max_target = 0.0 @weather_duration = 0 end #-------------------------------------------------------------------------- # * Metodo per definire l'inizio del cambio di tonalità del colore # tone : effetto tonalità colore # duration : tempo di durata del cambiamento di tonalità #-------------------------------------------------------------------------- def start_tone_change(tone, duration) @tone_target = tone.clone @tone_duration = duration if @tone_duration == 0 @tone = @tone_target.clone end end #-------------------------------------------------------------------------- # * Metodo per definire l'inizio del inscenare il bagliore del colore # color : colore del bagliore # duration : durata dell'avvenimento #-------------------------------------------------------------------------- def start_flash(color, duration) @flash_color = color.clone @flash_duration = duration end #-------------------------------------------------------------------------- # * Metodo per definire l'effetto tremolio dello schermo # power : Intensità dell'effeto tremolo # speed : velocità # duration : tempo di durata dell'effetto #-------------------------------------------------------------------------- def start_shake(power, speed, duration) @shake_power = power @shake_speed = speed @shake_duration = duration end #-------------------------------------------------------------------------- # * Seleziona il tipo di condizione meteorologica # type : tipo # power : intensità # duration : tempo di durata della condizione meteorologica #-------------------------------------------------------------------------- def weather(type, power, duration) @weather_type_target = type if @weather_type_target != 0 @weather_type = @weather_type_target end if @weather_type_target == 0 @weather_max_target = 0.0 else @weather_max_target = (power + 1) * 4.0 end @weather_duration = duration if @weather_duration == 0 @weather_type = @weather_type_target @weather_max = @weather_max_target end end #-------------------------------------------------------------------------- # * Aggiornamento dei singoli Frame #-------------------------------------------------------------------------- def update if @tone_duration >= 1 d = @tone_duration @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d @tone_duration -= 1 end if @flash_duration >= 1 d = @flash_duration @flash_color.alpha = @flash_color.alpha * (d - 1) / d @flash_duration -= 1 end if @shake_duration >= 1 or @shake != 0 delta = (@shake_power * @shake_speed * @shake_direction) / 10.0 if @shake_duration <= 1 and @shake * (@shake + delta) < 0 @shake = 0 else @shake += delta end if @shake > @shake_power * 2 @shake_direction = -1 end if @shake < - @shake_power * 2 @shake_direction = 1 end if @shake_duration >= 1 @shake_duration -= 1 end end if @weather_duration >= 1 d = @weather_duration @weather_max = (@weather_max * (d - 1) + @weather_max_target) / d @weather_duration -= 1 if @weather_duration == 0 @weather_type = @weather_type_target end end if $game_temp.in_battle for i in 51..100 @pictures[i].update end else for i in 1..50 @pictures[i].update end end end end
Continuiamo..
Game_Picture
#============================================================================== # ** Game_Picture #------------------------------------------------------------------------------ # Questa classe gestisce l'immagine. # E 'utilizzato all'interno della classe Game_Screen # ($game_screen). #============================================================================== class Game_Picture #-------------------------------------------------------------------------- # * Vengono create le corrispettive variabili d'istanza pubblica #-------------------------------------------------------------------------- attr_reader :number # numero di immagini attr_reader :name # nome del file attr_reader :origin # Punto di origine attr_reader :x # coordinata-x attr_reader :y # coordinata-y attr_reader :zoom_x # livello di zoom in direzione-x attr_reader :zoom_y # livello di zoom in direzione-y attr_reader :opacity # livello di opacità attr_reader :blend_type # metodo di fusione attr_reader :tone # tonalità del colore attr_reader :angle # angolo di rotazione #-------------------------------------------------------------------------- # * Metodo per assegnare i valori iniziali alle variabili appena create # number : numero di immagini #-------------------------------------------------------------------------- def initialize(number) @number = number @name = "" @origin = 0 @x = 0.0 @y = 0.0 @zoom_x = 100.0 @zoom_y = 100.0 @opacity = 255.0 @blend_type = 1 @duration = 0 @target_x = @x @target_y = @y @target_zoom_x = @zoom_x @target_zoom_y = @zoom_y @target_opacity = @opacity @tone = Tone.new(0, 0, 0, 0) @tone_target = Tone.new(0, 0, 0, 0) @tone_duration = 0 @angle = 0 @rotate_speed = 0 end #-------------------------------------------------------------------------- # * Metodo che permette di mostrare la figura # name : nome del file # origin : punto di inizio # x : coordinata-x # y : coordinata-y # zoom_x : livello di zoom in direzione-x # zoom_y : livello di zoom in direzione-y # opacity : livello di opacità # blend_type : metodo di fusione #-------------------------------------------------------------------------- def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) @name = name @origin = origin @x = x.to_f @y = y.to_f @zoom_x = zoom_x.to_f @zoom_y = zoom_y.to_f @opacity = opacity.to_f @blend_type = blend_type @duration = 0 @target_x = @x @target_y = @y @target_zoom_x = @zoom_x @target_zoom_y = @zoom_y @target_opacity = @opacity @tone = Tone.new(0, 0, 0, 0) @tone_target = Tone.new(0, 0, 0, 0) @tone_duration = 0 @angle = 0 @rotate_speed = 0 end #-------------------------------------------------------------------------- # * Metodo che permette all'immagine di spostarsi in mappa # duration : tempo di durata # origin : punto di inizio # x : coordinata-x # y : coordinata-y # zoom_x : livello di zoom in direzione-x # zoom_y : livello di zoom in direzione-y # opacity : livello di opacità # blend_type : metodo di fusione #-------------------------------------------------------------------------- def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type) @duration = duration @origin = origin @target_x = x.to_f @target_y = y.to_f @target_zoom_x = zoom_x.to_f @target_zoom_y = zoom_y.to_f @target_opacity = opacity.to_f @blend_type = blend_type end #-------------------------------------------------------------------------- # * Metodo che permette di cambiare la velocità di rotazione dell'immagine # speed : velocità di rotazione #-------------------------------------------------------------------------- def rotate(speed) @rotate_speed = speed end #-------------------------------------------------------------------------- # * Metodo che definisce l'inizio del cambio di tonalità # tone : color tone # duration : time #-------------------------------------------------------------------------- def start_tone_change(tone, duration) @tone_target = tone.clone @tone_duration = duration if @tone_duration == 0 @tone = @tone_target.clone end end #-------------------------------------------------------------------------- # * Cancella l'immagine #-------------------------------------------------------------------------- def erase @name = "" end #-------------------------------------------------------------------------- # * Aggiornamento di ogni singolo frame #-------------------------------------------------------------------------- def update if @duration >= 1 d = @duration @x = (@x * (d - 1) + @target_x) / d @y = (@y * (d - 1) + @target_y) / d @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d @opacity = (@opacity * (d - 1) + @target_opacity) / d @duration -= 1 end if @tone_duration >= 1 d = @tone_duration @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d @tone_duration -= 1 end if @rotate_speed != 0 @angle += @rotate_speed / 2.0 while @angle < 0 @angle += 360 end @angle %= 360 end end end
E finalmente eccomi arrivato ai fantastici Game_Battler.
Andiamo subito ad analizzarne il primo:
1.
#============================================================================== # ** Game_Battler (part 1) #------------------------------------------------------------------------------ # Questa classe si occupa dei combattenti di gioco. E' figa! xD # E' considerata come una superclasse per le classi Game_Actor e Game_Enemy # a cui fanno riferimento. #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # * Variabili di istanza pubblica #-------------------------------------------------------------------------- attr_reader :battler_name # Nome del file battler #guerriero attr_reader :battler_hue # tonalità del battler #guerriero attr_reader :hp # HP #capacità vitale attr_reader :sp # SP #capacità magica attr_reader :states # stati attr_accessor :hidden # mostra stato "nascosto" attr_accessor :immortal # mostra stato "immortale" attr_accessor :damage_pop # mostra a video il danno subito attr_accessor :damage # valore del danno attr_accessor :critical # mostra "condizione critica" attr_accessor :animation_id # Codice dell'animazione attr_accessor :animation_hit # mostra l'animazione del colpo attr_accessor :white_flash # mostra bagliore bianco attr_accessor :blink # mostra stato "accecato" #-------------------------------------------------------------------------- # * Metodo per associare i parametri di base alle variabili appena create #-------------------------------------------------------------------------- def initialize @battler_name = "" @battler_hue = 0 @hp = 0 @sp = 0 @states = [] @states_turn = {} @maxhp_plus = 0 @maxsp_plus = 0 @str_plus = 0 @dex_plus = 0 @agi_plus = 0 @int_plus = 0 @hidden = false @immortal = false @damage_pop = false @damage = nil @critical = false @animation_id = 0 @animation_hit = false @white_flash = false @blink = false @current_action = Game_BattleAction.new end #-------------------------------------------------------------------------- # * Metodo per ottenere gli HP massimi #-------------------------------------------------------------------------- def maxhp n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min for i in @states n *= $data_states[i].maxhp_rate / 100.0 end n = [[Integer(n), 1].max, 999999].min return n end #-------------------------------------------------------------------------- # * Metodo per ottenere gli SP massimi #-------------------------------------------------------------------------- def maxsp n = [[base_maxsp + @maxsp_plus, 0].max, 9999].min for i in @states n *= $data_states[i].maxsp_rate / 100.0 end n = [[Integer(n), 0].max, 9999].min return n end #-------------------------------------------------------------------------- # * Metodo per ottenere la Forza (STR) #-------------------------------------------------------------------------- def str n = [[base_str + @str_plus, 1].max, 999].min for i in @states n *= $data_states[i].str_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # * Metodo per ottenere la Destrezza (DEX) #-------------------------------------------------------------------------- def dex n = [[base_dex + @dex_plus, 1].max, 999].min for i in @states n *= $data_states[i].dex_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # * Metodo per ottenere l'Agilità (AGI) #-------------------------------------------------------------------------- def agi n = [[base_agi + @agi_plus, 1].max, 999].min for i in @states n *= $data_states[i].agi_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # * Metodo per ottenere l'intelligenza (INT) #-------------------------------------------------------------------------- def int n = [[base_int + @int_plus, 1].max, 999].min for i in @states n *= $data_states[i].int_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # * Metodo per selezionare gli HP massimi # maxhp : nuovi HP massimi #-------------------------------------------------------------------------- def maxhp=(maxhp) @maxhp_plus += maxhp - self.maxhp @maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min @hp = [@hp, self.maxhp].min end #-------------------------------------------------------------------------- # * Metodo per selezionare gli SP massimi # maxsp : nuovi SP massimi #-------------------------------------------------------------------------- def maxsp=(maxsp) @maxsp_plus += maxsp - self.maxsp @maxsp_plus = [[@maxsp_plus, -9999].max, 9999].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- # * Metodo per selezionare la Forza (STR) # str : nuova Forza (STR) #-------------------------------------------------------------------------- def str=(str) @str_plus += str - self.str @str_plus = [[@str_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # * Metodo per selezionare la Destrezza (DEX) # dex : nuova Destrezza (DEX) #-------------------------------------------------------------------------- def dex=(dex) @dex_plus += dex - self.dex @dex_plus = [[@dex_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # * Metodo per selezionare l'Agilità (AGI) # agi : nuova Agilità (AGI) #-------------------------------------------------------------------------- def agi=(agi) @agi_plus += agi - self.agi @agi_plus = [[@agi_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # * Metodo per selezionare l'intelligenza (INT) # int : nuova intelligenza (INT) #-------------------------------------------------------------------------- def int=(int) @int_plus += int - self.int @int_plus = [[@int_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # * Metodo per ottenere la percentuale del colpo (Hit) #-------------------------------------------------------------------------- def hit n = 100 for i in @states n *= $data_states[i].hit_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # * Metodo per ottenere la potenza d'attacco #-------------------------------------------------------------------------- def atk n = base_atk for i in @states n *= $data_states[i].atk_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # * Metodo per ottenere la potenza espressa in difesa fisica #-------------------------------------------------------------------------- def pdef n = base_pdef for i in @states n *= $data_states[i].pdef_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # * Metodo per ottenere la potenza espressa in difesa magica #-------------------------------------------------------------------------- def mdef n = base_mdef for i in @states n *= $data_states[i].mdef_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # * Metodo per ottenere la possibilità di fuggire da una battaglia #-------------------------------------------------------------------------- def eva n = base_eva for i in @states n += $data_states[i].eva end return n end #-------------------------------------------------------------------------- # * Metodo per cambiare HP # hp : nuovi HP #-------------------------------------------------------------------------- def hp=(hp) @hp = [[hp, maxhp].min, 0].max # aggiunge o esclude l'inabilità for i in 1...$data_states.size if $data_states[i].zero_hp if self.dead? add_state(i) else remove_state(i) end end end end #-------------------------------------------------------------------------- # * Metodo per cambiare SP # sp : nuovi SP #-------------------------------------------------------------------------- def sp=(sp) @sp = [[sp, maxsp].min, 0].max end #-------------------------------------------------------------------------- # * Metodo che permette di curare tutti i membri del party #-------------------------------------------------------------------------- def recover_all @hp = maxhp @sp = maxsp for i in @states.clone remove_state(i) end end #-------------------------------------------------------------------------- # * Metodo che permette di ottenere l'azione corrente #-------------------------------------------------------------------------- def current_action return @current_action end #-------------------------------------------------------------------------- # * Metodo per determinare la velocità d'azione #-------------------------------------------------------------------------- def make_action_speed @current_action.speed = agi + rand(10 + agi / 4) end #-------------------------------------------------------------------------- # * Metodo che serve per definire la Morte (incapacità di agire) #-------------------------------------------------------------------------- def dead? return (@hp == 0 and not @immortal) end #-------------------------------------------------------------------------- # * Metodo che serve per definire l'esistenza (capacità di agire) #-------------------------------------------------------------------------- def exist? return (not @hidden and (@hp > 0 or @immortal)) end #-------------------------------------------------------------------------- # * Metodo che serve per definire HP 0 #-------------------------------------------------------------------------- def hp0? return (not @hidden and @hp == 0) end #-------------------------------------------------------------------------- # * Metodo che definisce se un comando può essere eseguito #-------------------------------------------------------------------------- def inputable? return (not @hidden and restriction <= 1) end #-------------------------------------------------------------------------- # * Metodo che definisce se un'azione può essere possibile #-------------------------------------------------------------------------- def movable? return (not @hidden and restriction < 4) end #-------------------------------------------------------------------------- # * Metodo che definisce se si è in guardia #-------------------------------------------------------------------------- def guarding? return (@current_action.kind == 0 and @current_action.basic == 1) end #-------------------------------------------------------------------------- # * Metodo che definisce se si è capaci di resistere #-------------------------------------------------------------------------- def resting? return (@current_action.kind == 0 and @current_action.basic == 3) end end
2.
-
Ciao ragazzi come va, ultimamente ho riportato a galla dei vecchi topic. Pensavo di aiutare ripristinando alcune risorse e in alcuni casi applicare lievi migliorie. Oggi invece vi posto uno script che penso non vi sia nel nostro archivio. Se invece è presente, ho combinato un pasticcio. :)
Vabbe ad ogni modo ve lo posto lo stesso:SCREEN_TINT
http://www.mediafire.com/download/tjd4i7cski2279f/Screen_Tint.rar
Ovvero cambiare tonalità allo scenario.
Premetto che così com'è impostato nella Demo, non credo sia molto utile a qualcosa. Anche perché si può cambiare tonalità solo in fase di tester play e non se non si ha aperto il progetto attraverso Rpg Maker xp. In sostanza se eseguite solo il file Game.exe lo script non viene riconosciuto e quindi non viene eseguito. Invece se lo si prova dopo che si avrà aperto il file Game.rxproj, con l'apposito tool, allora tutto procede bene.
Seguendo le suddette istruzioni premete F8 vi apparirà
una finestrella con i parametri da modificare.
Se vi va, per cercare il colore giusto per le vostre scene potete consultare il mio Tomo_Cromatico presente qui:
http://www.rpg2s.net/forum/index.php/topic/18934-tomo-cromatico/
Dicevo, così strutturato, non mi sembra molto utile, anche perché se non si salva la partita, le impostazioni ritornano ad essere quelle di default.
Vi posto lo stesso lo script perché penso che può essere una buona base di partenza, per poter creare attraverso le nozioni apprese qui, qualcosa di meglio.
Ecco lo script:#------------------------------------------------------------------------------- # Screen Tint Debug Menu by Leon_Westbrooke #------------------------------------------------------------------------------- # Questo script permette di, in Debug mode, modificare la tinta dello schermo # fino a trovare una colorazione adatta. # NON imposterà automaticamente la tinta. Invece, bisognerà ricordare i numeri # ed usarli in un evento Cambia Screen Tone. Questo dovrebbe evitare # innumerevoli test per la colorazione adatta. # # Come usare: # Inserire lo script sopra Main e sotto gli altri script. # Per accedervi, andare in debug mode (F12) e premere F8. Apparirà la window di modifica. # Utilizzare le frecce direzionali per modificare le tinte. #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Game_Temp #------------------------------------------------------------------------------- class Game_Temp alias leon_stdm_gametemp_init initialize attr_accessor :tinttest_red attr_accessor :tinttest_green attr_accessor :tinttest_blue attr_accessor :tinttest_gray def initialize leon_stdm_gametemp_init @tinttest_red = 0 @tinttest_green = 0 @tinttest_blue = 0 @tinttest_gray = 0 end end #------------------------------------------------------------------------------- # END Game_Temp #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Spriteset_Map #------------------------------------------------------------------------------- class Spriteset_Map attr_accessor :viewport1 end class Game_Screen attr_accessor :tone end #------------------------------------------------------------------------------- # END Spriteset_Map #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Scene_Map #------------------------------------------------------------------------------- class Scene_Map alias leon_svcl_scenemap_update update def update leon_svcl_scenemap_update if $DEBUG and Input.press?(Input::F8) $scene = Scene_TintDebug.new end end end #------------------------------------------------------------------------------- # END Scene_Map #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Window_TintTest #------------------------------------------------------------------------------- class Window_TintTest < Window_Selectable def initialize super(0, 0, 192, 192) self.contents = Bitmap.new(width - 32, height - 32) @item_max = 5 self.index = 0 self.active = true refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, 160, 32, "Rosso" ) self.contents.draw_text(4, 32, 160, 32, "Verde" ) self.contents.draw_text(4, 64, 160, 32, "Blu" ) self.contents.draw_text(4, 96, 160, 32, "Grigio") self.contents.draw_text(4, 128, 160, 32, "Esci" ) self.contents.draw_text(-4, 0, 160, 32, $game_temp.tinttest_red.to_s, 2) self.contents.draw_text(-4, 32, 160, 32, $game_temp.tinttest_green.to_s, 2) self.contents.draw_text(-4, 64, 160, 32, $game_temp.tinttest_blue.to_s, 2) self.contents.draw_text(-4, 96, 160, 32, $game_temp.tinttest_gray.to_s, 2) end end #------------------------------------------------------------------------------- # END Window_TintTest #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Scene_TintDebug #------------------------------------------------------------------------------- class Scene_TintDebug def main @spriteset = Spriteset_Map.new $game_temp.tinttest_red = @spriteset.viewport1.tone.red.to_i $game_temp.tinttest_green = @spriteset.viewport1.tone.green.to_i $game_temp.tinttest_blue = @spriteset.viewport1.tone.blue.to_i $game_temp.tinttest_gray = @spriteset.viewport1.tone.gray.to_i @window_tint = Window_TintTest.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @window_tint.dispose @spriteset.dispose end def update if Input.trigger?(Input::B) $scene = Scene_Map.new end if @window_tint.active update_windowtint return end end def update_windowtint @window_tint.update case @window_tint.index when 0 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_red += 1 if $game_temp.tinttest_red >= 255 $game_temp.tinttest_red = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_red -= 1 if $game_temp.tinttest_red <= -255 $game_temp.tinttest_red = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_red += 5 if $game_temp.tinttest_red >= 255 $game_temp.tinttest_red = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_red -= 5 if $game_temp.tinttest_red <= -255 $game_temp.tinttest_red = -255 end end when 1 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_green += 1 if $game_temp.tinttest_green >= 255 $game_temp.tinttest_green = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_green -= 1 if $game_temp.tinttest_green <= -255 $game_temp.tinttest_green = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_green += 5 if $game_temp.tinttest_green >= 255 $game_temp.tinttest_green = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_green -= 5 if $game_temp.tinttest_green <= -255 $game_temp.tinttest_green = -255 end end when 2 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_blue += 1 if $game_temp.tinttest_blue >= 255 $game_temp.tinttest_blue = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_blue -= 1 if $game_temp.tinttest_blue <= -255 $game_temp.tinttest_blue = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_blue += 5 if $game_temp.tinttest_blue >= 255 $game_temp.tinttest_blue = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_blue -= 5 if $game_temp.tinttest_blue <= -255 $game_temp.tinttest_blue = -255 end end when 3 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_gray += 1 if $game_temp.tinttest_gray >= 255 $game_temp.tinttest_gray = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_gray -= 1 if $game_temp.tinttest_gray <= -255 $game_temp.tinttest_gray = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_gray += 5 if $game_temp.tinttest_gray >= 255 $game_temp.tinttest_gray = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_gray -= 5 if $game_temp.tinttest_gray <= -255 $game_temp.tinttest_gray = -255 end end when 4 if Input.trigger?(Input::B) $scene = Scene_Map.new end end red = $game_temp.tinttest_red green = $game_temp.tinttest_green blue = $game_temp.tinttest_blue gray = $game_temp.tinttest_gray @spriteset.viewport1.tone = Tone.new(red, green, blue, gray) $game_screen.tone = Tone.new(red, green, blue, gray) @window_tint.refresh @spriteset.update end end #------------------------------------------------------------------------------- # * Scene_TintDebug #-------------------------------------------------------------------------------Spero possa esseri utile :)
-
Ciao ragazzi forse posso esservi di Aiuto.
Dunque, spulciando fra i miei archivi, ho trovato:
Il Mode7 che cercate
http://www.mediafire.com/download/2892cxal7ryd0v0/Mode+7.zip
Ma se gradite posso anche postarvi la sua evoluzione..
http://www.mediafire.com/download/r39pabf8hqve4p1/DemoScriptNeoMode7_120508.rar
ecco annesso uno screen :)
Capisco che da questa immagine non si può capire molto, ma credetemi che ha delle funzionalità carine.
Anche perché penso che se accompagnato da una giusta grafica, questo script può rendere tantissimo.
Ruota la visuale, la inclina. Non abbiamo più la classica visuale dall'alto tipica dell'rmxp. Ma possiamo scegliere.
So di possederne degli altri, decisamente migliori solo che non mi ricordo in che folder li ho riposti. Però ci sono.
Comunque se li trovo posto qui. :)
Edit:
Ecco come promesso, ne ho trovato un altro ancora più bello:
http://www.mediafire.com/download/u8aojg65tg6g6a5/H3D+-+Mode.rar
Ed ecco la relativa immagine dimostrativa:
Ha solo un difetto, in visuale diagonale adotta la camminata a 4 dir standard, il che rende bruttino il muovere i personaggi, poiché non si rispettano le direzioni. Però considero questo script bello perché c'è la possibilità di creare un effetto ancora più 3D, sfruttando questi avvallamenti e dossi. Siamo sempre lì! Con una giusta grafica che lo accompagna, anche questo script può dare soddisfazioni. :)
EDIT2:
Per chi desidera avere un gioco solo in visuale isometrica..
http://www.mediafire.com/download/47yx3aa5157h612/Isometria.rar
Qui ho apportato una modifica al database originale. In sostanza ho aggiunto il character di Aluxel diagonale che nella risorsa originale non c'era, e lo reputavo brutto a vedersi. Questo tipo di prospettiva e in questo caso, le tonalità della grafica di ambientazione mi fanno pensare a Secred - la leggenda dell'arma sacra. :)
EDIT3:
E poi non c'è davvero più 3D di questo.
http://www.mediafire.com/download/ug99pfxelli0d9y/DF3DRMXPSDKR4.rar
Per chi è amante dei giochi in prima persona, quali spara-tutto e simili. Questo script fa al caso vostro, però necessita di alcuni miglioramenti. L'idea è ottima, tanto è, che sembra di lavorare dentro un ambiente di Unity 3D. Solo che devo dire che lo script necessita di qualche rivisitazione.
Vi spiego subito perché dico questo. Una volta avviato il tester ci accorgiamo che il progetto risponde perfettamente ma il problema si pone, quando volete chiudere l'applicazione. Buona fortuna :) .
No scherzo, io ho risolto così (premesso che uso windows7) tengo premuto il tasto con l'iconcina di windows e in più scorro con il tab fino al desktop, in questo modo il programma si rimpicciolisce e io posso tornare ad avere il comando del mouse. chiudo il tester rmxp con il tasto destro nella barra in basso delle applicazioni, digito chiudi finestra e lui va via. Mi appello a chi di queste cose ci capisce, se vi va risolvete, perché può essere un bello script. ;)

Anti-Event Lag
in Scripts RGSS (XP)
Posted
Oddio.. Sai che non penso che sia poi così complicato.
Infondo..(correggetemi se sbaglio) un touchscreen e una sorta di toucpad in full screen no?
Io ad esempio con il system Mouse da me postato di recente uso tranquillamente il touchpad del computer e non il mouse.
. . .
Ad ogni modo c'è da informarsi.
. . .
Per quanto riguarda il discorso del Mobile. Mi pare che sull'appStore ci sia una sorta di NekoRpg che permette di far avviare i giochi di rpg maker su dispositivi android.
E c'è da chiedersi.....come fanno a convertire gli input da tastiera in segnali trasferibili al touchscreen dei dispositivi mobili?