Archived copy of warcraft-source.com, the Warcraft: Source (WCS) forum (2007–2011), rebuilt from the Internet Archive by wc3mods.net. This page was captured on 2010-01-03 (original capture). Home · Forum · All archived topics · Downloads
Warcraft-Source.com - WCS mod for CSS
January 04, 2010, 12:26:12 AM *
Welcome, Guest. Please login or register.
Login with username, password and session length
News: Hall of Fame
Must Visit it
Google  
  Home   Forum   Help Search Login Register   *
Pages: [1]   Go Down
  Print  
Author Topic: [tutorial]Créer une race et un effet  (Read 93 times)
malfrax
Level 2 Apprentice
**
Offline Offline

France France

Posts: 51



WWW

myServer 77.111.254.192:27015
(Warning: click connects through Steam)
« on: December 13, 2009, 08:34:29 PM »

Bienvenue à tous !
Aujourd'hui je vais vous apprendre à créer d'abord une race puis par la suite des effets !!

1°) Avant de commencer

Tout d'abord parlons de vocabulaire :
racealias = Une extention de pouvoirs permettant de faire un pouvoir plus long
skills = pouvoir
effet = le visuel du pouvoir, sans l'effet le pouvoir ce ferais mais personne le verrais.

C'est le principal vocabulaire que j'utiliserais.

1°)a/ Les fichiers du warcraft

Les fichiers du warcraft sont organisé afin de les rendre plus lisible.
Nous utiliserons ces fichiers la :
wcsRace/es_wcsRaces_db : fichier de race
wcsUltimate/es_wcsUltimate_db : fichier d'ultimate

Ces fichiers sont exclusivement pour les races.

2°)b/ Mettre une race sur son serveur

Vous avez dans le fichier de race ceci :
Code
GeSHi (eventscripts):
"WCSraces"
{
Les races ....
}

