GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Ssk le 21 Mai 2010, 18:53:29

Titre: Le topic à exercice !
Posté par: Ssk le 21 Mai 2010, 18:53:29
Salut tout le monde, si vous voulez vous entrainer au pawn, c'est ici que ça ce passe !


Ici je posterai des exercice tout les Vendredi soir, qui seront corrigés tout les Jeudi soir.


Voila le pastebin de GTAOnline où vous pouvez déposer vos résultats d'exercices : http://pastebin.gtaonline.fr/pastebin.php (http://pastebin.gtaonline.fr/pastebin.php)


Voila les exercices qui sont disponibles:

(Correction: http://pastebin.gtaonline.fr/pastebin.php?show=791 (http://pastebin.gtaonline.fr/pastebin.php?show=791))

Créer un système de quizz, qui pose des questions mathématique.

Voici les contraintes à respecter.


PS: Les exercices peuvent être donner seulement par moi.
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 21 Mai 2010, 18:57:21
J'vois un peu comment faire mais faut que les gens rejoignent le channel pour voir ou pas ?


Voila j'ai mis les contraintes =)
Titre: Re : Le topic à exercice !
Posté par: cristab le 21 Mai 2010, 19:20:28
c'est une bonne idée que j'avais egalement lancer mais avec le peu de participant j'ai stoped le truc ^^ en esperant que cette fois il y est des participant :)
Titre: Re : Le topic à exercice !
Posté par: Ssk le 21 Mai 2010, 19:59:35
Bonne chance à tout ceux qui tente ^^
Titre: Re : Le topic à exercice !
Posté par: Barto le 21 Mai 2010, 21:28:03
Trop compliqué pour moi lol. Je tenterais peut être un autre exercice plus simple.
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 21 Mai 2010, 21:41:36
Trop compliqué pour moi lol. Je tenterais peut être un autre exercice plus simple.

Ouaip j'avoue que j'y suis allé un peu fort ^^

En tout ca moi j'ai terminé le corrigé =)
Titre: Re : Le topic à exercice !
Posté par: MK le 21 Mai 2010, 21:45:49
je vais essayer  :P
Titre: Re : Le topic à exercice !
Posté par: S!m le 22 Mai 2010, 00:44:16
Salut,

j'aime bien l'idée, en plus c'est un truc qui peut être interessant. Les meilleurs pourraient être publiés (et gardés comme exemple).

je vais essayer de le faire demain comme je devrais avoir du temps libre

++Sim++
Titre: Re : Le topic à exercice !
Posté par: Ssk le 22 Mai 2010, 12:18:11
Oui j'avoue que c'est un peu trop compliqué, Vendredi prochain, j'en ferai un plus simple.



PS: Sim tu ne pourrai pas pinned ce post pour mieux le retrouver ?
Titre: Re : Re : Le topic à exercice !
Posté par: herq le 22 Mai 2010, 12:22:14
Trop compliqué pour moi u.u'
Tu pourrai faire des exo plus simple pour les débutants ?
Merci,

Beno  (http://cristab.eg2.fr/smiley/aikido.gif)
Je pense qu'il y a plusieurs niveau, qui changerai toutes les semmaines.
Titre: Re : Le topic à exercice !
Posté par: herq le 22 Mai 2010, 12:35:29
Je pense qu'il y en aura. Mais si tu débute, quand ils auront finis leur système et publié les meilleurs, observe l'intérrieur sa aide.
Titre: Re : Le topic à exercice !
Posté par: Ssk le 22 Mai 2010, 13:10:49
En tout cas moi j'ai fait ça avec une seul variable, avec 3 énumerations , et un peu de logique.


Il me faut juste des testeurs maintenant ^^
Titre: Re : Le topic à exercice !
Posté par: herq le 22 Mai 2010, 13:13:12
Dispo pour les tests.
Titre: Re : Le topic à exercice !
Posté par: Ssk le 22 Mai 2010, 14:34:26
Voila quelques screens de ma version ^^
Titre: Re : Le topic à exercice !
Posté par: MK le 22 Mai 2010, 14:42:35
je sais vraiment pas comment m'y prendre, :'(
a chaque fois que j'essaye un truc, il me fout pleins d'erreurs
Titre: Re : Le topic à exercice !
Posté par: Ssk le 22 Mai 2010, 16:40:04
Toujours pas de code ?
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 12:28:47
Je vaisi en faire un pour le Fun
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 12:29:56
J'ai en faire un pour le Fun

Bonne chance =)



Sinon toujours pas de code ? lol
Titre: Re : Le topic à exercice !
Posté par: cristab le 23 Mai 2010, 12:30:26
je vais voir si j'ai le temps aujourd'hui d'en faire un :)
Titre: Re : Le topic à exercice !
Posté par: MK le 23 Mai 2010, 12:38:17
Citation de: sasuke78200
Toujours pas de code ?
je galère toujours autant..
Titre: Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 12:44:06
Ouaip j'avoue que c'est compliqué ^^
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 13:56:27
J'ai bientôt finit .
j'ai mis plein d'option à la création on peut choisir une couleur pour les messages ,on peut définir un Joueur Administrateur du Chanel ,Système de Mot de passe,...
Dans le FS on peut Config le Nombre de Chanel Maximum et le nombre de Joueurs Maximum par Chanel .
Titre: Re : Le topic à exercice !
Posté par: cristab le 23 Mai 2010, 14:33:02
petit truc sympas voir aussi a la possibiliter de cree un irc priver avec mdp (juste une idee c'est ^^)
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 14:52:11
J'ai bientôt finit .
j'ai mis plein d'option à la création on peut choisir une couleur pour les messages ,on peut définir un Joueur Administrateur du Chanel ,Système de Mot de passe,...
Dans le FS on peut Config le Nombre de Chanel Maximum et le nombre de Joueurs Maximum par Chanel .


Bon j'vais en recoder un autre meilleur que celle que j'ai =)
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 14:53:42
Justement je les faits .
Voila ce que sa donne : http://pastebin.gtaonline.fr/pastebin.php?show=785 (http://pastebin.gtaonline.fr/pastebin.php?show=785)
Encore brouillon mais sa avance :)
Titre: Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 15:14:14
Wahou, il y a beaucoup de variables ^^
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 15:16:06
Oui et d'erreur mais je vient de les corrigers .
Enfaite si y a trop de variable sa fait crash ?
Titre: Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 15:23:13
Moi j'utilise ça et c'est tout ^^

enum CEnum
{
Name[50], MOTD[30], Password[15],
Created
};

new CChannel[MAX_CHANNEL][CEnum];

new PlayerCJoined[MAX_PLAYERS];
new PlayerCAdmin[MAX_PLAYERS];
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 15:27:29
Ha j'avais pas vue .
En Meme temp je suis Obligé d'en utiliser :
1 Pour le Nom
1 Pour le Mot de Passe
1 Pour que le Joueur ce repère dans ses chanel aulieu de /c 13 diretement à /c 1(Optionel mais eficace)
1 Pour la Statut(OFF/LIBRE/MDP)
1 Pour la Couleur
1 Pour le Nombre de Joueurs sur le Chanel
1 Pour que le Joueur soit connecter au/aux Chanel(s)
1 Pour les Dialogs

Sasuke tu es aussi bien de mettre juste new PlayerCJoined[MAX_PLAYERS];
et 0 = pas connecter
1 = connecter normal
2 = Connecter Admin
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 15:30:23
Sasuke tu es aussi bien de mettre juste new PlayerCJoined[MAX_PLAYERS];
et 0 = pas connecter
1 = connecter normal
2 = Connecter Admin

Nop pas du tout ^^

PlayerCJoined[playerid] permet de savoir s'il est connecté dans des channels grâce au déplacement de bit ^^


Sinon la variable, pour savoir combien de joueur il y a en ligne c'est pas obligatoire ^^
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 15:33:13
Oui mais je crois qu'il faut pouvoir ce connecter dans plusieurs chanels
[EDIT]Ha nan seulement Bonus

Je sais mais bon sinon pour la liste faudrait répéter 15 boucles pour savoir le nombre de Joueur connecté .
Titre: Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 15:38:35
Moi ça suffit


public GetNumberOfPlayerInChannel(channelid);
public GetNumberOfPlayerInChannel(channelid)
{
    if(!IsAValidChannel(channelid)){return 0;}
    new number = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if((PlayerCJoined[i] >> channelid) == 1)
        {
            number ++;
        }
    }
    return number;
}

