TUTORIEL
Bonjour à tous, je vais vous expliquez comment réaliser une customisation de la Map (Des murs, rampes, bombe, hélicoptère sur la map,...)
Pour commencer il vous faut un Mod Coordinates* !
* C'est un Mod qui vous donnent les coordonnées exacte de la Map
Prenez le mien que je vient de finir, Nouvelle Mise a Jour: Coordonnées + Angles + Téléportation + Models + Rampe + Mur + Block [MAJ 04/12/12] . A TÉLÉCHARGER DANS LA PIÈCE JOINTE !
A télécharger dans la pièce jointe !
I) Lancement
1) Lancez le Mod Coordinates avec ItsModsloader
2) Mettez le jeu en fenêtré (Paramètre ----> Graphismes -----> Plein écran: Non
3) Lancez une partie privée (Désactiver le VAC dans 'options' du serveur)
4) Lancez la Map que vous voulez !
II) Compréhension
Vous alllez pouvoir remarquer qu'il y a une ligne de ce type (Origin: (1,2,3) Angles: (4,5,6) au centre de votre écran.
1 = Axe Horizontal
2 = Axe Vetical
3 = Hauteur
4 = Angle du joueur ( ce chiffre doit être a 0)
5 = Angle du joueur ( ce chiffre dépend d'où le joueurs est orienté
6 = Angle du joueur ( ce chiffre doit être a 0)
Syntaxe d'un Mur:
CreateWalls((?,?,?)*,(?,?,?))**;
Syntaxe d'une Rampe:
CreateRamps((?,?,?)*,(?,?,?))**;
* Le premier paquet de point d'interrogation ((?,?,?)) correspond au début. (Voir II) Création)
** Le 2ème paquet correspond à la fin. (Voir: II) Création)
Screenshot concernant la ligne de coordonnées:
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
III) Création
A) Mur:
1: Positionner vous a l'endroit ou vous voulez que votre mur démarre!
2: Notez la catégorie Origin sur un bout de papier*
3 :Positionnez vous a l'endroit ou votre mur se termine
4 : Notez la catégorie Origin sur un bout de papier*
*Ne prenez pas en compte les virgules et les chiffres derrière, notez simplement les chiffres avant la virgule.
LE DERNIER CHIFFRE DU 2ème PAQUET DE POINT D'INTERROGATIONS DOIT ÊTRE SUPÉRIEUR AU DERNIER CHIFFRE DU 1er PAQUET DE POINT D'INTERROGATIONS !
5: Faites un retour windows
6: Ouvrez le fichier _rank du mod.
7: Allez la ligne de la map qui correspond (exemple: Nuketown)
8: Ajoutez votre mur sous cette forme (Origine début),(Origine fin)
Nuketown()
{
CreateWalls((152, -54, 20),(-124, 58, -15));
}
{
CreateWalls((152, -54, 20),(-124, 58, -15));
}
10: Écrivez dans votre console: /map_restart
11: Le mur est apparut !
B) Rampe:
Suivre les étapes du mur. (Étapes identiques)
Nuketown()
{
CreateRamps((15,-454,15),(585,-457,265));
}
{
CreateRamps((15,-454,15),(585,-457,265));
}
C) Models
1: Positionner vous a l'endroit ou vous voulez que votre objet apparaisse !
2: Notez la catégorie Origin et Angles sur un bout de papier
3: Faites un retour windows
6: Ouvrez le fichier _rank du mod.
7: Allez la ligne de la map qui correspond (exemple: Nuketown)
8: Ajoutez votre objet sous cette forme (Orgine),(Angles)
Nuketown()
{
CreateModel((152, -54, 20),(0, -56, 0));
}
{
CreateModel((152, -54, 20),(0, -56, 0));
}
10: Écrivez dans votre console: /map_restart
11: Le model est apparut !
PS: Si il y a des moins ( - ) avant vos chiffres il faut les mettres ! C'est très important
IIII) Astuces IMPORTANTES
A) Changer la couleur des caisses en rouge ? By Grizli124 :D
1: Trouvez la ligne CreateWalls ou CreateRamps. (voir exemple)
CreateWalls(start, end)
{
D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
H = Distance((0, 0, start[2]), (0, 0, end[2]));
blocks = int(D/33.5);
height = int(H/50);
CX = end[0] - start[0];
CY = end[1] - start[1];
CZ = end[2] - start[2];
XA = (CX/blocks);
YA = (CY/blocks);
ZA = (CZ/height);
TXA = (XA/4);
TYA = (YA/4);
Temp = VectorToAngles(end - start);
Angle = (0, Temp[1], 90);
for(h = 0; h < height; h++)
{
block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelFriendly );
block.angles = Angle;
wait 0.001;
for(i = 1; i < blocks; i++){
block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelFriendly );
block.angles = Angle;
wait 0.001;
}
block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelFriendly );
block.angles = Angle;
wait 0.001;
}
}
{
D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
H = Distance((0, 0, start[2]), (0, 0, end[2]));
blocks = int(D/33.5);
height = int(H/50);
CX = end[0] - start[0];
CY = end[1] - start[1];
CZ = end[2] - start[2];
XA = (CX/blocks);
YA = (CY/blocks);
ZA = (CZ/height);
TXA = (XA/4);
TYA = (YA/4);
Temp = VectorToAngles(end - start);
Angle = (0, Temp[1], 90);
for(h = 0; h < height; h++)
{
block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelFriendly );
block.angles = Angle;
wait 0.001;
for(i = 1; i < blocks; i++){
block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelFriendly );
block.angles = Angle;
wait 0.001;
}
block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelFriendly );
block.angles = Angle;
wait 0.001;
}
}
CreateWalls(start, end)
{
D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
H = Distance((0, 0, start[2]), (0, 0, end[2]));
blocks = int(D/33.5);
height = int(H/50);
CX = end[0] - start[0];
CY = end[1] - start[1];
CZ = end[2] - start[2];
XA = (CX/blocks);
YA = (CY/blocks);
ZA = (CZ/height);
TXA = (XA/4);
TYA = (YA/4);
Temp = VectorToAngles(end - start);
Angle = (0, Temp[1], 90);
for(h = 0; h < height; h++)
{
block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelEnemy );
block.angles = Angle;
wait 0.001;
for(i = 1; i < blocks; i++){
block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelEnemy );
block.angles = Angle;
wait 0.001;
}
block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelEnemy );
block.angles = Angle;
wait 0.001;
}
}
{
D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
H = Distance((0, 0, start[2]), (0, 0, end[2]));
blocks = int(D/33.5);
height = int(H/50);
CX = end[0] - start[0];
CY = end[1] - start[1];
CZ = end[2] - start[2];
XA = (CX/blocks);
YA = (CY/blocks);
ZA = (CZ/height);
TXA = (XA/4);
TYA = (YA/4);
Temp = VectorToAngles(end - start);
Angle = (0, Temp[1], 90);
for(h = 0; h < height; h++)
{
block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelEnemy );
block.angles = Angle;
wait 0.001;
for(i = 1; i < blocks; i++){
block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelEnemy );
block.angles = Angle;
wait 0.001;
}
block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)), 1);
block setModel( level.crateModelEnemy );
block.angles = Angle;
wait 0.001;
}
}
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Bien sur vous pouvez faire les rampes en rouge et les murs en vert ou sens inverse.
B) Comment changer les Models ?
1: Trouvez la ligne CreateModel. (voir exemple)
CreateModel(pos, angle)
{
block = spawn("script_model", pos );
block setModel( "projectile_hellfire_missile" );
block.angles = angle;
wait 0.01;
}
{
block = spawn("script_model", pos );
block setModel( "projectile_hellfire_missile" );
block.angles = angle;
wait 0.01;
}
level.crateModelFriendly
level.crateModelEnemy
"projectile_helfire_missile"
"mp_flag_allies_1"
"mp_flag_axis_1"
level.crateModelEnemy
"projectile_helfire_missile"
"mp_flag_allies_1"
"mp_flag_axis_1"
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Merci à Grizli124 qui a découvert différentes méthodes et models ! ;)
C) Comment se téléporter ?
Appuyez sur la touche Utiliser et la touche Cut en même temps (E et F d'origine) pour déclencher le menu de téléportation. (j'ai mis ce système de 2 touches pour éviter d'ouvrir le menu sans le vouloir).
Attachments
Last edited: