GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Tutoriels et références SA:MP => Discussion démarrée par: cristab le 07 Décembre 2009, 14:20:58

Titre: Tuto pour vos bot
Posté par: cristab le 07 Décembre 2009, 14:20:58
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.
Titre: Re : tuto pour vos bot
Posté par: MrFredo le 07 Décembre 2009, 14:43:29
(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)

Je confirme ;)

J'ai un scirpt pour plusieur bots chauffeur de bus (et il peuvent meme effectuer des trajet diferent :p)
Titre: Re : tuto pour vos bot
Posté par: ClaSh le 07 Décembre 2009, 16:50:01
Salut,

Bien bien le tuto :happy .

ClaSh
Titre: Re : Re : tuto pour vos bot
Posté par: cristab le 07 Décembre 2009, 17:06:45
(je pense que meme un seul devrais suffire pour trois ou quatre bots mais je n'est pas fait de test donc ne le faite pas et attendez met teste)

Je confirme ;)

J'ai un scirpt pour plusieur bots chauffeur de bus (et il peuvent meme effectuer des trajet diferent :p)

ben merci donc ce qui facilite grandement le systeme
Titre: Re : tuto pour vos bot
Posté par: Dark4ng3L le 07 Décembre 2009, 21:42:27
Gg comme d'ab ^^
a metre dans la section tuto...

PS: cristab tu t'es encore trompé d'adresse MSN et m'a bloqué --'  :dejadehors

++d4++
Titre: Re : tuto pour vos bot
Posté par: cristab le 07 Décembre 2009, 21:53:28
enfaite ce tuto est en gros la correction de celui present qui est assez bizard a comprendre et comme on me demande souvent je me suis amuser a copier ceci



PS voici un le script basé du tuto afin de vous demontrer comment realiser un seul script npw pour plusieurs bot


#include <a_npc>
main(){}
public OnRecordingPlaybackEnd()
{
   StartRecordingPlayback(1, "Bruno2");
   StartRecordingPlayback(2, "Bruno");
   return 1;
}
public OnNPCEnterVehicle(vehicleid, seatid)
{
   StartRecordingPlayback(1, "Bruno2");
   return 1;
}
public OnNPCExitVehicle()
{
   StopRecordingPlayback();
   return 1;
}
public OnNPCSpawn()
{
   StartRecordingPlayback(2, "Bruno");
   return 1;
}
par contre un truc me chifonne

public OnRecordingPlaybackEnd()
{
   StartRecordingPlayback(1, "Bruno2");
   StartRecordingPlayback(2, "Bruno");
   return 1;
}
je ne comprend pas trop cette callback
puisqu'on appel une seconde fois ces meme parametre enfaite
Titre: Re : tuto pour vos bot
Posté par: Xoss le 07 Décembre 2009, 22:52:59
Merci Cristab je test ça dans pas lgt je te dirais des nouvelles ^^
Comme je t'ai pas mal demander comment on faisait ^^
La c est ecrit :p
Titre: Re : tuto pour vos bot
Posté par: BuBuNo le 09 Décembre 2009, 01:34:28
Oh le bot s'appelle Bruno comme moi  :-*

Aller j'arete les HS ^^
tres bon tuto Cristab
Titre: Re : tuto pour vos bot
Posté par: Ssk le 09 Décembre 2009, 08:07:30
Merci pour le tuto Cristab ^^ ca servira a ceux qui ne savent pas les mettre en place mais de toute façon je ne me sert pas des bots vue comment il sont nul ^^
Titre: Re : tuto pour vos bot
Posté par: BuBuNo le 09 Décembre 2009, 12:10:04
ouai c'est vrai que les bots sont pas super car on peu ni les tuer ni les faire bouger en les rentrant dedans
Titre: Re : tuto pour vos bot
Posté par: Ssk le 09 Décembre 2009, 12:46:57
Il peuvent juste servir a faire de la population sur les trotoir ....
Titre: Re : tuto pour vos bot
Posté par: Xoss le 09 Décembre 2009, 13:07:54
Bien pour les rp ^^
Titre: Re : tuto pour vos bot
Posté par: MasterRace le 20 Décembre 2009, 10:26:11
Citer
   }
   else
   {
       //ici se trouve le reste de votre GM
    }
    return 1;
}

