GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: dylle76620 le 27 Septembre 2008, 22:48:06

Titre: probleme avec une commande
Posté par: dylle76620 le 27 Septembre 2008, 22:48:06
bonsoir j'ai un probleme , connaissez vous la commande /bk? c'ets une commande qui permet au flic de savoir ou se trouve celui qui a fait cette commande (pour appeller du renfort) j'ai pris ce bout de code d'un gm mais j'ai 8 error

http://pastebin.com/m55885b71

et voici la commande

http://pastebin.com/m527d92d2

merci a vous
Titre: Re : probleme avec une commande
Posté par: [StAfF]MaN le 27 Septembre 2008, 23:51:19
Et voila quand on fait du copié collé....

Sinon les lignes des erreurs correspondent elles au ligne du code ??
Titre: Re : probleme avec une commande
Posté par: dylle76620 le 28 Septembre 2008, 09:48:16
oui , je sait c'est pas bien de copié coller mais sa fait des semaine  j'essaye je n'y arrive pas je sait creer la commande /bk oui mais je sait pas faire le checkpoint sur la carte etc
Titre: Re : probleme avec une commande
Posté par: [StAfF]MaN le 28 Septembre 2008, 11:50:03
Un checkpoint c'est pas bien compliqué :

Dans ton pawn tu a une fonction SetPlayerCheckpoint

qui veut dire ?? Créer un checkpoint ^^ Voila alors bon, heu ^^ lol c'est pas dur hein ^^

pour détruire ton checkpoint tu utilise ça DisablePlayerCheckpoint(playerid);

pour créer un checkpoint tu mettra dans ton code

SetPlayerCheckpoint(playerid, x, y, z, Taille (entre 1 et 5 ));
Titre: Re : probleme avec une commande
Posté par: dylle76620 le 29 Septembre 2008, 11:53:28
ok emrci   :D mais j'ai pas compris pourquoi j'avais ces erreurs
Titre: Re : probleme avec une commande
Posté par: [StAfF]MaN le 29 Septembre 2008, 21:20:44
C'est bon t'as plus de prob ?? résolu ?? ^^
Titre: Re : probleme avec une commande
Posté par: dylle76620 le 30 Septembre 2008, 11:53:15
nan je sait pas ou placé le checkpoint et comment faire pour que le joueur soit affiché sur la carte (celui qu itape la commande)
Titre: Re : probleme avec une commande
Posté par: [StAfF]MaN le 30 Septembre 2008, 21:06:25
Bah le joueur tape la commande, alors tu as un SetPlayerCheckpoint dans la commande

exemple :

if (strcmp(cmdtext, "/check", true)==0)
{
   SetPlayerCheckpoint(playerid, X, Y, Z, 3); // le checkpoint ne sera visible que par le joueur qui a taper la commande, si tu veut qu'il soit visible par tout le mode, tu ajoutera un bout de code que je te filerais plus bas
   return 1;
}

de par cette commande, le checkpoint sera visible sur la carte, par un carré rouge, ou un triangle suivant le dénivelé ;)

Maintenant si tu veut que ton joueur soit visible sur la carte aussi, tu ajoute :

ShowPlayerMarkers(1);

dans OnGameModeInit, a moins que tu ne veuille qu'il soit visible que si la commande a été tapé, donc pour ça essaye de mettre ça dans ta commande :

ShowPlayerMarkers(playerid);

je ne sais pas si ça marche, faut tenter ^^

Donc pour que le checkpoint soit visible par tout le monde :

for(new i = 0; i < MAX_PLAYERS; i++)
{
   SetPlayerCheckpoint(i, X, Y, Z, 3);
   return 1;
}   

donc toi dans ta commande ça donnera :

if (strcmp(cmdtext, "/check", true)==0)
{
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
      SetPlayerCheckpoint(i, X, Y, Z, 3);
      return 1;
   } 
   return 1;
}

;)
Titre: Re : probleme avec une commande
Posté par: terry_weed le 01 Octobre 2008, 07:14:28
et pour que il soit visible seulement pour la famille 1 2 3 comment on fait ? qui sont la police, le fbi et l'armée
Titre: Re : probleme avec une commande
Posté par: Ssk le 01 Octobre 2008, 08:18:15
Je te fait le code et je te l envoie plus tard des que je rentre des cours
Titre: Re : probleme avec une commande
Posté par: terry_weed le 01 Octobre 2008, 08:22:28
merci beacoup  :D
Titre: Re : probleme avec une commande
Posté par: Ssk le 01 Octobre 2008, 08:40:03
t as de la chance mes prof sont pas la tien le code pour que ca soit visible que pour FBI  et FLIC

ca c' est la cmd

   if(strcmp(cmd,"/rd",true)==0)
   {
      if(IsPlayerConnected(playerid))
      {
         if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
         {
            if (PlayerInfo[playerid][pRequestingBackup] != 1)
            {
               GetPlayerName(playerid, sendername, sizeof(sendername));
               format(string, sizeof(string), "A TOUTES LES UNITES Police et FBI: %s demande des renforts, allez au marqueur jaune sur le radar.", sendername);
               PlayerInfo[playerid][pRequestingBackup] = 1;
               for(new i = 0; i < MAX_PLAYERS; i++)
               {
                  if(IsPlayerConnected(i))
                  {
                     if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[pMember] == 2||PlayerInfo[pLeader] == 2)
                     {
                        SetPlayerMarkerForPlayer(i, playerid, 0xFFFF00AA);
                        SendClientMessage(i, TEAM_BLUE_COLOR, string);
                     }
                  }
               }
               SendClientMessage(playerid, TEAM_BLUE_COLOR, "Tapez /res pour arreter la demande de renfort.");
               SetTimerEx("BackupClear", 180000, false, "ii", playerid, 1);
            }
            else
            {
               SendClientMessage(playerid, COLOR_GREY, "Vous avez déjà demandé du renfort!");
            }
         }
         else
         {
            SendClientMessage(playerid, COLOR_GREY, "Vous n'êtez pas un Policier / Agent du FBI!");
         }
      }
      return 1;
   }



tu met ce public la

public BackupClear(playerid, calledbytimer)
{
   if(IsPlayerConnected(playerid))
   {
      if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
      {
         if (PlayerInfo[playerid][pRequestingBackup] == 1)
         {
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
               if(IsPlayerConnected(i))
               {
                  if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
                  {
                     SetPlayerMarkerForPlayer(i, playerid, TEAM_HIT_COLOR);
                  }
               }
            }
            if (calledbytimer != 1)
            {
               SendClientMessage(playerid, TEAM_BLUE_COLOR, "Demande de renfort terminé.");
            }
            else
            {
               SendClientMessage(playerid, TEAM_BLUE_COLOR, "Votre demande de renfort a été annulé automatiquement.");
            }
            PlayerInfo[playerid][pRequestingBackup] = 0;
         }
         else
         {
            if (calledbytimer != 1)
            {
               SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas activé la demande de renfort!");
            }
         }
      }
      else
      {
         if (calledbytimer != 1)
         {
            SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas un Policier / Agent du FBI!");
         }
      }
   }
   return 1;
}


et tout en haut tu met ca

forward BackupClear(playerid, calledbytimer);


puis ca pour que le renfort soit fini

   if(strcmp(cmd,"/renfortstop",true)==0 || strcmp(cmd,"/res",true)==0)
   {
      BackupClear(playerid, 0);
      return 1;
   }
Titre: Re : probleme avec une commande
Posté par: terry_weed le 01 Octobre 2008, 08:45:27
merci beaucoup mais cet quelle ville que cet programmer ? ou ça peu être n'importe ou sur la carte ?

écuse moi la question trop béte mais on mais le public?
Titre: Re : probleme avec une commande
Posté par: Ssk le 01 Octobre 2008, 08:49:06
oui et pour te dire que le point sur la carte suis le gars qui a fait la cmd
Titre: Re : probleme avec une commande
Posté par: terry_weed le 01 Octobre 2008, 08:55:15
tu met sa ou ?

tu met ce public la

public BackupClear(playerid, calledbytimer)
{
   if(IsPlayerConnected(playerid))
   {
      if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
      {
         if (PlayerInfo[playerid][pRequestingBackup] == 1)
         {
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
               if(IsPlayerConnected(i))
               {
                  if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
                  {
                     SetPlayerMarkerForPlayer(i, playerid, TEAM_HIT_COLOR);
                  }
               }
            }
            if (calledbytimer != 1)
            {
               SendClientMessage(playerid, TEAM_BLUE_COLOR, "Demande de renfort terminé.");
            }
            else
            {
               SendClientMessage(playerid, TEAM_BLUE_COLOR, "Votre demande de renfort a été annulé automatiquement.");
            }
            PlayerInfo[playerid][pRequestingBackup] = 0;
         }
         else
         {
            if (calledbytimer != 1)
            {
               SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas activé la demande de renfort!");
            }
         }
      }
      else
      {
         if (calledbytimer != 1)
         {
            SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas un Policier / Agent du FBI!");
         }
      }
   }
   return 1;
}
Titre: Re : probleme avec une commande
Posté par: Ssk le 01 Octobre 2008, 09:00:14
bah met le tout en de sous du Gf
Titre: Re : probleme avec une commande
Posté par: terry_weed le 01 Octobre 2008, 09:15:30
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(9559) : error 017: undefined symbol "pRequestingBackup"
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(9563) : error 017: undefined symbol "pRequestingBackup"
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(9568) : error 033: array must be indexed (variable "PlayerInfo")
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(26587) : error 017: undefined symbol "pRequestingBackup"
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(26593) : error 033: array must be indexed (variable "PlayerInfo")
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(26607) : error 017: undefined symbol "pRequestingBackup"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.

9559            if (PlayerInfo[playerid][pRequestingBackup] != 1)9563               PlayerInfo[playerid][pRequestingBackup] = 1;2657         if (PlayerInfo[playerid][pRequestingBackup] == 1)26593                  if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)26607            PlayerInfo[playerid][pRequestingBackup] = 0;
Titre: Re : probleme avec une commande
Posté par: Ssk le 01 Octobre 2008, 09:36:28
t as le God Father ??
Titre: Re : probleme avec une commande
Posté par: terry_weed le 01 Octobre 2008, 11:01:24
oui
Titre: Re : probleme avec une commande
Posté par: Ssk le 01 Octobre 2008, 12:46:57
cherche cette ligne

enum pInfo


puis ajoute y

ca :      pRequestingBackup,