Bonjour à tous,
J'ai remarqué que plusieurs d'entre vous ne seraient pas contre un petit tuto pour le Cherch'Objet amélioré.
Celui que je vous propose ici détecte l'objet en question sur la map et vous fournit trois messages selon trois critères:
-Si l'objet est présent sur la map
-Si l'objet est à moins de X pas
-Si l'objet est à plus de X pas
Il détecte l'objet comme suit:
Vous pouvez bien-entendu régler la distance X (nombre de case) (sur l'image, la distance est de 5)
Place aux explications...
1- En premier lieu, préparer trois interrupteurs:
-CHERCH'OBJET
-CHERCHPROCHE
-CHERCHLOIN
2-Pour la BDD, on va partir sur quelque chose de très basique:
-Onglet objet, crée un objet... CHERCH'OBJET qui appellera notre futur évènement commun
-Onglet évènement commun, créer un évènement commun comme ceci:
<>
Interrupteur(s) [XXXX: CHERCHPROCHE] désactivé<>
Interrupteur(s) [XXXX: CHERCHLOIN] désactivé<>
Interrupteur(s) [XXXX: CHERCH'OBJET] désactivé<>Attendre 20 Frames
<>
Jouer un effet sonore (SE) : 'select', volume : 100, tempo : 100<>Attendre 1 Frames
<>
Jouer un effet sonore (SE) : 'select', volume : 100, tempo : 100<>Attendre 1 Frames
<>
Jouer un effet sonore (SE) : 'select', volume : 100, tempo : 100<>Attendre 1 Frames
<>
Jouer un effet sonore (SE) : 'select', volume : 100, tempo : 100<>Attendre 1 Frames
<>
Jouer un effet sonore (SE) : 'select', volume : 100, tempo : 100<>Attendre 1 Frames
<>
Jouer un effet sonore (SE) : 'select', volume : 100, tempo : 100<>Attendre 1 Frames
<>
Condition : si l'interrupteur [XXXX: CHERCHPROCHE] activé <>Message : Le CHERCH'OBJET trouve quelque chose,
: c'est tout proche!
<>
Interrupteur(s) [XXXX: CHERCH'OBJET] activé <>
Sinon <>
Condition : si l'interrupteur [XXXX: CHERCHLOIN] activé <>Message : Le CHERCH'OBJET trouve quelque chose!
<>
Interrupteur(s) [XXXX: CHERCH'OBJET] activé <>
Sinon <>Message : Le CHERCH'OBJET n'a rien trouvé...
<>
Fin <>
FinEt voilà pour l’évènement commun!
N'oublier pas d'englober l’évènement commun avec une condition pour invalider l'utilisation du Cherch'Objet si le joueur est en surf, vélo,...
3-L'Event sur la carte:
L'Event à donc trois page, sans apparence, la première et la troisième sont en processus parallèle, la deuxième quant à elle est en appuie sur la touche action.
La page deux possède en condition d'activation, l’interrupteur CHERCH'OBJET
La page trois possède en condition d'activation, l’interrupteur local A
-PAGE 1:
<>
Condition : si Script : 'cherchobjet(6)' <>
Interrupteur(s) [XXXX: CHERCHPROCHE] activé <>
Fin<>
Interrupteur(s) [XXXX: CHERCHLOIN] activé<>Attendre 10 Frames
<>
Interrupteur(s) [XXXX: CHERCH'OBJET] activé-PAGE 2:
<>
Objet : "l'objet en question..." + 1<>
Jouer un effet musical (ME) : 'Item', volume : 100, tempo : 100<>Message : Vous trouvez "Objet"
<>
Interrupteur local A activé-PAGE 3:
<>
Interrupteur(s) [XXXX: CHERCH'OBJET] désactivé<>
Effacer cet évènement4-Ici on va apporter une petite modification au script Interpreter..
Donc rendez-vous dans les script, localiser le script "Interpreter" et au environ de la ligne 1397 vous trouverez ceci:
Code: |
def player_front_passable? coord = $game_player.front_tile return $game_map.passable?(coord[0],coord[1], 10 - $game_player.direction) end
|
JUSTE EN DESSOUS, copier ceci:
Code: |
#----------------------------------------------------------------------------- # cherchobjet #----------------------------------------------------------------------------- def cherchobjet(distance) character = $game_map.events[@event_id] if $game_player.moving? return false end case character.direction when 4 # Tourné vers la gauche if character.y <= $game_player.y + 6 and character.x <= $game_player.x + 6 and (character.x - $game_player.x).abs <= distance return true end when 8 # Tourné vers le haut if character.x <= $game_player.x + 6 and character.y <= $game_player.y + 6 and (character.y - $game_player.y).abs <= distance return true end when 6 # Tourné vers la droite if character.y <= $game_player.y + 6 and character.x <= $game_player.x + 6 and (character.x - $game_player.x).abs <= distance return true end when 2 # Tourné vers le bas if character.x <= $game_player.x + 6 and character.y <= $game_player.y + 6 and (character.y - $game_player.y).abs <= distance return true end end end
|
Vous avez à présent un systeme "Cherch'Objet" fonctionnel
Pour changer le rayon X, remplacez simplement les chiffres "6" par le chiffre de votre choix