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
-
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:
- Créer un système de chat, qui permet d'avoir des channels comme dans irc. ( Le 21/05/2010 ) Difficile
(Correction: http://pastebin.gtaonline.fr/pastebin.php?show=791 (http://pastebin.gtaonline.fr/pastebin.php?show=791))
- Créer un système de quizz mathématique. ( Le 28/05/2010 ) Simple
Créer un système de quizz, qui pose des questions mathématique.
Voici les contraintes à respecter.
- Les calcules devront être seulement des additions de relatif.
- Il doit y avoir 3 nombres
- On peut y répondre par le chat
- Le quizz est lancer toute les minutes, et si au bout de deux minutes personne ne répond, ça relance un autre calcule
PS: Les exercices peuvent être donner seulement par moi.
-
J'vois un peu comment faire mais faut que les gens rejoignent le channel pour voir ou pas ?
Voila j'ai mis les contraintes =)
-
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 :)
-
Bonne chance à tout ceux qui tente ^^
-
Trop compliqué pour moi lol. Je tenterais peut être un autre exercice plus simple.
-
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é =)
-
je vais essayer :P
-
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++
-
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 ?
-
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.
-
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.
-
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 ^^
-
Dispo pour les tests.
-
Voila quelques screens de ma version ^^
-
je sais vraiment pas comment m'y prendre, :'(
a chaque fois que j'essaye un truc, il me fout pleins d'erreurs
-
Toujours pas de code ?
-
Je vaisi en faire un pour le Fun
-
J'ai en faire un pour le Fun
Bonne chance =)
Sinon toujours pas de code ? lol
-
je vais voir si j'ai le temps aujourd'hui d'en faire un :)
-
Toujours pas de code ?
je galère toujours autant..
-
Ouaip j'avoue que c'est compliqué ^^
-
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 .
-
petit truc sympas voir aussi a la possibiliter de cree un irc priver avec mdp (juste une idee c'est ^^)
-
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 =)
-
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 :)
-
Wahou, il y a beaucoup de variables ^^
-
Oui et d'erreur mais je vient de les corrigers .
Enfaite si y a trop de variable sa fait crash ?
-
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];
-
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
-
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 ^^
-
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é .
-
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 ^^
-
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
-
Bien Coco76 ^^
Mais j'avoue que tu utilise un peu trop de mémoire ^^
J'ai pas essayé, mais je vais voir demain ^^
-
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
-
Nouvelle exercice =)
-
ah mice j'avait pas vue les condition :P
Bon aller je tente GL au autre ;)
-
Ouais mafiatoss normalement c'est bon ^^
Sinon Dizzy-Beno tu respect pas toutes les contraintes
-
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++
-
Sim toi aussi si tu veut tu peut poster des exercices ^^
-
Sim toi aussi si tu veut tu peut poster des exercices ^^
merci de la proposition, faudra que j'y pense
-
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
-
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).
-
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;
}
-
tente de cette maniere
if(strfind(text, Quizz[idQuestion][2], true) == 0)
-
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]))
-
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.
-
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 ^^
-
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++
-
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 ^^
-
Vendredi Passer xD
-
Ouais j'ai plus trop le temps en ce moment, car je suis sur un gros projet ^^