Certains vont ce dire mais il y a déjà un tuto oui certes mais rien n'est bon a part pour les bots en voitures ,ceux a pied ou le tuto demande de les faire buger pour qu'ils exécutent leur parcours.La avec ce script les bots réagissent normalement j'espère qu'il servira si vous voyez un bug signalez le afin de voir ou sa cloche :)
Bonjour voila un tuto valide pour les bots
Pour commencer il faut que vous ayez enregsitré Votre bot, pour notre exemple il va s'appeler "Bruno"
Donc Bruno est un bot a pied qui se ballade sur la route.
donc le Bruno.rec est a placer dans le dossier npcmode/recording
Ensuite dans le dossier npcmode on doit faire un script pour chaque bot
(je pense que même un seul devrai suffire pour trois ou quatre bots mais je n'ai pas fait de test donc ne le faites pas et attendez mes tests)
Voila a quoi va ressembler le script pour un bot a pied
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(2, "Bruno");
public OnNPCSpawn() StartRecordingPlayback(2, "Bruno");
ensuite on compile est on donne le nom BOT_1.pwn
Du coter de Votre GM/FS Vous allez procéder de la sorte
public OnGameModeInit()
{
ConnectNPC("bot_1","Bruno");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
return 1;
}
Voila vous pouvez tester, votre bot se connecte desormais au serveur, mais il ne spawn pas
Rofl vous dite n'est ce pas.
Bon regardons du coter de OnPlayerSpawn
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))// si le joueur est un BOT
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);//on récupère sont pseudo
if(!strcmp(playername,"bruno",true))//si sont pseudo est Bruno
{
SetPlayerSkin(playerid,0);//je désir lui mettre le skin 0
}
}
else
{
//ici ce trouve le reste de votre GM
}
return 1;
}
Voila votre boot spawn est commence sont parcoure
Desormais Bruno2 est en moto
donc le Bruno2.rec est a placer dans le dossier npcmode/recording
Voila a quoi va ressembler le script pour un boot dans un véhicule
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(1, "Bruno2");
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(1, "Bruno2");
public OnNPCExitVehicle() StopRecordingPlayback();
ensuite on compile et on donne le nom BOT_2.pwn
Du coter de Votre GM/FS Vous allez procéder de la sorte
new botcar;
public OnGameModeInit()
{
botcar = AddStaticVehicle(modelid, 0.0, 0.0, 0.0, 0.0, 8, 13);
ConnectNPC("bot_2","Bruno2");//cette fonction permet de spawn un bot script BOT_2 Pseudo du bot Bruno2
return 1;
}
voila maintenant le spawn
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))// si le joueur est un BOT
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);//on récupère sont pseudo
if(!strcmp(playername,"bruno2",true))//si son pseudo est Bruno2
{
SetPlayerSkin(playerid,0);//je désir lui mettre le skin 0
PutPlayerInVehicle(playerid, botcar, 0);// je le met au volant de son véhicule
}
}
else
{
//ici se trouve le reste de votre GM
}
return 1;
}
Voila normalement ça devrait fonctionner ^^
Mais comment je fais si je veux plus d'un bot sur mon serveur .
Ben suivez ce qu'il y a ci dessous :
dans le dossier npcmode/recording vous avez Bruno.rec et Bruno2.rec
donc voila on reprend les deux scripts déjà fait mais je les remet ci dessous
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(2, "Bruno");
public OnNPCSpawn() StartRecordingPlayback(2, "Bruno");
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(1, "Bruno2");
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(1, "Bruno2");
public OnNPCExitVehicle() StopRecordingPlayback();
dans votre GM/FS
new botcar;
public OnGameModeInit()
{
ConnectNPC("bot_1","Bruno");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
botcar = AddStaticVehicle(modelid, 0.0, 0.0, 0.0, 0.0, 8, 13);
ConnectNPC("bot_2","Bruno2");//cette fonction permet de spawn un bot script BOT_2 Pseudo du bot Bruno2
return 1;
}
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))// si le joueur est un BOT
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);//on recupere sont pseudo
if(!strcmp(playername,"bruno",true))//si sont pseudo est Bruno
{
SetPlayerSkin(playerid,0);//je desir lui mettre le skin 0
}
else if(!strcmp(playername,"bruno2",true))//si sont pseudo est Bruno2
{
SetPlayerSkin(playerid,0);//je desir lui mettre le skin 0
PutPlayerInVehicle(playerid, botcar, 0);// je le met au volant de sont vehicule
}
}
else
{
//ici ce trouve le reste de votre GM
}
return 1;
}
CONSEIL retenez bien cette fonction IsPlayerNPC(playerid) elle pourra être très utile.