GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ShaDowxx™ le 29 Avril 2012, 16:18:30

Titre: Problème avec GivePlayerCash.
Posté par: ShaDowxx™ le 29 Avril 2012, 16:18:30
Bonjour à tous et à toutes !

J'ai un petit problème sur mon serveur quand un joueur veut acheter une arme, il peut s'endetter, je voudrais donc savoir comment on peut faire pour dire au joueur qui ne pas acheter d'armes quand il n'a pas l'argent. Je sais qu'il y a un < et > à mettre dans le code et vous pouvez m'aider à construire la phrase qui permet de lui dire qui n'a pas l'argent ? J'utilise un Dialogue et je voudrais aussi donc savoir comment faire pour dire que le joueur n'a pas l'argent requis

Voici mon code (http://pastebin.com/7zVw3kw2).

Merci à tous et à toutes pour votre aide ! :)

Cordialement.
Titre: Re : Problème avec GivePlayerCash.
Posté par: Gilux le 29 Avril 2012, 18:32:59
Salut,
Ton code devrait avoir une structure dans ce genre-là :

<?php

if(!response)
{
     
// Si le joueur annule
}
else 
// Si le joueur achète une arme
{
     switch(
listitem)
     {
         case 
0:
         {
              
// On vérifie qu'il ait assez d'argent, et on donne l'arme.
         
}
         case 
1:
         {
              
// Pareil
         
}
         case 
2:
         {
              
// Pareil
         
}
        
// Et ainsi de suite
      
}
}

Moi je te propose de créer une fonction Transaction qui fera la vérification et donnera l'arme, ça réduira la taille du code :

<?php

public Transaction(playerid,money,arme,ammo)
{
     if(
GetPlayerMoney(playerid) >= money)
     {
          
GivePlayerWeapon(playerid,arme,ammo);
          
GivePlayerMoney(playerid,-money); // On n'oublie pas le signe -.
     
}
     else
     {
           
// On envoie un message lui disant qu'il est pauvre.
     
}
     return 
1;
}

Comme ça, dans ton case 0 par exemple, tu auras :
<?php
case 0Transaction(playerid,5000,34,15); // 5000$, ID 34, 15 balles.

Pas mal de gain de place donc ;)
Bonne chance, j'espère que j'ai pas fait d'erreurs, désolé si c'est le cas mais j'ai pas codé depuis un moment :P
Titre: Re : Problème avec GivePlayerCash.
Posté par: Xartrick le 29 Avril 2012, 22:34:20
Il ne faut pas oublier l'instruction break dans la structure switch.
Titre: Re : Problème avec GivePlayerCash.
Posté par: Gilux le 30 Avril 2012, 02:08:37
Pas en Pawn d'après ce que je me souviens  ;)
Titre: Re : Problème avec GivePlayerCash.
Posté par: Xartrick le 30 Avril 2012, 09:55:35
#include <a_samp>

main() {
switch (0) {
    case 0: {
        printf("Xartrick");
    }
    case 1: {
        printf("GTAOnline");
    }
    default: {
        printf("Gilux!");
    }
}
}

(http://i.imgur.com/IDWpk.png)

Effectivement, milles pardons.
Titre: Re : Problème avec GivePlayerCash.
Posté par: ShaDowxx™ le 30 Avril 2012, 13:02:52
Merci Gilux et Xartrick pour votre aide ! Mais j'ai ça: C:\Users\J*\Downloads\Jeux en général\Serveurs de jeux & utilitaires\Serveur samp 0.3d\gamemodes\Serveur.pwn(230) : warning 235: public function lacks forward declaration (symbol "Transaction")
Titre: Re : Problème avec GivePlayerCash.
Posté par: Gilux le 30 Avril 2012, 15:50:53
Il te faut un forward peut-être ?
Titre: Re : Problème avec GivePlayerCash.
Posté par: ShaDowxx™ le 30 Avril 2012, 16:09:54
J'enchaine alors sur plusieurs erreurs.
Titre: Re : Problème avec GivePlayerCash.
Posté par: Gilux le 30 Avril 2012, 16:19:17
C'est bien ça (oui, pour une fois avoir plein d'erreurs c'est plus réjouissant que d'en avoir une seule :P), après il te reste à corriger tout ça et ça fonctionnera :p
Titre: Re : Problème avec GivePlayerCash.
Posté par: ShaDowxx™ le 30 Avril 2012, 17:51:41
J'ai rien à dire en fait, merci Gilux :-*