Canalblog Tous les blogs Top blogs Jeux & Jeux Vidéo Tous les blogs Jeux & Jeux Vidéo
Suivre ce blog Administration + Créer mon blog
MENU

Ressourcez votre RPG !

Publicité
Ressourcez votre RPG !
  • Partage de ressources graphiques pour Rpg maker VX, customisées ou créées par Vincentmhd. Utilisation libre (si non commerciale) quand c'est signalé, nécéssité de citer l'auteur avec un lien vers la gallerie...
  • Accueil du blog
  • Créer un blog avec CanalBlog
Publicité
Newsletter
Publicité
8 septembre 2010

#1

Voilà quelques nouvelles ressources...

Auto-tile:

BenbenVX

Sur la base d'un tileset de Benben.

TileSet:

TIleSet réalisé à partir du pack Acasia de Vakan

.

Characters:

animau10

Chauve sourie full custom

exteri11

Lampadaire belle époque sur la base de rtp VX 

Publicité
8 août 2010

Light Effect

Effets Lumineux Mhd



-Auteurs: Kylock, VincentMhd
-Introduction

C'était un peu dans l'air du temps, CloudStrife en a sorti un, il n'y a pas longtemps. Voilà ma petite version.
Enfin, un effet lumineux sans pixels zoomés 6 fois... (pour kamikaz93 Wink )

Il n'est pas totalement fini, mais en fait, ce qui n'est pas achevé, il est possible de le faire en event commun, donc ce n'est pas vraiment important.

Liste des possibilités:
Ton, dimensions, et positions paramétrables.
Un event peut déclarer tout les effets de la map, les effets peuvent être fixés à la map, aux events ou au player.
Possibilités d'allumer et d'éteindre les lumières individuellement, et en masses, progressivement (en 60 frames).
Possibilités aussi de les redimensionner individuellement, progressivement.

Possibilité d'obscurcir des maps, et d'utiliser les lumières pour éclairer par compensation les zones sombres.

Et pour les courageux ayant des quelques connaissances en script, possibilité d'ajouter assez facilement, d'autres formes d'effets lumineux.[/justify]

 
 









-Installation

Ce script n'échappe pas à la régle du "copiez en dessous de material".
Il a besoin de l'image "le.png" dans votre dossier Pictures.


-Utilisation

Franchement, je n'ai pas le courage de réécrire ce qu'il y a dans le script et dans la démo.
Lisez le script si dessous pour plus de détails.
J'ai qu'une chose à dire, respectez bien la synthaxe.
-script

Spoiler:
 


_________________

8 mai 2010

Auto- téléportation

Auto-téléportation



-Introduction

Ce script permet de lier des maps entre elles, afin que le personnage soit téléporté automatiquement, s'il franchit le bord de cette dernière. Pour exemple, c'est comme les vieux Zelda. J'ai utilisé une version plus chaotique, hors concours >>Last Hope. c'est une grosse économie d'évents de téléportation.



-Installation

Ce script n'échappe pas à la régle du "copiez en dessous de material".
Il n'a pas de nécéssité particulière.
Peut-être des problèmes avec les scripts modifiant la passabilité.

-Utilisation

Créez vos sets dans le script Mhd_TP.
Les sets sont des hashes contenant un tableau 2D pour contenir des id de maps. On peut les comparer à des maps de maps.
C'est relativement simple, il y a une petite notice à l'intérieur.

Pour activer le script, il y a un interrupteur, le 1 par défaut. Vous pouvez modifier les coordonnées du héros dans le set à tout moment:
$game_tp.set_coord(x,y, set)
x et y sont les coordonnées de la map dans le tableau
Il y a une méthode pour se téléporter sur un emplacement précis d'un set:
$game_tp.teleportation(set, m_x, m_y, y, x, direction, [active = true])
m_x et m_y sont les coordonnées de la map dans le tableau,
y, x celle du perso sur la map.
Vous pouvez vous téléporter d'un set à un autre set:
$game_tp.tp_set(set)
Vous pouvez aussi simplement désactiver le script pour revenir à une méthode plus classique. La téléportation normale fonctionne aussi quand le script est actif.

-script

Spoiler:



-Démo

>>Démo

_________________

29 mars 2010

Tournoi de Mapping:: Quart de final

Tournoi de Mapping:

Quart de finale

J'avous, je me la pète un peu en disant quart de final, car il ne s'agit que de la première épreuve...

Voilà ce qui m'était demandé: il me fallait mapper un temple au sommêt d'une montagne, et faire attention à mon ambiance. Lien vers le sujet officiel
Voilà ce que j'ai rendu, assemblage de screen in game (il y a des déformations du au fog):

Map_Tournoi_1

