GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: vincesamp le 29 Avril 2011, 20:43:08
-
Bonsoir, donc voila j'ai besoin d'aide pour un code, enfaite je voudrai le créer comme par exemple, c'est un mode zombie que je fait enfaite, et je voudrai faire : Si il reste que des humains dans la partie, les humains ont gagnés.
Si il reste que des zombies dans la partie, les zombies ont gagnés.
Donc voila c'est tout simplement sa. Je vous donne le code que je veut remplacer par ce que j'ai dit.
public AnnounceWinner()
{
if(Arena[ZombiesKills] > Arena[HumansKills])
{
GameTextForAll("~r~LES ZOMBIES~w~ ONT GAGNER~y~ ]]",3000,5);
format(Text,256,"Humains infecté: %d | Zombies morts: %d",
Arena[ZombiesKills],Arena[HumansKills]);
SendClientMessageToAll(COLOR_YELLOW,Text);
}
if(Arena[ZombiesKills] < Arena[HumansKills])
{
GameTextForAll("~b~LES HUMAINS~w~ ONT GAGNER~y~ ]]",3000,5);
format(Text,256,"Zombies morts: %d | Humains infecté: %d",
Arena[HumansKills],Arena[ZombiesKills]);
SendClientMessageToAll(COLOR_YELLOW,Text);
}
if(Arena[ZombiesKills] == Arena[HumansKills])
{
GameTextForAll("~y~ EGALITER PARFAITE",3000,5);
format(Text,256,"Les deux équipes ont %d morts.",
Arena[ZombiesKills]);
SendClientMessageToAll(COLOR_YELLOW,Text);
}
Arena[ID] ++;
SetTimer("ChangeRound",10000,0);
SendClientMessageToAll(COLOR_YELLOW,"Patientez 10secondes avent que le prochain round débute !");
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCameraPos(i,-1438.0342,1751.5375,45.6543);
SetPlayerCameraLookAt(i,-1736.0754,1132.5067,45.6543);
SetPlayerInterior(i,0);
}
return 1;
}
donc vous voyer c'est un systeme de gagnant par kill la...
plus précisement c'est cela que je veut changer ( zoom sur la partie dans le code ci dessus )
if(Arena[ZombiesKills] > Arena[HumansKills]) ( zombie gagnant )
if(Arena[ZombiesKills] < Arena[HumansKills]) (humains gagnant )
if(Arena[ZombiesKills] == Arena[HumansKills]) ( partie nul, égalité )
Merci beaucoup pour vos futurs aide j'ai cherché plusieurs fois, plusieurs essaie mais bon toujours rien, j'aboutie a rien donc je compte beaucoup sur vous. N'hésitez pas a m'add msn si vous voulez parler plus précisément...merci
-
c'est un mode zombie que je fait enfaite
Mensonge ...
http://pastebin.com/f6344a138 (http://pastebin.com/f6344a138)
-
Oui, c'est bien un mode zombie que je fait, mais je m'inspire du code que j'ai mis pour faire mon code avec ce que j'ai dit plus haut, je m'inspire juste de sa je vois pas ou est le mensonge? tu as du mal comprendre ce que je voulai faire.... Je m'inspire de l'idée des gagnants mais pas en gagnant pareil.
-
Salut,
Oui, c'est bien un mode zombie que je fait, mais je m'inspire du code que j'ai mis pour faire mon code avec ce que j'ai dit plus haut, je m'inspire juste de sa je vois pas ou est le mensonge? tu as du mal comprendre ce que je voulai faire.... Je m'inspire de l'idée des gagnants mais pas en gagnant pareil.
ton code est exactement le même, ce n'est plus s'inspirer...
Quand on s'inspire on écrit son code, on ne copie-colle pas.
Même avec le même principe, le code change un peu (personne ne code exactement de la même façon).
++Sim++
-
Bon ! enfaite je vous explique je vient demander de l'aide sur se forum, pas m'embrouiller ou m'engueuler avec des gens. Je prend ce code pour faire le mien, okay jlui est volé d'accord mais pas pour faire la meme chose, je débute en .pwn donc je m'aide avec d'autre script ! enfin bref j'ai vraiment besoin d'aide donc si c'est pour dire encore des truques comme sa aabstenez vous s'il vous plait. Je demande de l'aide rien d'autre. Merci
-
Salut,
tout ce qu'on veut, c'est la vérité, pas les embrouilles, tu aurais dû commencer en disant que tu as pris ce code etc... personne ne t'aurais jugé...
Sinon, pour ton problème, je trouve que le code fourni ressemble beaucoup à ce que tu as décrit.
En gros, tu remplace :
if(Arena[ZombiesKills] > Arena[HumansKills])
par:
if(variable_nombre_de_zombies > 0)
(si j'ai bien compris ce que tu veut)
de même pour les humains.
++Sim++
-
Euh j'ai changé se que ta dit par lautre truque mais...après il me dise undefined symbole variable_nombre_de_zombie > 0)
Pourrai tu me donner ton msn ou ----> [email protected] (majouter)
Car la je débute .pwn a mon avis je dois definir sa mais comment? merci
-
vincesamp, il faut que tu comprenne une chose, ici nous sommes sur un forum, l'aide est donc publique donc inutile de donner une adresse email pour de l'aide privée.
Pour ton problème, je peux apercevoir que tu ne comprend pas ce que tu fais, une personne qui veux apprendre lit des court et comprend ce qu'elle fait.
Ici, tu utilise une variable inconnu, normal que le compilateur t'insulte !
-
Okay okay...a chaque fois que tu post c'est pour dire du négatif...
sinon apart sa j'ai fait un ' new variable_nombre_de_zombies' pareil pour humain c'est sa? :)
-
C'est toi qui m'oblige à écrire en négatif sur toi, tu montre une image négative de toi même, je fais de même.
Sinon, on ne fait pas un "new machin" mais on déclare une nouvelle variable.
-
en quoi je suis négatif?
et sinon, Comment déclare t'on une variable s'il te plait?
-
Tu es négatif du fais que tu ment.
Sinon, pour déclarer une variable, il faut faire comme ceci.
new nom;
Mais il est conseiller de donner directement une valeur pour éviter les surprises.
new nom = 0;
Ou alors ...
new nom;
nom = 0;
-
c'est ce que j'ai dit tout a l'heure et tu ma dit mais non pas de new machin :O
pourtant c'est sa : new variable_nombre_de_zombies = 0; ?
Double post désolé
Donc non c'est pas sa, avec variable_nombre_de_zombies < 0; sa ne fonctionne pas, j'ai test on était deux zombies et donc sa doit marqué les zombies ont gagné car plus aucun humains mais non rien ne se passais...donc si vous avez d'autre idée merci de me les dire. ++
-
Je n'ai jamais dis que cela n'était pas ça, mais que ça avait un nom précis, une déclaration.
-
Salut,
déjà, j'imagine que ton mode à une variable ou une fonction qui permet de savoir al donnée décrite par le nom de la variable (le nom c'était pour être clair, tu met bien ce que tu veut).
Comme le dit Xartrick, tu ne donne pas l'impression de savoir ce que tu fais, tu essaie d'aller trop vite et ne tente pas de comprendre (comme beaucoup trop de gens).
À l'école c'est souvent la même chose, bien des gens tentent d'apprendre par cœur tous les trucs, bref: beaucoup d'étude, connaissance sans compréhension, si on reprend la même situation avec quelques petits changements mineurs, incapable de le faire...
Il faut comprendre pour réussir, un minimum de connaissance et de mémoire (pour les normes etc), mais surtout de la réflexion.
Après, le nom de la variable ne fait pas la donnée qu'elle contient, si tu veut que ta variable contienne le nombre de zombies restants, il faut que tu évalue le nombre de zombies. Soit avec la variable que t'incrémente quand un joueur s'ajoute aux zombies et décrémente quand un zombie meurt/quitte (dépendant de comment tu gère le nombre de joueurs restants).
Sinon tu utilise une fonction qui vérifie tous les joueurs et compte le nombre de zombies vivants et une pour les humains...
++Sim++
-
Merci beaucoup sa m'a bien aidé ce que vous m'avez dit !!!
ps: juste comme sa, dans une phrase quand on parle en /ooc, sa fait exemple : (( vince_samp : blablablablabla ))
J'aimerai bien s'avoir comment on met les parenthése en couleurs, juste les parenthéses, puis juste le nom_prénom en couleur? J'ai essayai quelques truques mais sans résultat^^
(juste pour donner un style :P )Merci
-
new str[128];
...
format(str, sizeof(str), "(( {code_couleur} %s {code_couleur}: %s ))" , nom_du_joueur, text );
SendClientMessageToAll(blanc, str );
En gros dans ton texte, tu dois rajouter des accolades, et entre ces accolades, tu défini le code de couleur ex: blanc = {0xFFFFFFFF};
par contre, fais attentions, si tu mets une couleur a une partie du texte, tu dois redéfinir la couleur de base à la fin de cette partie:
SendClientMessage(playerid, blanc, "{0xFF000000}Couleur voulu{0xFFFFFFFF}Couleur initial");
-
Salut, en gros ma phrase sa ferai sa: {bleu par exemple} (( { bleu par exemple } { rouge }Vince_Samp{ rouge } : salut les mecs {bleu par exemple } )) { bleu par exemple }
Sa ferai les parenthese bleu et vince_samp rouge, c'est sa? :)
-
Salut,
tout à fait (en indiquant les bonnes valeurs).
Attention: dans les SenClientMessage, les couleurs sont gérées en hexadécimale en partant, pas besoin de l'indiquer : pas de 0x
{FF0000} = rouge
{0000FF} = bleu
...
++Sim++
-
En fait, c'est presque ça, car tu n'es pas obligé de répéter une couleur :
{bleu par exemple} (( { bleu par exemple } { rouge }Vince_Samp{ rouge } : salut les mecs {bleu par exemple } )) { bleu par exemple }
Les deux parties en rouges ci-dessus sont inutiles puisqu'il n'y a pas de texte directement à la suite.
La partie en vert est inutile car tu as déjà sélectionné la même couleur.
Mais ça fonctionnera quand même.
Le texte affichée par ton exemple serait :
(( Vince_Samp : salut les mecs ))
A savoir :
Les couleurs données entre {} ne sont pas des balises, il n'est pas nécessaire d'encadrer le texte avec.
Lorsqu'on met une couleur, elle est valable jusqu'à la couleur suivante ou jusqu'à la fin de la chaîne.
Donc pour afficher les parenthèses en bleu, le nom en rouge et le texte en blanc :
"{0000FF}(( {FF0000}Vince_Samp{FFFFFF} : salut les mecs {0000FF}))"
Ce qui donne (le blanc en affiché en noir ici bien évidement) :
(( Vince_Samp : salut les mecs ))
Et il n'est malheureusement pas facile de faire des #define pour ce système de coloration et, lorsqu'on se sert de ce système, les chaines de caractères deviennent vite illisibles.
++
Syg
-
Bonjour !
Merci beaucoup pour vos réponse rapide, mais un problème vient toujours me perturber !! ^^
Donc voici, comme vous m'avez dit, la phrase que j'ai mis: {FF9900AA}[%i] {01FCFFC8}%s à rejoint {DABB3EAA} [nom du serveur]
Mais quand je me connecte, la phrase est exactement pareil :O !
biensur elle est en bleu car en dessous j'ai sa : SendClientMessageToAll(COLOR_BLEUC,astring);
Je pense que sa vient de la car j'ai définie bleu la, donc j'ai essayé d'enlever COLOR_BLEUC, ce qui donne SendClientMessageToAll(astring);
mais la sa donne des erreurs, et si j'enleve tout SendClientMessageToAll(); ---------> sa indique rien quand on se co, +2 warning au compilation ^^
Donc je c'est pas trop, ou alors fait des #define mais comment? Merci a vous.
++
-
Il ne faut mettre que les trois composante de couleurs entre le accolades, Toi tu en a mis 4 (composante alpha en plus).
Regarde bien les exemples que Sim et moi t'avons donnés, ils ne comportent que les composante Rouge, Verte et Bleue (deux caractères chacune soit 6 caractères entre les accolades).
++
Syg
-
Ah oui exacte j'ai pas fait gaffe j'avais 8 lettres/chiffre au lieu de 6 !^^ merci encore a vous :)