Jump to content
Rpg²S Forum

*Anti Event Lag Script


DaD
 Share

Recommended Posts

Descrizione
Questo script è uno dei piu' utili che sia stato mai creato per questo tool, infatti riesce a non far rallenatre il gioco anche se vi sono molti eventi su una o piu' mappe ;)

Autore

Near Fantastica

Istruzioni per l'uso
Per usarlo create un classe sopra Main, chiamatela AntiLag_Events e inseriteci questo codice:

 

 

#====
# ■ 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 $game_map.need_refresh
  refresh
end
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

 

 

 

Edited by Apo
applicato tag code

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

chiarimento: lo script cosa fa esattamente? disattiva gli eventi al di fuori di una certa portata?

 

 

 

O_______________________________________________________O

(metà delle cose che fanno le faccio anch'io zizi)

(sto qua invece è un mostro....)

 

 

 

Link to comment
Share on other sites

chiarimento: lo script cosa fa esattamente? disattiva gli eventi al di fuori di una certa portata?

In pratica quando ci sono molti eventi su mappa rmxp tende a rallentare il gioco e farlo piu' pesante in termini di sforzo per il pc, questo Script elimina questo difetto, così anche nelle mappe piene di eventi non ci sarà nessun tipo di rallentamento.

 

peccato, mi sarebbe molto utile, ma non mi funziona :chirol_gusun:

spiegati meglio, che errore ti da?...

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

non è che mi dà errore, è solo che non mi risolve niente

Ti faccio presente che, lo script fa si che gli eventi che non compaiono nella mappa non vengano eseguiti (Processi paralleli ed inizi automatici a parte).

Se metti tutti gli eventi in una mappa 20x15 vengono eseguiti tutti, quindi lo script è appunto come se nn ci fosse.

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

è questo il problema. se ho un mucchio di eventi che si attivano anche fuori dalla visuale non mi andrà nulla......bisognerbbe distinguere gli eventi fuori dalla visuale che "rimangono lì" e non fanno nulla e quelli che devo attivare anche se non li vedo.....

 

 

 

O_______________________________________________________O

(metà delle cose che fanno le faccio anch'io zizi)

(sto qua invece è un mostro....)

 

 

 

Link to comment
Share on other sites

  • 3 years later...

Grazie! Proprio quello che mi serviva!

 

Che sia o meno un topic vecchio... volevo ringraziare perchè non trovavo lo script da nessuna parte. :biggrin:

Hai risolto un grosso problema! Thanks! :rovatfl:

Targhetta: http://img717.imageshack.us/img717/7703/fcp3.png Face Contest (e non me n'ero accorta°-°)

- o - o -

http://i670.photobucket.com/albums/vv69/Atzlith/OdiernaTitlemini.png

Il miglior negozio Kawai trovato! Ve lo consiglio! ;)

http://i670.photobucket.com/albums/vv69/Atzlith/MilkShop.png

Link to comment
Share on other sites

  • 11 months later...
  • 6 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...