- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
[RGSS3] Script de gestion des Zones pour les PNJs et Joueur
Dim 18 Déc 2011 - 21:56
Voilà le 1er script que je traduit pour rpgmakervx-fr.com , et que je traduit tout court.
Je continuerais à en traduire pour la communauté.
Tout d'abord désolé des fautes, je ne comprend pas toutes les notions en anglais. Je poste donc la version Traduite et la Version Original.
Nom du script original : MOVE RESTRICT RÉGION
Auteur : Yanfly
Version du script :1.0
Principe du script : Ce script permet de faire la gestion de zones permetant la restriction d'accés pour les PNJs et le Joueur.
(Plus compliqué à dire que à voir)
Instructions : Les Instructions sont sur le script.
Screens :
Screens en Anglais en attendant la version finale et traduite en FR.
Script :
Version Traduite.
BugFix du Joueur et de la réstriction :
Voici le code de Azuma-01 :
class Game_CharacterBase
Coco' : +1 point ~
Je continuerais à en traduire pour la communauté.
Tout d'abord désolé des fautes, je ne comprend pas toutes les notions en anglais. Je poste donc la version Traduite et la Version Original.
Nom du script original : MOVE RESTRICT RÉGION
Auteur : Yanfly
Version du script :1.0
Principe du script : Ce script permet de faire la gestion de zones permetant la restriction d'accés pour les PNJs et le Joueur.
(Plus compliqué à dire que à voir)
Instructions : Les Instructions sont sur le script.
Screens :
Screens en Anglais en attendant la version finale et traduite en FR.
- Spoiler:
- Spoiler:
Script :
Version Traduite.
- Code:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Restriction de Zone v1.00
# -- Last Updated: 2011.12.15
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YEA-MoveRestrictRegion"] = true
#==============================================================================
# ▼ Mise à Jour
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.15 - Commencement et fin du script.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Tout le monde ne veut pas que les PNJs se balade un peut partout. Avec se
# script vous pouvez définir des zones auquelles les PNJs ne devrons pas
# dépassé. Il suffi juste de créer un contour de zone avec la nouvelle option
# de zone de combat. Ce système permet aussi d'empêcher le joueur de passer.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pour installer se script, copiez/coller le en dessous de ▼ Materials et
# surtout au dessus de ▼ Main
#
# -----------------------------------------------------------------------------
# Mots Clé - Ces mots clé sont à mettre dans la déscription de la carte
# dans les propriété de la carte.
#
# -----------------------------------------------------------------------------
# <npc restrict: x>
# <npc restrict: x, x>
# Les PNJs serons incapable d'aller au-delà de la région x sauf si ils ont
# le "Passemuraille" (Traverse tout) activé. Déssinez la zone qui enfermera
# les PNJs avec l'option de Zone, et les PNJs serons incapable de passer au-delà
# de n'importe quelle Tiles marqué par la région x.
#
# <player restrict: x>
# <player restrict: x, x>
# Ceci est la même chose que pour les PNJs sauf que c'est une limitation pour
# le joueur. Il ne pourra pas franchir la zone marqué par la région x.
# Il pourra tout de même le traversé si l'option "Passemuraille" (Traverse tout)
# est activé pour le joueur.
#
#==============================================================================
# ▼ Compatibilité
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script est fait uniquement pour RPG Maker Vx Ace, il est peut probable
# qu'il fonction sous RPG Maker VX.
#
#==============================================================================
module YEA
module MOVE_RESTRICT
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Region restreinte pour le joueur par défaut -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Si vous voulez qu'il y ait toujour un ID de région qui va interdir le
# joueur de passer, inséré le dans le tableau ci-dessous.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DEFAULT_PLAYER = [62]
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Region restrainte pour les PNJs par défaut -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Si vous voulez qu'il y ait toujour un ID de région qui va interdir le
# PNJ de passer, inséré le dans le tableau ci-dessous.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DEFAULT_NPC = [63]
end # MOVE_RESTRICT
end # YEA
#==============================================================================
# ▼ L'auteur du script avait écrit en résumé de ne pas éditer cette partie du
# script sinon vous pouviez tomber dans le coma et/ou mourrir, etc...
# Bonne touche d'humour en tout cas.
#==============================================================================
module YEA
module REGEXP
module MAP
NPC_RESTRICT =
/<(?:NPC_RESTRICT|npc restrict):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
PLAYER_RESTRICT =
/<(?:PLAYER_RESTRICT|player restrict):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
end # NPC
end # REGEXP
end # YEA
#==============================================================================
# ■ RPG::Map
#==============================================================================
class RPG::Map
#--------------------------------------------------------------------------
# Variables d'instance publique
#--------------------------------------------------------------------------
attr_accessor :npc_restrict_regions
attr_accessor :player_restrict_regions
#--------------------------------------------------------------------------
# common cache: load_notetags_mrr
#--------------------------------------------------------------------------
def load_notetags_mrr
@npc_restrict_regions = YEA::MOVE_RESTRICT::DEFAULT_NPC.clone
@player_restrict_regions = YEA::MOVE_RESTRICT::DEFAULT_PLAYER.clone
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::MAP::NPC_RESTRICT
$1.scan(/\d+/).each { |num|
@npc_restrict_regions.push(num.to_i) if num.to_i > 0 }
when YEA::REGEXP::MAP::PLAYER_RESTRICT
$1.scan(/\d+/).each { |num|
@player_restrict_regions.push(num.to_i) if num.to_i > 0 }
#---
end
} # self.note.split
#---
end
end # RPG::Map
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# alias method: setup
#--------------------------------------------------------------------------
alias game_map_setup_mrr setup
def setup(map_id)
game_map_setup_mrr(map_id)
@map.load_notetags_mrr
end
#--------------------------------------------------------------------------
# Nouvelle method: npc_restrict_regions
#--------------------------------------------------------------------------
def npc_restrict_regions
return @map.npc_restrict_regions
end
#--------------------------------------------------------------------------
# Nouvelle method: player_restrict_regions
#--------------------------------------------------------------------------
def player_restrict_regions
return @map.player_restrict_regions
end
end # Game_Map
#==============================================================================
# ■ Game_CharacterBase
#==============================================================================
class Game_CharacterBase
#--------------------------------------------------------------------------
# alias method: passable?
#--------------------------------------------------------------------------
alias game_characterbase_passable_mrr passable?
def passable?(x, y, d)
return false if npc_forbid?(x, y, d)
return game_characterbase_passable_mrr(x, y, d)
end
#--------------------------------------------------------------------------
# Nouvelle method: npc_forbid?
#--------------------------------------------------------------------------
def npc_forbid?(x, y, d)
return false unless self.is_a?(Game_Event)
return false if @through
region = 0
case d
when 1; region = $game_map.region_id(x-1, y+1)
when 2; region = $game_map.region_id(x+0, y+1)
when 3; region = $game_map.region_id(x+1, y+1)
when 4; region = $game_map.region_id(x-1, y+0)
when 5; region = $game_map.region_id(x+0, y+0)
when 6; region = $game_map.region_id(x+1, y+0)
when 7; region = $game_map.region_id(x-1, y-1)
when 8; region = $game_map.region_id(x+0, y-1)
when 9; region = $game_map.region_id(x+1, y-1)
end
return $game_map.npc_restrict_regions.include?(region)
end
end # Game_CharacterBase
#==============================================================================
#
# ▼ Fin du Script
#
#==============================================================================
BugFix du Joueur et de la réstriction :
Le system MOVE RESTRICT RÉGION bloque pas le joueur: les régions ne sont pas véréfier pour Game_Player
à cause du code
- Code:
def npc_forbid?(x, y, d)
return false unless self.is_a?(Game_Event)
...
En français ça dit: retourne faux (doc passable) à moins que self (le personnage) soit un event.
Le code que j'ai fait ajoute la vérification de "passabillité" pour le joueur.
En bref c'est BugFix.
Voici le code de Azuma-01 :
class Game_CharacterBase
- Code:
#--------------------------------------------------------------------------
# alias method: passable?
#--------------------------------------------------------------------------
def passable?(x, y, d)
return false if npc_forbid?(x, y, d)
return false if player_forbid?(x, y, d)
return game_characterbase_passable_mrr(x, y, d)
end
#--------------------------------------------------------------------------
# new method: forward_region_id
#--------------------------------------------------------------------------
def forward_region_id(d)
case d
when 1; $game_map.region_id(@x-1, @y+1)
when 2; $game_map.region_id(@x+0, @y+1)
when 3; $game_map.region_id(@x+1, @y+1)
when 4; $game_map.region_id(@x-1, @y+0)
when 5; $game_map.region_id(@x+0, @y+0)
when 6; $game_map.region_id(@x+1, @y+0)
when 7; $game_map.region_id(@x-1, @y-1)
when 8; $game_map.region_id(@x+0, @y-1)
when 9; $game_map.region_id(@x+1, @y-1)
end
end
#--------------------------------------------------------------------------
# new method: npc_forbid?
#--------------------------------------------------------------------------
def npc_forbid?(x, y, d)
return false unless self.is_a?(Game_Event)
return false if @through
return $game_map.npc_restrict_regions.include?(forward_region_id(d))
end
#--------------------------------------------------------------------------
# new method: player_forbid?
#--------------------------------------------------------------------------
def player_forbid?(x, y, d)
return false unless self.is_a?(Game_Player)
return false if @through
return $game_map.player_restrict_regions.include?(forward_region_id(d))
end
end # Game_CharacterBase
Coco' : +1 point ~
- Coco'Staffeux retraité
- Nombre de messages : 6578
Age : 31
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance
Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux
N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
Re: [RGSS3] Script de gestion des Zones pour les PNJs et Joueur
Dim 18 Déc 2011 - 22:03
Pas mal ce script ^^ Par contre, essaies de corriger un minimum tes fautes d'orthographe
+1 point !
+1 point !
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: [RGSS3] Script de gestion des Zones pour les PNJs et Joueur
Dim 18 Déc 2011 - 22:11
Je les corrigeraient dès que la version finale de Ace sort en FR comme ça je ferais une démo + screens + correction.
Merci
Merci
- kilam1110Membre
- Nombre de messages : 181
Distinction : Amateur de jeux de mots pourris
[TTT]
et plus, il en fait et plus ça plane haut
[Balb']
Date d'inscription : 17/05/2011
Re: [RGSS3] Script de gestion des Zones pour les PNJs et Joueur
Lun 19 Déc 2011 - 0:16
Ah ouais, ça peut vraiment être utile comme script. Merci. :p
- Radiuss11Membre
- Nombre de messages : 48
Age : 33
Localisation : France, Moselle
Distinction : aucune
Date d'inscription : 27/04/2008
Re: [RGSS3] Script de gestion des Zones pour les PNJs et Joueur
Lun 19 Déc 2011 - 8:23
Merci pour cette trad! En effet un script qui va plaire a ceux qui aiment donner une vie plus réaliste a leurs PNJs !
+1
+1
- DishiMembre
- Nombre de messages : 632
Age : 26
Localisation : Marseille
Distinction : Alias Dichie
Aussi alias Sherifa Luna de la commu' (je suis dichie et d'ailleurs )
Co-créateur du Nyan Xak
[Tétété]
Apprenti Pedobear
[Mémé nova]
Keupiteur de ponctuation.
[un sombre inconnu.]
Date d'inscription : 07/07/2011
Re: [RGSS3] Script de gestion des Zones pour les PNJs et Joueur
Lun 19 Déc 2011 - 8:58
C'la peut être sympa...
Je ne sais pas si je l"utiliserai, mais merci du partage (:
Je ne sais pas si je l"utiliserai, mais merci du partage (:
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum