Roys Guide
Nombre de messages : 111 Age : 52 Projet Principal : Le Crépuscule des Dieux Aide Recherchée pour : des chara aRPG Surnom : Scripteur Monomaniaque Date d'inscription : 24/02/2007
| Sujet: "un pas loin" Eloigne un event d'un autre Dim 15 Avr - 13:14 | |
| Bonjour Voici une petit fonction qui permet d'appeler en event la fonction "un pas loin" qui n'existe pas dans RPG Maker XP Il vous suffit d'ajouter un commentaire avec Un pas loin EventEt l'event ou vous avez mis cette fonction s'eloigne de EventRemplacez Event par joueur, et votre event s'éloigne du joueur Remplacez Event par le nom d'un event, et votre event s'eloigne de celui ci Avant tout il vous faut installer le script suivanthttps://lodm.forumactif.com/Groupe-pour-Scripts-f4/Outils-pour-Event-Maker-f7/-p105.htm#105Ajouter un script et appelez le "Un Pas Loin" - Code:
-
#============================================================================== # OUTILS # UN PAS LOIN #-------------------- # Stephane, Roys # 15 avril 2007 #-------------------- # Explication # Ajoute une fonction en event à RMXP afin qu'un evenement se déplace loin d un autre #-------------------- # Mode d'Emploi #- Inserer un commentaire dans un event et taper : un pas loin x #- Remplacer x par # joueur si vous voulez que votre event s'éloigne du joueur # ou # le nom de l'event duquel vous voulez vous éloigner #-------------------- # La commande se comporte comme n'importe quelle commande RMXP, vous pouvez ajouter # une attente ou n'importe quelle autre fonction # Les noms ne sont pas case sensitif # C'est toujours l'event dans lequel vous mettez la fonction un pas vers qui se déplace #==============================================================================
#============================================================================== # Interpreter # Permet d'ajouter une fonction un pas vers en commentaire dans un event #============================================================================== class Interpreter alias outil_unpasloin_command108 command_108
def command_108 # Commande non valide if not @parameters[0].split.size<4 # Commande valide com=@parameters[0].split if @parameters[0].upcase[/UN PAS LOIN/]=="UN PAS LOIN" and not $game_map.events[@event_id].moving? #---------------------- # Recupère le nom de l'event event_nom=com[3].upcase #---------------------- # Un pas vers le joueur if event_nom=="JOUEUR" $game_map.events[@event_id].un_pas_loin return true end #---------------------- # Cherche l'event vers qui se diriger for i in $game_map.events.keys event=$game_map.events[i] next if event.name.upcase!=event_nom # Ajoute l'event courant vers l'event trouvé $game_map.events[@event_id].un_pas_loin(event) return true end return true end end outil_unpasloin_command108 end end
#============================================================================== # Game_Character # Modifie la class pour ajouter la méthode event1 se déplace vers event2 #============================================================================== class Game_Character #-------------------------------------------------------------------------- # UN PAS VERS # Le character courant s eloigne vers un event ou à defaut le joueur #-------------------------------------------------------------------------- def un_pas_loin(event=$game_player) # Calcul les coordonnées différentielles sx = event.x - @x sy = event.y - @y if sx == 0 and sy == 0 return end abs_sx = sx.abs abs_sy = sy.abs # Distances egales if abs_sx == abs_sy rand(2) == 0 ? abs_sx +=1 : abs_sy += 1 end # Distance sur les x supérieur if abs_sx > abs_sy # Déplacement sx > 0 ? move_left : move_right if not moving? and sy != 0 sy > 0 ? move_up : move_down end # Distance sur les y supérieur else # Déplacement sy > 0 ? move_up : move_down if not moving? and sx != 0 sx > 0 ? move_left : move_right end end end end
| |
|