"//ici se trouve le reste de votre GM",

"Le reste", c'est vraiment tous ?? Ou, c'est juste ce qui à entre "public OnPlayerSpawn(playerid)" et "public CKLog(string[])" ??
Titre: Re : tuto pour vos bot
Posté par: cristab le 20 Décembre 2009, 10:34:56
juste OnPlayerSpawn
Titre: Re : tuto pour vos bot
Posté par: MasterRace le 20 Décembre 2009, 10:53:20
Ok, merci

http://forum.sa-mp.com/index.php?topic=139764.0 (http://forum.sa-mp.com/index.php?topic=139764.0)
Titre: Re : tuto pour vos bot
Posté par: » Lukubi™ le 20 Décembre 2009, 12:09:20
Salut, j'ai trouvé sa sur le forum samp, j'espère que sa pourras aider ceux qui on du mal à créer des bots :P
http://forum.sa-mp.com/index.php?topic=130066.0 (http://forum.sa-mp.com/index.php?topic=130066.0)
Titre: Re : tuto pour vos bot
Posté par: cristab le 20 Décembre 2009, 13:02:19
ne peu etre que tres utile :)
Titre: Re : tuto pour vos bot
Posté par: MasterRace le 20 Décembre 2009, 13:09:32
Est-ce bon ? :

