Je suis désoler de faire un sujet étant donner que beaucoup parle de se problème mais dans lequel personne n'as trouver la solution éant donner que le problème est le spawn du bot qui spawn mal ou spawn pas dans certain cas.
Pour moi mon bot spawn dans un binco endroit ou apparait un joueur quand il s'enregistre j'ai donc mis dans onplayerconnect onplayerspawn onplayerregister onplayerrequestclass :
if(IsPlayerNPC(playerid))
{
return 1;
}
Le problème et que cela ne fonctionne pas et je n'arrive pas a faire d'anim de le faire bouger ou autre peut être que le bot est freeze mais j'ai même essayer avec ls-parachute et le faire bouger ou mettre une anim marche pas donc j'espere que vous pourrez regler ce problème je vous met mon bout de script pour le bot
#include <a_samp>
public OnGameModeInit()
{
// NPCS
ConnectNPC("Secre_taire","test");
return 1;
}
public OnPlayerSpawn(playerid)
{
if(!IsPlayerNPC(playerid)) return 0;
new playername[64];
GetPlayerName(playerid,playername,64);
if(!strcmp(playername,"Secre_taire",true)) {
SetSpawnInfo(playerid, 0, 141, 359.7214,173.5697,1008.3893,268.8791, 31, 1000, 0, 0, 0, 0 );
ApplyAnimation(playerid, "BEACH", "Lay_Bac_Loop", 4.0, 1, 0, 0, 0, 0);
}
return 1;
}
J'espère qu'ont pourra trouver une solution qui servira a plusieurs personne.
Edit : j'ai essayer plusieurs possibilité avec if(IsPlayerNPC(playerid)) et je vient de voir que si on ne met pas de SetSpawnInfo dans le Gm le bot spawn en l'air donc je pense que le FS n'arrive pas a faire spawn le bot mais juste a le connecter donc comment faire pour que le FS se charge juste du bot est le GM non au moin d'integrer le bot dans le Gm d'ailleur ce que je vais essayer je vous redirez quoi.
ReEDIT: Après l'avoir intégrer dans le Gm et mis dans les callback de spawn if(IsPlayerNPC(playerid)) et dans onplayerrequestclass :
if(IsPlayerNPC(playerid))
{
new playername[64];
GetPlayerName(playerid,playername,64);
if(!strcmp(playername,"Secre_taire",true))
{
SetSpawnInfo(playerid, 0, 141, 359.7214,173.5697,1008.3893,268.8791, 31, 1000, 0, 0, 0, 0 );
TogglePlayerControllable(playerid,1);
ApplyAnimation(playerid, "BEACH", "Lay_Bac_Loop", 4.0, 1, 0, 0, 0, 0);
SetPlayerInterior(playerid,3);
return 1;
}
}
et dans les public de genre syncup othertimer le if(IsPlayerNPC(playerid)) j'ai parvenue a faire spawn mon bot la ou je voulait le probleme étant qu'il n'effectue pas l'anim mais bon vu que mon bot doit etre immobile il est possible qu'il n'effectue pas par exemple un trajet mais bon...
L'autre soucis étant qu'il spawn plusieurs fois ce problème vient je pense de l'enregistrement.
Apres J'ai essayer de tester l'enregistrement genre un trajet a pied je pense que le soucis peut venir de :
#define RECORDING "pieton"
#define RECORDING_TYPE 2
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();
J'espere que mes recherche pourront vous aidez et que vous reussisiez a trouver les problèmes restant.
Problème résolut pour faire marcher un bot (ped) il faut en faite modifier ceci :
#define RECORDING "pieton"
#define RECORDING_TYPE 2
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCSpawn StartRecordingPlayback(RECORDING_TYPE, RECORDING);
:D
J'espere que sa pourrat vous servir pour ceux qui ont des problème de bot n'hésite pas a me demander.