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

Titre: Besoin d'aide urgent [tout petit code]
Posté 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
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Xartrick le 29 Avril 2011, 20:46:09
Citation de: vincesamp
c'est un mode zombie que je fait enfaite

Mensonge ...

http://pastebin.com/f6344a138 (http://pastebin.com/f6344a138)
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 29 Avril 2011, 20:50:46
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.
Titre: Re : Re : Besoin d'aide urgent [tout petit code]
Posté par: S!m le 29 Avril 2011, 21:06:15
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++
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 29 Avril 2011, 21:16:21
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
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: S!m le 29 Avril 2011, 22:58:01
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++
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 29 Avril 2011, 23:44:33
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
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Xartrick le 29 Avril 2011, 23:59:51
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 !
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 30 Avril 2011, 00:06:56
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? :)
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Xartrick le 30 Avril 2011, 00:24:50
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.
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 30 Avril 2011, 00:31:54
en quoi je suis négatif?
et sinon, Comment déclare t'on une variable s'il te plait?
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Xartrick le 30 Avril 2011, 00:41:28
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;
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 30 Avril 2011, 00:44:26
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. ++
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Xartrick le 30 Avril 2011, 00:45:24
Je n'ai jamais dis que cela n'était pas ça, mais que ça avait un nom précis, une déclaration.
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: S!m le 30 Avril 2011, 15:01:37
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++
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 30 Avril 2011, 17:41:23
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
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: MK le 01 Mai 2011, 22:12:32
Citer
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");
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 01 Mai 2011, 22:59:09
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? :)
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: S!m le 02 Mai 2011, 22:33:17
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++
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Syg le 03 Mai 2011, 11:15:27
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
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 04 Mai 2011, 16:45:10
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.
++
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: Syg le 04 Mai 2011, 23:48:43
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
Titre: Re : Besoin d'aide urgent [tout petit code]
Posté par: vincesamp le 05 Mai 2011, 14:49:31
Ah oui exacte j'ai pas fait gaffe j'avais 8 lettres/chiffre au lieu de 6 !^^ merci encore a vous :)