Citer
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
   {
   InitLockDoors(playerid);
   STDPlayer[playerid] = 0;
   gTeam[playerid] = PlayerInfo[playerid][pTeam]; //Set the Team
   if (gTeam[playerid] == 4) //medic / criminal reset team
   {
      gTeam[playerid] = 3;
   }
   if(gPlayerLogged[playerid] == 0)
   {
       SendClientMessage(playerid, COLOR_LIGHTRED, "** Vous devez avoir un compte enregistré et être connecté pour apparaître sur le serveur (Kické) **");
        KickPlayer[playerid] = 1;
    }
   if(gTeam[playerid] == 11 && PlayerInfo[playerid][pLeader] < 1)
   {
       MedicBill[playerid] = 0;
       new rand = random(sizeof(CIV));
      SendClientMessage(playerid, COLOR_LIGHTRED, "You are not an Approved Leader, you are now a Civilian !");
      PlayerInfo[playerid][pTeam] = 3;
      gTeam[playerid] = 3;
      SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
      PlayerInfo[playerid][pModel] = CIV[rand];
      SpawnPlayer(playerid);
   }
   if(gTeam[playerid] == 5)
   {
       if(PlayerInfo[playerid][pMember] < 1)
       {
           MedicBill[playerid] = 0;
           new rand = random(sizeof(CIV));
         SendClientMessage(playerid, COLOR_LIGHTRED, "You are not a Family Member, you are now a Civilian !");
         PlayerInfo[playerid][pTeam] = 3;
         gTeam[playerid] = 3;
            SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
         PlayerInfo[playerid][pModel] = CIV[rand];
         SpawnPlayer(playerid);
      }
   }
   if(gTeam[playerid] == 10)
   {
       if(PlayerInfo[playerid][pMember] != 8)
       {
           MedicBill[playerid] = 0;
           new rand = random(sizeof(CIV));
         SendClientMessage(playerid, COLOR_LIGHTRED, "You are not a Member of this Agency, you are now a Civilian !");
         PlayerInfo[playerid][pTeam] = 3;
         gTeam[playerid] = 3;
            SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
         PlayerInfo[playerid][pModel] = CIV[rand];
         SpawnPlayer(playerid);
      }
   }
   if(gTeam[playerid] == 2 && PlayerInfo[playerid][pMember] > 3)
   {
       MedicBill[playerid] = 0;
      new rand = random(sizeof(CIV));
      SendClientMessage(playerid, COLOR_LIGHTRED, "You haven't applied for being an Officer / FBI / National Guard, you are now a Civilian !");
      PlayerInfo[playerid][pTeam] = 3;
      gTeam[playerid] = 3;
      SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
      PlayerInfo[playerid][pModel] = CIV[rand];
      SpawnPlayer(playerid);
   }
   if(gTeam[playerid] == 3)
   {
       if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pLeader] > 0)
       {
         SendClientMessage(playerid, COLOR_LIGHTRED, "You are part of a Family/Force, you've been forced to the right Class + Char !");
         MedicBill[playerid] = 0;
         new model = PlayerInfo[playerid][pChar];
         if(PlayerInfo[playerid][pMember] == 1) { SetSpawnInfo(playerid, 2, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 2) { SetSpawnInfo(playerid, 2, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 3) { SetSpawnInfo(playerid, 2, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 4) { SetSpawnInfo(playerid, 1, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 1; gTeam[playerid] = 1; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 5) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 6) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 8) { SetSpawnInfo(playerid, 10, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 10; gTeam[playerid] = 10; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 9) { SetSpawnInfo(playerid, 12, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 10) { SetSpawnInfo(playerid, 12, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pMember] == 11) { SetSpawnInfo(playerid, 12, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 1) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 2) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 3) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 4) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 5) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 6) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 7) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 8) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 9) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 10) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         else if(PlayerInfo[playerid][pLeader] == 11) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; PlayerInfo[playerid][pModel] = model; }
         //SetSpawnInfo(playerid, team, model,0.0,0.0,0.0,0,0,0,0,0,0,0);
         SpawnPlayer(playerid);
      }
   }
   if(PlayerInfo[playerid][pChar] > 0) { SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); }
   else { SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); }
   SetPlayerWeapons(playerid);
   SetPlayerSpawn(playerid);
   SetPlayerToTeamColor(playerid);
   PlayerFixRadio(playerid);
   for(new i = 0; i < sizeof(Turfs); i++)
   {
       GangZoneShowForPlayer(playerid, i, TurfInfo[zColor]);
   }
   if(MapIconsShown[playerid] != 1)
   {
       MapIconsShown[playerid] = 1;
       for(new i = 0; i < sizeof(BizzInfo); i++)
      {
         SetPlayerMapIcon(playerid,i + 1,BizzInfo[bEntranceX],BizzInfo[bEntranceY],BizzInfo[bEntranceZ],36,COLOR_LIGHTRED);
      }
      for(new i = 0; i < sizeof(SBizzInfo); i++)
      {
          SetPlayerMapIcon(playerid,i + 20,SBizzInfo[sbEntranceX],SBizzInfo[sbEntranceY],SBizzInfo[sbEntranceZ],36,COLOR_LIGHTRED);
      }
   }
   return 1;
    }//ici ce trouve le reste de votre GM
    return 1;
}

public CKLog(string[])
Titre: Re : tuto pour vos bot
Posté par: cristab le 20 Décembre 2009, 13:18:15
sa en a tout l'air si vraiment sa ne fonctionne pas tente sur un Script vierge
Titre: Re : tuto pour vos bot
Posté par: MasterRace le 20 Décembre 2009, 13:31:27
Ok  :)

J'ai compilé et j'ai obtenu ces deux erreurs :

Citer
D:\_FR__G~1\GAMEMO~1\RP.pwn(6859) : error 021: symbol already defined: "ConnectNPC"
D:\_FR__G~1\GAMEMO~1\RP.pwn(6860) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

Lignes correspondant :

Citer
      AddCar(i);
   }
   CarInit();
   return 1;
}
ConnectNPC("bot_1","Bruno");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
return 1;

