SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Français/French (https://forum.sa-mp.com/forumdisplay.php?f=30)
-   -   Plaque d'immatriculation (https://forum.sa-mp.com/showthread.php?t=259352)

DexX39 04/06/2011 10:56 AM

Plaque d'immatriculation
 
Bonjour à tous :p.

Je viens demander un petit coup de pousse ^^.

Donc, j'ai crée une commande permettant de changer la plaque d'immatriculation.

J'aimerais, lorsque le joueur tape cette commande, sa lui génère un Numéro+Lettre automatiquement sans que sa soit lui qui choisisse le numéro.

Voici la commande :

Code:

                if(strcmp(cmd,"/plaque",true) == 0)
                {
                          new length = strlen(cmdtext);
                                while ((idx < length) && (cmdtext[idx] <= ' '))
                                {
                                        idx++;
                                }
                                new offset = idx;
                                new result[128];
                                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                                {
                                        result[idx - offset] = cmdtext[idx];
                                        idx++;
                                }
                                result[idx - offset] = EOS;
                                if(!strlen(result))
                                {
                                        SendClientMessage(playerid, COLOR_GRAD2, "Usage: /v plaque");
                                        return 1;
                                }
                            if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey] || GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2])
                                  {
                                      new ownvehkey;
                                  new car = GetPlayerVehicleID(playerid);
                              if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { ownvehkey = PlayerInfo[playerid][pPcarkey]; }
                        else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { ownvehkey = PlayerInfo[playerid][pPcarkey2]; }
                        else { return 1; }
                          if(strcmp(sendername, CarInfo[ownvehkey][cOwner], true) == 0)
                          {
                                  if(GetPlayerMoney(playerid) < 5000)
                            {
                                    SendClientMessage(playerid,COLOR_WHITE,"Vous avez besoin de 5000$ pour changer la plaque");
                                    return 1;
                                                }
                                                      //new randcarte = 100 + random(999);
                                                        //CarInfo[PlayerInfo[playerid][pPcarkey]][cPlate] = randcarte;
                                                        strmid(CarInfo[car][cPlate], result, 0, strlen(result), 999);
                                new vid = GetPlayerVehicleID(playerid);
                                GivePlayerMoney(playerid,-5000);
                                                        SetVehicleNumberPlate(vid, CarInfo[vid][cPlate]);
                                                        RemovePlayerFromVehicle(playerid);
                                                        //PlayerInfo[playerid][pPChanges] -= 1;
                                                        SetVehicleToRespawn(GetPlayerVehicleID(playerid));
                                OnPropUpdate1(4, car);
                                return 1;
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "Vous devez être dans votre véhicule.");
                            return 1;
                        }
                }

Merci d'avance de votre aide.

Cordialement,
DexX

Varkoll_ 05/06/2011 07:55 PM

Re : Plaque d'immatriculation
 
Il faudrait déjà qu'on sache qu'est ce qui cloche ? Le pourquoi de ce topique, tu as juste dit que tu avait essayé de scripter cette commande x)

DexX39 06/06/2011 10:30 AM

Re: Plaque d'immatriculation
 
Je me suis mal fait comprendre effectivement :).

Cette commande fonctionne comme cela :

/plaque [Numéro de plaque].

J'aimerais en faite, qu'il tape juste /plaque sans qu'il choisisse lui même le numéro.

J'ai essayé de faire cela avec un random mais cela ne marche pas..

Shidony 06/06/2011 10:54 AM

Re : Plaque d'immatriculation
 
Avec un random sa doit marcher mais il faut définir ton random avec par exemple un public. Il te faudra je pense 2 publics, un qui définit les caratères Alpha et dans l'autre tu crée carrément la plaque avec un random de numéros.

Cordialement

Varkoll_ 06/06/2011 02:46 PM

Re : Plaque d'immatriculation
 
PHP Code:

if(!strlen(result))
                {
                    
SendClientMessage(playeridCOLOR_GRAD2"Usage: /v plaque");
                    return 
1;
                } 

je pense aussi que tu devrais mettre sa en commentaire ;)

cristab 06/06/2011 02:52 PM

Re : Plaque d'immatriculation
 
il peu meme retirer tout ceci xD

Code:

new length = strlen(cmdtext);
                                while ((idx < length) && (cmdtext[idx] <= ' '))
                                {
                                        idx++;
                                }
                                new offset = idx;
                                new result[128];
                                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                                {
                                        result[idx - offset] = cmdtext[idx];
                                        idx++;
                                }
                                result[idx - offset] = EOS;
                                if(!strlen(result))
                                {
                                        SendClientMessage(playerid, COLOR_GRAD2, "Usage: /v plaque");
                                        return 1;
                                }


DexX39 07/06/2011 04:36 PM

Re: Plaque d'immatriculation
 
Du coup oui je peux retirer ceci :

Code:

new length = strlen(cmdtext);
                                while ((idx < length) && (cmdtext[idx] <= ' '))
                                {
                                        idx++;
                                }
                                new offset = idx;
                                new result[128];
                                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                                {
                                        result[idx - offset] = cmdtext[idx];
                                        idx++;
                                }
                                result[idx - offset] = EOS;
                                if(!strlen(result))
                                {
                                        SendClientMessage(playerid, COLOR_GRAD2, "Usage: /v plaque");
                                        return 1;
                                }

Mais que je définisse mon Random dans un public ou directement dans la commande, sa change pas grand chose...

Varkoll_ 07/06/2011 06:42 PM

Re : Plaque d'immatriculation
 
Et en retirant cela ton bug persiste ? (Parce que toute à l'heure avec le truc qu'on t'a dit d'enlever sa fesasis croire que tu devais entrer un numéro de plaque ...)

Antoine_Cresson 18/06/2011 10:05 AM

Re : Plaque d'immatriculation
 
Je suis interesser par ton système de plaque d'immatriculation qu'on choisis tout seul :

Quote:

if(strcmp(cmd,"/plaque",true) == 0)
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Usage: /v plaque");
return 1;
}
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey] || GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2])
{
new ownvehkey;
new car = GetPlayerVehicleID(playerid);
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { ownvehkey = PlayerInfo[playerid][pPcarkey]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { ownvehkey = PlayerInfo[playerid][pPcarkey2]; }
else { return 1; }
if(strcmp(sendername, CarInfo[ownvehkey][cOwner], true) == 0)
{
if(GetPlayerMoney(playerid) < 5000)
{
SendClientMessage(playerid,COLOR_WHITE,"Vous avez besoin de 5000$ pour changer la plaque");
return 1;
}
//new randcarte = 100 + random(999);
//CarInfo[PlayerInfo[playerid][pPcarkey]][cPlate] = randcarte;
strmid(CarInfo[car][cPlate], result, 0, strlen(result), 999);
new vid = GetPlayerVehicleID(playerid);
GivePlayerMoney(playerid,-5000);
SetVehicleNumberPlate(vid, CarInfo[vid][cPlate]);
RemovePlayerFromVehicle(playerid);
//PlayerInfo[playerid][pPChanges] -= 1;
SetVehicleToRespawn(GetPlayerVehicleID(playerid));
OnPropUpdate1(4, car);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être dans votre véhicule.");
return 1;
}
}
Et j'aimerai l'intégrer sur mon petit serveur, mais, où mettre toutes ses lignes ? Dans le .pwn ?

Merci.

Varkoll_ 18/06/2011 06:43 PM

Re : Plaque d'immatriculation
 
X) il ne l'a pas mis en distribution mais dans le but qu'on l'aide à regler un problème ...


All times are GMT. The time now is 09:11 AM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.