PS: dans mon code on peut se connecté a plusieurs channels ^^
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 15:49:54
Voila en 4 Variable :
enum cInfo
{
ChanelName[MAX_CHANEL_NAME],
PassChanel[MAX_PASS_NAME],
IsChanelValide,
ColorChanel[10],
TotalPlayerInChanel
};
new ChanelInfo[MAX_CHANEL][cInfo];


new PlayerInChanel[MAX_PLAYERS][MAX_CHANEL];//0=Off//1=On//3=Admin//4=Créateur
new PlayerIDChanel[MAX_PLAYERS][MAX_CHANEL];
new ChoixDialog[MAX_PLAYERS];
Et c'est pas fini maintenant je vais faire en deux :)
EDIT :
enum cInfo
{
ChanelName[MAX_CHANEL_NAME],
PassChanel[MAX_PASS_NAME],
IsChanelValide,
ColorChanel[10],
TotalPlayerInChanel
};
new ChanelInfo[MAX_CHANEL][cInfo];
enum pInfo
{
PlayerInChanel[MAX_CHANEL],
PlayerIDChanel[MAX_CHANEL],
ChoixDialog
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Voila en deux !
Le code est adapté et tous .
La preuve : http://pastebin.gtaonline.fr/pastebin.php?show=786 (http://pastebin.gtaonline.fr/pastebin.php?show=786)
Bon ba deux c'est le minimum je pensse
Titre: Re : Le topic à exercice !
Posté par: Ssk le 23 Mai 2010, 21:44:43
Bien Coco76 ^^

Mais j'avoue que tu utilise un peu trop de mémoire ^^
J'ai pas essayé, mais je vais voir demain ^^
Titre: Re : Le topic à exercice !
Posté par: Eloctro le 23 Mai 2010, 22:31:54
Il est pas fini c'est encore un croquis .
J'ai fait le système pour Rejoindre mais pas encore pour creer le chanel xd
Titre: Re : Le topic à exercice !
Posté par: Ssk le 28 Mai 2010, 19:13:15
Nouvelle exercice =)
Titre: Re : Le topic à exercice !
Posté par: BuBuNo le 28 Mai 2010, 19:17:02
ah mice j'avait pas vue les condition :P