Dedans il y a les races.
Une races c'est sa :
Code
GeSHi (eventscripts):
"1"
 {
   "name"              "Touchable"
   "author"            "[H.F.M.]Rasmus{Chef}"
   "required_level"    "0"
 
   "allow_only"        "0"
   "teamlimit"         "0"
   "preloadcmd"        "0"
   "player_spawn_cmd"  "0"
   "round_start_cmd"   "0"
   "round_end_cmd"     "0"
   "numberofskills"    "4"
   "numberoflevels"    "5"
   "skillnames"        "Donne moi|Donne moi +|Hoolabaloola"
   "skilldescr"        "Spawn une arme|Spawn une armure|Devenez invisible, reduisez la gravite, longjump et vitesse"
   "skillcfg"          "player_spawn|player_spawn|player_ultimate"
 
   "skill1_setting"    "es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5"
   "skill1_cmd"        "if (server_var(wcs_rand) = 1) then racealias_elite;if (server_var(wcs_rand) = 2) then racealias_fiveseven;if (server_var(wcs_rand) <= 3) then racealias_famas;if (server_var(wcs_rand) <= 4) then racealias_ak47;if (server_var(wcs_rand) <= 5) then racealias_m4a1"
   "racealias_elite"   "es es_delayed 2 est_RemoveWeapon event_var(userid) 2;es_delayed 3 est_give event_var(userid) weapon_elite;es_delayed 3.5 est_SetAmmo event_var(userid) 2 200;es_delayed 3.5 playerset clip event_var(userid) 2 200"
   "racealias_fiveseven" "es es_delayed 2 est_RemoveWeapon event_var(userid) 2;es_delayed 3 est_give event_var(userid) weapon_fiveseven;es_delayed 3.5 est_SetAmmo event_var(userid) 2 200;es_delayed 3.5 playerset clip event_var(userid) 2 200"
   "racealias_famas"   "es es_delayed 2 est_RemoveWeapon event_var(userid) 1;es_delayed 3 est_give event_var(userid) weapon_famas;es_delayed 3.5 est_SetAmmo event_var(userid) 1 300;es_delayed 3.5 playerset clip event_var(userid) 1 300"
   "racealias_ak47"    "es es_delayed 2 est_RemoveWeapon event_var(userid) 1;es_delayed 3 est_give event_var(userid) weapon_ak47;es_delayed 3.5 est_SetAmmo event_var(userid) 1 300;es_delayed 3.5 playerset clip event_var(userid) 1 300"
   "racealias_m4a1"    "es es_delayed 2 est_RemoveWeapon event_var(userid) 1;es_delayed 3 est_give event_var(userid) weapon_m4a1;es_delayed 3.5 est_SetAmmo event_var(userid) 1 300;es_delayed 3.5 playerset clip event_var(userid) 1 300"
   "skill1_sfx"        "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es_xmath wcs_z1 + 50;es est_effect 11 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 20 5000 2 100 300 1.8 175 175 255 255 1"
 
   "skill2_setting"    "es_xset dum 25|es_xset dum 50|es_xset dum 75|es_xset dum 100|es_xset dum 150"
   "skill2_cmd"        "es es_delayed 1 est_SetArmor event_var(userid) server_var(dum)"
   "skill2_sfx"        "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es_xmath wcs_z1 + 50;es est_effect 11 #a 0 sprites/purpleglow1.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 2 4 255"
 
   "skill3_setting"    "es_xsetinfo wcs_time 4.0|es_xsetinfo wcs_time 6.0|es_xsetinfo wcs_time 8.0|es_xsetinfo wcs_time 10.0|es_xsetinfo wcs_time 12.0"
   "skill3_cmd"        "es est_setplayercolor server_var(wcs_userid) 255 255 255 150 1;es est_speed server_var(wcs_userid) 1.8;es es_xdelayed server_var(wcs_time) est_speed server_var(wcs_userid) 1.00;es est_SetGravity server_var(wcs_userid) 0.50;es es_xdelayed server_var(wcs_time) est_SetGravity server_var(wcs_userid) 1.0;es es_xkeysetvalue WCSuserdata event_var(userid) longjump 1.60;es es_xdelayed server_var(wcs_time) es_xkeysetvalue WCSuserdata event_var(userid) longjump 1.00;es es_xdelayed server_var(wcs_time) est_setplayercolor server_var(wcs_userid) 255 255 255 255 1"
   "skill3_sfx"        "es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es es_xgetplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es est_effect 3 #a 0 sprites/halo01.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 20 50 200 20 20 255"
   "ultimate_cooldown" "20"
 }
 
Le chiffre de départ (ici 1) indique son positionnement dans le 'changerace' il ne faut pas avoir de trou :
Je m'explique, il ne faut pas avoir de 3 sans 2.

Donc si vous voulez mettre une race vous mettez le code si dessus et vous changez le chiffre par le dernier chiffre que vous avez plus 1.

Ex : si votre derniere race est la 15ème alors il vous faut mettre 16 si vous rajoutez une race.

2°) La composition d'une race

