Re : Exercice en Pawn - Dйbutant -
Z3N0N - 19.04.2015
Tenez, fais vite fait :
Code:
#include <a_samp> // Include de base.
#define DIALOG_*******_SOUND 666 // On dйfinie l'ID du dialogue.
new bool: SoundOn[MAX_PLAYERS]; // Variable boolйen parce qu'on va juste utilisй true ou false.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmd, "/musique", true) == 0)
{
if(!IsPlayerConnected(playerid)) return false; // Le joueur n'est pas connectй physiquement, donc une erreur se produit (false)
{
if(SoundOn[playerid] == false) // Si le joueur n'йcoute pas de son on ouvre le dialogue.
ShowPlayerDialog(playerid,DIALOG_*******_SOUND, DIALOG_STYLE_INPUT, "Musique [*******]", "Entrez le lien de votre musique (exemple : wwww.youtube.com/watch?v=VID : VID = ID de la vidйo dans L'URL)", "Go", "Annuler");
else // Sinon on lui coupe l'audio stream.
StopAudioStreamForPlayer(playerid);
}
return true;
}
return false;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_*******_SOUND)
{
if(response) // Si le joueur clique sur "go" et n'annule pas le dialogue avec йchap ou le bouton "annuler"
{
if(!strlen(inputtext)) return false; // Une erreur de produite, rien n'est entrer dans le champ.
if(strfind(inputtext,"www.*******.com",true) == -1) return false; // Une erreur ses produite, ce n'est pas une vidйo *******
new idSound*******[124], _str[256];
strmid(idSound*******, inputtext, strfind(inputtext, "v=")+2,strfind(inputtext, "v=")+19); // Nous sauvegardons l'ID de la vidйo (les chiffres aprиs v= dans un tableaux STRING)
format(localString, 128, "http://mwrserver.com/*******.php?videoid=%s",idSound*******); // Nous allons sur un site, qui va lire le son en MP3 selon l'id de la vidйo ******* rйcupйrйe plus tфt.
PlayAudioStreamForPlayer(i, _str); // On lance l'audio Stream au joueur.
SoundOn[playerid] = true; // Nous passons la variable SoundOn а true car il йcoute du son.
}
return true;
}
return true;
}
Le prochain devra faire un systиme de GPS mais utilisable via un tableau, au lieu d'ajouter chaque destinations dans le dialogue plus dans OnDialogResponses, sa s'ajoutera dans le un tableau.
Pour cela vous devez vous servir :
Des tableaux (
https://sampforum.blast.hk/showthread.php?tid=562863),
Des boucles pour check les noms etc dans le tableau pour le dialogue.
De STRCAT pour enregistrer le nom de la destination sans йcrasй le string.
OnDialogResponse.
Re : Exercice en Pawn - Dйbutant -
Skinnz - 24.04.2015
[CENTER]
Code:
new chiffre;
new jeux;
public OnGameModeInit();
{
chiffre = random(100);
jeux = 1;
return 1;
}
public OnPlayerText(playerid, text[])
{
new sontext[100]
if(jeux == 1)
{
if(!strcmp(sontexte, chiffre, false))
{
new string[100], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
SendClientMessageToAll(WHITE, "%s gagne 500$. »", name);
SendClientMessage(playerid, WHITE, "Vous gagnez 500$");
GivePlayerMoney(playerid, 500);
jeux = 0;
}
return 1;
}
return 1;
}
[/CENTER]
Je sais pas si j'ai rйussi ou pas.
Re : Exercice en Pawn - Dйbutant -
BreakStore - 02.05.2015
Salut,
J'ai conзu cet exercice pour les dйbutants. :)
-Dиs qu'un joueur se connecte sur le serveur, vous devez envoyй ce message au joueur :
''Le meilleur GM est celui qu'on fait soit mкme".
Ensuite, vous devez l'exclure du serveur. :p
Cependant, depuis la version 0.3X, la fonction Kick(); est en prioritй avant les messages, donc vous devez faire un timer.
Bonne chance. :)
Re : Exercice en Pawn - Dйbutant -
LordFalcon - 02.05.2015
C'йtais pas trиs difficile cette exercice, j'ai fais зa en 5 min, et ca marche !
PHP Code:
public OnPlayerConnect(playerid)
{
attacheur[playerid] = -1; // Faites pas attention а зa, c'est pour d'autre truc en dessous
SendClientMessage(playerid,0xFFFFFF,"Le meilleur GM est celui qu'on fait soit mкme !"); // On envoie le message dиs qu'un joueurs se connecte.
SetTimerEx("KickPlayer", 5000, false, "i", playerid); // On crйe le timer avec un temps de 5 secondes.
return 1;
}
forward KickPlayer(playerid);
public KickPlayer(playerid)
{
Kick(playerid); // On kick le joueurs.
return 1;
}
Screen а l'appui :
http://imagesia.com/sa-mp-001_xbu7
Voilа ! D'autre exo' ?
Re : Exercice en Pawn - Dйbutant -
Dutheil - 02.05.2015
Tu pouvais mettre 250 ou 500 millisecondes et non 5 secondes, зa aurait suffit.
Prochain exercice :
A partir de ce tutoriel :
https://sampforum.blast.hk/showthread.php?tid=563016 vous devrez tenter d'inclure le fichier mon_include.inc et vйrifier si _myinclude_included existe. Si il n'existe pas vous arrкtez l'inclusion du fichier.
Re : Exercice en Pawn - Dйbutant -
Sus-Pets - 02.05.2015
LordFalcon;3448091 Wrote:C'йtais pas trиs difficile cette exercice, j'ai fais зa en 5 min, et ca marche !
PHP Code:
public OnPlayerConnect(playerid)
{
attacheur[playerid] = -1; // Faites pas attention а зa, c'est pour d'autre truc en dessous
SendClientMessage(playerid,0xFFFFFF,"Le meilleur GM est celui qu'on fait soit mкme !"); // On envoie le message dиs qu'un joueurs se connecte.
SetTimerEx("KickPlayer", 5000, false, "i", playerid); // On crйe le timer avec un temps de 5 secondes.
return 1;
}
forward KickPlayer(playerid);
public KickPlayer(playerid)
{
Kick(playerid); // On kick le joueurs.
return 1;
}
Screen а l'appui : http://imagesia.com/sa-mp-001_xbu7
Voilа ! D'autre exo' ?
Bravo :)
Re : Exercice en Pawn - Dйbutant -
BreakStore - 02.05.2015
Bien jouй. x)
Re : Exercice en Pawn - Dйbutant -
Dutheil - 02.05.2015
wsssssh
Dutheil;3448102 Wrote:Prochain exercice :
A partir de ce tutoriel : https://sampforum.blast.hk/showthread.php?tid=563016 vous devrez tenter d'inclure le fichier mon_include.inc et vйrifier si _myinclude_included existe. Si il n'existe pas vous arrкtez l'inclusion du fichier.
Re: Exercice en Pawn - Dйbutant -
d0wze - 03.05.2015
@Dutheil
je n'ai pas trиs bien compris, mais si j'ai compris le tutoriel зa donne зa, n'est-ce pas?
(c'est la premiиre fois que j'utilise ces choses, je m'attends а des erreurs bien йvidement, mais essayons quand mкme. J'ai essayer de faire autre chose que celui du tutoriels, en espйrant que зa fonctionnera mкme si j'y crois pas)
Quote:[SIZE="3"]Directives » #endinput & #endscript:[/SIZE]
Ces directives exйcutent la mкme action mais ont des noms diffйrents. (allez savoir pourquoi ptdr).
Elles permettent seulement de pouvoir arrкter l'inclusion d'un fichier.
Je vais reprendre une parti du code de zcmd pour vous l'expliquer
PHP Code:
#if defined _zcmd_included // Si "_zcmd_included" est dйfini
#endinput // On arrкte l'inclusion du fichier
#endif // Fin de la condition
#define _zcmd_included // On dйfini "_zcmd_included" puisque qu'il n'existe pas, sinon on aurait arrкtй d'inclure la suite
PHP Code:
#1 (je comprends un peu, mais je me perds..)
#define test 1
#if test < 1
// si c'est infйrieure а 1 c'est qu'il est pas dйfinit?
#define _include_included
#else if test == 1
// en revanche si il est йgale а un c'est qu'il est dйfinit?
#endinput
#endif
#2 (on essaie une deuxiиme fois au cas ou..)
#if defined _include_included
#error L'include (include_included) n'existe pas.
#endinput
#endif
Re : Exercice en Pawn - Dйbutant -
Dutheil - 03.05.2015
@dowze : Tu as presque rйussi, j'avais dit de tenter d'inclure l'include "mon_include.inc" pour зa tu dois utiliser #tryinclude.
Ensuite ton second code est ce que j'attendais sauf que tu n'as pas besoin de la directive #error.
Re : Re: Exercice en Pawn - Dйbutant -
Dutheil - 05.11.2015
Jabern;3609067 Wrote:Un autre un autre :p aller
Avec #emit ? :mrgreen:
Re: Exercice en Pawn - Dйbutant -
Jabern - 05.11.2015
Nooooo :o j'apprend toujours l'assembly
Re : Exercice en Pawn - Dйbutant -
Buthers - 05.11.2015
Allez un exercice en assembleur :rolleyes:
Re : Exercice en Pawn - Dйbutant -
Dutheil - 05.11.2015
@Buthers : Rйsous dйjа celui que j't'ai donnй sur Skype, car c'que tu m'as envoyй est faux ! :mrgreen:
Re: Exercice en Pawn - Dйbutant -
Jabern - 05.11.2015
Mais aller quoi un petit exercice
Re : Exercice en Pawn - Dйbutant -
S4t3K - 06.11.2015
Codez une fonction qui permet de dйtecter quand est-ce que le joueur lиve sa moto :p
Re : Exercice en Pawn - Dйbutant -
S4t3K - 08.11.2015
J'йtais plutфt sйrieux sur l'exercice