| Script Lumière compatible avec le Script de temps | |
|
|
Auteur | Message |
---|
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Lun 5 Avr 2010 - 19:04 | |
| J'ai essaye ta méthode mais la l'image de la lampe se met en mode éteinte effectivement mais elle brille toujours ... J'ai trouvé le même moyen pour la lampe mais a chaque fois c'est la lumière qui marche pas. Et personne ne sait pourquoi ni comment ni rien .Le problème commence effectivement à m'énerver, normal cela vas faire 2mois que je cherche. et avec la méthode que j'ai fait à savoir ( 2 interrupteurs (Lumières On, Lumières Off) Page 1 Lumières On activé Commentaire (Fire) page deux Lumières Off activé et dans l'event générale (00h00 par exemple = Interrupteur Lumière On activé / Lumières Off désactivé) |
|
| |
Habitant Lv.6
Age : 44 Inscrit le : 19/07/2009 Messages : 142
| Sujet: Re: Script Lumière compatible avec le Script de temps Mar 6 Avr 2010 - 7:32 | |
| Je suis désolée, je ne vois pas pourquoi ça ne marche pas chez toi... Si tu as bien pensé à changer l'ID de l'interrupteur dans le code, et à insérer l'appel de script permettant de faire un refresh sans sortir/re-entrer dans la map, normalement, ça aurait dû fonctionner. Dans ces cas-là, on a tendance à demander, par exemple, si tu utilises d'autres scripts qui pourraient créer un conflit ? As-tu essayé de créer cette méthode dans un projet vierge, pour voir si ça fonctionne ? Est-ce que tu as essayé de tester un par un chaque style de commentaire ? (Je me souviens avoir rencontré quelques problèmes avec certains d'entre eux que, du coup, je n'utilise pas) Juste pour être sûre, voici le code que j'utilise : - Code:
-
#============================================================================== # ■ Light Effects VX 1.1 # 5.21.2008 #------------------------------------------------------------------------------ # Script by: Kylock (originally for RMXP by Near Fantastica) # Traduction fr : Blockade #============================================================================== # Pour faire un effet de lumiére, inserer un commentaire avec le nom du mode voulu. # modes. # The SWITCH setting below will disable light effects from updating with the # switch is on. #============================================================================== # ● Change Log #------------------------------------------------------------------------------ # 1.0 - Original Release # 1.1 - New light modes added: LIGHT2, TORCH, TORCH2 # - Changed sprite blend mode to ADD (looks slightly better) # - Fire-based lights are now red in color #============================================================================== # ● Modes : #------------------------------------------------------------------------------ # GROUND - Lumiére blanche, intensitée moyenne # FIRE - Lumiére rouge, intisitée forte # LIGHT - Lumiére Blanche, intensitée petite # LIGHT2 - Lumiére blanche intensitée forte # TORCH - Lumiére rouge, intesitée forte, ondule # TORCH2 -Lumiére rouge, intesitée forte #==============================================================================
class Spriteset_Map alias les_spriteset_map_initalize initialize alias les_spriteset_map_dispose dispose alias les_spriteset_map_update update def initialize @light_effects = [] setup_lights les_spriteset_map_initalize update end def dispose les_spriteset_map_dispose for effect in @light_effects effect.light.dispose end @light_effects = [] end def update les_spriteset_map_update update_light_effects end def setup_lights for event in $game_map.events.values next if event.list == nil for i in 0...event.list.size if event.list[i].code == 108 and event.list[i].parameters == ["GROUND"] type = "GROUND" light_effects = Light_Effect.new(event,type) light_effects.light.zoom_x = 2 light_effects.light.zoom_y = 2 light_effects.light.opacity = 100 @light_effects.push(light_effects) end if event.list[i].code == 108 and event.list[i].parameters == ["FIRE"] type = "FIRE" light_effects = Light_Effect.new(event,type) light_effects.light.zoom_x = 300 / 100.0 light_effects.light.zoom_y = 300 / 100.0 light_effects.light.opacity = 100 @light_effects.push(light_effects) end if event.list[i].code == 108 and event.list[i].parameters == ["LIGHT"] type = "LIGHT" light_effects = Light_Effect.new(event,type) light_effects.light.zoom_x = 1 light_effects.light.zoom_y = 1 light_effects.light.opacity = 150 @light_effects.push(light_effects) end if event.list[i].code == 108 and event.list[i].parameters == ["LIGHT2"] type = "LIGHT2" light_effects = Light_Effect.new(event,type) light_effects.light.zoom_x = 6 light_effects.light.zoom_y = 6 light_effects.light.opacity = 150 @light_effects.push(light_effects) end if event.list[i].code == 108 and event.list[i].parameters == ["TORCH"] type = "TORCH" light_effects = Light_Effect.new(event,type) light_effects.light.zoom_x = 6 light_effects.light.zoom_y = 6 light_effects.light.opacity = 150 @light_effects.push(light_effects) end if event.list[i].code == 108 and event.list[i].parameters == ["TORCH2"] type = "TORCH2" light_effects = Light_Effect.new(event,type) light_effects.light.zoom_x = 6 light_effects.light.zoom_y = 6 light_effects.light.opacity = 150 @light_effects.push(light_effects) end end end for effect in @light_effects case effect.type when "GROUND" effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8 effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8 effect.light.blend_type = 1 when "FIRE" effect.light.x = (effect.event.real_x - 600 - $game_map.display_x) / 8 + rand(6) - 3 effect.light.y = (effect.event.real_y - 600 - $game_map.display_y) / 8 + rand(6) - 3 effect.light.tone = Tone.new(255,-100,-255, 0) effect.light.blend_type = 1 when "LIGHT" effect.light.x = (-0.25 / 2 * $game_map.display_x) + (effect.event.x * 32) - 15 effect.light.y = (-0.25 / 2 * $game_map.display_y) + (effect.event.y * 32) - 15 effect.light.blend_type = 1 when "LIGHT2" effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 effect.light.blend_type = 1 when "TORCH" effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 effect.light.tone = Tone.new(255,-100,-255, 0) effect.light.blend_type = 1 when "TORCH2" effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 effect.light.tone = Tone.new(255,-100,-255, 0) effect.light.blend_type = 1 end end end def update_light_effects if $game_switches[0] for effect in @light_effects next if effect.type == "FIRE" || effect.type == "TORCH" effect.light.visible = false end else for effect in @light_effects next if effect.type == "FIRE" || effect.type == "TORCH" effect.light.visible = true end end for effect in @light_effects case effect.type when "GROUND" effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8 effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8 when "FIRE" effect.light.x = (effect.event.real_x - 600 - $game_map.display_x) / 8 + rand(6) - 3 effect.light.y = (effect.event.real_y - 600 - $game_map.display_y) / 8 + rand(6) - 3 effect.light.opacity = rand(10) + 90 when "LIGHT" effect.light.x = (-0.25 / 2 * $game_map.display_x) + (effect.event.x * 32) - 15 effect.light.y = (-0.25 / 2 * $game_map.display_y) + (effect.event.y * 32) - 15 when "LIGHT2" effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 when "TORCH" effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 + rand(20) - 10 effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 + rand(20) - 10 effect.light.opacity = rand(30) + 70 when "TORCH2" effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 effect.light.opacity = rand(10) + 90 end end end end
class Light_Effect attr_accessor :light attr_accessor :event attr_accessor :type def initialize(event, type) @light = Sprite.new @light.bitmap = Cache.picture("le.png") @light.visible = true @light.z = 1000 @event = event @type = type end end Et l'image, que j'ai refaite moi-même sous Photoshop car l'image d'origine me semblait vraiment trop pixelisée : Et pour l'event commun du temps qui s'écoule : en processus parallèle, activé par un interrupteur que j'active dans la première map de mon jeu. |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Dim 11 Avr 2010 - 17:04 | |
| Même sur une nouveau projet sa me fait toujours le même résultat .. |
|
| |
Habitant Lv.6
Age : 44 Inscrit le : 19/07/2009 Messages : 142
| Sujet: Re: Script Lumière compatible avec le Script de temps Dim 11 Avr 2010 - 18:38 | |
| Ben je ne vois pas du tout le problème, navrée... Chez moi, la gestion du temps telle que décrite par Gothor + script Light Effects de Kylock + astuces trouvée dans ce sujet m'a permis de faire des effets de lumière sympa, dans des maps d'extérieur comme intérieur et la transition se fait de manière fluide, naturelle et surtout immédiate, pas besoin de sortir/entrer sur la map pour que l'effet soit pris en compte : - Spoiler:
J'ai fais en sorte de m'assurer que pour chaque étape de la variable heure il se produise les changements, de sorte que même si plus tard j'ai un sort permettant de changer le jour en nuit sans suivre l'ordre de l'écoulement des heures, les changement se feront. Plus clairement, si je fais un sort de jour qui mets l'heure à 7h, alors qu'il était 20h, le changement est prévu dans la variable de l'heure = 7, comme celle de l'heure = 20. Alors c'est vrai que ça charge pas mal l'event commun en ligne de commande (changer ton de l'écran, activer tel interrupteur, désactiver tel autre, appel de script pour le refresh...ce pour chaque heure) mais au moins c'est complet et prêt à être exploité plus avant. Par exemple grâce à ça je vais pouvoir faire apparaître des animaux nocturnes, d'autres diurnes. Les PNJ iront dormir la nuit (alors là par contre j'ai pas trouvé comment rendre la chose naturelle, il disparaissent d'un coup...) En plus, il faut savoir que les fenêtres de certains bâtiments passent par 3 étapes : allumées le soir, éteintes en pleine nuit, clair le jour... J'avoue ça m'a quand même demandé quelques tâtonnements, mais là c'est au point. Et c'est pour ça que je ne comprends pas pourquoi ça ne marche pas pour toi... |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Dim 11 Avr 2010 - 18:46 | |
| nous sommes deux à pas comprendre. |
|
| |
Citadin Lv.7
Inscrit le : 26/10/2009 Messages : 166
| Sujet: Re: Script Lumière compatible avec le Script de temps Dim 11 Avr 2010 - 18:58 | |
| Maègedyn pourrait tu ,nous faire une démo de ton systéme ?
Je te remerci |
|
| |
Habitant Lv.6
Age : 44 Inscrit le : 19/07/2009 Messages : 142
| Sujet: Re: Script Lumière compatible avec le Script de temps Lun 12 Avr 2010 - 16:41 | |
| Voilà, j'ai fait la démo et testé, ça marche chez moi. http://www.megaupload.com/?d=O064C3B4 |
|
| |
Citadin Lv.7
Inscrit le : 26/10/2009 Messages : 166
| Sujet: Re: Script Lumière compatible avec le Script de temps Lun 12 Avr 2010 - 16:53 | |
| merci ,je suis entrain de la téléchargé. |
|
| |
Habitant Lv.6
Age : 44 Inscrit le : 19/07/2009 Messages : 142
| Sujet: Re: Script Lumière compatible avec le Script de temps Lun 12 Avr 2010 - 16:56 | |
| Tiens moi au courant |
|
| |
Citadin Lv.7
Inscrit le : 26/10/2009 Messages : 166
| Sujet: Re: Script Lumière compatible avec le Script de temps Mer 14 Avr 2010 - 22:02 | |
| La démo marche très bien,mais je n'est rien compris ^^ |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Ven 16 Avr 2010 - 0:45 | |
| Moi j'arrive à faire marcher merci, mais la nouveau problème, à cause du refresh des map pour les lumière, cela refresh aussi les events ce qui veut dire que par exemple j'ai une maison et une map, map 1 je fait un event qui s'efface à la fin, je vais dans la maison je revient l'event recommence de nouveau alors qu'il est censé être effacé. A moins que cela ne vienne pas de la... Mais je n'avais pas ce problème avant. |
|
| |
Habitant Lv.6
Age : 44 Inscrit le : 19/07/2009 Messages : 142
| Sujet: Re: Script Lumière compatible avec le Script de temps Ven 16 Avr 2010 - 16:54 | |
| @neverwinter : Je crois que cette commande "effacer l'event", avec ou sans ma méthode d'effet de lumière tu auras le même truc si tu sors/entre sur ta map. Quelqu'un d'autre pourrais confirmer (ou infirmer) ? Si tu veux que l'event ne se reproduise plus, tu devrais plutôt ajouter une page vierge activée par interrupteur locale et en mettant "au dessous du héros".
@Maxime62100 : J'ai essayé de faire un truc plus simple, mais là du coup ça ne marche plus, l'effet de lumière dû au script est permanent... Apparemment, ma méthode nécessite impérativement la gestion du temps dans son ensemble. Toi ce que tu voudrais c'est un état nuit et un état jour, or pour que ma méthode fonctionne, il faut un écoulement de temps. Bref, pour être claire, je n'arrive pas à faire marcher le truc autrement...désolée... |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Sam 17 Avr 2010 - 16:41 | |
| Il n'y a pas un autre moyen de supprimer un event définitivement sans avoir à créer un interrupteur pour chacun ? |
|
| |
Maire Lv.9
Age : 26 Avertissements : 1 Inscrit le : 26/06/2009 Messages : 329
| Sujet: Re: Script Lumière compatible avec le Script de temps Sam 17 Avr 2010 - 19:17 | |
| c'est pourtant simple tu fait une variable heure minute et seconde etc... et tu fais 2 pages d'event
1ère page : Si variable heure est supérieure à 20 H = activer int local A
2ème(ki s'active grâce à l'inter A) : Commentaire = light si variable heure supérieure à 7 H = désactivint local A et voilà |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Sam 17 Avr 2010 - 20:42 | |
| C'est bon sa marche mais la je voudrais savoir ceci : Il n'y a pas un autre moyen de supprimer un event définitivement sans avoir à créer un interrupteur pour chacun ? |
|
| |
Voyageur Lv.10
Age : 27 Inscrit le : 12/03/2010 Messages : 465
| Sujet: Re: Script Lumière compatible avec le Script de temps Sam 17 Avr 2010 - 20:50 | |
| Interrupteurs locaux ^^Très pratiques ^^ Mais la a 23H00 (j'arrondis), j'ai la flemme de constructiver*
*post constructif. |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Lun 24 Mai 2010 - 17:31 | |
| Désolé pour l'inactivité mais je n'avais plus internet.
Non la je parle par exemple je crée un évènement, je veut que par la suite quand il arrive à sa fin il exécute donc le "supprimer l'event" et que si par exemple je sort de la zone ou je me TP et que je revient à cette évènement et bien qu'il ne soit plus du tout. Car la si je TP mon personnage puis le ramène de nouveau sur la map de l'event dit, celui ci est denouveau la !
Avez vous une solution svp ? Merci d'avance. |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Jeu 27 Mai 2010 - 19:49 | |
| Up, personne ? |
|
| |
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
| Sujet: Re: Script Lumière compatible avec le Script de temps Jeu 27 Mai 2010 - 21:49 | |
| Tu fais comme ça :
Page 1 de l'event à l'appui d'une touche et sans condition : Afficher message : "Blabla..." Activé interrupteur [001:Event] Effacercet évènement
Page 2 de l'évent en procesus parallèle et avec une condition (A condition que l'interrupteur [001:Event] est activé) : Effacer cet évènement
Tu as compris ? Biward |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Ven 28 Mai 2010 - 15:55 | |
| Ok je vais essayé m'avais pas pensé à sa, merci bien. |
|
| |
Poulet trizo Lv.3
Inscrit le : 13/10/2008 Messages : 45
| Sujet: Re: Script Lumière compatible avec le Script de temps Dim 30 Mai 2010 - 21:54 | |
| Merci bien sa marche impec, je voudrais juste savoir encore un petit truc ^^ si je fait pas mal d'event de ce style et qu'il y a des centaines d'interrupteur sa risque rien ? |
|
| |
| Sujet: Re: Script Lumière compatible avec le Script de temps | |
| |
|
| |
| Script Lumière compatible avec le Script de temps | |
|