GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Boomerkuigi le 06 Décembre 2010, 12:35:51
-
Salut a tous,
Voila je cree ce topic pour ceux qui ont une petite question rapide a propos du scriptage en pawn !
Je commence, j'ai cree une commandes pour pouvoir créer / attacher un objet au joueur, et la commande renvoi aussi un texte au joueur pour indiquer les positions x, y, z de l'objet sous cette forme:
" X : 0.000000, Y : 0.0000000, ..." mais j'aimerai limitée le nombre de 0 apres la virgule a seulement 2 nombres comment puis je faire ?
Aussi,
enum TeamInfoEnum
{
Float:TeamPos[3], // A ce niveau la, est ce correct ?
TeamPlayers,
TeamScore
};
new TeamInfo[MAX_TEAMS][TeamInfoEnum];
enum TeamInfoEnum
{
TeamPos[3],
TeamPlayers,
TeamScore
};
new Float:TeamInfo[MAX_TEAMS][TeamInfoEnum];
Voila, le 2eme je pense que c'est correcte, mais le premier est il correcte aussi ?
-
Il me semble que la fonction FloatRound est faite pour cela.
http://wiki.sa-mp.com/wiki/Floatround (http://wiki.sa-mp.com/wiki/Floatround)
-
Salut,
le mieux c'est de seulement modifier ton format.
Utilise X.af où a = le nombre de chiffres après la virgule.
Exemple:
format(tmp, sizeof(tmp), "Ta Position: %.2f, %.2f, %.2f", X, Y, Z);
Bonne chance
++Sim++
-
Salut,
le mieux c'est de seulement modifier ton format.
Utilise X.af où a = le nombre de chiffres après la virgule.
Exemple:
format(tmp, sizeof(tmp), "Ta Position: %.2f, %.2f, %.2f", X, Y, Z);
Bonne chance
++Sim++
Waaaaaa Big Merci
-
Une autre question
J'aimerai juste qu'on me mette sur la piste pour pouvoir taffer vraiment
Vla le topo :
Un joueur percute un autre (ils sont tous deux en voitures) , si le vehicle health dessend en dessous d'une certaine valeur, j'aimerai recuperer l'id du joueur qui l'ai percutée,
j'ai pensée a un timer combinée avec le GetVehicleHealth pour que des que le vehicle health dessend de la valeur limite on detecte le joueurs qui est a proximitée mais le probleme c'est qu'il pourrait y avoir beacoup de joueur egalement
EDIT : OMG comme je suis aveugle http://wiki.sa-mp.com/wiki/OnVehicleDamageStatusUpdate (http://wiki.sa-mp.com/wiki/OnVehicleDamageStatusUpdate) desolée
-
Bonsoir j'aurais 2 questions concernat les "return" et les fonctions public
Quel est le meilleur code selon vous
public SendMessageToPlayerInRace(string[])
{
for(new i= 0; i<MAX_PLAYERS; i++)
{
if(pRaceInfo[i][InRace] == 1) return SendClientMessage(i, RACE_INFO_COLOR_ALL, string);
}
return 0; // ICI
}
public SendMessageToPlayerInRace(string[])
{
for(new i= 0; i<MAX_PLAYERS; i++)
{
if(pRaceInfo[i][InRace] == 1) return SendClientMessage(i, RACE_INFO_COLOR_ALL, string);
}
return 1; // ICI
}
De plus je voulais savoir dans quel cas on doit utiliser une fonction "public" ?
Merci d'avance
-
un public tu peut t'en servir dans un timer pas comme si tu fait une fonction donc dans le cas de ta fonction tu peu le mettre en public ou en stock sa n'auras aucun effet notoire
en ce qui concerne ton return il n'est pas necessaire appriorit
public SendMessageToPlayerInRace(string[])
{
for(new i= 0; i<MAX_PLAYERS; i++)
{
if(pRaceInfo[i][InRace] == 1)
{
SendClientMessage(i, RACE_INFO_COLOR_ALL, string);
}
}
return 1;
}
-
Quand je fait sa , sa me met un warning comme quoi la fonction doit renvoyer une valeur :O
-
ah ben oui lol comme c'est un public il faut renvoyer un return 1; avant la fermeture du public desoler d'avoir oublier ce leger detail ^^
-
Donc tu me conseillerai de ne pas mettre la fonction en public ?
Parce que j'ai des erreurs (IG) sur mes recentes commandes que j'ai créer et je ne sais pas d'ou vien l'erreur
C'est assez frustrant
-
moi ce genre de fonction je ne met pas dans les public enfaite si tu as juste un peu de temps tu peu regarder dans le showroom le FS AFK que je partage aujourd'hui est tout en bas j'ai pratiquement la meme fonction que toi sous un nom different ;) et sans aucun return a l'interieure
-
Question mathématiques :
Voila j'aimerai savoir comment calculer le Z angle que fait une droite dans l'espace 3D
J'ai deux point A(x1, y1, z1) B(x2, y2, z2) j'aimerai savoir l'angle par rapport a l'axe Z (hauteur) que fait le segment AB
Comment faire ?
J'espere que vous m'avez compri ..
Aussi le GetPlayerFacingAngle() c'est l'angle par rapport a l'axe Z ?
-
Getplayerfacing angle s'est avec l'axe X si je ne me trompe pas
-
Salut,
pour connaitre cet angle, il te suffit de faire l'arctangente de la différence en X etY divisé par la différence en Z.
En gros:
X = différence en X
Y = différence en Y
Z = différence en Z
XY = floatsqroot(X * X + Y * Y);
angle = atan(XY/Z);
ps. la différence c'est max - min
pps. l'angle calculé est l'angle ϕ dans cette figure (merci wikipedia pour ce partage...):
(http://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Spherical_Coordinates.png/220px-Spherical_Coordinates.png) (http://fr.wikipedia.org/wiki/Coordonn%C3%A9es_sph%C3%A9riques)
++Sim++
-
Merci Sim!
-
Une question :)
Voila j'ai fait un tour dans le "a_samp", or je n'ai vu que les prototypes des fonction samp comme, exemple:
" native SendClientMessage(playerid, color, const message[]); "
Mais ce que j'aimerais c'est de voir les fonctions de samp, c'est a dire comment ils sont fait etc...
Quelqu'un saurait-il ou les trouver ?
-
tout ce trouve il me semble dans le serveur.exe ou le client je ne peu t'en dire plus peu etre que Sasuke seras mieux t'expliquer que moi mais tu ne verras jamais comment c'est fait
-
Ah je voit la team samp joue la securitée :laugh