Tout d’abord nous allons étudier la compostion d’une race.
Je vais reprendre touchable comme race d’essai :
Code
GeSHi (eventscripts):
"1"
 {
   "name"              "Touchable"
   "author"            "[H.F.M.]Rasmus{Chef}"
   "required_level"    "0"
 
   "allow_only"        "0"
   "teamlimit"         "0"
   "preloadcmd"        "0"
   "player_spawn_cmd"  "0"
   "round_start_cmd"   "0"
   "round_end_cmd"     "0"
   "numberofskills"    "4"
   "numberoflevels"    "5"
   "skillnames"        "Donne moi|Donne moi +|Hoolabaloola"
   "skilldescr"        "Spawn une arme|Spawn une armure|Devenez invisible, reduisez la gravite, longjump et vitesse"
   "skillcfg"          "player_spawn|player_spawn|player_ultimate"
 
   "skill1_setting"    "es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5|es_xrand wcs_rand 1 5"
   "skill1_cmd"        "if (server_var(wcs_rand) = 1) then racealias_elite;if (server_var(wcs_rand) = 2) then racealias_fiveseven;if (server_var(wcs_rand) <= 3) then racealias_famas;if (server_var(wcs_rand) <= 4) then racealias_ak47;if (server_var(wcs_rand) <= 5) then racealias_m4a1"
   "racealias_elite"   "es es_delayed 2 est_RemoveWeapon event_var(userid) 2;es_delayed 3 est_give event_var(userid) weapon_elite;es_delayed 3.5 est_SetAmmo event_var(userid) 2 200;es_delayed 3.5 playerset clip event_var(userid) 2 200"
   "racealias_fiveseven" "es es_delayed 2 est_RemoveWeapon event_var(userid) 2;es_delayed 3 est_give event_var(userid) weapon_fiveseven;es_delayed 3.5 est_SetAmmo event_var(userid) 2 200;es_delayed 3.5 playerset clip event_var(userid) 2 200"
   "racealias_famas"   "es es_delayed 2 est_RemoveWeapon event_var(userid) 1;es_delayed 3 est_give event_var(userid) weapon_famas;es_delayed 3.5 est_SetAmmo event_var(userid) 1 300;es_delayed 3.5 playerset clip event_var(userid) 1 300"
   "racealias_ak47"    "es es_delayed 2 est_RemoveWeapon event_var(userid) 1;es_delayed 3 est_give event_var(userid) weapon_ak47;es_delayed 3.5 est_SetAmmo event_var(userid) 1 300;es_delayed 3.5 playerset clip event_var(userid) 1 300"
   "racealias_m4a1"    "es es_delayed 2 est_RemoveWeapon event_var(userid) 1;es_delayed 3 est_give event_var(userid) weapon_m4a1;es_delayed 3.5 est_SetAmmo event_var(userid) 1 300;es_delayed 3.5 playerset clip event_var(userid) 1 300"
   "skill1_sfx"        "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es_xmath wcs_z1 + 50;es est_effect 11 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 20 5000 2 100 300 1.8 175 175 255 255 1"
 
   "skill2_setting"    "es_xset dum 25|es_xset dum 50|es_xset dum 75|es_xset dum 100|es_xset dum 150"
   "skill2_cmd"        "es es_delayed 1 est_SetArmor event_var(userid) server_var(dum)"
   "skill2_sfx"        "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es_xmath wcs_z1 + 50;es est_effect 11 #a 0 sprites/purpleglow1.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 2 4 255"
 
   "skill3_setting"    "es_xsetinfo wcs_time 4.0|es_xsetinfo wcs_time 6.0|es_xsetinfo wcs_time 8.0|es_xsetinfo wcs_time 10.0|es_xsetinfo wcs_time 12.0"
   "skill3_cmd"        "es est_setplayercolor server_var(wcs_userid) 255 255 255 150 1;es est_speed server_var(wcs_userid) 1.8;es es_xdelayed server_var(wcs_time) est_speed server_var(wcs_userid) 1.00;es est_SetGravity server_var(wcs_userid) 0.50;es es_xdelayed server_var(wcs_time) est_SetGravity server_var(wcs_userid) 1.0;es es_xkeysetvalue WCSuserdata event_var(userid) longjump 1.60;es es_xdelayed server_var(wcs_time) es_xkeysetvalue WCSuserdata event_var(userid) longjump 1.00;es es_xdelayed server_var(wcs_time) est_setplayercolor server_var(wcs_userid) 255 255 255 255 1"
   "skill3_sfx"        "es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es es_xgetplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es est_effect 3 #a 0 sprites/halo01.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 20 50 200 20 20 255"
   "ultimate_cooldown" "20"
 }
 
