GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Bankai_Rodriguez le 20 Décembre 2009, 19:40:29

Titre: [ Résolu ] Problème NPC
Posté par: Bankai_Rodriguez le 20 Décembre 2009, 19:40:29
Bonjour !

J'ai modifié un petit FS permettant d'ajouter des bots

Celui marche avec le GM de Master-Bru

Mais il ne marche pas avec le GF.....voilà ce que ça donne :

(http://img7.hostingpics.net/pics/314028Sans_titreffdfd_1.jpg)

et quand je change l'ip pour voir si c'est pas çà qui le kick, çà me met çà :

(http://img7.hostingpics.net/pics/97558ddd.jpg)

Pouvez-vous m'aider ??

Merci  ;)
Titre: Re : Problème NPC
Posté par: ApocKalipsS le 20 Décembre 2009, 20:35:00
Ton bot se fait kicker, par exemple en passant dans le login il ne rentre pas de mot de passe et se fait kick.
Titre: Re : Problème NPC
Posté par: BuBuNo le 20 Décembre 2009, 20:56:24
Oui je disait sa aussi mais j'ai pas reussi a faire passer le Bot sur le serveur sans ce loguer ou s'enregistrer
Titre: Re : Problème NPC
Posté par: Eloctro le 20 Décembre 2009, 21:19:53
Met :
if(IsPlayerNPC(playerid)) return 0;Au début de OnPlayerConnect,OnPlayerResquestSpawn,OnPlayerSpawn,OnPlayerDisconnect
Titre: Re : Problème NPC
Posté par: BuBuNo le 20 Décembre 2009, 21:21:13
Ah ouai ok ;)
J'avait pas penser a sa ^^
Titre: Re : Problème NPC
Posté par: Bankai_Rodriguez le 21 Décembre 2009, 07:19:57
Citer
Code:

if(IsPlayerNPC(playerid)) return 0;

Au début de OnPlayerConnect,OnPlayerResquestSpawn,OnPlayerSpawn,OnPlayerDisconnect

Dans mon Filterscript ? Ou dans mon GM ?  :)
Titre: Re : Problème NPC
Posté par: ApocKalipsS le 21 Décembre 2009, 08:47:45
Dans ton GM, puisqu'il se fait kické par le login qui dedans.
Par contre, ce n'est pas return 0; à la fin, mais bien return 1;  ;)
Titre: Re : Problème NPC
Posté par: Bankai_Rodriguez le 21 Décembre 2009, 09:21:08
D'accord ! Merci

Je vais faire çà toutes de suite et si j'ai un soucis, je viens posté mes modifications;.  :)

Double post
Alors voilà

Tout d'abord, je n'es pas la fonction "OnPlayerResquestSpawn" dans mon GM...

Ensuite quand je compile, j'ai cette erreur :

Citer
D:\_FR__G~1\GAMEMO~1\Paradize.pwn(2734) : warning 209: function "OnPlayerDisconnect" should return a value
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase

Header size:           6040 bytes
Code size:          1107736 bytes
Data size:          4470600 bytes
Stack/heap size:      16384 bytes; estimated max. usage=5103 cells (20412 bytes)
Total requirements: 5600760 bytes

1 Warning.

?
Titre: Re : Problème NPC
Posté par: cristab le 21 Décembre 2009, 10:56:47
vu l'erreure tu as un soucis de return
Titre: Re : Problème NPC
Posté par: Bankai_Rodriguez le 21 Décembre 2009, 11:22:43
C'est à dire ?

Citer
//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
    if(IsPlayerNPC(playerid))
    {
    return 0;
    }
    gActivePlayers[playerid]--;
   numplayers--;
   PlayerInfo[playerid][pAdjustable] = 1;
   OnPlayerUpdate(playerid);
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))
       {
           if(TaxiAccepted < 999)
           {
              if(TaxiAccepted == playerid)
              {
                  TaxiAccepted = 999;
                  GameTextForPlayer(i, "~w~Taxi Caller~n~~r~Left the game", 5000, 1);
                  TaxiCallTime = 0;
                  DisablePlayerCheckpoint(i);
              }
           }
           else if(BusAccepted < 999)
           {
              if(BusAccepted == playerid)
              {
                  BusAccepted = 999;
                  GameTextForPlayer(i, "~w~Bus Caller~n~~r~Left the game", 5000, 1);
                  BusCallTime = 0;
                  DisablePlayerCheckpoint(i);
              }
           }
       }
   }
   if(GettingCK[playerid] < 999)
   {
       if(IsPlayerConnected(GettingCK[playerid]))
       {
           SendClientMessage(GettingCK[playerid], COLOR_YELLOW, "Your Character Kill has left the server, try again later.");
           OnCK[GettingCK[playerid]] = 999;
       }
   }
   if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999)
   {
       if(IsPlayerConnected(TransportDriver[playerid]))
      {
          new string[64];
          TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
          TransportTime[TransportDriver[playerid]] = 0;
          TransportCost[TransportDriver[playerid]] = 0;
          format(string, sizeof(string), "~w~Passenger left~n~~g~Earned $%d",TransportCost[playerid]);
          GameTextForPlayer(TransportDriver[playerid], string, 5000, 1);
      }
   }
   if(GotHit[playerid] > 0)
   {
       if(GetChased[playerid] < 999)
       {
           if(IsPlayerConnected(GetChased[playerid]))
           {
              SendClientMessage(GetChased[playerid], COLOR_YELLOW, "Your Hit has left the server.");
               GoChase[GetChased[playerid]] = 999;
         }
       }
   }
   if(PlayerPaintballing[playerid] != 0)
   {
       PaintballPlayers --;
   }
   if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0)
   {
       KartingPlayers --;
   }
   if(PlayersChannel[playerid] < 999)
   {
      IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1;
   }
   if(HireCar[playerid] != 299)
   {
      gLastDriver[HireCar[playerid]] = 300;
      gCarLock[HireCar[playerid]] = 0;
      UnLockCar(HireCar[playerid]);
   }
   if (gLastCar[playerid] > 0)
   {
      gLastDriver[gLastCar[playerid]] = 300;
      if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1)
      {
         gCarLock[gLastCar[playerid]] = 0;
         UnLockCar(gLastCar[playerid]);
      }
   }
   if(PlayerBoxing[playerid] > 0)
   {
       if(Boxer1 == playerid)
       {
           if(IsPlayerConnected(Boxer2))
           {
              PlayerBoxing[Boxer2] = 0;
              SetPlayerPos(Boxer2, 765.8433,3.2924,1000.7186);
              SetPlayerInterior(Boxer2, 5);
              GameTextForPlayer(Boxer2, "~r~Match interupted", 5000, 1);
         }
       }
       else if(Boxer2 == playerid)
       {
           if(IsPlayerConnected(Boxer1))
           {
              PlayerBoxing[Boxer1] = 0;
              SetPlayerPos(Boxer1, 765.8433,3.2924,1000.7186);
              SetPlayerInterior(Boxer1, 5);
              GameTextForPlayer(Boxer1, "~r~Match interupted", 5000, 1);
         }
       }
       InRing = 0;
        RoundStarted = 0;
      Boxer1 = 255;
      Boxer2 = 255;
      TBoxer = 255;
   }
    if(TransportDuty[playerid] == 1)
   {
      TaxiDrivers -= 1;
   }
    else if(TransportDuty[playerid] == 2)
   {
      BusDrivers -= 1;
   }
   if(PlayerInfo[playerid][pJob] == 11)
   {
       if(JobDuty[playerid] == 1) { Medics -= 1; }
   }
   else if(PlayerInfo[playerid][pJob] == 7)
   {
       if(JobDuty[playerid] == 1) { Mechanics -= 1; }
   }
}
public SetPlayerSpawn(playerid)

Voici le bout de code où il y a un soucis...
Titre: Re : Problème NPC
Posté par: The Bird le 21 Décembre 2009, 11:34:23
Je pense ( pas sur ), qu'il manque return 1; entre les deux dernière accolades
Titre: Re : Problème NPC
Posté par: Bankai_Rodriguez le 21 Décembre 2009, 11:38:46
Problème résolu !

Il manquait un return 1;

Merci à tous !