Crystal Administrateur
Nombre de messages : 315 Date d'inscription : 03/08/2005
| Sujet: [RMXP][Script] Dark_Area Mer 20 Aoû - 20:52 | |
| Tout d'abord, importez cette image dans le dossier Pictures de votre projet RMXP avec le blanc en couleur de transparence et renommez-la "dark-area": https://2img.net/r/ihimizer/img208/8702/darkareajw9.pngEnsuite, ajoutez ce script nommé Dark_Area au-dessus du script Main: - Code:
-
#===================================================== # Dark_Area #===================================================== # - Crée par Crystal le 22/04/08 # - Version 1.0 #===================================================== =begin
Ce script permet dans l'idéal de noircir la zone autour d'un évènement ou du héros, bien qu'on puisse en exploiter davantage de possibilités.
#=====================================================
Pour utiliser le script vous devez entrer la commande:
dark_area(a, b, [c, d, e], f, g, [h, i, j]) ● a est l'opacité de la zone obscurcie. (0-255) ● b est le pourcentage du champ de vision par rapport à l'image utilisée. (100-infini) ● c est le pourcentage de variations constantes de la taille de l'image. (toute valeur) ● d est le temps de transition entre ces variations en frames. ● e est la variation d'opacité lors de la transition. ● f est l'image utilisée si vous en prenez une particulière. ("mon_image.ext") ● g est l'ID de l'évènement cible de l'image. Si non précisé, c'est le héros. ● h, i et j sont respectivement les valeurs de couleur rouge, vert et bleu de l'image. (0-255)
#=====================================================
Vous pouvez utiliser Dark_Area::Set[p] pour choisir un élément qui revient fréquemment, où p représente une position du tableau Set.
#=====================================================
La commande doit être dans un évènement en processus parallèle suivie d'une attente d'une frame pour éviter le ralentissement du jeu.
● Si vous omettez des paramètres, des valeurs sont définies. ● Il faut utiliser "erase_dark_area" ou "dark_area_off" pour effacer l'image. ● L'image doit être dans "Graphics/Pictures/".
=end #=====================================================
module Dark_Area Base_Opacity = 255 Base_Percent = 100 Base_Image = "dark-area" Base_Target = 0 Base_Tone = 0 Set = [ ] end
#=================================================== # Fonction d'initialisation #===================================================
def dark_area(opacity = Dark_Area::Base_Opacity, percent = Dark_Area::Base_Percent, variations = [0, 0, 0], image = Dark_Area::Base_Image, target = Dark_Area::Base_Target, tone = Dark_Area::Base_Tone) @dark_area.dispose if @dark_area != nil # Initialisation de l'image @dark_area = RPG::Sprite.new @dark_area.bitmap = RPG::Cache.picture(image) if target != 0 @dark_area.x, @dark_area.y = $game_map.events[target].screen_x, $game_map.events[target].screen_y - 32 else @dark_area.x, @dark_area.y = $game_player.screen_x, $game_player.screen_y - 32 end @dark_area.ox, @dark_area.oy = @dark_area.bitmap.width / 2, @dark_area.bitmap.height / 2 if variations[1] != 0 @a = -1 if @a == nil @count = 1 if @count == nil if @count > variations[1] @inverse_var = true end if @inverse_var @count -= 1 if @count <= 0 @a = -@a; @count = 1; @inverse_var = false end else @count += 1 end percent += variations[0] * @count / variations[1] * @a opacity += variations[2] * @count / variations[1] * @a end @dark_area.tone = Tone.new(tone[0], tone[1], tone[2], 255) if tone.is_a?(Array) @dark_area.zoom_x, @dark_area.zoom_y = percent / 100.0, percent / 100.0 @dark_area.opacity = opacity # Fin de l'initialisation end
#=================================================== # Fonction d'effacement #===================================================
def erase_dark_area return if @dark_area == nil @dark_area.dispose end alias dark_area_off erase_dark_area Donc en gros pour l'utiliser, lisez les lignes en haut dans le script. Brièvement, il suffit de mettre un évènement en processus parallèle sur les cartes voulues: - Code:
-
Script: dark_area() Attendre 1 frame Et le héros aura un effet lampe de poche autour de lui. Si vous utilisez bien le script, vous devriez avoir des résultats convaincants. Essayez de changer des paramètres, de changer l'image, etc... Vous pourrez probablement y trouver votre compte. =P Note: Note: pour l'instant, l'image est coupée à l'extrémité de la map quand elle est réduite à moins de 100 % de zoom, rien de grave. Pour y remédier:
- Faire votre effet sur une image de la même taille que celle plus haut.
Ou
- Faire une plus grande zone noire. Exemples: | |
|