public SyncUp()
{
   SyncTime();
   DollahScoreUpdate();
}
Titre: Re : tuto pour vos bot
Posté par: cristab le 20 Décembre 2009, 13:38:06
c'est a mettre dans le ongamemodeinit sa ConnectNPC("bot_1","Bruno");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
Titre: Re : tuto pour vos bot
Posté par: MasterRace le 20 Décembre 2009, 13:54:42
Comme çà :

Citer
public OnGameModeInit()
{
    ConnectNPC("bot_1","Bruno");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno

    new string[MAX_PLAYER_NAME];
    new string1[MAX_PLAYER_NAME];
   for(new c=0;c<CAR_AMOUNT;c++)

?
Titre: Re : tuto pour vos bot
Posté par: Hatomalis le 10 Avril 2010, 16:19:27
Désoler d'up se sujet mais moi il n'y a aucune érreur !!

Et pourtant mon bot n'apparait pas (il y a le véhicule mais personne dedans)


AIDEZ MOI SVP
Titre: Re : tuto pour vos bot
Posté par: cristab le 10 Avril 2010, 19:57:34
peu t'on voir le code et place tu bien les script necessaire et dans ton server.cfg le maxnpc est a combien ?
Titre: Re : tuto pour vos bot
Posté par: Hatomalis le 11 Avril 2010, 14:36:41
mon maxnpc est de 10 et comme filesrcipt j'ai BOT_1 et (botganton1 (bruno1)

et tous mes srcipt n'ont aucune érreur et BOT_1 et bruno1 sont dans filterscript et mon enregistrement est dans scriptfile et npcmode/recording
Titre: Re : tuto pour vos bot
Posté par: cristab le 11 Avril 2010, 14:49:50
voila l'erreure filterscript
Titre: Re : tuto pour vos bot
Posté par: Hatomalis le 11 Avril 2010, 14:55:33
voila c bn il se connecte mais se déconnecte juste après

ET ILS NE SPAWN PAS pourtant j'ai tout bien fait il se connecte et tout

Voila pour BOT_1 (a pied)


#include <a_samp>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

#else

main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
    ConnectNPC("BOT_1","botganton1");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
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 récupère sont pseudo
if(!strcmp(playername,"botganton1",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;
}


Et mon autre fichier botganton1


#include <a_samp>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

#else

main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
    ConnectNPC("BOT_1","botganton1");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
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 récupère sont pseudo
if(!strcmp(playername,"botganton1",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;
}
Titre: Re : Tuto pour vos bot
Posté par: mehdi-jumper le 10 Octobre 2011, 16:45:19
I'll me semble qu'I'll y a une erreur, c'est ceci:

ConnectNPC("NOMDUBOT","NOMDUFICHIER") tandis que dans le tuto c'est l'inverse non?
Titre: Re : Tuto pour vos bot
Posté par: Ssk le 10 Octobre 2011, 17:59:21
Tu as tout à fait raison ConnectNPC (http://wiki.sa-mp.com/wiki/ConnectNPC) ;)
Titre: Re : Tuto pour vos bot
Posté par: mehdi-jumper le 10 Octobre 2011, 19:35:52
Merci de bien le modifier dans le tuto car j'ai chercher pdt plusieurs heures pour trouver mon erreur alors que c'etait juste sa""

Sinon Merci pour le tuto!
Titre: Re : Tuto pour vos bot
Posté par: MaLiik_Mahone le 30 Décembre 2011, 05:22:57
Salut Salut a tous !

Tout a d'abord , merci pour ce tuto très simple et bien détaille ! Que j'ai suivis a la lettre , aucun problème en apparence quand je met un bot ( Chauffeur de Bus ) . Il fais le chemin comme convenue aucun problème tout vas bien .
C'est maintenant que ça se complique , quand je met un deuxième ( Chauffeur de Bus , également ) , les deux bots font leurs parcours cependant un moment donné l'un des deux s’arrêtera , le bot sera au dessus de son véhicule et quelques secondes plus tard il se téléportera  un peu plus loin .

{
    ConnectNPC("Bus9","Bus9");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
    botcar1 = AddStaticVehicle(431, 2031.6564 ,-1940.1276 ,13.4387 ,270.3643, 1, 6);
    ConnectNPC("Bus262","Bus262");//cette fonction permet de spawn un bot script BOT_2 Pseudo du bot Bruno2
    botcar2 = AddStaticVehicle(431, 2055.0551 , -1940.2045, 13.4437, 270.3643, 5, 16);
    ConnectNPC("Bus3019","Bus3019");//cette fonction permet de spawn un bot script BOT_2 Pseudo du bot Bruno2
    botcar3 = AddStaticVehicle(431, 2008.5728 ,-1940.0522 ,13.3390 ,270.3643, 184, 127);
}

   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,"Bus9",true))//si sont pseudo est Bruno2
      {
         PutPlayerInVehicle(playerid, botcar1, 0);// je le met au volant de sont vehicule
         return 1;
      }
            else if(!strcmp(playername,"Bus262",true))//si sont pseudo est Bruno
      {
          PutPlayerInVehicle(playerid, botcar2, 0);// je le met au volant de sont vehicule
         return 1;
      }
         else if(!strcmp(playername,"Bus3019",true))//si sont pseudo est Bruno
      {
          PutPlayerInVehicle(playerid, botcar3, 0);// je le met au volant de sont vehicule
         return 1;
      }
      return 1;
   }

Merci a tous pour toute aide future
Titre: Re : Tuto pour vos bot
Posté par: Ssk le 30 Décembre 2011, 11:24:31
Salut, tu devrai aller lire les règles de la section PAWN car tu devrai normalement savoir que les codes sont à mettre dans la balise code.
Titre: Re : Tuto pour vos bot
Posté par: MaLiik_Mahone le 13 Décembre 2012, 20:03:27
En effet étais ce vraiment gênant ? Je sais pas mais aprés ta remarque tu aurais pue y rajouter de l'aide a ma question .

{
    ConnectNPC("Bus9","Bus9");//cette fonction permet de spawn un bot script BOT_1 Pseudo du bot Bruno
    botcar1 = AddStaticVehicle(431, 2031.6564 ,-1940.1276 ,13.4387 ,270.3643, 1, 6);
    ConnectNPC("Bus262","Bus262");//cette fonction permet de spawn un bot script BOT_2 Pseudo du bot Bruno2
    botcar2 = AddStaticVehicle(431, 2055.0551 , -1940.2045, 13.4437, 270.3643, 5, 16);
    ConnectNPC("Bus3019","Bus3019");//cette fonction permet de spawn un bot script BOT_2 Pseudo du bot Bruno2
    botcar3 = AddStaticVehicle(431, 2008.5728 ,-1940.0522 ,13.3390 ,270.3643, 184, 127);
}

   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,"Bus9",true))//si sont pseudo est Bruno2
      {
         PutPlayerInVehicle(playerid, botcar1, 0);// je le met au volant de sont vehicule
         return 1;
      }
            else if(!strcmp(playername,"Bus262",true))//si sont pseudo est Bruno
      {
          PutPlayerInVehicle(playerid, botcar2, 0);// je le met au volant de sont vehicule
         return 1;
      }
         else if(!strcmp(playername,"Bus3019",true))//si sont pseudo est Bruno
      {
          PutPlayerInVehicle(playerid, botcar3, 0);// je le met au volant de sont vehicule
         return 1;
      }
      return 1;
   }
Titre: Re : Tuto pour vos bot
Posté par: Infu le 13 Décembre 2012, 20:04:51
So cute ton up  :-*
Titre: Re : Tuto pour vos bot
Posté par: MaLiik_Mahone le 13 Décembre 2012, 20:17:34
T'as vue ça etais dur d'attendre mais ça valait le coups
Titre: Re : Tuto pour vos bot
Posté par: Ashley11 le 13 Décembre 2012, 21:43:13
Up sur un tuto, je voit pas ce qui cloche..