forum rpg maker kingdom
Administrateurs : dante, Ryu
 
 forum rpg maker kingdom  marche central  recherche:script/ressources/tutoriaux 

 garde avec champ de vision

Nouveau sujet   Répondre
 
Bas de pagePages : 1  
Ryu
administrateur
Ryu
264 messages postés
   Posté le 04-09-2005 à 08:55:00   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

je cherche le moyen de faire un garde qui se déplace avec un champ de vision. j'avais trouver quelque chose mais soit j'ai pas comprit un truc, soit il y as une faute.

si vous savez comment faire, aidez moooiii !!!
dante
administrateur
dante
254 messages postés
   Posté le 04-09-2005 à 10:51:36   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

d'accord je vais voir avec un pot qui s y cone beaucop plu que nous en rpg maker il a surement la solution
dante
administrateur
dante
254 messages postés
   Posté le 04-09-2005 à 17:35:16   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

voila un script pour cree un garde avec un champs de vision j'espere qu'il va marcher car je l'est pas tester il est un peu complique mais c'est le seul que j'ai trouver.
apres l'avoir tester dit nous si il marche ou pas.


Niveau : Très expérimenté (débutants s'abstenir !)

Dans ce tuto, on va faire un garde qui peut vous voir, mais seulement si vous n'êtes pas caché derrière un objet. Je ne sais pas si ce tuto marche avec rm03, car je l'ai fais avec rmxp ( mais pas de script ) et j'emploie des commandes vis à vis des numéros de terrains.

Bon, je vais essayer d'être simple...
On va créer un garde qui a un champs de vision de deux carreaux sur le côté et de 5 en longueur ( pour faire une sorte de vue angulaire ( ça existe ce mot ? ).
Maintenant, pour lui faire comprendre que vous êtes derrière un objet, on va mettre sur le terrain correspondant ( pas l'objet, mais l'endroit ou on ne peut pas vous voir ) un nouveau numéro de terrain. De base, les terrains valent 0. Il faut donc aller dans les chipsets, sur son chipset correspondant, et prendre 7 carreaux vides. Et vous mettez le numéro de terrain 1 à l'un d'eux, 2 à un autre jusqu'à sept.

Ainsi, pour changer le numéro de terrain d'un endroit, vous mettez un carreau vide avec le numéro correspondant sur la troisième couche.

Maintenant, nous allons corser les choses. Si le numéro d'un terrain est égal à 0, vous pouvez être vu du haut, du bas, de droite et gauche.
Pour 1, vous ne pouvez pas être vu du haut.
Pour 2, vous ne pouvez pas être vu du bas
Pour 3, de la droite
Pour 4, de la gauche
Pour 5, du haut et du bas
Pour 6, du haut et du bas et de la droite
Pour 7, du haut et du bas et de la gauche.

Le problème, c'est qu'il y a d'autres possibilités... Mais vous devez vous arrangez pour n'utiliser que cela, car il n'y a que 7 types de terrain.

Donc vous mettez vos carreaux transparants comme ceci, sur la troisième couche ( en rouge c'est le numéro ).

voir l'image

Maintenant vous devez faire dans les Evénements communs un événement en Processus parallèle qui donne les variables x et y du héros plus son numéro de terrain ( dans les opérations sur variable ).

Ensuite vous mettez l'événement de votre garde ( vous pouvez définir une route ), et vous mettez ceci :

voir l'image
voir l'image
voir l'image
voir l'image

Aide :
Terrain est la variable qui contient le numéro du terrain du héros, héros x sa posx, hérosy sa position y, g1x la position du garde x, g1y, la position du garde y, ec1x, l'écart de la position x du héros et celle du garde, ec1y, l'écart de la position du héros et du garde y.

Teleport:Héros vous téléporte à l'endroit où vous devez recommencer ( si votre infiltration échoue par exemple ).

Déplacer cet événement:évenement : vous devez faire la commande déplacer, choisir cet événement et ne rien mettre d'autre.

Maintenant, vous devez avoir un garde actif qui ne peut vous voir derrière des objets, très pratique pour des jeux d'infiltration !

voila
Ryu
administrateur
Ryu
264 messages postés
   Posté le 07-09-2005 à 14:23:43   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

merci, mais il y as une faute quelque part, car le garde ne remarque pas que je change de case...
dante
administrateur
dante
254 messages postés
   Posté le 07-09-2005 à 15:01:17   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

ok je vais voir ca avec les pro lol
dante
administrateur
dante
254 messages postés
   Posté le 08-09-2005 à 13:35:35   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

essaye celui la un ami l'a tester et il m'a dit k'il marche


I: Installation:


Aller dans l' éditeur de scripts (F11) et crée un nouveau scrîpt que vous nommerez, par exemple, "View_Range",


puis collez ceci dedans:

Code:

#==============================================================================

# Veiw 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


II: "Maintenant que j' ai fais ça, comment qu' on fait pour la suite????"



Rien de plus simple!



Commencez par crée un événement sur la carte, attribuez lui une image etc et mettez le en:



Processus Parallèle (pour qu' il se lance automatiquement)


Puis; pour créer une zone de scan CIRCULAIRE (par exemple un bruit de crépitement qui va crescendo autour d' un feu)

appelez la fonction

Call scrîpt

dans l' événement et collez y ceci:

Code:

check = View_Range.new(Event ID, View Range, Local Switch)

check.event_view

EXPLICATIONS:



Vous voyez les parenthèses?

C' est là que tout ce joue, vous allez voir, c' est simple:



Event ID: le numéro d' identification de l' événement, ne mettez le chiffre ou le nombre complet, sans les zéro,



exemple: pour EV003 vous mettrez: 3 tout court



View Range: le nombre de cases que l' événements scannera devant lui, sa distance de vue;



exemple: pour que le méchant garde voit à trois case devant lui et sur les côtés mettez......3 !!! ^^

Simple non?



Local Switch: Ah, voici toute la mécanique du système, ici mettez un interrupteur local, et local UNIQUEMMENT!



A savoir il y en a quatre: A, B, C et D; il vous faudra mettre cet interrupteur entre "" guillemets:



exemple "A"





Cet interrupteur s' activera si le joueur passe dans le champ de vision de l' événement (champ de vision dont nous avons fixer les caractéristiques supra) et activera la SECONDE page de l' événement que nous allons créer maintenant:



Créons donc une seconde page, donnez à l' événements le "physique" voulu puis, cochez la case



[/]L' interrupteur local A (par exemple) est activé



C' est en fait la condition pour que cette page se lance, à la place de A mettez l' interrupteur local que vous avez octroyé en première page lors du Call scrîpt. (exemple: "A")



Coché égalemment la case: Démarrage automatique de la page.



Une fois cela fait, il ne vous reste plus qu' a mettre les fonctions désirée dans la plage des événements (exemple ppur notre garde aux aguets:

message: Hum?! There is somebodys therrrre !! (ce qui ont joué à mgs2 sauront de quoi je parle ! ^^)

Game over (Snake? SNNNNNAAAAAAAAAAKE!!!!!)





Bref, quoi qu' il en soit remplissez votre page comme vous l' entendez, c' est votre jeu après tout ! ^^





Quoi qu' il en soit n' oubliez pas de désactiver l' interrupteur A (par exemple) à la fin de votre page si vous ne voulez pas que votre garde repère sempiternellement le pauvre Snake !^^



Bien, nous avons donc vu dans cette partie le scrîpt à appeler pour des scans circulaires tout autour de l' event, maintenant pour des scans semi circulaire (vue humaine) nous allons passer à...



III l' Autre Call scrîpt:



Pour faire des scans semis circulaires, à la place du premier call scrîpt, appelez celui ci :




Code:

check = View_Range.new(Event ID, View Range, Local Switch)

check.enemies_view


Ici c' est la même chose que pour l' autre.

Message édité le 08-09-2005 à 13:36:24 par dante
Ryu
administrateur
Ryu
264 messages postés
   Posté le 08-09-2005 à 17:14:21   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

merci !!! je vais voir ça de suite
Ryu
administrateur
Ryu
264 messages postés
   Posté le 08-09-2005 à 18:07:13   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

y'as un truc qui ne joue pas, quand je passe devent le garde, il y à un contarbour qui commence et qunad il arrive à 0, rien ne se passe.....

et qunad je reste devand le garde, le crono reste sur 10:00

j'ai l'impression que l'interupteur "A" ne s'active pas...
dante
administrateur
dante
254 messages postés
   Posté le 08-09-2005 à 19:12:47   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

je vais voir ce que je peu faire
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 22:31:26   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

lol quel embrouille :s je m'embarque pas tout de suite la dedans
dante
administrateur
dante
254 messages postés
   Posté le 11-09-2005 à 22:32:35   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

ok mais apres je peu t'aider si tu veux
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 22:35:14   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

ben en reflichissant l'utlisatioon de ce truc me sera utlise en fin de jeu mes heros vont s'introduire dans la base centrale de la garde nationale et les detruire (par rage de meurtre de ses parent, ou plustot de sa mere )
dante
administrateur
dante
254 messages postés
   Posté le 11-09-2005 à 22:35:58   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

ok je vais t'aider a le faire
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 22:42:25   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

oui oui mais plus tard car la je suis au debut du projet

j'ai plusieur projet en cour (oui j'ai ete trop gourmant)

-The power of element : demo : http://dl7.rapidshare.de/files/4988435/93776876/the_power_of_element_demo.rar

C'est le truc que je t'ai raconte l'histoire en exemple

j'ai aussi :

-It is the life not the paradise , ce que je vient de te raconter plus haut

et enfin:

-Donjon of dreams

un gars qui fait un reve , un reve qui va ameliorer ses comptenec pour devenir hero et sauver definitivement la terre du mal (jeux en plusieur episode et je suis qu'au 1)

Message édité le 11-09-2005 à 22:43:50 par myk22
dante
administrateur
dante
254 messages postés
   Posté le 11-09-2005 à 22:44:23   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

bon je vais cree un topic pour notre team moi toi et ryu et zelda si il veux bien
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 22:58:53   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

ok chui pret a partciper si la shool m'en empeche pas
dante
administrateur
dante
254 messages postés
   Posté le 11-09-2005 à 22:59:55   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

ok j'espere que tu pourra participer
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 23:07:01   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

moi aussi
Ryu
administrateur
Ryu
264 messages postés
   Posté le 11-09-2005 à 23:20:29   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

de même.
zelda mythologie
espion
zelda mythologie
142 messages postés
   Posté le 12-09-2005 à 18:43:23   Voir le profil de zelda mythologie (Offline)   Répondre à ce message   Envoyer un message privé à zelda mythologie   

désolé pour l'absence
moi je suis partant
Drizzt Do Urden
paysan
18 messages postés
   Posté le 02-03-2006 à 02:02:02   Voir le profil de Drizzt Do Urden (Offline)   Répondre à ce message   Envoyer un message privé à Drizzt Do Urden   

Wow merci pour le script très pratique mais bon vu qu'il ne fonctionne pas je vais attendre avant de l'utiliser.
Ryu
administrateur
Ryu
264 messages postés
   Posté le 04-03-2006 à 17:37:25   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

j'ai presque réussi à le corrigé, tout ce qui cloche maintenent, c'est qu'ils voyent à travers les murs...

Message édité le 07-04-2006 à 22:08:55 par Ryu


--------------------
dante
administrateur
dante
254 messages postés
   Posté le 07-04-2006 à 12:26:53   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

je vais postez un autre que je vient de tester et qui marche tres bien
Ryu
administrateur
Ryu
264 messages postés
   Posté le 07-04-2006 à 22:11:10   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

je l'attant avec impatiance ^^


--------------------
Haut de pagePages : 1  
 
 forum rpg maker kingdom  marche central  recherche:script/ressources/tutoriaux  garde avec champ de visionNouveau sujet   Répondre
 
Identification rapide :         
 
Divers
Imprimer ce sujet
Aller à :   
 
créer forum