Lloyd Prophete
Nombre de messages : 81 Date d'inscription : 24/06/2007
Fueille de participation Niveau: 2 points d'Exp: (90/150)
| Sujet: Un garde qui surveille Lun 25 Juin - 22:58 | |
| ce tuto permet de créer un endroit protégé par un garde qui bouge sur lui même, qui tourne. le héros est derrière l'arbre donc le garde ne le voie pas !Le héros doit aller activer l'interrupteur à gauche de la maison . c'est assez simple puisque que le garde ne se déplace pas créez un évènement à peu près en plein milieu de la zone que vous voulez protéger avec un chara de garde et mettez : Dans le parcours prédéfini mettez quelque chose d'imprévisible : - Citation :
- < > attendre 10 frames
< > regarde en haut < > attendre 10 frames < > regarde en gauche < > attendre 10 frames < > regarde en bas < > attendre 10 frames < > regarde en haut < > attendre 10 frames < > regarde en droite < > attendre 10 frames < > regarde en haut < > attendre 10 frames < > regarde en bas < > attendre 10 frames < > regarde en gauche < > attendre 10 frames < > regarde en droite voila ça c'est pour l'effet de surveillance. Maintenant Créez un nouveau script au dessus de Main et nommez le View_Range : - Citation :
- #==============================================================================
# View Range scrîpt
#------------------------------------------------------------------------------
# By: Near Fantastica
# Date: 25/11/04
#==============================================================================
class View_Range
#--------------------------------------------------------------------------
# ● Ce système de "rang" marche en scannant une zone semie circulaire située en face de l' événement.
# La vue est crée dans chaque événement est égale au radian du cercle
# L' équation est: (Px-EX)^2 + (Py-Ey)^2 = radius^2
# Si le radian est supérieur ou égal à la Vue, le joueur se trouve dans le cercle.
#--------------------------------------------------------------------------
attr_accessor :event_num
attr_accessor :view_range
#--------------------------------------------------------------------------
# ● Initialization
#--------------------------------------------------------------------------
def initialize(event_num,veiw_range,els)
@event_num = event_num
@event_locial_switch = els
@view_range = veiw_range
@playerx = $game_player.x
@playery = $game_player.y
@eventx = $game_map.events[@event_num].x
@eventy = $game_map.events[@event_num].y
@event_direction = $game_map.events[@event_num].direction
end
#--------------------------------------------------------------------------
# ● Initialization
#--------------------------------------------------------------------------
def event_view
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_map.need_refresh = true
end
end
#--------------------------------------------------------------------------
# ●
#--------------------------------------------------------------------------
def enemies_view
if @event_direction == 2
if @playery >= @eventy
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = true
$game_map.need_refresh = true
end
end
end
if @event_direction == 4
if @playerx <= @eventx
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = true
$game_map.need_refresh = true
end
end
end
if @event_direction == 6
if @playerx >= @eventx
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = true
$game_map.need_refresh = true
end
end
end
if @event_direction == 8
if @playery <= @eventy
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true} $game_system.timer = 420 $game_system.timer_working = true $game_map.need_refresh = true end end end end end Pour l'utiliser, faîtes un événement en processus parallèle et insérez un script. Voilà ce qu'il faut mettre : check = View_Range.new(ID, vue, interrupteur local) check.event_view ID = l'id de l'événement. Pas EV003, juste 3. Vue = le nombre de cases sur chaque côté. Pour qu'il voie 3 cases sur le côté et devant, mettez trois. Interrupteur local = mettez ici entre guillemets le nom de l'interrupteur local qui sera activé si le héros entre dans le champ de vision. Puis créez une nouvelle page avec comme condition "l'interrupteur local A/B/C/D est activé". Sur cette page, mettez ce qui se passe si le héros entre dans le champ de vision. Voilà c'est tout Very Happy ! tuto mythology rpg par guerilla | |
|