Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254730 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 16:47:46
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center]Tutoriels et références SA:MP (Modérateurs: S!m, Xartrick)Tuto pour vos bot
Pages: [1] 2 3   Bas de page
Imprimer
Auteur Fil de discussion: Tuto pour vos bot  (Lu 4347 fois)
0 Membres et 1 Invité sur ce fil de discussion.
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« 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 Sourire



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

Code:
#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

Code:
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

Code:
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

Code:

#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

Code:
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

Code:
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

Code:
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(2, "Bruno");
public OnNPCSpawn() StartRecordingPlayback(2, "Bruno");

Code:

#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(1, "Bruno2");
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(1, "Bruno2");
public OnNPCExitVehicle() StopRecordingPlayback();

dans votre GM/FS

Code:
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.
« Dernière édition: 23 Septembre 2010 à 03:02:58 par GtaManiac » Journalisée

MrFredo
Hors ligne Hors ligne


GTAOnline Addict
*

Scripteur PHP/PAWN

Messages: 846


WWW
« Répondre #1 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 Clin d'oeil

J'ai un scirpt pour plusieur bots chauffeur de bus (et il peuvent meme effectuer des trajet diferent :p)
« Dernière édition: 07 Décembre 2009 à 19:28:02 par Polvunak » Journalisée

Wockeez
Hors ligne Hors ligne


GTAOnline Big Member
*

Messages: 519


« Répondre #2 le: 07 Décembre 2009 à 16:50:01 »

Salut,

Bien bien le tuto happy .

ClaSh
Journalisée

• THAITANIUM •

__________
My YouTube

cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #3 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 Clin d'oeil

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
Journalisée

Dark4ng3L
Hors ligne Hors ligne


GTAOnline Big Member
*

Messages: 349


WWW
« Répondre #4 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++
Journalisée

Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !



cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #5 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


Code:
#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

Code:
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
Journalisée

Xoss
Xoss | Alexandre Bocquet
Hors ligne Hors ligne


GTAOnline Big Member
*

Xoss | Alexandre Bocquet

Messages: 555


WWW
« Répondre #6 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
Journalisée

Alexandre Bocquet Xoss
BuBuNo
Radio Guingamp - Bien plus qu'une radio !
Hors ligne Hors ligne


GTAOnline Big Member
*

La radio bien plus qu'une passion !

Messages: 739


WWW
« Répondre #7 le: 09 Décembre 2009 à 01:34:28 »

Oh le bot s'appelle Bruno comme moi  Bisous

Aller j'arete les HS ^^
tres bon tuto Cristab
Journalisée

ıllıllı вυвυησ ıllıllı

Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #8 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 ^^
Journalisée






Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog
BuBuNo
Radio Guingamp - Bien plus qu'une radio !
Hors ligne Hors ligne


GTAOnline Big Member
*

La radio bien plus qu'une passion !

Messages: 739


WWW
« Répondre #9 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
Journalisée

ıllıllı вυвυησ ıllıllı

Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #10 le: 09 Décembre 2009 à 12:46:57 »

Il peuvent juste servir a faire de la population sur les trotoir ....
Journalisée






Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog
Xoss
Xoss | Alexandre Bocquet
Hors ligne Hors ligne


GTAOnline Big Member
*

Xoss | Alexandre Bocquet

Messages: 555


WWW
« Répondre #11 le: 09 Décembre 2009 à 13:07:54 »

Bien pour les rp ^^
Journalisée

Alexandre Bocquet Xoss
MasterRace
Hors ligne Hors ligne

Petit nouveau
*

Messages: 14


« Répondre #12 le: 20 Décembre 2009 à 10:26:11 »

Citation
   }
   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[])" ??
Journalisée
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #13 le: 20 Décembre 2009 à 10:34:56 »

juste OnPlayerSpawn
Journalisée

MasterRace
Hors ligne Hors ligne

Petit nouveau
*

Messages: 14


« Répondre #14 le: 20 Décembre 2009 à 10:53:20 »

Ok, merci

http://forum.sa-mp.com/index.php?topic=139764.0
Journalisée
Pages: [1] 2 3   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.252 secondes avec 23 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact