Comment se servir du Mod Tools ?
Introduction: Salut les copains :) ! Aujourd'hui je vais vous apprendre à faire des petits trucs sympa avec le Mod Tools. Je vais vous montrer comment importer le raygun, ou autres armes du solo sur une partie multijoueur. Je préfère préciser que ces tutoriels ne viennent pas de moi, mais directement de ItsMods ou de modders confirmés.
_ Changer les messages d'astuces pendant le chargement de la map
_ Changer la skybox d'un mod
_ Ajoutez des skins d'armes
_ Ajoutez des customshader
_ Changer la skybox d'un mod
_ Ajoutez des skins d'armes
_ Ajoutez des customshader
Qu'est-ce que le Mod Tools ?
Le Mod Tools est l'outil des développeurs. Il permet de créé des mods assez spectaculaires. (similaire à CoD4 ). Le seul problème c'est qu'il est en Anglais.
Vous voulez voir un aperçu du résultat ?
Pour vous donner l'envie de continuer de lire ce tutoriel, voici quelques aperçu du résultat:
Bon on s'arette là, je vais pas vous mettre toutes les armes du solo et du zombie non plus :)
I) Créer son mod, avec le script de base
Dans cette première partie, rien de très compliqué. Mais il faut appliquer les étapes une par une. Si vous passez des étapes, inutiles de demander de l'aide. Chaque étape est vraiment importante pour la suite.
A) Comment créer le chemin d'accès de votre mod ?
On va faire en sorte, que BlackOps reconnaisse votre mod.
1) Lancez Call of Duty Black Ops - Mod Tools (BETA)
2) Appuyez sur F5
3) Votre répertoire BlackOps s'ouvre, ouvrez le dossier mods
4) Faites clique droit ---> Nouveau ---> Dossier
5) Renommez ce dossier en mp_<nom_de_votre_mod>
Exemple: mp_zombie
6) Ouvrez votre dossier mp_<nom_du_mod>
7) Faites clique droit ---> Nouveau ---> Dossier
8) Renommez ce dossier en maps
9) Ouvrez votre dossier maps
10) Faites clique droit ---> Nouveau ---> Dossier
11) Renommez ce dossier en mp
12) Ouvrez votre dossier mp
13) Faites clique droit ---> Nouveau ---> Dossier
14) Renommez ce dossier en gametypes
En conclusion, vous devez avoir ce chemin d'accès:
modsmp_<nom_du_mod>mapsmpgametypes
B) Comment installer dans votre mod, un script de base ? ( Fichier _rank )
1) Lancez Call of Duty Black Ops - Mod Tools (BETA)
2) Cliquez sur l'onglet Explore
Cela permet de voir tout les fichiers invisibles du jeu.
3) Cliquez sur le bouton Gametype
Celui qui se situe à la dernière ligne dans la dernière colonne.
4) Le dossier gametypes du jeu s'ouvre, cherchez le fichier _rank.GSC
5) Une fois le fichier _rank trouvé, faites clique droit ----> Copier
6) De retour sur le Mod Tools, appuyez sur F5
7) Votre répertoire BlackOps s'ouvre, ouvrez le dossier mods
8) Ouvrez le dossier mp_<nom_de_votre_mod>
9) Ouvrez le dossier maps
10) Ouvrez le dossier mp
11) Ouvrez le dossier gametypes
12) Faite clique droit ------> Coller
Vous devez avoir ce chemin: mapsmpgametypes_rank
13) Retour sur le Mod Tools, cliquez sur l'onglet Mod Builder
14) Dans la catégorie Mod, séléctionner votre mod (mp_<nom_du_mod>)
15) Dans la catégorie Build Mod, cochez Link FastFile
16) Cliquez sur le bouton Build Mod
Voilà, votre mod est maintenant créé, et prêt à être modifié.
II) Importer des armes du zombie et du solo sur son mod
[Original Tutorial by Nukem]
On monte maintenant de niveau, ça commence à être difficile. Je vais vous expliquer comment faire pour mettre des armes du solo sur votre mod, comme les screenshots plus haut. Cette partie se fera en trois temps, d'abord je vais vous expliquer comment importer les armes (zombie et solo ), ensuite comment ajouter les sons des armes, et pour finir comment l'ajouter dans son mod.
A) Comment importer les armes du zombie sur le multi ?
1) Lancez Call of Duty Black Ops - Mod Tools (BETA)
2) Cliquez sur le bouton Asset Manager
Cela prend un certain temps à se lancer...
3) Sur Asset Manager, cliquez sur File
4) Cliquez sur Open
Allez dans C:Program Files (x86)SteamSteamAppscommoncall of duty black opssource_data
5) Sélectionnez le fichier zombie_misc_weapons.GDT
Le fichier d'armes est maintenant ouvert, je vais vous expliquer la démarche pour une seule arme. ( le Raygun ) Si vous voulez faire avec d'autre armes, sélectionnez une autre arme que le raygun, met exécutez exactement les même étapes.
6) Cliquez sur projectileweapon (suivant l'arme que vous voulez )
7) Cliquez sur ray_gun_zm (suivant l'arme que vous voulez )
8) Devant Target Folder, changez 1: Single-Player sur 2: Multi-Player
9) Appuyez sur F10
10) Retour sur le Mod Tools, cliquez sur l'onglet Mod Builder
11) Dans la catégorie Mod, sélectionnez votre mod (mp_<nom_du_mod>)
12) Cliquez sur le bouton Edit Zone Source
13) Dans la colonne de droite, écrivez weapon,mpray_gun_zm
Si vous avez choisit une autre arme, changez ray_gun_zm pour le nom de votre arme.
Exemple: weapon,mpthundergun_zm
14) Cliquez sur le bouton Save
15) Appuyez sur F5
16) Ouvrez le dossier raw
17) Ouvrez le dossier weapons
18) Ouvrez le dossier mp
19) Ouvrez le fichier ray_gun_zm (selon l'arme choisit) avec Bloc-notes ou de préférence Notepad++
20) Appuyez sur Ctrl+F en même temps
21) Écrivez parent
22) Cliquez sur Suivant
23) Supprimez tout ce qui suit derrière le mot parent
Pour notre cas, on devra supprimer ce groupe de mots: parentWeaponNameray_gun
Si c'est une autre arme, vous devez quand même supprimé ce groupe de mot.
Exemple: parentWeaponNamethundergun_zm
24) Fermez puis enregistrez
25) Retour sur le Mod Tools, cliquez sur l'onglet Mod Builder
26) Dans la catégorie Mod, séléctionner votre mod
27) Dans la catégorie Build Mod, cochez Link FastFile
28) Cliquez sur le bouton Build Mod
Voilà, votre arme est maintenant importée. (Mais il manque encore les sons de l'arme )
Si vous voulez une arme du solo, ouvrez directement un fichier d'arme. Par exemple au lieu de choisir zombie_misc_weapons.GDT, prenez panzerschreck.GDT.
Puis continuer les étapes à partir du numéro 8.
B) Comment importer les sons de l'arme ?
Je vous redirige vers le tuto de XxNoVaxX. Si vous avez des problèmes regardez son tuto vidéo.
http://www.cheat-gam3.com/200-cheat/tuto-mettre-le-son-sur-les-armes-importe-du-solo-47491/
C) Comment mettre les armes sur son mod ?
1) Lancez Call of Duty Black Ops - Mod Tools (BETA)
2) Appuyez sur F5
3) Ouvrez le dossier mods
4) Ouvrez le dossier mp_<nom_du_mod>
5) Ouvrez le dossier maps
6) Ouvrez le dossier mp
7) Ouvrez le dossier gametypes
8) Ouvrez le fichier _rank.GSC avec Bloc-notes ou de préférence Notepad++
9) Appuyez sur Ctrl+F
10) Écrivez init() puis cliquez sur Suivant
11) Rajoutez dans la fonction init() la ligne:
precacheItem("ray_gun_zm");
init()
{
precacheItem("ray_gun_zm");
level.scoreInfo = [];
level.xpScale = GetDvarInt( #"scr_xpscale" );
level.codPointsXpScale = GetDvarFloat( #"scr_codpointsxpscale" );
level.codPointsMatchScale = GetDvarFloat( #"scr_codpointsmatchscale" );
level.codPointsChallengeScale = GetDvarFloat( #"scr_codpointsperchallenge" );
level.rankXpCap = GetDvarInt( #"scr_rankXpCap" );
level.codPointsCap = GetDvarInt( #"scr_codPointsCap" );
level.rankTable = [];
precacheShader("white");
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
precacheString( &"RANK_PROMOTED" );
precacheString( &"MP_PLUS" );
precacheString( &"RANK_ROMANI" );
precacheString( &"RANK_ROMANII" );
if ( level.teamBased )
{
registerScoreInfo( "kill", 100 );
registerScoreInfo( "headshot", 100 );
registerScoreInfo( "assist_75", 80 );
registerScoreInfo( "assist_50", 60 );
registerScoreInfo( "assist_25", 40 );
registerScoreInfo( "assist", 20 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
registerScoreInfo( "dogkill", 30 );
registerScoreInfo( "dogassist", 10 );
registerScoreInfo( "helicopterkill", 200 );
registerScoreInfo( "helicopterassist", 100 );
registerScoreInfo( "helicopterassist_75", 0 );
registerScoreInfo( "helicopterassist_50", 0 );
registerScoreInfo( "helicopterassist_25", 0 );
registerScoreInfo( "spyplanekill", 100 );
registerScoreInfo( "spyplaneassist", 50 );
registerScoreInfo( "rcbombdestroy", 50 );
}
else
{
registerScoreInfo( "kill", 50 );
registerScoreInfo( "headshot", 50 );
registerScoreInfo( "assist_75", 0 );
registerScoreInfo( "assist_50", 0 );
registerScoreInfo( "assist_25", 0 );
registerScoreInfo( "assist", 0 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
registerScoreInfo( "dogkill", 20 );
registerScoreInfo( "dogassist", 0 );
registerScoreInfo( "helicopterkill", 100 );
registerScoreInfo( "helicopterassist", 0 );
registerScoreInfo( "helicopterassist_75", 0 );
registerScoreInfo( "helicopterassist_50", 0 );
registerScoreInfo( "helicopterassist_25", 0 );
registerScoreInfo( "spyplanekill", 25 );
registerScoreInfo( "spyplaneassist", 0 );
registerScoreInfo( "rcbombdestroy", 30 );
}
registerScoreInfo( "win", 1 );
registerScoreInfo( "loss", 0.5 );
registerScoreInfo( "tie", 0.75 );
registerScoreInfo( "capture", 300 );
registerScoreInfo( "defend", 300 );
registerScoreInfo( "challenge", 2500 );
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
pId = 0;
rId = 0;
for ( pId = 0; pId <= level.maxPrestige; pId++ )
{
// the rank icons are different
for ( rId = 0; rId <= level.maxRank; rId++ )
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
}
rankId = 0;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
assert( isDefined( rankName ) && rankName != "" );
while ( isDefined( rankName ) && rankName != "" )
{
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
level.rankTable[rankId][14] = tableLookup( "mp/ranktable.csv", 0, rankId, 14 );
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
rankId++;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
}
level.numStatsMilestoneTiers = 4;
level.maxStatChallenges = 1024;
buildStatsMilestoneInfo();
level thread onPlayerConnect();
}
{
precacheItem("ray_gun_zm");
level.scoreInfo = [];
level.xpScale = GetDvarInt( #"scr_xpscale" );
level.codPointsXpScale = GetDvarFloat( #"scr_codpointsxpscale" );
level.codPointsMatchScale = GetDvarFloat( #"scr_codpointsmatchscale" );
level.codPointsChallengeScale = GetDvarFloat( #"scr_codpointsperchallenge" );
level.rankXpCap = GetDvarInt( #"scr_rankXpCap" );
level.codPointsCap = GetDvarInt( #"scr_codPointsCap" );
level.rankTable = [];
precacheShader("white");
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
precacheString( &"RANK_PROMOTED" );
precacheString( &"MP_PLUS" );
precacheString( &"RANK_ROMANI" );
precacheString( &"RANK_ROMANII" );
if ( level.teamBased )
{
registerScoreInfo( "kill", 100 );
registerScoreInfo( "headshot", 100 );
registerScoreInfo( "assist_75", 80 );
registerScoreInfo( "assist_50", 60 );
registerScoreInfo( "assist_25", 40 );
registerScoreInfo( "assist", 20 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
registerScoreInfo( "dogkill", 30 );
registerScoreInfo( "dogassist", 10 );
registerScoreInfo( "helicopterkill", 200 );
registerScoreInfo( "helicopterassist", 100 );
registerScoreInfo( "helicopterassist_75", 0 );
registerScoreInfo( "helicopterassist_50", 0 );
registerScoreInfo( "helicopterassist_25", 0 );
registerScoreInfo( "spyplanekill", 100 );
registerScoreInfo( "spyplaneassist", 50 );
registerScoreInfo( "rcbombdestroy", 50 );
}
else
{
registerScoreInfo( "kill", 50 );
registerScoreInfo( "headshot", 50 );
registerScoreInfo( "assist_75", 0 );
registerScoreInfo( "assist_50", 0 );
registerScoreInfo( "assist_25", 0 );
registerScoreInfo( "assist", 0 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
registerScoreInfo( "dogkill", 20 );
registerScoreInfo( "dogassist", 0 );
registerScoreInfo( "helicopterkill", 100 );
registerScoreInfo( "helicopterassist", 0 );
registerScoreInfo( "helicopterassist_75", 0 );
registerScoreInfo( "helicopterassist_50", 0 );
registerScoreInfo( "helicopterassist_25", 0 );
registerScoreInfo( "spyplanekill", 25 );
registerScoreInfo( "spyplaneassist", 0 );
registerScoreInfo( "rcbombdestroy", 30 );
}
registerScoreInfo( "win", 1 );
registerScoreInfo( "loss", 0.5 );
registerScoreInfo( "tie", 0.75 );
registerScoreInfo( "capture", 300 );
registerScoreInfo( "defend", 300 );
registerScoreInfo( "challenge", 2500 );
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
pId = 0;
rId = 0;
for ( pId = 0; pId <= level.maxPrestige; pId++ )
{
// the rank icons are different
for ( rId = 0; rId <= level.maxRank; rId++ )
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
}
rankId = 0;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
assert( isDefined( rankName ) && rankName != "" );
while ( isDefined( rankName ) && rankName != "" )
{
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
level.rankTable[rankId][14] = tableLookup( "mp/ranktable.csv", 0, rankId, 14 );
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
rankId++;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
}
level.numStatsMilestoneTiers = 4;
level.maxStatChallenges = 1024;
buildStatsMilestoneInfo();
level thread onPlayerConnect();
}
12) Appuyez sur Ctrl+F
13) Ecrivez onPlayerSpawned() puis cliquez Suivant
14) Rajoutez dans la fonction onPlayerSpawned() les lignes:
self takeallweapons();
self giveWeapon("ray_gun_zm");
onPlayerSpawned()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
self takeallweapons();
self giveWeapon("ray_gun_zm");
if(!isdefined(self.hud_rankscroreupdate))
{
self.hud_rankscroreupdate = NewScoreHudElem(self);
self.hud_rankscroreupdate.horzAlign = "center";
self.hud_rankscroreupdate.vertAlign = "middle";
self.hud_rankscroreupdate.alignX = "center";
self.hud_rankscroreupdate.alignY = "middle";
self.hud_rankscroreupdate.x = 0;
if( self IsSplitscreen() )
self.hud_rankscroreupdate.y = -15;
else
self.hud_rankscroreupdate.y = -60;
self.hud_rankscroreupdate.font = "default";
self.hud_rankscroreupdate.fontscale = 2.0;
self.hud_rankscroreupdate.archived = false;
self.hud_rankscroreupdate.color = (0.5,0.5,0.5);
self.hud_rankscroreupdate.alpha = 0;
self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit();
self.hud_rankscroreupdate.overrridewhenindemo = true;
}
}
}
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
self takeallweapons();
self giveWeapon("ray_gun_zm");
if(!isdefined(self.hud_rankscroreupdate))
{
self.hud_rankscroreupdate = NewScoreHudElem(self);
self.hud_rankscroreupdate.horzAlign = "center";
self.hud_rankscroreupdate.vertAlign = "middle";
self.hud_rankscroreupdate.alignX = "center";
self.hud_rankscroreupdate.alignY = "middle";
self.hud_rankscroreupdate.x = 0;
if( self IsSplitscreen() )
self.hud_rankscroreupdate.y = -15;
else
self.hud_rankscroreupdate.y = -60;
self.hud_rankscroreupdate.font = "default";
self.hud_rankscroreupdate.fontscale = 2.0;
self.hud_rankscroreupdate.archived = false;
self.hud_rankscroreupdate.color = (0.5,0.5,0.5);
self.hud_rankscroreupdate.alpha = 0;
self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit();
self.hud_rankscroreupdate.overrridewhenindemo = true;
}
}
}
16) Retour sur le Mod Tools, cliquez sur l'onglet Mod Builder
17) Dans la catégorie Mod, séléctionner votre mod
18) Dans la catégorie Build Mod, cochez Link FastFile
19) Cliquez sur le bouton Build Mod
Vous pouvez dès maintenant testé votre mod et voir le résultat ! :)
PS: Si dans votre mod, vous avez l'arme defaultweapon_mp au lieu de l'arme voulue, faites comme ceci:
1) Lancez Call of Duty Black Ops - Mod Tools (BETA)
2) Cliquez sur Converter en bas à gauche
Le processus va durer 5 minutes, il va permettre de récupérer les fichiers manquants du Mod Tools. Après que ça soit terminer, recommencez à partir de l'étape II.
Last edited: