GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: John_Montavedro le 03 Juillet 2010, 22:02:53
-
Enfaite, j'ai une petite idée : Je voudrais une simple commande pour parler en tant que Fondateur.. exemple :
/123456789adminsuperfort312548 Bonjour tout le monde ;)
et sa donne
Fondateur : Bonjour tout le monde ;)
C'est possible à faire svp?
-
Tu pourrais éviter de postez tous les 5 minutes stp ? On veut bien aider mais pour des problèmes la tu ne cherche pas :s j'sais bien qu'il n'y a pas de wiki, mais il y a des tutos...
-
oki :p
Double post
désolé
-
/rcon login MDP
/rcon say taphrase
-
Ok, s'il n'y a que cette méthode tant pis :p
-
tu peu creer la commande c'est une commande BASIQUE a faire
-
c'est à dire?
-
ouais un genre de asay sans le rcon exemple :
if(strcmp(cmd, "/asay", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] == 0)
{
SendClientMessage(playerid,COLOR_RED," Tu n'es pas un Admin ! .");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
//format(string, 256, "AdmCmd: %s a utilisé la commande /am.",sendername,GetPlayerVehicleID(playerid));
//ABroadCast(COLOR_MAUVEAD,string,1);
if(!strlen(cmdtext[idx]))
{
SendClientMessage(playerid, COLOR_GREY, "USAGE: /am [message]");
SendClientMessage(playerid, COLOR_GREY, "FONCTION : parole d'admin.");
return 1;
}
if (PlayerInfo[playerid][pAdmin] == 1)
{
format(string, sizeof(string), " Fondateur : %s", cmdtext[idx]);
SendClientMessageToAll(COLOR_LIGHTGREEN, string);
printf("MODO %s:%s",sendername, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, 256, "AdmCmd: %s a utilisé la commande /am.",sendername,GetPlayerVehicleID(playerid));
ABroadCast(COLOR_MAUVEAD,string,1);
}
return 1;
}
un truc dy style y a ptete des erreur j'ai fait ça vite fait.
-
Bonjour, Oui de plus il te fraudait obligatoirement avoir un système de compte pour enregistrer les paramètre à chaque reconnexion d'un joueur !
Les seuls solutions qui me parrait logique sont :
- Utilisez la fonction if(IsPlayerAdmin(playerid)) (( Te permettra de sécurisé la commande au joueur non connecté en rcon ! ))
- Intégrez un système de compte avec les différent paramètre importantes comme " pAdmin ", " pNiveau " Mais tout dépend du mode ...
:happy D0os-Nox :dry
-
Dizzy-Beno c'est de mon gm et c'est vite fait donc si, ne soit ps si prompt a juger stp et les definitions ça me parrai logique de les faires,...
edith/ SINON Dizzy-Beno quel est ton but en répondant aupost pour ne rien dire? avoir le plus de post possible pour dire je suis atif? car la 'ai vu plusieurde tes réponse elle ne sont pas hyper constructive c'ets une forum d'entre aide donc stviens la pour dire :" ej sais le faire mais jte le diraipas cherche," je voi spa l'interet profond"
(Prend pas sa comme une provocation mais c'est vrai , tu ne donne aucune aide que des critique et des conseil genre cherche :) :P ...)
-
if(strcmp(cmd, "/adminmessage", true) == 0 || strcmp(cmd, "/am", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être connecté!");
return 1;
}
if (PlayerInfo[playerid][pAdmin] < 1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas Admin!");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /adminmessage [MSG]");
return 1;
}
format(string, sizeof(string), "ADMIN: %s", result);
OOCOff(0xFF6347AA,string);
printf("%s", string);
}
return 1;
}
By moi, modifie le comme tu veux
-
chaqun son style
-
RE :
Si c'est pour le faire vite fait personnelement je pense que le mieu serait de ne pas le faire .
On est là pour aider , t'as essayé d'aider en donner un ok merci mais il manque des fonction il faut
le préciser parce que quand la personne va compiler elle va trouver des erreur et elles saura pas faire ^^
Moi j'ai une commande pour admin qui est vraiment simplifiée comparé à vous regarde ça :
En haut du script :
Code:
enum InfosDuJoueur
{
Admin
};
new InfosJoueur[MAX_PLAYERS][InfosDuJoueur];
Ensuite on crée la commande :
Code:
CMD:say(playerid, params[])
{
if(!InfosJoueur[playerid][Admin]) return SendClientMessage(playerid,ROUGE,"Tu n'es pas admin , désolé tu n'as pas accès a cette commande !"); // Si le joueur n'est pas admin.
if(isnull(params)) // Si le message n'est pas tapé
{
SendClientMessage(playerid, ROUGE, "Syntaxe: /say <message>");
return 1;
}
new string[160];
format(string, sizeof(string), "Admin Général : %s", params); // La on prévoie c'que sa va envoyer.
SendClientMessageToAll(BLEU_ADMIN, string);// la on envoie a tout les joueur c'quon a tapé.
return 1;
}
Sans oublié la couleur :
Code:
#define BLEU_ADMIN 0x2587CE72
#define ROUGE 0xFF2F2489
Bref tu vois que c'est vachement simplifié comparé à toi ^^
EDIT : il vous faut sscanf ^^
Posté le: Aujourd'hui à 12:27:19
Posté par: Leonidas300
Citer ce message
Code: (pawn)
if(strcmp(cmd, "/adminmessage", true) == 0 || strcmp(cmd, "/am", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être connecté!");
return 1;
}
if (PlayerInfo[playerid][pAdmin] < 1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas Admin!");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /adminmessage [MSG]");
return 1;
}
format(string, sizeof(string), "ADMIN: %s", result);
OOCOff(0xFF6347AA,string);
printf("%s", string);
}
return 1;
}
By moi, modifie le comme tu veux
Ta solution se résulte à un problème qui se réfère à ma 2éme solution dit précédemment : - Intégrez un système de compte avec les différent paramètre importantes comme " pAdmin ", " pNiveau " Mais tout dépend du mode ...
Donc, Le problème qui se pose c'est l'information du joueur, comment veut-tu qu'il soit admin à sa connexion ?
Bas, en prenant compte de la 2éme solution c'est-a-dire créer ou intégrer un système de compte en utilisant une commande du genre /enregistrer ...
Sinon, Ce n'est pas la meilleur solution, créer une commande secrète pour se mettre admin, en prenant exemple sur Dizzy cela donnerai :
if (strcmp("/semettreadmin", cmdtext, true, 10) == 0)
{
InfosJoueur[playerid][Admin] = 1;
return 1;
}
:happy D0os-Nox :dry
-
RE : Oui mais, tout le monde ne sont pas sur du script LARP ... Sa peut aider plusieurs personnes qui veulent faire la même chose mais de A à Z .
Voilà, Parce-Que des copier coller à l'arrache, sa plait pas beaucoup :dry
:happy D0os-Nox :laugh
-
OK