Etudions le début :
"name"              "Touchable" // Nom de la race
    "author"            "[H.F.M.]Rasmus{Chef}" // Auteur de la race
    "required_level"    "0" // Level requis pour débloquer la race

    "allow_only"        "0" //Voir chapitre sur l’allow only
    "teamlimit"         "0" // Nombre maximum de joueurs par team avec cette race
    "preloadcmd"        "0" // Commande de chargement avant le spawn
    "player_spawn_cmd"  "0" // Commande au moment du spawn
    "round_start_cmd"   "0" // commande au début du round
    "round_end_cmd"     "0" // commande a la fin du round
    "numberofskills"    "4" //Nombre de skills sur la race
    "numberoflevels"    "5" // Nombre de levels à XP par skills

Cette partie est la plus simple.

    "skillnames"        "Donne moi|Donne moi +|Hoolabaloola" // Nom des skills, séparé les d’une | pour passer à l’autre skills
    "skilldescr"        "Spawn une arme|Spawn une armure|Devenez invisible, reduisez la gravite, longjump et vitesse" // Déscription d’un skills
    "skillcfg"          "player_spawn|player_spawn|player_ultimate" // Voir chapitre sur les déclanchement
Les autres partie sont les pouvoirs de la race. On le vera dans le chapitre des pouvoirs.
3°) Allow Only et déclanchement
3°)a/ Allow Only

L’allow only sert à spécifier une race à quelqu’un de précis. Il faut y mettre le steamid du joueurs.
Ce steamid ce trouve dans counter strike source en fesant status dans la console on trouvera un morceau de code de ce type
STEAM_x :x :xxxxxxxxxxx
C’est le steamid.

Si on veut donc rendre personnel une race il faut mettre ce steamid entre <> et si il faut en mettre plusieurs il faut les  séparer d’un |
Ex : « allow_only » « <STEAM_x :x :xxxxxxx>|<STEAM_y :y :yyyyyyyyyyy> »

3°)b/ Les déclanchement
Les déclanchement ce sont des morceaux de code present dans la ligne skillcfg qui permet de dire quand le pouvoir va ce déclancher. La plupart du temps il vous sont donnez mais je vais faire un petit rappelle :
Player_spawn : Quand le joueurs spawn
Player_attacker : Quand le joueurs attaque
Player_victim : Quand le joueurs ce fait attaquer
Player_Death : Quand le joueurs meure
Player_say : Quand le joueurs écrit
Player_ultimate : Quand le joueurs met son ultimate


4°) Créer une race

Je vous conseille vivement de télécharger ce fichier que répertorie les pouvoirs suivant leurs déclenchement :
 http://source-scripts.com/index.php?site=files&file=16


Un pouvoir ce présente comme sa :

Code
GeSHi (eventscripts):
   "skill2_setting"    "es_xset dum 25|es_xset dum 50|es_xset dum 75|es_xset dum 100|es_xset dum 150"
   "skill2_cmd"        "es es_delayed 1 est_SetArmor event_var(userid) server_var(dum)"
   "skill2_sfx"        "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es_xmath wcs_z1 + 50;es est_effect 11 #a 0 sprites/purpleglow1.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 2 4 255"
 

Chaque skill est numéroté, il faut que c'est numéro corresponde avec leur placement dans le "skill_name" et le "skill_descr".
Dans le skill_cmd il y a le pouvoirs du skills, il ne faut pas y toucher.
Dans le skill_setting il y a les configurations du skill, il contient plusieurs block séparé par des |.
IL FAUT QU'IL Y EST AUTANT DE BLOCK que vous avez mis dans le "numberoflevels"
Si le numberoflevels vaut 5 il faut mettre 5 blocks.

Le skill_sfx contient l'effet.

Dans les ultimates, il y a une partie :
"ultimate_coldown"
Cette partie sert à dire au bout de combien de temps (en seconde) on peut utiliser l'effet.

Nous avons donc fini la grande partie de la race.


5°) Les bases des effets

Les effets vont ce mettre dans le "skill_sfx" on va travailler tout la dessus

5°)a/Récupérer la position du joueur

Pour récupéré la position du joueurs il faut créer des variables qui vont les enregistrer. Tout d'abord il faut vous mettre en vision 3D, c'est à dire qu'il faut ce rendre compte des 3axes.
L'axe X : La largeur
L'axe Y : La profondeur
L'axe Z : La hauteur



