Jump to content
View in the app

A better way to browse. Learn more.

Forum Supreme-Elite

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[TUTO] Creer un "npc" suivant un chemin défini

Featured Replies

======> POSTE ORIGINAL : Kenny <======

 

Les entités npc_ n'étant pas disponibles sous CS, c'est un peu plus complexes (sous certaines formes) de faires des NPC.

Dans ce tutorial, je vous montrerais comment faire des Zombies qui attaquent, réagissent aux dégats et avancent.

 

/!\ Seuls les prop_dynamic sont autorisés a avoir des animations (du moins, il me semble)

 

I. Le model

 

http://img18.imageshack.us/img18/7168/23718663gu8.jpg

 

Créez une entité point prop_dynamic avec le model du zombie que vous voulez (J'ai pris le model du zombie classic, vous comprendrez pourquoi prochainement).

 

 

Programmez le ainsi :

Name : Zombie

Default Animation : walk

 

NOTE : Pour ceux qui ne sauraient pas, pour choisir le model des entitées prop_ il faut aller dans l'onglet Class Info et la "Key" World Model.

 

NOTE2 : Vous trouverez les animations des models dans l'onglet "Model" de votre prop_dynamic

 

II. Le Mouvement

 

Creez un func_tanktrain en texture invisible autour de votre prop_dynamic comme ceci :

 

http://img291.imageshack.us/img291/1677/50776876nh4.jpg

 

Programmez le ainsi :

Name : Tank_zombie

Move Sound : Mettez ce que vous voulez, moi j'ai mis npc/zombie/moan_loop1.wav

 

Maintenant ajoutez ceci sur le model du Zombie :

Parent : Tank_zombie

 

"C'est bien beau tout sa, mais sa sers a quoi ?"

 

Le func_tanktrain est une entité bloc qui permet au bloc transformé de bouger a l'aide de path_track, or l'entitée que nous voulons faire bouger est un prop_dynamic ! C'est pourquoi il est nécessaire de le parenter a un func_tanktrain en texture invisible !

 

"Path_quoi ?"

 

Path_track: Entité point définissant le mouvement d'un func_tanktrain

 

Ajoutez donc des path_track pour donner une itinéraire a ce zombie :

 

 

 

Nommez le 1er: Path_zombie_1

Le 2e : Path_zombie_2 ... ect...ect jusqu'a ce que vous ayez l'itinéraire souhaitée.

 

/!\ N'oubliez pas de mettre le nom du path_track suivant dans "Next Stop Target"

 

NOTE : Si vous voulez que votre zombie tourne en boucle :

Name : path_zombie_X(étant le dernier path_track placé)

Next Stop Target : path_zombie_1(étant le 1er path_track placé)

 

Maintenant, changez les parametres du func_tanktrain :

First stop target : Path_zombie_1

Initial Speed : 30 (vitesse approximative du déplacement du zombie selon l'animation)

 

NOTE : Le func_tanktrain sera téléporté au path_track placé dans "First stop target"

 

III. Mais sa mord cette salo***** !!

 

 

 

Eh non pas encore ! :wink:

Creez 2 logic_timer paramétrés comme ceci :

 

Le 1er => Name : Timer1

=>Start Diasbled: Yes

=>Refire Interval : 1

 

Output :

OnTimer=>Zombie=>SetAnimation=>AttackA

 

Le 2e => Name : Timer2

=>Start Disabled : Yes

=>Refire Interval : 1

 

Output:

OnTimer=>Zombie=>SetAnimation)>AttackC

 

Creez un logic_case paramétré ainsi :

Name : Case_zombie

Case01 : Attack1

Case02 : Attack2

 

Outputs :

OnCase01 => Timer1=>Enable

OnCase02 => Timer2=>Enable

 

Et maintenant un Trigger_multiple placé et configuré ainsi :

Name : Trigger_zombie

Parent : Zombie

 

Outputs:

OnStartTouch=>Tank_zombie=>SetSpeed=>0

OnStartTouch=>Case_zombie=>PickRandom

OnEndTouch=>Zombie=>SetAnimation=>walk

OnEndTouch=>Timer1=>Disable

OnEndTouch=>Timer2=>Disable

 

 

"Hey ! Sa sers a quoi tout sa ?!"

 

Le Logic_case est une entitée que j'appel "Dans le cas où ???=>?=>?". En français c'est une entitée qui choisis un cas au hasard (que l'on a défini) quand elle est déclanchée. Ici, elle active un logic_timer qui donne une animation au prop_dynamic (AttackA ou AttackC) toute les 1secondes.

En gros, quand on touche le trigger, le zombie s'arrete et attaque. Je ne lui ai donné que 2 attaques possibles, mais il en existe 6 pour ce zombie (AttackA/B/C/D/E/F). Quand on s'éloigne du trigger, le zombie reprend son mouvement normal. Je précise : N'ayant que 2 cas pour ce tuto, il y ai de fortes chances pour que vous tombiez TOUJOURS sur la même animation

 

"Mais on perd pas de vie ?!"

 

En effet. Pour cela nous allons creer un trigger_hurt dont je vous laisse le soin de programmer sauf trois choses : Name : Bobo

Parent : Zombie

StartDisabled : Yes(sur le screen, le trigger_hurt est placé exactement a même endroit que le trigger_multiple)

 

http://img291.imageshack.us/img291/8625/66339313pr4.jpg

 

Maintenant ajoutez ces output au trigger_multiple :

OnStartTouch=>Bobo=>Enable

OnEndTouch=>Bobo=>Disable

 

Voila, votre zombie pique un peu maintenant

 

IV. Souffre saletée !

 

Ah ! Mon moment préféré ! Il est temps de faire payer ce zombie car il vousa griffé !

 

Creez un func_breakable en texture invisible plus grand que le func_tanktrain :

 

http://img145.imageshack.us/img145/8017/14053727dn4.jpg

 

Programmez le comme ceci :

Parent : Zombie

Health : Je vous laisse le choix, mettez des nombres supérieurs a 100, sa tient plus longtemps :wink:

Material Type : Flesh ( le probleme, les gibs sont des morceaux de bois :triste: .

 

Output

OnHealthChange=>Zombie=>SetAnimation=>FireWalk

OnBreak=>Zombie=>kill

OnBreak=>Tank_zombie=>kill

OnBreak=>Trigger_zombie=>kill

OnBreak=>Bobo=>kill

 

Voila, votre Zombie qui tue, qui marche et qui meurs

 

 

Bugs Possibles : Votre Prop_dynamic est Tourné dans le mauvais sens In-Game => Changez l'orientation des path_track pour que la petite barre jaune sois dans la direction du 1er mouvement OU changez l'orientation du prop_dynamic?

 

http://img17.imageshack.us/img17/6325/56014251bg4.jpg

 

Vous n'avez pas autant d'animation D'attaque ou en tout cas, les animations n'ont pas le même nom => Tout les models n'ont pas les même animations,regardez les bien avant de choisir votre model, vous pourriez être déçu.

 

J'explique mal ? Je ne vous dis pas le contraire . Pour ceux qui n'auraient pas compris => MSN : [email protected]

 

Et d'autres bug ? Possible ! J'ai peut-être fais des erreurs lors de ce tuto.

 

Voici le tant attendu résultat, made by moi : =>Clique moi<=

 

(Copié/collé de http://www.dtt-creation.fr)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.