• 06 Juin 2026, 11:59:15


Auteur Sujet: Else... else if... :s  (Lu 4134 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Else... else if... :s
« le: 28 Décembre 2007, 19:27:02 »
if (strcmp("/buycj", cmdtext, true) == 0){
if (IsPlayerInArea(playerid,2520.434, 2421.56, -1634.489, -1737.13)) { // max_x, min_x max_y, min_y
GivePlayerMoney(playerid, -50000);
GameTextForPlayer(playerid, "~r~Ok, ~w~tu as acheter la ~b~maison de Cj", 5000, 5);
SendClientMessage(playerid, COLOR_GREEN, "Tu peux revenir à tous moment sans payer.");
SetPlayerInterior(playerid,3);
SetPlayerPos(playerid, 2496.1284,-1693.8943,1014.7422);
SetPlayerFacingAngle(playerid, 184.3867);
SetCameraBehindPlayer (playerid);
}else{
}

}

}

Salut, moi qui m'aitrise pas beaucoup les "else", je voudrais que vous me dîtes comment mettre un message quand je n'est pas assez d'argent ...
J'ai déjà mit un else mais c'est pour quand on est pas dans la zone.
Voila aidez-moi plz ! :D

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Else... else if... :s
« Réponse #1 le: 02 Janvier 2008, 22:22:23 »
salut,

C'est très simple, tu met une ligne au début et à la fin, comme ceci:
    if(GetPlayerMoney(playerid) >= le montant nécéssaire){//tu fais ta commande ici par exemple:
GivePlayerMoney(playerid,-50000);
GameTextForPlayer(playerid, COLOR_GREEN, "Tu peux revenir à tous moment sans payer.");
//....
}else return SendClientMessage(playerid,COLOR_RED,"Tu n'as pas suffisament d'argent pour acheter cette maison.");

c'est très simple, comme je vien de dire,

tu regarde si le joueur a suffisament d'argent avec le GetPlayerMoney >= (est plus grand ou égal à...)
puis à la fin, le else signifie sinon, s'il avait suffisament d'argent, le else n'est pas appeler,
mais si le joueur n'avais pas l'argent, le else lui dit, sinon, envoie lui ce message. :happy

Les else if sont équivalent excepté qu'ils regardent une autre condition(ce n'est qu'un else suivit d'un if) :ohmy
et permettent donc d'avoir plus de 2 possibilité. :D


J'espere t'avoir suffisament aidé ;)


++Sim++





Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Else... else if... :s
« Réponse #2 le: 02 Janvier 2008, 22:50:26 »
Ouki, merci Sim !
Il me falais juste le... :
    if(GetPlayerMoney(playerid) >= le montant nécéssaire){//tu fais ta commande ici par exemple:

Voila merci beaucoup !

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Else... else if... :s
« Réponse #3 le: 03 Janvier 2008, 00:56:35 »


De rien,
en plus c'est en ligne si d'autres se posent la meme question!!

et bonne année :D :D
 :cheers

 :jesors





Hors ligne Malppower

  • Chef de la TEC
  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
    • Elevage des Sym'
Re : Else... else if... :s
« Réponse #4 le: 03 Janvier 2008, 15:25:11 »
Code: (cpp) [Sélectionner]
//---------------------------------------------------------

#include <a_samp>
#include <core>
#include <float>

#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREEN 0x33AA33AA

new argent[MAX_PLAYERS] = 0;
new bomb;

forward kill(playerid);

C'est ce qu'il y est en haut du GM...

Code: (cpp) [Sélectionner]
//---------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
new name[MAX_PLAYER_NAME+1];
new string[256];
new message[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s est mort.", name, reason);
SendClientMessageToAll(COLOR_RED, string);
if(argent(playerid) >= 1);
{
    argent[playerid] -= 1;
    SendClientMessage(playerid,COLOR_YELLOW,message);
format(message, sizeof(message),"[!] DRCash points : -1");
}
else return argent[playerid] -= 0;
  return 1;
}

//---------------------------------------------------------

C'est les lignes concernés...

Citer
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\ls-parachute2.pwn(360) : error 012: invalid function call, not a valid address
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\ls-parachute2.pwn(360) : warning 215: expression has no effect
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\ls-parachute2.pwn(360) : error 001: expected token: ";", but found ")"
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\ls-parachute2.pwn(360) : error 029: invalid expression, assumed zero
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\ls-parachute2.pwn(360) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

J'ai pas trouvé le problème...

PS : argent = la monnaie qui remplace le dollars du jeu...
« Modifié: 03 Janvier 2008, 18:02:31 par Malppower »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Else... else if... :s
« Réponse #5 le: 03 Janvier 2008, 19:24:46 »
salut,

je voudrais te dire que c'est vraiment une bonne chose que tu aie mit une autre monnai, je pense à faire pareil sur mon serveur :happy :cheers

selon moi, il y a certaines choses à changer, comme le name[MAX_PLAYER_NAME+1] :blink :blink

qu'es que c'est ca???? ;D ;D

La variable entre [] représente tous simplement la longueur du nom, le nombre de symbole qu'il contient,  :ohmy

met tout simplement 24(c'est la longueur maximale d'un nom)  8)

cela ne devrait régler aucune de tes erreur mais j'y vois quand même un certain risque de "BUG",

la ligne 360, es-ce qu'il s'agit du: format(string, sizeof(string), "%s est mort.", name, reason);

si oui, Tu as insérer deux valeurs à la fin alors qu'il n'y a qu'un seul %s

il faudrait la change pour:

    format(string, sizeof(string), "%s est mort.(%s)", name, reason);
Si sa marche pas, tu pourrait peut-être être plus précis sur la ligne en question.. :bangin

et je n'ai pas testé donc je ne suis pas sûr que ça marche :closedeyes

++Sim++





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Re : Else... else if... :s
« Réponse #6 le: 03 Janvier 2008, 23:24:15 »
met tout simplement 24(c'est la longueur maximale d'un nom)  8)

Non, l'utilisation du define MAX_PLAYER_NAME (qui se trouve dans a_samp.inc) a un double avantage :
1 - Si cette valeur change dans la prochaine version de SAMP, un simple recompilation du script suffit.
2 - Si ton script de 20000 lignes contient 67 lignes avec la valeur 24, il faudra que tu les retrouves toutes pour les modifiées un par une. Alors que si les lignes contiennent MAX_PLAYER_NAME, tu n'as même pas besoin de les chercher.
NB : Le +1 sert à réserver la place pour le caractère de fin de chaîne.

    format(string, sizeof(string), "%s est mort.(%s)", name, reason);
Ceci ne fonctionne pas car la variable resaon n'est pas une chaîne de caractères mais un nombre (compris entre 0 et 2).

il aurait donc fallu mettre :
    format(string, sizeof(string), "%s est mort.(%d)", name, reason);
Mais ce nombre entre parenthèses n'est pas très parlant. Je pense que le mieux c'est de ne rien mettre :
    format(string, sizeof(string), "%s est mort.", name);
Sinon, pour repondre à ton problème Malppower, ton erreur vient de cette ligne :
if(argent(playerid) >= 1);

Supprime le ; (point-virgule) à la fin de cette ligne, c'est lui qui provoque tes erreurs su la ligne qui contient le else

++
Syg
Courtesy of GtaManiac

Hors ligne Malppower

  • Chef de la TEC
  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
    • Elevage des Sym'
Re : Else... else if... :s
« Réponse #7 le: 04 Janvier 2008, 01:14:37 »
heu j'ai remplacé le message de "*** est mort" par un "SetDeathMessage" ensuite je vous tiens au courant...

EDIT : Non ca donne rien, mais j'ai supprimé des erreurs, regardez ca...
EDIT 2 : erreurs toutes trouvés !! Merci !!
« Modifié: 04 Janvier 2008, 01:53:38 par Malppower »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Else... else if... :s
« Réponse #8 le: 12 Janvier 2008, 03:09:54 »
salut,

par contre, pour la raison, je vien de penser à quelque chose,

tu peut créer un string qui serait la raison en text:

public OnPlayerDeath(playerid, killerid, reason)
{
new name[MAX_PLAYER_NAME+1], new string[256], message[256],raison[256]
GetPlayerName(playerid, name, sizeof(name));
if(reason == 0) return raison = Chute(je ne sais pas les vraies raisons)
if(reason == 1) return raison = Assassiné
format(string, sizeof(string), "%s est mort.(%s)", name, raison);         ««««««««««--------------------ICI tu insere le string créé
SendClientMessageToAll(COLOR_RED, string);
if(argent(playerid) >= 1);
{
   argent[playerid] -= 1;
   SendClientMessage(playerid,COLOR_YELLOW,message);
format(message, sizeof(message),"[!] DRCash points : -1");
}
else return argent[playerid] -= 0;

return 1;
}

Je crois que cela devrait être à peu près ce que tu désirais, il va juste falloir que tu cherche sur WIKI pour trouver les vraies significations des différentes valeurs ;)

++Sim++





Hors ligne Malppower

  • Chef de la TEC
  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
    • Elevage des Sym'
Re : Else... else if... :s
« Réponse #9 le: 12 Janvier 2008, 10:50:35 »
ouaip ca a l'air bien...

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Else... else if... :s
« Réponse #10 le: 26 Janvier 2008, 17:28:47 »
Bonjour, (je remonte ce topic mais bon ca sert à rien d'en avoir 2 quasi pareille)
Je voudrais maintenant savoir comment faire pour un skin... exemple :
  if(GetPlayerSkin(playerid) = 265)
J'ai essayer ca mais nan ! Donc si quelsu'un sais... Merci !


Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Else... else if... :s
« Réponse #12 le: 26 Janvier 2008, 17:50:24 »
Merci ca marche ! :D
Maintenant 2° Question : comment je fais pour dire : Si le joueur n'as pas ce skin la ?

If(GetPlayerSkin(playerid) == 265)
{
//action
}else //Le je doit mettre quoi ?{
//action
}
« Modifié: 26 Janvier 2008, 17:53:04 par lepro49 »

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : Else... else if... :s
« Réponse #13 le: 26 Janvier 2008, 22:01:30 »
Tu fait comme d'habitude pas besoin de mettre quelque chose a coté du else

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Else... else if... :s
« Réponse #14 le: 27 Janvier 2008, 08:38:49 »
Ahh ba oui j'y avais même pas pensé qu'on est pas obkigé de mettre quelqu'chose -_-'