J'ai gagné ma manche contre Elézia qui s'est bien défendu avec le sujet que j'avais filé:
La Maison de Barbie!

J'attend avec impatience la prochaine manche...

1 mars 2010

Mhd_Splatch.v1

Mhd_Splatch.v1



-Introduction

Voici ma version de ce script assez classique, il permet de faire des splatches avant un écran titre. Et aussi d'animer ce dernier, lui-même étant considéré comme un splatch.
Il requiert des notions de scripts pour le customiser, rien de bien méchant, cependant novice s'abstenir. Le plus dur est de ne pas s'emmêler dans les tableaux, de tableaux, de tableaux... vous voyez le trip?
Pour le momment il ne contient que ce dont j'avais besoin pour Last Hope, mais je vais devoir certainement le compléter. (Il n'y pas de translations avec les images pour le moment... assez bidon)
Je l'ai divisé en plusieurs scripts, c'est plus pratique pour moi ^^. Et pour ceux qui veulent le modifier et le compléter...



-Description

Cette scène écrase l'écran titre normal. L'écran titre est le dernier splatch du tableau. la fenêtre de commande s'ouvrira après le début du splatch et un temps déterminé par le maker ou quand le joueur zappera.
Les splatches sont à compléter dans un grand tableau, qui peut tourner en boucle si le maker le configure.
Les splatches sont zappables ou non si le maker le stipule dans le tableau. L'écran titre n'est pas zappable. ça permet de ne pas attendre un tour complet de la boucle à chaque démarrage, mais de pouvoir obliger le joueur de voir un minimum de splatch.



-Installation

Ce script n'échappe pas à la régle du "copiez en dessous de material".
Niveau compatibilité, alors là c'est un peu le mystère.

-Utilisation


En soi, il n'y a pas de consignes particulières d'utilisation.
"Entrer" et "Inser" permettent de zapper les splatchs,
"Inser" permet de faire apparaître la fenêtre de contrôle sur l'écran titre de manière anticipée.
(pas "Entrer" pour éviter les confusions avec les commandes de la fenêtre de contrôle)

-Configuration:

C'est là que ça va être plus compliqué. S'il y a des erreurs ça va être là.
Théoriquement, j'ai fait un effort de commentaires de script. ^^
Remplir le tableau de splatch de surcroît avec les exemples devrait ne pas trop poser de problème (je répête novice s'abstenir). Repérez bien le type d'images que vous voulez placer, un prototype du remplissage du tableau se trouve en-tête de la classe correspondante dans la partie Elements.

Pour ajouter des nouveaux types d'Images:

Toutes les images sont filles de la classe Image, afin qu'elles obeïssent aux consignes d'opacités.
Les differents types d'images sont reconnus par la méthode "create_contents" de la classe Splatch, il vous faudra lui rajouter un mot-clé supplémentaire, dans un "when", correspondant à la case "Type" des images dans le tableau de splatch sinon par défaut elles seront reconnues comme des images simples.

-Les scripts:

Je vous conseille de conserver l'ordre.


Mhd_Math
Comme dit dedans, c'est juste une commodité, des fonctions réccurantes dans differents scripts personnels

Spoiler:



Sprite +
Aussi une commodité, pour le placement des sprites
Spoiler:


Splatch Class Elements
Les types d'images.
Spoiler:


Scene_Splatch (Scene_Title +)
La classe Splatch, et la Scene_Title
Spoiler:






-Crédits : Vincentmhd
_________________

>> Démo

Publicité
28 février 2010

Concours Express Glace&Neige

CONCOURS EXPRESS:
Glace & Neige

Vers La page Officielle

Ce concours est organisé par Jebbou, je pense que c'est un prétexte pour réaliser des ressources froids, car on en manque cruellement. Et c'est exactement comme ça que je fonctionne, en plus ayant raté Last Hope je compte me rattrapper.

Bon j'ai déjà rendu, soit une semaine à l'avance. Je me permet de publier en attendant les résultats.

Je n'ai pas fait dans l'exceptionnel, j'ai passé quand même deux soirées à faire des ressources, donc j'ai eu ma dose!


Vue de la map dans l'éditeur

globale

         Il y a plusieurs parties. J'ai choisi de faire une 40x60, la plus grande taille autorisée, donc je crains peut-être le vide, surtout au niveau intéractions. Je n'ai pas beaucoup mis d'events d'interactions, il y en a bcp de décoration, notament pour la forêt, que vous ne voyez pas...

Screen In Game

village

foret

phare

Baleine

iceberg

Lien vers le projet

J'ai surtout fait de la créa et de la custom de character_set (Baleine, Pingouin, Feu).
J'ai réussi à glisser "MHD" sur la map.

Voilà les résultats annoncés par Jebbou:

"Le temps est venu d'annoncer le gagnant du concours Neige et Glace!! Après une chaude lutte à finir, voici les résultats des votes:


Première position: Le glacier des baleines par Vincentmhd (10 points)


Deuxième position: Village de noel par Tiroflan (4 points)


Troisième position: Star Wars par Kordarr (3 points)


Quatrième position: Village sous la neige par Randal (1 points)


Vincent s'en est bien tiré avec quelques graphiques custom, sa foret inégale et son impressionnant glacier. Plusieurs des voteurs on apprécié l'ambiance de la map de Tiroflan, ce qui lui a permis de ravir la deuxième place à Kordarr, qui s'est tout de même démarqué avec ses graphiques custom de starwars. Donc félicitation à nos participants pour ce concours de graphisme! Merci à tous pour votre participation, et au jury d'avoir pris le temps de voter! Je vous invite à laisser vos commentaires constructifs à propos des maps.

Cordialement,

Jebbou"

Je suis content d'avoir gagné, cependant je regrette le nombre peu important de participants.
4 participants pour 6 votants...
(je compte bien en fait, 5 votants ont voté pour moi en 1ère place, et comme je n'ai pas voté pour moi, c'est un casi grand chlème)

23 février 2010

Last Hope (Hors Concours...)

ecran_titre

Vers la page Officielle...

        Ce concours de proposé encore par Miraïno Hikari portait sur le temps. Il fallait réaliser 3 maps d'un même lieu en 3 époques différentes. Ce sujet m'a beaucoup interressé peut-être trop car je n'ai pas réussi à m'arrêter dans mon élan. D'où ma participation hors concours.

J'ai encore beaucoup appris pendant ce concours. Notamment en scriptage de Scene. J'ai réalisé 2 scenes entièrement scriptée par moi-même. La première: l'écran titre avec ces splatchs.

Il existe de nombreux scripts pour cela. C'est un exercice classique. Mais il m'a beaucoup appris sur les sprites et les viewports. On peut zapper certains splatchs et d'autres non (au choix du maker). Ici, l'écran titre (ci-dessus) n'est pas particulièrement beau, mais il est animé. L'aiguille tourne en fesant tac-tac, et les cercles du pendentif tournoient.

Les splatchs:

Le_concours        Vincentmhd

Le_medaillonLa deuxième scène concerne un moment clé du concours:: le saut dans le temps. Dans le sujet, il était demandé  d'utiliser un pendentif. Mon pendentif est composé de 3 cercles pivotants les un par rapport aux autres. Le sens des rotations détermine la destination.

Le cercle moyen détermine le sens du voyage.
Les deux autres cercles déterminent si on avance d'une période ou de 2.
La grande est pour le sens passé, la petite pour le sens avenir.
Cela signifie qu'il y en a une qui sert à rien selon le sens de la moyenne. 

Ca n'est pas très spectaculaire mais ça comporte déjà son petit lot de difficultés.

La_mapIl y a un autre script majeur, permettant de mapper les maps... 
Je m'explique:

Imaginons que j'ai les map d'id 1, 2, 3 et 4. Ce script à partir d'un tableau  tel que: [[1,2],[3,4]] est capable de réaliser un "assemblage" grossomodo comme celui-ci.
|1 , 2|
|3 , 4| 
Ce qu'il fait, c'est qu'aux bords d'une carte, le joueur est téléporté sur sa voisine automatiquement. Une même carte peut figurer plusieurs fois, le tableau peut être bouclé ou non. La condition est qu'il est préférable que le map soient de même dimensions.C'est ainsi que j'ai bâti mon désert.
Un tableau de 10x10 maps... dont une grande majorité est la même map, une map vide juste avec du sable...

Faire des petites maps a un impact... les joueurs s'y perdent! et tant mieux pour le desert. La carte, si vous la trouvez, accompagnée de la boussole permet de s'y retrouver, grâce à un curseur qui apparaitra sur la carte à votre position.

Ensuite je me suis bien lâché sur les maps et leurs différentes versions:

La_pyramide Le_delta Mine_1 Mine_2 Mine_3 Village3 Village_ruine Villaged

Il y a de bons commentaires mais j'aurai du la filer en concours,
ça aurait été plus constructif.

Le projet n'est absolument pas fini, beaucoup de maps sont vides en event et inaccessibles par la voie classique... Un cristal de triche a été ajouté sur la(s) plage(s) pour vous permettre de voyager partout (mais non sans mal). 

Lien vers le projet

4 janvier 2010

Mto Soleil

Mto Soleil



-Introduction

Assez de la pluie, de la neige, et de l'orage!! ^^ voilà du Soleil made in mhd! Very Happy
J'en avais déjà parlé dans la boite à idée.



-Description

Euh une image pour commencer serait bien ^^...




Bon, le screen n'est pas terrible terrible... c'est parce que les rayons apparaissent et disparaissent tant que la météo est active... Elle est "animée". Bon, ça n'éblouïe pas pour autant.
En réalité, le soleil est un point hors de l'écran, et un ensemble de rayons semblants provenir de ce point. Les rayons apparaissent, puis disparraissent, ponctuellement ça peut être sympathique.



-Installation

Ce script n'échappe pas à la régle du "copiez en dessous de material".
Il n'a pas de nécéssité particulière. Cet effet lumineux n'a pas besoin d'images.

-Utilisation


Il est très simple:

Activation:
dans un appel de script mettre "$sun.play(intensité, temps)" comme pour les vraies météos: l'intensité va de 1 à 10, et le "temps" correspond au temps d'apparition de la météo.

Désactivation: "$sun.stop(temps)"

Alors, compliqué? Smile

Il y a deux autres petites fonctions:

$sun.position(heure, minute) permet de faire le lien avec des scripts ou des events parallèlles de temps.

$sun.change_opacity(opacity, duration =0) permet de faire changer tous les rayons en une opacité commune.

-Configuration:

Le module de configuration est grand pour vous permettre de l'adapter à vos besoins.
Référez-vous aux commentaires, normalement il devrait être assez compréhensible et permet beaucoup de variante.


-Le script:

Spoiler:





-Crédits : Vincentmhd


Hum je n'ai jamais envoyé un post de script aussi rapidement... Smile
Edit:: j'ai corrigé quelques petits défauts du script le soir même... je savais bien que c'était trop vite ^^

_________________



>> Démo
23 novembre 2009

Sur la Toune #2

Les concours de la "Toune" ont pour principe de se reposer sur une ou des BGM, des musiques. On nous soumet une ou plusieurs musiques et nous devons construire en fonction. Généralement, il s'agit de mapping, mais cela peut s'étendre à d'autres réalisations.

Le sujet de la "Toune#2" était libre, nous avions le pack de musique en lien et la liberté du type de la réalisation. Nous avions du 1 Octobre, au 15 Novembre pour rendre nos projets.


>>
Page Officielle du concours

Voilà des images in-game du projet que j'ai rendu:

Extract_Toune4Extract_Toune_3Extract_Toune_copieExtract_Toune_2

Il est court, et assez simple. Habituellement, je me complique la vie pour rien, alors j'ai tenté une autre approche. C'est une seule map de 28 par 44, je l'ai réalisé assez rapidement et je n'avais pas bcp de temps à y consacrer.

J'aime bien tester des petites choses dans mes participations de concours, car c'est un moyen sûr d'avoir au moins un testeur et une crittique construite par le biais du juge ou juris (je salut Miraino Hikari au passage).

Il y a deux choses testées ici: mon anti-lag et l'idée d'une forêt non linéaire, pour changer des projets VX habituels.

-Pour l'anti-lag, il n'y a pas grand chose à dire, à part que je peux encore mieux faire...
Vous pouvez aller voir le script correspondant: Anti-lag Mhd

-Pour la forêt, qu'elle soit non-linéaire ne me choque pas mais l'inverse, si elle est alignée cela se remarque. J'ai obtenu ce résultat en exploitant un characterSet que j'avais fait, il y a un moment: Lien vers la page de l'album.
Cela représente beaucoup d'events à seul but décoratif, d'où l'utilisation de l'anti-lag. La passabilité pose aussi des problèmes d'où l'utilisation de mon bon vieux script (Lien). Certains events n'existent parfois uniquement pour gérer le décalage entre le visuel et la passabilité.

Vue de la carte dans l'éditeur:

Sans_titre_3_copie

Il n'y a casiment que des events.

Il y a une astuce pour les "touffes d'arbres" infranchissables. Par endroit comme pour les bords de la carte, j'avais besoin de barrière infranchissable.
- Je me suis créé deux tileSets semblables.
- Par le script de passabilité,  j'ai modifié la passabilité de certaines cases en passabilité partielle (que le haut, que le bas...). Sur un des tileSet ces cases sont transparentes, ce tileSet sera le final. Sur le second les passabilités partielles apparaissent.
- L'image cî-dessous vous expliquera tout, j'ai délimité les contours de mes zones non franchissables puis j'ai fait du remplissage avec les arbres.
- Il m'a suffit finalement de ré-échanger de tileSet.

Sans_titre_2_copie

Et voilà, l'astuce!

Il y a eu aussi une amélioration du script de mouvement supplementaire et notamment la commande go_to(x,y) qui ne prennait pas les diagonales et maintenant c'est le cas.
Les poissons sont une application des mouvements aléatoires restreints, ainsi ils restent dans l'eau (idée de Jebbou).
L'oiseau est une application des déplacements complexes, avec go_to, changement de trigger, de priorité (qu'on peut comparée avec l'altitude), et plusieurs wait_between.

Voilà pour cette map!

>> Le lien vers le projet

Nous n'avons été que 3 participants. Voici les résultats:

"Bon voilà mon petit topo de commentaire.

Flavii3n nous a fait une cutscene à mourir de rire. Bien que graphiquement il y avait quelques anomalie, l'aspect générale était bien. Lorsqu'il me l'a envoyé la première fois, j'ai dû le regarder entre 3 et 5 fois... Chaque fois, j'essayais de voir des détails de plus (disons que la première fois, c'est la surprise qui m'a fait raté des trucs). Définitivement, si c'était évaluer sur le rire procuré, je te donnerais un 10/10. Définitivement, ce chat est un petit malcommode.

Vincentmhd nous a fait, en fait c'est une bonne question. J'aimerais qu'à l'avenir, lorsque c'est un concours multi-segments comme celui-ci, vousindiquiez à quelle(s) catégorie(s) vous participez. J'ai supposé que c'était globalement MAP. Encore une fois, quelques anomalies graphiques. Dans l'ensemble un peu surchargé par endroit peut-être, mais dans une forêt sans présence humaine, c'est possible. J'ai beaucoup aimé cependant l'apparition de flèches qui indiquait l'endroit d'où on avait testé le fait de pouvoir sauté. Bien pensé. Par contre, dans le cas d'un écureuil qui a la mémoire courte, je te suggèrerait "d'oublier" les espace "sautable" après un temps ou après un "changement" de map. Autre détail inquiétant toutefois dans ton jeu... Ton écureuil est en équipe avec 3 humains, il s'appelle Sniff, mais tout le monde l'appel Truc? Aussi, très rigolo la side quest avec l'oiseau. J'ai bien rit en courant après le volatile sur tout la carte pour finalement le traiter d'antisocial.

Finalement Yuko nous a fait je ne saurait trop dire lui non plus.... Une map, un scénario, il y a un peu de tout, donc c'est difficile à dire... Je ne saurait dire... s'il vous plait, dites-moi à quoi vous participez pitié... Un détail très encombrant... J'ai dû modifier un event (une chance que tu avais fourni le jeu non crypté... Un event transparent empêchait de traversé... dès le début du jeu...) Très belle map. Il y a l'intérieur des maison qui me semble farfelu un peu, mais dans l'ensemble j'ai trouvé ça très bien. La cutscene dans le temps ou grotte ou je ne sais pas trop comment l'appelé... C'est bien... J'aime surtout l'effet des glyphes après leur activation... Ça donne un très joli rendu... Le dernier petit désagrément, lorsqu'on va dans la partie sud de la ville, on ne peut plus revenir, t'as oublier de mettre le téléporteur de map de retour... mais les effets de cartes et tout le reste, c'est super...

Même si cette fois, je ne mets pas de gagnants, vos projets sont tous très intéressant. Ceux qui veulent s'en inspirer pour l'un ou l'autre des parties présenté, je vous le suggère fortement. Ces trois membres ont travaillé fort. C'est à la fois merveilleux et divertissant pour des projets de concours (gameplay entre 1 et 3 minutes). Merci de votre participation."

27 octobre 2009

Déplacements supplémentaires

Mouvements supplémentaires.v2

-Introduction

Parfois j'ai besoin de petites fonctions simples, qui ne méritent pas de script à part entière, alors je les regourpent toutes là-dedans. Il y a des mouvements supplementaires, des accesseurs, des choses assez simples. Ce script se décompose en differents modules correspondants à des classes comme l'interpreteur ou character. Il y a ausi un module mixte. Cette organisation me permet de simplifier les inclusions.

-Installation

Ce script n'échappe pas à la régle du "copiez en dessous de material".
Il n'a pas de nécéssité particulière.


-script:

Code:

#===============================================================================
#
#
#                            Mouvements supplémentaires .v2
#
#
#===============================================================================
#
#By Vincentmhd
#http://vincentmhdmaker.canalblog.com/
#2/10/2009
#v1 ->  v2  ajout des diagonales à go_to(x,y) et approach_to(x,y)
#=>Mouvements plus logiques
#=====================================NOTE======================================
#
#Ce script  ajoute de petites  fonctions. Elle se décompose en plusieurs modules
#chacun  spécifiques à une  classe sauf  pour  MIXTE qui  contient des  méthodes
#communes.
#
#Je ne peux pas m'amuser à toutes les expliquer car c'est une sorte de fourre
#tout personnel.
#
#-------------------------------------------------------------------------------


module MIXTE 
#------------------------------------------------------------------------------#
#Wait at random between min and max                                            #
#------------------------------------------------------------------------------#
  def wait_between(min,max)
    middle = min + rand(max - min)
    @wait_count = middle
  end
#------------------------------------------------------------------------------#
#Wait at random between 0 and max                                              #
#------------------------------------------------------------------------------#
  def wait_between_M(max)
    middle = rand(max)
    @wait_count = middle
  end
#------------------------------------------------------------------------------#
# * Erase Event
#------------------------------------------------------------------------------#
  def erase_event(id)
    $game_map.events[id].erase
  end
#------------------------------------------------------------------------------#
# * Start Event
#------------------------------------------------------------------------------#
  def start_event(id)
    $game_map.events[id].start
  end

#------------------------------------------------------------------------------#
# * Tint Screen
#------------------------------------------------------------------------------#
  def Tint_Screen(r, g, b, a, t, bool = false)
    tone = Tone.new(r,g,b,a)
    $game_map.screen.start_tone_change(tone, t)
    @wait_count = t if bool
  end
#------------------------------------------------------------------------------#
# * Tint Screen Relative
#------------------------------------------------------------------------------#
  def Tint_Screen_R(r, g, b, a, t, bool = false)
    red    = $game_map.screen.tone_target.red + r
    green  = $game_map.screen.tone_target.green + g
    blue  = $game_map.screen.tone_target.blue + b
    alpha  = $game_map.screen.tone_target.gray + a
   
    tone  = Tone.new(red, green, blue, alpha)
    $game_map.screen.start_tone_change(tone, t)
    @wait_count = t if bool
  end
#------------------------------------------------------------------------------#
# * Screen Flash
#------------------------------------------------------------------------------#
  def Flash_Screen(r, g, b, a, t, bool = false)
    tone = Color.new(r,g,b,a)
    $game_map.screen.start_flash(tone, t)
    @wait_count = t if bool
  end
#------------------------------------------------------------------------------#
# * Screen Flash Relative
#------------------------------------------------------------------------------#
  def Flash_Screen_R( r, g, b, a, t, bool = false)
    if $game_map.screen.flash_duration != 0
      red    = $game_map.screen.flash_color.red + r
      green  = $game_map.screen.flash_color.green + g
      blue  = $game_map.screen.flash_color.blue + b
      alpha  = $game_map.screen.flash_color.alpha + a
    else
      red    = $game_map.screen.tone_target.red + r
      green  = $game_map.screen.tone_target.green + g
      blue  = $game_map.screen.tone_target.blue + b
      alpha  = $game_map.screen.tone_target.gray + a
    end
    tone  = Color.new(red, green, blue, alpha)
    $game_map.screen.start_flash(tone, t)
    @wait_count = t if bool
  end

#==============================================================================#
end                                                          #module MIXTE end#
#==============================================================================#


module EVENT
#------------------------------------------------------------------------------#
#Change event trigger:                                                        #
#                                                                              #
#0: Input Touch                                                                #
#1: Contact Heros                                                              #
#2: Contact Event                                                              #
#3: Automatic                                                                  #
#4: Parallel Process                                                          #
#5+: None                                                                      #
#                                                                              #
#------------------------------------------------------------------------------#
  attr_accessor  :trigger
  def change_trigger( t )
    @trigger = t
  end

 
#==============================================================================#
end                                                          #module EVENT end#
#==============================================================================#

module INTERPRETER
  def change_trigger(t, id = @event_id)
    $game_map.events[id].trigger = t
  end
#==============================================================================#
end                                                    #module INTERPRETER end#
#==============================================================================#

module CHARACTER
#------------------------------------------------------------------------------#
#Change event priority                                                        #
#------------------------------------------------------------------------------#
  attr_accessor  :priority_type
  def change_priority(p)
    @priority_type = p
  end
#------------------------------------------------------------------------------#
#Selfswitches for move        id = ' '                                        #
#------------------------------------------------------------------------------#
  def self_switches(id, value)
    key = [$game_map.map_id, @id, id]
    $game_self_switches[key] = (value)
    $game_map.need_refresh = true
  end
#------------------------------------------------------------------------------#
#Manual start event if(player is on the event)                                #
#------------------------------------------------------------------------------#
  def start_if_on
    if $game_player.x == @x && $game_player.y== @y
      start
    end
  end
#------------------------------------------------------------------------------#
#Ramdom moveTo                  (x et y are arrays)                            #
#------------------------------------------------------------------------------#
  def moveto_R_between(x,y)
    index = rand(x.size)
    moveto(x[index],y[index])
  end
#------------------------------------------------------------------------------#
#Order moveTo                  (x et y are arrays)                            #
#------------------------------------------------------------------------------#
  attr_accessor  :order
  def moveto_O(x,y)
    if (@order == nil) || (@order == (x.size - 1))
      @order = 0
    else
      @order +=1
    end
    moveto(x[@order],y[@order])
  end
#------------------------------------------------------------------------------#
#Random moveTo in a rect                                                      #
#------------------------------------------------------------------------------#
  def moveto_R_in(x_min, x_max, y_min, y_max)
    x = x_min + rand(x_max - x_min + 1)
    y = y_min + rand(y_max - y_min + 1)
    moveto(x.to_i,y.to_i)
  end
#------------------------------------------------------------------------------#
#moveto_P si passable                                                          #
#------------------------------------------------------------------------------#
  def moveto_P(x, y)
    if passable?(x,y)
      moveto(x.to_i,y.to_i)
    end
  end
#------------------------------------------------------------------------------#
#Random moveto_P in a rect                                                    #
#------------------------------------------------------------------------------#
  def moveto_P_in(x_min, x_max, y_min, y_max)
    x = x_min + rand(x_max - x_min + 1)
    y = y_min + rand(y_max - y_min + 1)
    while passable?(x,y)
      moveto_P(x.to_i,y.to_i)
      x = x_min + rand(x_max - x_min + 1)
      y = y_min + rand(y_max - y_min + 1)
    end
  end
#-------------------------------------------------------------------------------
# * Jump if place is passable
#    x_plus : x-coordinate plus value
#    y_plus : y-coordinate plus value
#-------------------------------------------------------------------------------
  def jump_P(x_plus, y_plus)
    if passable? (@x + x_plus, @y + y_plus)
      if x_plus.abs > y_plus.abs            # Horizontal distance is longer
        x_plus < 0 ? turn_left : turn_right
      elsif x_plus.abs > y_plus.abs        # Vertical distance is longer
        y_plus < 0 ? turn_up : turn_down
      end
      @x += x_plus
      @y += y_plus
      distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
      @jump_peak = 10 + distance - @move_speed
      @jump_count = @jump_peak * 2
      @stop_count = 0
      straighten
    end
  end
#-------------------------------------------------------------------------------
# * Jump if place is passable in Star
#    x_plus : x-coordinate plus value
#    y_plus : y-coordinate plus value
#-------------------------------------------------------------------------------
  def jump_C(star)
    dir = rand(8)
    ok = false
    a = 0
    while ok == false
      case dir
      when 0 #down
        ok = passable?(@x,@y-star)
      when 1 #left
        ok = passable?(@x-star,@y)
      when 2 #right
        ok = passable?(@x+star,@y)
      when 3 #up
        ok = passable?(@x,@y+star)
      when 4 #down left
        ok = passable?(@x-star,@y-star)
      when 5 #down rigth
        ok = passable?(@x+star,@y-star)
      when 6 #up left
        ok = passable?(@x-star,@y+star)
      when 7 #up right
        ok = passable?(@x+star,@y+star)
      end
      if (ok==false)
        dir = rand(8)
      end
    end
    if ok == true
      case dir
      when 0 #down
        jump(0,-star)
      when 1 #left
        jump(-star,0)
      when 2 #right
        jump(star,0)
      when 3 #up
        jump(0,star)
      when 4 #down left
        jump(-star,-star)
      when 5 #down rigth
        jump(star,-star)
      when 6 #up left
        jump(-star,star)
      when 7 #up right
        jump(star,star)
      end
    end
  end
#-------------------------------------------------------------------------------
# Approach to (x, y)    !!Passability is not considered
#-------------------------------------------------------------------------------
  attr_accessor  :target_x, :target_y
  def approach_to(x,y)
    @target_x = x
    @target_y = y
    sx = @x - @target_x
    sy = @y - @target_y
   
    if ((sx.abs > 0)&&(sy.abs > 0))
      if (sx > 0)
        if (sy > 0)
          move_upper_left
        else
          move_lower_left
        end
      else
        if (sy > 0)
          move_upper_right
        else
          move_lower_right
        end       
      end
      
    else
      
      if ((sx.abs > 0)||(sy.abs > 0))
        if (sx.abs > sy.abs)                    # Horizontal distance is longer
          if (sx > 0)
            move_left()
          else
            move_right()
          end
        else                                  # Vertical distance is longer
          if (sy > 0)
            move_up()
          else
            move_down()
          end
        end
      end
    end
  end
 
#-------------------------------------------------------------------------------
# Go to (x, y)  absolue          !!Passability is not considered
#-------------------------------------------------------------------------------
  def go_to(x,y)
    @target_x = x
    @target_y = y
    @custom_index = 1
  end
#-------------------------------------------------------------------------------
# Go to (x, y)  relative          !!Passability is not considered
#-------------------------------------------------------------------------------
  def go_to_R(x,y)
    @target_x = @x + x
    @target_y = @y + y
    @custom_index = 1
  end

#-------------------------------------------------------------------------------
# Go to (x_min, x_max, y_min, y_max)            !!Passability is not considered
#-------------------------------------------------------------------------------
  def go_to_in(x_min, x_max, y_min, y_max) 
    @target_x = x_min + rand(x_max - x_min + 1)
    @target_y  = y_min + rand(y_max - y_min + 1)
    @custom_index = 1
  end
 
#-------------------------------------------------------------------------------
# Go to (x_min, x_max, y_min, y_max) if P          !!Passability is not considered
#-------------------------------------------------------------------------------
  def go_to_in_P(x_min, x_max, y_min, y_max)
    @target_x = x_min + rand(x_max - x_min + 1)
    @target_y  = y_min + rand(y_max - y_min + 1)
    while !(passable?(@target_x,@target_y))
      @target_x = x_min + rand(x_max - x_min + 1)
      @target_y  = y_min + rand(y_max - y_min + 1)
    end
    @custom_index = 1
  end


#-------------------------------------------------------------------------------
# Show balloon
#------------------------------------------------------------------------------- 
  def show_balloon(id)
    @balloon_id = id
  end
 
#==============================================================================#
end                                                      #module CHARACTER end#
#==============================================================================#


#------------------------------------------------------------------------------#
#Inclusion des modules  + appoint                                              #
#------------------------------------------------------------------------------#
class Game_Interpreter
  include MIXTE
  include INTERPRETER
end

class Game_Character
  include MIXTE
  include CHARACTER
#-------------------------------------------------------------------------------
# Go to (x y)
#-------------------------------------------------------------------------------
  alias go_to_move_type_custom move_type_custom
  def move_type_custom
    if stopping?
      case @custom_index
      when 1
        if ((@x == @target_x)&&(@y==@target_y))
          @custom_index = nil
        end
        approach_to(@target_x, @target_y)
      else
        #nothing
      end
    end
    go_to_move_type_custom
  end
 
end

class Game_Event
  include MIXTE
  include EVENT
end
#------------------------------------------------------------------------------#
#Appoints divers                                                              #
#------------------------------------------------------------------------------#

class Game_Screen
  attr_reader :tone_target, :flash_duration, :flash_color
end






Modification du déclenchement
Cette méthode modifie le trigger de l'event en question, cette méthode peut être très puissante...
Appel Déplacement:

Spoiler:

Appel Interpreter:
Spoiler:



Modification de la priorité d'un event (de la couche)
Cette méthode modifie la couche de l'event: dessus, desous, même que le héro, elle va de paire avec le changement de trigger, cette méthode peut être aussi très puissante si bien exploitée...
Appel Déplacement:
Spoiler:



Modification Selfswitches pendant un déplacement
Cette fonction me manquait car je me demande pourquoi ils ont mis une fonction pour modifier les game_switches mais pas les variables et les selfswitches?! id correspond à "A", "B" ... value true or false
Appel Déplacement:
Spoiler:



Start event if on
C'est un besoin particulier. L'event commence manuellement si le player est sur la même case.
Appel Déplacement:
Spoiler:



Montre une émoticone
Appel Déplacement:
Spoiler:



Les déplacements

Téléportation aléatoire dans une liste de positions
x est y sont des arrays de taille identique.
Appel Déplacement:
Spoiler:


Téléportation ordonnée dans une liste de positions
x est y sont des arrays de taille identique.
Appel Déplacement:
Spoiler:


Téléportation aleatoire dans une zone rectangulaire
Appel Déplacement:
Spoiler:


Téléportation si la case est passable
Appel Déplacement:
Spoiler:


Téléportation aleatoire dans une zone rectangulaire et si la case est passable
Appel Déplacement:
Spoiler:


Saut si la case est passable
Appel Déplacement:
Spoiler:


Saut sur une des case autour au rayon spécifié et si la case est passable
Appel Déplacement:
Spoiler:


S'approcher d'une position
Attention ce déplacement ne tient pas compte de la passabilité et peut bloquer l'event.
Appel Déplacement:
Spoiler:


Aller à
Attention ce déplacement ne tient pas compte de la passabilité et peut bloquer l'event. Comme d'habitude il y a deux types de coordonnées: absolues et relatives. Ce déplacement se fait tant que le personnage n'a pas atteint les coordonées (blocage possible).
Appel Déplacement:
Spoiler:


-Démo:

voir les résultats du concours de Sept 2009: Lien
Les meilleures applications sont dans les events des cellules mirroirs.


-Crédit: Vincentmhd
_________________

Publicité
1 2 3 > >>