Bon aller je tente GL au autre ;)
Titre: Re : Le topic à exercice !
Posté par: Ssk le 29 Mai 2010, 18:10:34
Ouais mafiatoss normalement c'est bon ^^


Sinon Dizzy-Beno tu respect pas toutes les contraintes
Titre: Re : Le topic à exercice !
Posté par: S!m le 29 Mai 2010, 18:33:55
Salut,

Mafiatoss, évite les multi-post merci ;)

ps. tu serais mieux de formater une variable texte globale au moment ou tu lance le concours et de faire le test sur elle uniquement (ptet ajouter une variable qui vaudra 1 ou 0 dépendant si un concours est en cours afin d'éviter les tests quand le concours n'est pas lancé). Tu utiliserais moins de CPU et de mémoire.

++Sim++
Titre: Re : Le topic à exercice !
Posté par: Ssk le 29 Mai 2010, 19:32:51
Sim toi aussi si tu veut tu peut poster des exercices ^^
Titre: Re : Re : Le topic à exercice !
Posté par: S!m le 29 Mai 2010, 23:20:49
Sim toi aussi si tu veut tu peut poster des exercices ^^

merci de la proposition, faudra que j'y pense
Titre: Re : Le topic à exercice !
Posté par: Barto le 30 Mai 2010, 10:26:00
Tiens, j'avais justement commencé à regarder pour en coder un avec Citron.
Mais là, je suis confronté à un problème que je ne sais pas résoudre, donc si quelqu'un pouvait m'aider, ca serait cool.
Mon problème c'est quoi qu'il est écrit dans le chat, ça dit qu'on trouve la bonne réponse. Exemple, le calcul est 12+5+9, j'écris dans le chat "g" et ça me dit que c'est la bonne réponse. Je ne sais pas comment faire :(

Merci d'avance !

