[Tutorial] Interdire/Autoriser un groupe de commandes par une variable
#1

Salut а tous
Aujourd'hui je vais vous montrer comment interdire а un joueur l'accиs а un groupe de commandes par rapport а une variable. Pour faire simple, par exemple si la variable est йgale а X, le joueur ne pourra pas utiliser les commandes, et si elle est йgale a Y, le joueur pourra avoir accиs aux commandes. Utile sur les serveurs Fun lorsque le joueur est en DM et qu'il ne doit pas se TP par les commandes de tйlйportations du serveur.

Maintenant place au Tuto !

Imaginons donc que nous avons 3 commandes de tйlйportations, et que nous voulons les interdire ou les autoriser en fonction d'une variable qui sera appelй AutoriserTele (J'ai trouvй que зa )



I. Crйation de la variable

Sur l’entкte de votre GM, mettez ceci, qui sera donc notre variable.
PHP Code:
new AutoriserTele[MAX_PLAYERS]; 
Mettez aussi ceci qui mettra la valeur de notre variable а 1, c'est а dire qu'elle ne bloque pas les commandes, mais nous verrons cela plus bas.
PHP Code:
Public OnPlayerConnect(playerid)
{
    
AutoriserTele[playerid] = 1;
    return 
1;

II. Le cњur du script

Maintenant place au plus important ! Ci dessous sont listйs les commandes de tйlйportation qui seront utilisйs ( Vous avez de la chance, je vous ai mis des tйlйportations sans que vous vous casseriez la tкte sur samp debug )
PHP Code:
public OnPlayerCommandText(playeridcmdtext[])
{
if(
strcmp(cmdtext"/tourls"true) == 0)  // Tйlйport 1
    
{
    
SetPlayerPos(playerid1544.4089,-1373.9717,329.9787);
    
msg(playeridBLEUC"Bienvenue a la tour de Los Santos !"); // J'ai "BLEUC" comme couleur, mais vous devrez la modifier sinon vous aurez des erreurs de compil'
    
return 1;
    }
if(
strcmp(cmdtext"/aa"true) == 0// Tйlйport  2
    
{
    
SetPlayerPos(playerid427.302499.4016.50180.00);
    
msg(playeridBLEUC"Bienvenue а l'aйroport abondonnй !");
    return 
1;
    }
if(
strcmp(cmdtext"/als"true) ==0)  // Tйlйport 3
     
{
     
SetPlayerPos(playerid,1769.3442,-2457.2092,13.5547);
     
msg(playeridBLEUC"Bienvenue а l' aйroport de Los Santos !");
     return 
1;
     } 
Ajoutez ceci au dйbut du groupe des trois commandes listйs ci-dessus :
PHP Code:
if(AutoriserTele[playerid] == 0//Si notre variable est йgale а 0, Blocage des commandes.
    
{
       
SendClientMessage(playeridROUGE"Vous ne pouvez pas vous tйlйporter maintenant"); // N'oubliez pas la couleur du texte. 
       
return 1;
    }
    
    if(
AutoriserTele[playerid] == 1// Si la variable est йgale а 1, le joueur a accиs aux commandes.
    
{
// Vous mettrez ici vos commandes !
// Vous mettrez ici vos commandes !
return SendClientMessage(playeridCOULEUR"Cette commande est inconnue"); // A mettre ABSOLUMENT, comme vous pouvez le voir, si le joueur tape une commande inconnue, il s'affichera ce message. Si vous ne voulez pas, mettez simplement return 1;   N'oubliez pas l’accolade. 

Ce qui nous donne au final :
PHP Code:
public OnPlayerCommandText(playeridcmdtext[])
{
if(
AutoriserTele[playerid] == 0)
    {
       
SendClientMessage(playeridROUGE"Vous ne pouvez pas vous tйlйporter maintenant"); 
       return 
1;
    }
    
if(
AutoriserTele[playerid] == 1)
    {
if(
strcmp(cmdtext"/tourls"true) == 0)  // Tйlйport 1
    
{
    
SetPlayerPos(playerid1544.4089,-1373.9717,329.9787);
    
msg(playeridBLEUC"Bienvenue a la tour de Los Santos !");
    return 
1;
    }
if(
strcmp(cmdtext"/aa"true) == 0// Tйlйport  2
    
{
    
SetPlayerPos(playerid427.302499.4016.50180.00);
    
msg(playeridBLEUC"Bienvenue а l'aйroport abondonnй !");
    return 
1;
    }
if(
strcmp(cmdtext"/als"true) ==0)  // Tйlйport 3
     
{
     
SetPlayerPos(playerid,1769.3442,-2457.2092,13.5547);
     
msg(playeridBLEUC"Bienvenue а l' aйroport de Los Santos !");
     return 
1;
     }
return 
SendClientMessage(playeridCOULEUR"Cette commande est inconnue");

Partie terminйe !



III. Utilisation de la variable

Maintenant, Nous allons apprendre а utiliser la variable, c'est а dire a quel moment changer la valeur de la variable et comment le faire.

Tout d'abord, voici la premiиre fonction qui permet de mettre la valeur а 0 et donc d'interdire nos tйlйportations :
PHP Code:
AutoriserTele[playerid] = 0
Et la deuxiиme, qui permet d'autoriser les tйlйportations :
PHP Code:
AutoriserTele[playerid] = 1
Et voilа, maintenant c'est а vous de coder tout зa par rapport а votre GM, voici tout de mкme un petit exemple.

Vous avez une commande /DM qui permet de se TP а un DM, on y met AutoriserTele[playerid] = 0; pour interdire les Tйlй pendant le DM.
Ensuite, Vous avez une autre commande /DMQ pour quitter le DM, vous y rajoutй AutoriserTele[playerid] = 1; pour que le joueur ait a nouveau accиs aux cmds.

Ce tuto est maintenant terminй, j'aimerais bien avoir vos rйactions ^^

Aller A+ !

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)