Sujet n°873
Posté par naruto6660 le 25 Mai - 13:12 (2008)
Titre : [Script] Anti-lag
Code:
#======================================
# â– 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





Voilà comme sa vous lager plus pour pokemon ^^ Bonne journée

Posté par Zelda le 25 Mai - 13:12 (2008)
Je vois pas de différence moi :/

Posté par naruto6660 le 25 Mai - 13:44 (2008)
si enfait si tu mais trop d'évenement sa ne te fait plus lager ^^

Posté par Pio le 25 Mai - 14:23 (2008)
ou le met ou cet event sur la map en question ?

Posté par Dark' le 25 Mai - 14:59 (2008)
C'est un script, cette fois...

Posté par naruto6660 le 25 Mai - 15:23 (2008)
mais non se scipt tu le met en dessu de main et voilà ^^ xD comme sa imagine 29 evenement sa bug un peu... et bha grace a sa sa bug pas ^^

Posté par Dark' le 25 Mai - 15:41 (2008)
C'est cool. Surtout pour la map !

Posté par <€d> le 25 Mai - 16:35 (2008)
C'est cool 8)

Posté par Droledami le 25 Mai - 21:06 (2008)
Il marche bien...déja testé jadis...

Posté par Coolman59 le 25 Mai - 23:52 (2008)
Ceci est très utile pour les gros projets. Je teste. !

Posté par naruto6660 le 26 Mai - 06:45 (2008)
oui au moin moi je bug plus ^^ et vous?

Posté par <€d> le 26 Mai - 07:06 (2008)
Pareil

Posté par Pio le 26 Mai - 11:38 (2008)
naruto6660 a écrit:
masi non se scipt tu le met en dessu de main et voilà


main ? Dsl je suis nul mais a force j'y arriverais ^^'

Posté par Dark' le 26 Mai - 13:37 (2008)
Donc, a coté de la BDD (tu vois l'icone pour y aller ? Car moi par exemple j'ai prit du temps, habitué à appuyé sur F9...) il y a un autre icone "Editeur de Script", aussi accessible par la touche F11. Et là, tu as tout les scripts du jeu. Le dernier s'appelle Main, tu place ce script au dessus (clique droit, "nouveau Script" ). Voilà ! Si tu veux des screens, si tu n'y arrive pas, je suis à ta disposition !

Posté par Pio le 26 Mai - 15:29 (2008)
Oké merci beaucoup darkange ^^

Posté par Dark' le 26 Mai - 17:19 (2008)
De rien : j'adore aider les gens ! C'est ma raison de vivre ^^

Posté par naruto6660 le 31 Mai - 16:08 (2008)
Voila pio tu apprend s'est normale ^^

Posté par MoussPSP le 11 Juil - 18:57 (2008)
Hii ce script fait buger la fonction jonction_map()...

Posté par blblbl le 12 Juil - 18:42 (2008)
bref je vais l'essayer quand j'aurai le temps...

Posté par bliinkoo le 15 Juil - 15:08 (2008)
Ca marche bien durant le jeu pour moi mais à l'écran titre il est un peu plus long ... Je pense que c'est normal non ? Yeux motorisés

Posté par MoussPSP le 15 Juil - 16:06 (2008)
Boarf, pour moi ce script est nul puisque qu'il fait tout buger le Maplink...

Posté par Suicune31 le 13 Sep - 23:16 (2008)
Je crois qu'il fait beugé le script Reflet . parsque le reflet me suis mais il reflete pas mon perso . . . (par exemple : su je fait surf vers la droite , le reflet restera tout le temp vers la droite )


voilà :(

Posté par Pαlвσlѕку le 14 Sep - 21:49 (2008)
Ce script fait buger le maplink car le principe de script, c'est d'ignoré les événements qui sont trop loin du personnage principal. Alors imaginer que sans prévenir, le maplink s'arrêterai et reprendrai tout le temps, alors ça bug (logique^^).