++
Barto
Titre: Re : Le topic à exercice !
Posté par: Bayshore le 30 Mai 2010, 10:51:49
Donnes nous ton code, une bonne idée serait de s'inspirer des sources de calculatrices en ligne de commande, comme par exemple bc (http://ftp.de.debian.org/debian/pool/main/b/bc/bc_1.06.94.orig.tar.gz) (quoi que c'est un peu complexe pour des calcules de base, mais il doit y avoir d'autres outils similaires plus simples).
Titre: Re : Le topic à exercice !
Posté par: Barto le 30 Mai 2010, 11:00:03
new idQuestion;

new Quizz[][]={
// Format: Question[],Reponse[]
{" 3+4+2=?"," 9"},
{" 23+3+52=?"," 78"},
{" 12+12+12=?"," 36"},
{" 110+56+8=?"," 174"},
{" 0+9+12=?"," 21"}
};

new ptsQuizz[MAX_PLAYERS];

public OnPlayerText(playerid,text[])
{
if(strcmp(text,Quizz[idQuestion][2],false)== 1)
{
new pname[MAX_PLAYER_NAME],str[256];
GetPlayerName(playerid,pname,sizeof(pname));
ptsQuizz[playerid]++;
format(str,sizeof(str),"%s a trouvé la réponse (ses points : %d).",pname,ptsQuizz[playerid]);
SendClientMessageToAll(COULEUR_JAUNE,str);
SendClientMessageToAll(COULEUR_VERTE,"Veuillez patienter avant la prochaine question.");
}
return 1;
}

Titre: Re : Le topic à exercice !
Posté par: cristab le 30 Mai 2010, 11:15:23
tente de cette maniere

if(strfind(text, Quizz[idQuestion][2], true) == 0)
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 30 Mai 2010, 12:03:47
tente de cette maniere

if(strfind(text, Quizz[idQuestion][2], true) == 0)

je pense pas que cette méthode soit la meilleur ^^


Je vous conseil le

if(strval(text) == strval(Quizz[idQuestion][2]))
Titre: Re : Le topic à exercice !
Posté par: Bayshore le 30 Mai 2010, 14:26:34
Barto strcmp renvoie 0 quand les deux chaînes sont égales, donc remplace == 1 par == 0

sasuke ça ne marchera pas, strval ne gère ni les espaces, ni les calculs.
Titre: Re : Re : Le topic à exercice !
Posté par: Ssk le 30 Mai 2010, 14:37:52
Barto strcmp renvoie 0 quand les deux chaînes sont égales, donc remplace == 1 par == 0

sasuke ça ne marchera pas, strval ne gère ni les espaces, ni les calculs.


je le sait, tout ça, mais tout à l'heure, j'utilisais strcmp() pour voir si le joueur avait donné la bonne réponse, mais cela ne fonctionnais pas, jusqu'au moment où je me suis mis à utiliser strval ^^
Titre: Re : Re : Re : Le topic à exercice !
Posté par: S!m le 31 Mai 2010, 17:17:28
Salut,

tente de cette maniere

if(strfind(text, Quizz[idQuestion][2], true) == 0)

je pense pas que cette méthode soit la meilleur ^^


Je vous conseil le

if(strval(text) == strval(Quizz[idQuestion][2]))
c'est la méthode que j'utilise dans mon gamemode.
À noter qu'il est sans doute préférable de générer les nombres au hasard (comme la version de Mafiatoss) afin de ne pas avoir à créer manuellement la liste (ce qui peut être long et pénible si on veut du choix).
De plus, ceci nécéssite moins de mémoire et peu de calculs. (deux variables globales entières et une variable texte locale suffisent + 1 pour le timer s'il y a lieu)

++Sim++
Titre: Re : Le topic à exercice !
Posté par: Ssk le 05 Juin 2010, 21:46:10
Désolé j'ai un peu zapper le topic vu que je suis en train de coder mon MP ^^


J'posterai tout demain, sauf si Sim veut le faire ^^
Titre: Re : Le topic à exercice !
Posté par: Hip-hop le 14 Juin 2010, 23:52:55
Vendredi Passer xD
Titre: Re : Le topic à exercice !
Posté par: Ssk le 15 Juin 2010, 12:19:36
Ouais j'ai plus trop le temps en ce moment, car je suis sur un gros projet ^^