Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254687 Messages dans 14036 Fils de discussion- par 6619 Membres - Dernier membre: djalal

23 Mai 2012 à 05:30:51
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Problème pour créer une commande
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Problème pour créer une commande  (Lu 107 fois)
0 Membres et 2 Invités sur ce fil de discussion.
Phoenix
Hors ligne Hors ligne


GTAOnline Addict
*

Messages: 874


WWWBabounet40

« le: 02 Janvier 2012 à 11:45:48 »

Bonjour à tous,
Voilà je débute donc en PWN, je souhaite créer une commande où les admins connectés pourront parler "Admin : message", pour cela j'ai pris comme modèle la commande /me du include, en y rajoutant la vérif si le joueur a le niveau de pouvoirs qu'il faut (lvl 3), en enlevant le paramètre "Name", puisque dans le message "Admin", on précisera pas le nom de l'admin.

Voilà mon code :

Code:
COMMAND:atext(playerid,params[])
{
// Setup local variables
new Msg[128], Message[128];

// Send the command to all admins so they can see it
SendAdminText(playerid, "/atext", params);

// Check if the player has logged in
if (APlayerData[playerid][LoggedIn] == true)
{
// Check if the player's admin-level is at least 3
if (APlayerData[playerid][PlayerLevel] >= 3)
{
if (sscanf(params, "s[128]", Message)) SendClientMessage(playerid, 0xFF0000AA, "Utilisation: \"/atext <Message>\"");
else
{
// Check if the player isn't muted
if (APlayerData[playerid][Muted] == false)
{
format(Msg, sizeof(Msg), "Admin : %s", Message);
SendClientMessageToAll(0xFF6347FF, Msg);
}
else
SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Vous ne pouvez toujours pas écrire");
)
}
else
SendClientMessage(playerid, 0xFF0000FF, "Vous n'avez pas les droits requis");
)
else
return 0;

// Let the server know that this was a valid command
return 1;
}

Les erreurs :

Citation
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4993) : warning 217: loose indentation
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4993) : error 029: invalid expression, assumed zero
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4995) : warning 217: loose indentation
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4995) : error 029: invalid expression, assumed zero
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4996) : warning 217: loose indentation
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4997) : warning 217: loose indentation
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4997) : error 029: invalid expression, assumed zero
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4997 -- 4998) : warning 215: expression has no effect
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4998) : error 001: expected token: ";", but found "else"
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4998) : error 029: invalid expression, assumed zero
D:\...\Serveur SAMP\PPC_Trucking6\pawno\include\PPC_PlayerCommands.inc(4998) : fatal error 107: too many error messages on one line


(... : chemin tronqué pour plus de clarté)

Merci par avance!
« Dernière édition: 02 Janvier 2012 à 11:49:11 par Phoenix » Journalisée
Xartrick
Hors ligne Hors ligne


Moderateur
GTAOnline Addict
*

C & Pawn Programmer

Messages: 1206


WWW
« Répondre #1 le: 02 Janvier 2012 à 11:55:27 »

Si je comprends bien, tu veux que la mention Admin apparaît quand un administrateur parle, pour cela, tu peux passer par la fonction évènementielle OnPlayerText.

Code:
public OnPlayerText(playerid, text[])
{
    new sMessage[128], // Limite de SAMP -- I/O: 128 caractères maximum.
        sUsername[MAX_PLAYER_NAME];
   
    if (APlayerData[playerid][PlayerLevel] >= 3)
    {
        GetPlayerName(playerid, sUsername, sizeof (sUsername));
        format(sMessage, sizeof (sMessage), "Administrateur %s: %s", sUsername, text);
        SendPlayerMessageToAll(playerid, sMessage);
       
        return 0; // Permet de ne pas envoyer le message par défaut.
    }
   
    return 1; // Le message par défaut (Username: Message) est envoyé.
}
Journalisée

Phoenix
Hors ligne Hors ligne


GTAOnline Addict
*

Messages: 874


WWWBabounet40

« Répondre #2 le: 02 Janvier 2012 à 12:14:56 »

Le truc c'est que je voudrais l'intégrer avec les autres commandes, dans l'Include concerné, à savoir qui commence tous par :
Code:
COMMAND:atext(playerid,params[])
{

Comment procéder ?
Journalisée
Xartrick
Hors ligne Hors ligne


Moderateur
GTAOnline Addict
*

C & Pawn Programmer

Messages: 1206


WWW
« Répondre #3 le: 02 Janvier 2012 à 12:22:17 »

Tu peux le faire, mais cela ne sera pas une commande.
Tu peux pas exemple garder ta fonction à l'intérieur et faire un appel à ta fonction directement dans le script ce qui donnerait un truc comme ça.


Code:
// Pensez à inclure l'include :p

public OnPlayerText(playerid, text[])
{
     return IncludeFunction(playerid, text);
}

Code: (Include)
public IncludeFunction(playerid, text[])
{
    new sMessage[128], // Limite de SAMP -- I/O: 128 caractères maximum.
        sUsername[MAX_PLAYER_NAME];
   
    if (APlayerData[playerid][PlayerLevel] >= 3)
    {
        GetPlayerName(playerid, sUsername, sizeof (sUsername));
        format(sMessage, sizeof (sMessage), "Administrateur %s: %s", sUsername, text);
        SendPlayerMessageToAll(playerid, sMessage);
       
        return 0;
    }
   
    return 1;
}
Journalisée

Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.176 secondes avec 22 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact