• 07 Juin 2026, 13:39:26


Auteur Sujet: [ Aide ] Distributeur d'argent  (Lu 1477 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Paradize

  • Scripteur
  • *
  • Tueur
  • Scripteur de Paradize Rôle Play
  • Messages: 67
    • Voir le profil
    • Paradize Rôle Play
[ Aide ] Distributeur d'argent
« le: 23 Décembre 2009, 15:22:16 »
Bonjour !

Alors voilà

J'aurais voulu savoir plus de précision sur les distributeurs d'argent

Comment on code cela, j'ai ma petite idée mais j'aimerais votre avis

Merci
« Modifié: 23 Décembre 2009, 17:09:32 par Paradize »
Scripteur de Paradize Rôle Play !

Hors ligne ghm94

  • *
  • Grand Banditisme
  • Messages: 886
    • Voir le profil
Re : [ Aide ] Distributeur d'essence
« Réponse #1 le: 23 Décembre 2009, 15:25:09 »
Salut,

Il te suffit de faire des CreateObject avec comme id un distributeur. (Bon sa je pense que tu le c'est  :D )
Ensuite lors de la cmd (/retirer par exemple) tu vérifie si le joueur est à coté d'un distributeur.
Si il l'est tu vérifie qu'il ne dépasse pas le montant qu'il a sur son compte et tu lui donne l'argent.

Sinon essaye et montre ce que ta fait ;)

Hors ligne minimicro

  • *
  • Tueur
  • Codeur Php / Mysql / Pawno
  • Messages: 53
    • Voir le profil
Re : [ Aide ] Distributeur d'essence
« Réponse #2 le: 23 Décembre 2009, 15:29:48 »
Si tu as beaucoup de distributeurs, tu peut coder une fonction permettant de verifier si le joueur est a un distributeur, qui renvoit TRUE si le joueur y est, FALSE sinon.

Comme, ca, dans chacune de tes commandes de distributeur (type /retirer, /deposer ... ou même si la banque doit les recharger), il suffira de faire un if(IsPlayerIsOnDistrib(playerid)) ... code

Un peu, à la manière du IsAtGazStation(playerid), ou IsAtBar(playerid) dans ton script ...
Codeur Php / Pawno / MySql - Administration et maintenance serveur

Hors ligne ghm94

  • *
  • Grand Banditisme
  • Messages: 886
    • Voir le profil
Re : [ Aide ] Distributeur d'essence
« Réponse #3 le: 23 Décembre 2009, 15:31:47 »
Ouais j'avais fait sa un jour, j'ai mis toutes les positions dans un tableau, puis j'ai fait une fonction qui parcourait le tableau en vérifiant si je suis près d'un distributeur.

Hors ligne Paradize

  • Scripteur
  • *
  • Tueur
  • Scripteur de Paradize Rôle Play
  • Messages: 67
    • Voir le profil
    • Paradize Rôle Play
Re : [ Aide ] Distributeur d'essence
« Réponse #4 le: 23 Décembre 2009, 15:43:37 »
Je vais tenter d'en ajouter un pour voir et je vous redis  :)

Double post
Citer
forward IsAtDistrib(playerid);

Citer
public IsAtDistrib(playerid)
{
    if(IsPlayerConnected(playerid))
   {
      if(PlayerToPoint(4.0,playerid,Cordonnée Distributeur)
      {//Distributeur
                    return 1;
      }
   }
   return 0;
Citer
}

Citer
if(strcmp(cmd, "/retirer", true) == 0)
{
  if(IsPlayerConnected(playerid))
  {
    if(IsAtDistrib(playerid))
      {
           if (!PlayerToPoint(100, playerid,2308.9287,-13.2520,26.7422))
           {
               SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas à la banque !");
....................Etc


Sa serai çà ?? :-[
               return 1;
« Modifié: 23 Décembre 2009, 15:55:20 par Paradize »
Scripteur de Paradize Rôle Play !

Hors ligne minimicro

  • *
  • Tueur
  • Codeur Php / Mysql / Pawno
  • Messages: 53
    • Voir le profil
Re : [ Aide ] Distributeur d'essence
« Réponse #5 le: 23 Décembre 2009, 16:00:00 »
Oui par exemple, tiens nous au courant.
Codeur Php / Pawno / MySql - Administration et maintenance serveur

Hors ligne Paradize

  • Scripteur
  • *
  • Tueur
  • Scripteur de Paradize Rôle Play
  • Messages: 67
    • Voir le profil
    • Paradize Rôle Play
Re : [ Aide ] Distributeur d'essence
« Réponse #6 le: 23 Décembre 2009, 16:25:13 »
Voilà, dites moi si çà va ou pas............et corrigé moi pour que je comprenne ^^
Je vais vous montrez les différents codes que je met dans mon GM pour les distributeurs d'argent :

Citer
forward IsAtDistrib(playerid);

Citer
//-----------------------------[Distributeurs]-----------------------------------
public IsAtDistrib(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        if(PlayerToPoint(4.0,playerid,2057.6943,-1898.1089,13.5538)
      {
          return 1;
      }
   }
   return 0;
}
//-----------------------------[Station d'essence]------------------------------
public IsAtGasStation(playerid)

Citer
//----------------------------------[Banque Système]-----------------------------------------------
    if(strcmp(cmd, "/retirer", true) == 0)
   {
       if(IsPlayerConnected(playerid))
       {
         if IsAtDistrib(playerid)
         {
           if (!PlayerToPoint(100, playerid,2308.9287,-13.2520,26.7422))
           {
               SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas à la banque !");
               return 1;
           }
         tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /retirer [montant]");
            format(string, sizeof(string), "  Vous avez $%d sur votre compte.", PlayerInfo[playerid][pAccount]);
            SendClientMessage(playerid, COLOR_GRAD3, string);
            return 1;
         }
         new cashdeposit = strval(tmp);
         if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /retirer [montant]");
            format(string, sizeof(string), "  Vous avez $%d sur votre compte.", PlayerInfo[playerid][pAccount]);
            SendClientMessage(playerid, COLOR_GRAD3, string);
            return 1;
         }
         if (cashdeposit > PlayerInfo[playerid][pAccount] || cashdeposit < 1)
         {
            SendClientMessage(playerid, COLOR_GRAD2, " Vous n'avez pas tant d'argent !");
            return 1;
         }
          ConsumingMoney[playerid] = 1;
         GivePlayerMoney(playerid,cashdeposit);
         PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-cashdeposit;
         format(string, sizeof(string), "  Vous avez retirer $%d de votre compte, Total: $%d ", cashdeposit,PlayerInfo[playerid][pAccount]);
         SendClientMessage(playerid, COLOR_YELLOW, string);
         return 1;
      }
      return 1;
   }

Est-ce bon ? :-

Double post
Up

J'ai mis mes lignes mais quand je me co et que je vais vert le distributeur et que je fais /retirer, sa me marque "Vous n'êtes pas à la banque"

Pourquoi ?

Voici mes codes :

Citer
forward IsAtATM(playerid);

Citer
//----------------------------------[Banque Système]-----------------------------------------------
    if(strcmp(cmd, "/retirer", true) == 0)
   {
       if(IsPlayerConnected(playerid))
       {
           if (!PlayerToPoint(100, playerid,2308.9287,-13.2520,26.7422))
           {
               SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas à la banque !");
               return 1;
           }
           else if(!IsAtATM(playerid))
            {
                SendClientMessage(playerid, COLOR_YELLOW," Vous n'êtes prés d'un distributeur !");
                return 1;
           }
         tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /retirer [montant]");
            format(string, sizeof(string), "  Vous avez $%d sur votre compte.", PlayerInfo[playerid][pAccount]);
            SendClientMessage(playerid, COLOR_GRAD3, string);
            return 1;
         }
         new cashdeposit = strval(tmp);
         if(!strlen(tmp))
         {
            SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /retirer [montant]");
            format(string, sizeof(string), "  Vous avez $%d sur votre compte.", PlayerInfo[playerid][pAccount]);
            SendClientMessage(playerid, COLOR_GRAD3, string);
            return 1;
         }
         if (cashdeposit > PlayerInfo[playerid][pAccount] || cashdeposit < 1)
         {
            SendClientMessage(playerid, COLOR_GRAD2, " Vous n'avez pas tant d'argent !");
            return 1;
         }
          ConsumingMoney[playerid] = 1;
         GivePlayerMoney(playerid,cashdeposit);
         PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-cashdeposit;
         format(string, sizeof(string), "  Vous avez retirer $%d de votre compte, Total: $%d ", cashdeposit,PlayerInfo[playerid][pAccount]);
         SendClientMessage(playerid, COLOR_YELLOW, string);
         return 1;
      }
      return 1;
   }

Citer
public IsAtATM(playerid)
{
    if(IsPlayerConnected(playerid))
   {
      if(PlayerToPoint(4.0,playerid,2054.6145,-1898.2306,13.5538) || PlayerToPoint(4.0,playerid,2061.0833,-1898.6965,13.5538))
      {
          return 1;
      }
      else if(PlayerToPoint(4.0,playerid,1843.9344,-1861.1429,13.3828) || PlayerToPoint(10.0,playerid,1739.2867,-1862.8655,13.5758))
      {
          return 1;
      }
   }
   return 0;
}

Please help me  :-[
« Modifié: 23 Décembre 2009, 20:43:03 par Paradize »
Scripteur de Paradize Rôle Play !

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : [ Aide ] Distributeur d'argent
« Réponse #7 le: 25 Décembre 2009, 17:28:39 »
Salut.

Dans ton code tu as mis ça:

           if (!PlayerToPoint(100, playerid,2308.9287,-13.2520,26.7422))
           {
               SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas à la banque !");
               return 1;

On peux donc déchiffrer le code de cette façon:

Si le joueur n'est pas au point 2308.9287,-13.2520,26.7422 alors lui envoyé le message " Tu n'es pas à la banque !" puis retourner au début du code.

Se que je peux donc te conseiller c'est soit inclure le else if(!IsAtATM(playerid)) dans le if en mettant ||. Ainsi le message qui sera envoyé sera du genre "Vous n'êtes pas à la banque ou prêt d'un distributeur" ou " Vous ne pouvez pas faire ça ici"
Merci à Colonel Marco pour la Signature