Les variables sont un ensemble de lettre qui vont enregistrer un chiffre.
Donc avec une commande nous allons prendre :
la valeur de X et la mettre dans wcs_x1
la valeur de Y et la mettre dans wcs_y1
la valeur de Z et la mettre dans wcs_z1

Les variables sont deja definie donc pas de probleme pour le moment.
Pour faire tout sa il faut faire sa :
Code
GeSHi (eventscripts):
es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid)

si vous voulez prendre la position de l'attaquant :
Code
GeSHi (eventscripts):
es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker)

Pour les deux il faut mettre les wcs_x2 wcs_y2 wcs_z2 :
Code
GeSHi (eventscripts):
es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(userid);es es_xgetplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(attacker)

5°) Choisir son image et créer son effets

A suivre...
« Last Edit: December 14, 2009, 06:37:45 PM by malfrax » Logged

CA.Berettonawak
Le renommé méconnu...
Watchdogs
Level 7 Expert
*****
Online Online

France France

Posts: 2891


Big Berettonawak is watching you...


WWW
Bifkids
« Reply #1 on: December 14, 2009, 09:04:20 AM »

J'ai pas vraiment le temps là, donc juste un conseil.
Dans tes explications, ne mets pas ":" mais "//", cela évitera les problèmes si les gens recopient dans leur fichier.

PS: Bip' moi mercredi, je repasserai regarder Tongue
Logged

Quote from: N0life
Beret, keep yourself focusing on 1 project. Be sure to memorize that down since it sounds good.
Quote from: myself
i love tuna juice Cheesy
Quote from: Pietro
=CA= Pietro: back
=CA= Pietro: sorry, was downstair sharing my chocolate with my cat
=CA= Pietro: you should see his face when he ate it xD
Quote from: myself
=CA= Berettonawak: just because you don't have hope doesn't mean we're doomed
malfrax
Level 2 Apprentice
**
Offline Offline

France France

Posts: 51



WWW

myServer 77.111.254.192:27015
(Warning: click connects through Steam)
« Reply #2 on: December 14, 2009, 06:17:59 PM »

Je vais continuer, je modifie ton truc ^^
Logged

Pages: [1]   Go Up
  Print  
 
Jump to:  

Last 7 Shouts:
Today at 12:18:40 AM
oh i know, it's gay cause you can't sell stuff or make users get viruses Wink
Today at 12:03:29 AM
if it's gay i can ban you from here Tongue
it's not gay, spent hours on it
plus krypt is never on, he'll be full admin on the new site when he comes...
January 03, 2010, 11:46:11 PM
berettonawak there is admin which is dariaba... it just he never online he is busy for his business... the new site is gay anyways...
January 03, 2010, 09:19:52 PM
hahah la murte big sunny of a bitch, who do you think you are tricking putting this porn website with  a lot of virus?
January 03, 2010, 07:03:18 PM
lol its funny somehow now all are advertising xD even the moderators :p  CLICK TO SEE
January 03, 2010, 04:58:15 PM
Oki :\\ Lemme copy and go over to the other one
January 03, 2010, 04:57:41 PM
We do not support this site anymore.
Please post here.
Recent
[January 03, 2010, 11:36:29 PM]

[January 03, 2010, 11:23:30 PM]

[January 03, 2010, 11:22:39 PM]

[January 03, 2010, 08:06:47 PM]

[January 03, 2010, 07:52:00 PM]

[January 03, 2010, 06:59:32 PM]

[January 03, 2010, 06:17:46 PM]

[January 03, 2010, 04:50:53 PM]

[January 03, 2010, 04:36:12 PM]

[January 03, 2010, 03:39:13 PM]
Theme switch

Powered by MySQL Powered by PHP Powered by SMF 1.1.10 | SMF © 2006-2009, Simple Machines LLC
TinyPortal v0.9.8 © Bloc
Valid XHTML 1.0! Valid CSS!
Page created in 0.734 seconds with 27 queries.