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
Le chiffre de départ (ici 1) indique son positionnement dans le 'changerace' il ne faut pas avoir de trou :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"
}
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
Etudions le début :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"
}
"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...






France

Logged





