Bon maintenant, fini la rigolade on passe aux choses sérieuses. Si votre mod n’a pas de vgui, l’adaptation sera finie pour vous, pour les autres, ils devront encore patienter un peu avant de jouer.
Tout d’abord dans weapon.h, on va devoir lier chaque arme à son id.
Aprés les définitions de dmc on va mettre les notres :
// weapon ID values for Valve's DMC
#define DMC_WEAPON_AXE 1
#define DMC_WEAPON_SHOTGUN 2
#define DMC_WEAPON_DOUBLESHOTGUN 4
#define DMC_WEAPON_NAILGUN 8
#define DMC_WEAPON_SUPERNAIL 16
#define DMC_WEAPON_GRENADE1 32
#define DMC_WEAPON_ROCKET1 64
#define DMC_WEAPON_LIGHTNING 128
#define VOTREMOD_WEAPON_CROWBAR 1
#define VOTREMOD_WEAPON_GLOCK 2
#define VOTREMOD_WEAPON_PYTHON 3
#define VOTREMOD_WEAPON_MP5 4
#define VOTREMOD_WEAPON_CHAINGUN 5
#define VOTREMOD_WEAPON_CROSSBOW 6
#define VOTREMOD_WEAPON_SHOTGUN 7
#define VOTREMOD_WEAPON_RPG 8
Si c’est votre mod, tou va pour le mieux, vous avez déja choisi les id et vous n’avez donc rien à chercher. Par contre si ce n’est pas le votre on va devoir utiliser le debug_engine (voir le tut correspondant) et rechercher un code qui ressemble à cela :
pfnMessageBegin: edict=1e01e40 dest=1 type=76
pfnWriteString: weapon_9mmAR
pfnWriteByte: 2 // type
pfnWriteByte: 250 // max de munition
pfnWriteByte: 3 // second type
pfnWriteByte: 10 // max de seconde munition
pfnWriteByte: 2 // slot
pfnWriteByte: 0 // slot
pfnWriteByte: 4 //weapon id
pfnWriteByte: 0 // pas utilisé
pfnMessageEnd:
Ce qui nous interresse, c’est la ligne 9 ; tiens ! mais dans notre exemple on a 4 et 4 c’est l’id de la mp5 de hl ! Donc c’est bon on a trouvé l’id de l’arme.
Aprés vous n’avez plus qu’à modifier le bot_combat.ccp
Vous avez deux tableaux :
Celui la qui correspond au caracteristiques de l’arme :
bot_weapon_select_t valve_weapon_select[] = {
{VALVE_WEAPON_CROWBAR, "weapon_crowbar", 2, 0.0, 50.0, 0.0, 0.0,
100, TRUE, 100, 0, 0, FALSE, FALSE, FALSE, FALSE, 0.0, 0.0},
Et celui là qui contient les caractéristiques temporelles de l’arme (en clair les temps entre chaque tir) :
bot_fire_delay_t valve_fire_delay[] = {
{VALVE_WEAPON_CROWBAR,
0.3, {0.0, 0.2, 0.3, 0.4, 0.6}, {0.1, 0.3, 0.5, 0.7, 1.0},
0.0, {0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0}},
=> Pour comprendre chaque champ, il faut regarder en haut du fichier. <=
Si c’est une arme blanche vous devez aussi faire un petit ajout toujours dans le même fichier :
_
if (((mod_id == VALVE_DLL) && (iId == VALVE_WEAPON_CROWBAR)) ||
((mod_id == TFC_DLL) && (iId == TF_WEAPON_AXE)) ||
((mod_id == VOTREMOD_DLL) && (iId == VOTREMOD_WEAPON_VOTREARMESBLANCHES)) ||
Bon c’est cool on a fini ! (sauf pour le vgui...).