GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 28 Octobre 2009, 13:08:02
-
Bonjour, je cherche une personne gentille qui pourrait m'expliquer quand on met un return et quand on en met pas. Et ou les mettre. Merci d'avance
-
Bas si tu utilise les fonction if comme les commande :
if (strcmp("/moto", cmdtext, true) == 0)
{
if(BuildAdmin == 1 && IsNotAdmin(playerid)) return 1;
new Float:x,Float:y,Float:z;
new batox;
GetPlayerPos(playerid, x, y, z);
batox = CreateVehicle(522, x, y, z, 0, 130, 145,0);
PutPlayerInVehicle(playerid, batox, 0);
return 1;
}Le return 1;
}
Veut dire que la commande s'arete là
Apres si tu regarde la :
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}Tu voit que tu as un return 0;
}
cela veut dire que le public OnPlayerCommandText ce termine ici
En gros return veut dire fin
-
et avec les else?
-
Bas si tu utilise les fonction if comme les commande :
if (strcmp("/moto", cmdtext, true) == 0)
{
if(BuildAdmin == 1 && IsNotAdmin(playerid)) return 1;
new Float:x,Float:y,Float:z;
new batox;
GetPlayerPos(playerid, x, y, z);
batox = CreateVehicle(522, x, y, z, 0, 130, 145,0);
PutPlayerInVehicle(playerid, batox, 0);
return 1;
}Le return 1;
}
Veut dire que la commande s'arete là
Apres si tu regarde la :
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}Tu voit que tu as un return 0;
}
cela veut dire que le public OnPlayerCommandText ce termine ici
En gros return veut dire fin
Return ne veut en aucun cas dire que c' est la fin, mais que tout simplement ca retourne une valeur
Si tu veut l' exemple de la callback des commandes
le return 1;
veut dire que la commande c' est bien executer
le return 0; veut dire qu' il n' as pas trouver la commande tapez par un joueur !
le return sert aussi dans les fonction
par exemple dans
GetPlayerInterior(playerid);
C' est une fonction coder du coter serveur client
qui est dans ce genre
int GetPlayerInterior(playerid)
{
// ici tout le code
return Interior;
}
ca retourne donc la valeur de Interior
que je peut stocker dans une variable en fesant
new int = GetPlayerInterior(playerid);
a la fin la variable int stockera la valeur de la variable Interior
Je sais pas si je me suis bien exprimer ou si tu a bien compris mais voila comment ca fonctionne
Sinon d' un coter master-bru tu a raison ca sert aussi a dire que c' est la fin du code lol =p
PS: On est pas obliger de mettre des return =) sauf si le compilo nous sort une erreur qui nous dit de le mettre
dans le cas moi je met un return 0; lol
-
oups sorry :(
Heu pour les else je croit savoir mais bon on vas encore me dire que ces pas bon xD
sa veut dire si il n'est pas ....
Bon apres je preferre que sa soit cristab qui te le dise
-
Merci
-
If
veut tout simplement exprimer une condition
par exemple
if(IsPlayerAdmin(playerid))
la ca dit Si le joueur est admin
et else
fait Sinon
PS: pour que la condition soit vrai on a besoin soit d' un Boolean soit d' une valeur en chiffre lol
donc si
on fait if(false)
ca executera pas le code qui est dans la contion
si on fait
if(true)
ca l executera
si on fait
if( 0 )
ca equivaut a if(false)
Si on fait if( 1 ) ( pas obliger de mettre 1 il faut juste mettre une valeur positive non nul)
ca equivaut a true
-
Salut,
attention, la signification de la valeur d'un return est celle déterminée par le codeur,
TOUTE FONCTION DEVRAIT NORMALEMENT RETOURNÉE UNE VALEUR
nb. retourner une valeur est la dernière chose faite par une fonction, ce qui signifie que si des lignes de codes sont placés après le return, elles ne seront pas exécutées (en suivant l'ordre d'exécution)
un petit exemple:
fonction(paramètre)
{
if(paramètre == 1)
{
return 0;//on retourne une valeur, la fonction arrete ici (0 signifie généralement une erreur)
OnPlayerCommandText(12, "/me se tort de rire");//ne sera jamais appeler (le compilo te donne un avertissement)
}
printf("salut, la paramètre de la fonction est %d", paramètre);//sera appelé dans le cas où le paramètre n'égale pas 1
return 1;
}
NB. la plupart des fonctions de sa-mp retournent 0 si une erreur se produit et 1 si l'exécution est réussi
++Sim++
-
TOUTE FONCTION DEVRAIT NORMALEMENT RETOURNÉE UNE VALEUR
faux ! ( lol ca me fait bizarre de dire ca a sim )
En C++ si on defini une fonction comme cela
void fonction(para);
on ne doit pas retourner de valeur !
de plus quand tu creer une fonction et que tu ne met aucun return le compilo ne te sort aucun warn ni erreur
ce n' est donc pas imperative
PS: pardonne moi sim !! :bangin
-
+1, en C++, si tu mets un return dans un void t'as une belle erreur ^^
Sinon, pour SA-MP tu peux bien faire une fonction qui ne retourne rien, genre la simple et bête fonction qui fait un SendClientMessage x)
++
R@f
-
Salut,
en fait je parlais du pawn....
même la fonction SendClientMessage devrait retourner une valeur (celle intégrée dans SA-MP le fait), ca permet de pouvoir tester en tout temps si la fonction a été exécutée correctement
++Sim++