GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: GtaManiac le 30 Novembre 2007, 20:44:43

Titre: Probleme cmd admin
Posté par: GtaManiac le 30 Novembre 2007, 20:44:43
Bonjour,

Eh oui j'ai encore et toujours des problemes je ne suis qu'un jeune padawane parmis tant d'autre dans le monde du Pawn  ;) , j'ai donc besoin de vos lumiere sur :

Comment créer une commande qui permet de voir les cmds des joueurs comme pour les PM qui marche tres bien mais apres pour les cmds  ;D ....

Voici donc se que j'ai mis apres le dernier return1 de mes commandes dans le filterscript admin ( a moin qu'il faut mettre sans dans le GM ) :

new player[MAX_PLAYER_NAME];
new tmpp[256];
new text;
GetPlayerName(playerid, player, sizeof(player));
format(tmpp, sizeof(tmpp), "***(id:%i) %s : %s",playerid,player,text);
SendAdminMessage(COLOR_LIGHTBLUE,tmpp);
    return 1;
    }

J'ai aucune erreur ( enfin si mais pas quand je compile ) quand je suis pas loger admin les commandes marche bien mais des que je me logge quand je tape une commande j'ai un message bleu qui me dit " *** (id:0) [FR]GtaManiac : " et il n'y a pas la commande qui s'affiche apres les ":" et je ne peut utiliser aucune commande le message revien a chaque fois  ???

Comment faut t'il faire pour résoudre se léger probleme ?.

Merki d'avance
A+
Maniac.
Titre: Re : Probleme cmd admin
Posté par: NatiVe™ le 30 Novembre 2007, 20:48:20
Tu as mit text, c'est pas cmdtext qu'il faut mettre ?  :blink

AK NV.
Titre: Re : Probleme cmd admin
Posté par: [StAfF]MaN le 30 Novembre 2007, 21:15:40
Non ^^ En plus c'est pas une commande ça, il manque un bout de ton script ^^

Arsenik, il a mis "text" parce que sa cmd doit faire apparaitre un text avec l'action, ou alors juste un texte.



Exemple :

   new name[MAX_PLAYER_NAME];
   new string[256];
   new deathreason[20];
   GetPlayerName(playerid, name, sizeof(name));
   GetWeaponName(reason, deathreason, 20);
        format(string, sizeof(string), "*** %s est mort ^^!.", name);
        SendClientMessageToAll(COLOR_BLEUTROUBLE, string);
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 30 Novembre 2007, 21:47:37
Se n'est pas sa que j'ai demandé , j'ai demander comment faire quand un joueur tape une commande sa me l'affiche dans le tchat quand je suis loggé admin  ...
Titre: Re : Probleme cmd admin
Posté par: [StAfF]MaN le 30 Novembre 2007, 22:15:17
Donc ça c'est pas compliqué c'est plus simple que le code que tu as mis, donc tu fait une

SendClientMessageToAll

Avec le IsPlayerAdmin ^^ et voila, je te laisse faire ton bout de script, si t'as des probs dit le nous

ps: excuse mias j'avais pas bien lus ton 1er post en faite :s ^^
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 01 Décembre 2007, 13:52:27
Euh .... avec un SendClientMessageToAll , comment veut tu que je vois les cmds des autres  ??? a moin que je n'est vraiment rien compris .
Titre: Re : Probleme cmd admin
Posté par: Sismix84 le 01 Décembre 2007, 13:57:36
Tu met un SendClientMessageToAll dans ta commande :

SendClientMessageToAll(/*la couleur*/,"/*le message*/");
Titre: Re : Probleme cmd admin
Posté par: [StAfF]MaN le 01 Décembre 2007, 13:58:59
Heu, désolé, ce n'est pas un SendClientMessageToAll qui faut mais un SendClientMessage tout court ^^ encore désolé.... ;D

Sinon après tu rajoute le IsPlayerAdmin et comme ça les persos loggés admins verront quelles commandes tu as utilisé, ça peut marcher dans les deux sens aussi, tu tape une cmd, les autre players admin la voyent, les autres players admin tapent une cmd et tu peut voir ce qu'ils ont taper ^^ voila ;)

Avec un SendClientMEssageToAll, tous les players qu'ils soient admins ou non, auraient vues ce que tu as tapé et ce que les autre players admins tapent ^^ C'est pas franchement cool surtout que ça pourrait faire des jaloux ^^
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 01 Décembre 2007, 17:00:53
J'ai résolu le probleme du texte mais un autre probleme persiste , tout est d'ecrit dans l'image  ;)

(http://img249.imageshack.us/img249/4042/maniacbugpv4.th.jpg) (http://img249.imageshack.us/my.php?image=maniacbugpv4.jpg)
Titre: Re : Probleme cmd admin
Posté par: Atlas le 01 Décembre 2007, 19:53:04
SAlut / Re

Ah lol

Prend ça

if(strcmp(cmdtext, "/skate", true) == 0) {
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID, 1882.7637,-1390.7255,13.5703);
GameTextForPlayer(playerid,"~g~Vous etes au skate park",3000,3);
new PlayerName[30], str[256];
GetPlayerName(playerid, PlayerName, 30);
format(str, 256, "%s s'est teleporter au skate park (/skate)", PlayerName);
SendClientMessageToAll(  0x33AA33AA, str);
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, 1917.3649,-1405.1084,13.5703);
GameTextForPlayer(playerid,"~g~Vous etes au skate park",3000,3);
new PlayerName[30], str[256];
GetPlayerName(playerid, PlayerName, 30);
format(str, 256, "%s s'est teleporter au skate park (/skate)", PlayerName);
SendClientMessageToAll(  0x33AA33AA, str);
}
return 1;
}

 :happy :happy :happy

Et Si Y a Un Problem Dis A Moi  :happy
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 01 Décembre 2007, 20:40:36
f11 tu n'a pas compris mon probleme , j'ai aucun probleme de script de téléportation c'est juste qu'avec mon code citer plus haut je ne peut PAS me téléporter  ;)
Titre: Re : Re : Probleme cmd admin
Posté par: Atlas le 01 Décembre 2007, 22:03:35
Re  :)

f11 tu n'a pas compris mon probleme , j'ai aucun probleme de script de téléportation c'est juste qu'avec mon code citer plus haut je ne peut PAS me téléporter  ;)
 

 ??? 

Tu Peux Me Passer Ton Script De Teleportation Pour Le Voir ??  ???

 :happy :happy

Bon Chance   :)
Titre: Re : Re : Re : Probleme cmd admin
Posté par: NatiVe™ le 01 Décembre 2007, 22:49:14
Re  :)

Tu Peux Me Passer Ton Script De Teleportation Pour Le Voir ??  ???

Bon Chance   :)


Je pence que sans te le passer il pourras resoudre son probleme ! ! ;)

AK NV.
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 01 Décembre 2007, 22:59:35
Citer
Tu Peux Me Passer Ton Script De Teleportation Pour Le Voir ??

J'hallucine , tu veut pas mon GM aussi ?  :bangin
Titre: Re : Re : Probleme cmd admin
Posté par: NatiVe™ le 01 Décembre 2007, 23:04:10
J'hallucine , tu veut pas mon GM aussi ?  :bangin

Voyon Maniac as t-il dit ca ?  ::)

NV.
Titre: Re : Probleme cmd admin
Posté par: Atlas le 01 Décembre 2007, 23:13:21
Re

Tu Veux pas L'aide GtaManiac  ??   ???

 ??? ??? ???

Si t'as Besoin De L'aide Alors Passe Moi Ton GM Ou Ta Commande De Teleportation  :...

Bon Chance  :) :)




Titre: Re : Probleme cmd admin
Posté par: NatiVe™ le 01 Décembre 2007, 23:14:29
F11,

Toi et moi savons que s'il te la passe ou pas sa changeras rien il en seras au meme point !

NV.
Titre: Re : Re : Probleme cmd admin
Posté par: R@f le 01 Décembre 2007, 23:16:06
Re

Tu Veux pas L'aide GtaManiac  ??   ???

 ??? ??? ???

Si t'as Besoin De L'aide Alors Passe Moi Ton GM Ou Ta Commande De Teleportation  :...

Bon Chance  :) :)


Lol, tu pense qu'il va te passer son GM comme sa xD noël c'est dans 24 jours ;)

++
R@f
Titre: Re : Probleme cmd admin
Posté par: Atlas le 01 Décembre 2007, 23:39:51
Re

Lol  :lmao

Alors GtaManiac

Laisse Tomber ça

Bye ++

----------------------------

 Bon Chance

 :) :) :) :) :) :) :) :) :) :)
Titre: Re : Probleme cmd admin
Posté par: NatiVe™ le 01 Décembre 2007, 23:43:34
Je pense qu'il l'avais penser avant que tu lui dise ::)  !

NV.
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 02 Décembre 2007, 00:43:00
Je ne suis pas un fou , mais un maniac ... par conséquant je ne donne pas mon GM a n'importe qui et surtout pas a une perssone en qui j'ai pas confiance ou que je ne connait pas asser .
Titre: Re : Probleme cmd admin
Posté par: Syg le 02 Décembre 2007, 22:41:38
Je vais pas donner de script mais un petit cours sur les événements et les callbacks.

SA-MP repose sur des événements.
Un événement est tout (ou presque) ce qui peut se produire dans le jeu (connexion d'un joueur, entrée dans un véhicule, saisie d'une commande RCON, ...)
Et à chaque événement du jeu correspond ce qu'on appele une callback.
La callback est appelée à chaque fois que l'événement qui lui est associé survient.
Exemple : Chaque fois qu'un joueur monte dans un véhicule, le serveur appelle la callback OnPlayerEnterVehicle.

Pour toutes les callbacks, le serveur à un code par défaut (c'est à dire que si on n'écrit pas de script particulier pour une callback, le serveur se débrouille avec son propre bout de script en interne - qui le plupart du temps ne fait rien).
Et pour dire au serveur que l'on a traité ou pas l'événement qui a déclenché l'appel à la callback, on se sert de la valeur de retour (return).
Si on retourne 0 (return 0;), on dit au serveur qu'on n'a pas traité l'événement donc il faut que le serveur le traite lui-même.
Si on retourne 1 (return 1;), on dit au serveur qu'on s'est chargé de traiter l'événenment et qu'il n'a rien d'autre à faire.

Dans le cas d'un filterscript, ça se complique un peu puisque qu'il peut y avoir plusieurs fois la même callback (une par filterscript et une dans le GM).
L'orde d'appel d'une callback est le suivant :
callback du premier FS (si elle existe), callback du 2eme FS (si elle existe), ...., callback du GM (si elle existe) et enfin callback par défaut du serveur.
Le serveur appelera toutes les callback jusqu'a ce que l'une d'entre elle retourne 1 (événement traité donc plus la peine de continuer).
Ainsi si un FS a une callback qui retourne 1, ceci va désactiver les mêmes callbacks dans les FSs suivants et dans le GM.

Donc dans ton cas Maniac, si ton filterscript retourne 1 dans la callback OnPlayerCommandTest, ta commande ne sera pas exécutée puisque tu auras dit au serveur que l'événement (saisie d'un commande par un joueur) a été traité donc il n'appellera pas OnPlayerCommandText de ton GM.

Pour la petite histoire, quand le callback OnPlayerCommandText d'un GM renvoie 0, le serveur appelle sa callback par défaut qui ne fait rien d'autre que d'afficher "unknown command". Et dans ton cas (on le voit sur ton screenshot) ce message n'est pas affiché. Ce qui montre bien que le serveur n'a pas appelé non plus sa callback par défaut.

Tu n'as pas donné une assez grande partie de ton script mais je pense que si tu remplace le return 1; de ton FS par return 0; dans OnPlayerCommandText, ça devrait marcher.

++
Syg
Titre: Re : Probleme cmd admin
Posté par: NatiVe™ le 02 Décembre 2007, 22:58:54
Heuuu SYG, c'est quand que tu arrete d'être bon ?  :laugh :laugh

NV.
Titre: Re : Probleme cmd admin
Posté par: Syg le 02 Décembre 2007, 23:00:15
Je veux pas, je PEUX pas, c'est mon gagne pain tu sais, je veux pas me retrouver sur la paille ....

++
Syg
Titre: Re : Probleme cmd admin
Posté par: MrFredo le 02 Décembre 2007, 23:11:55
Encore une fois je m'endormirai moin "con" lol merci pour se petit cour syg

[HS] Mon 50 eme message cool lol [HS]
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 03 Décembre 2007, 00:38:54
Merci SYG pour l'explication " ultra détaillé " t'es ma Spider Spawing  :-* sa marche impecable .

SAUF que je ne vois pas les cmds des autres joueurs autre que les miennes ><
Titre: Re : Probleme cmd admin
Posté par: Syg le 03 Décembre 2007, 11:55:40
C'est normal Maniac, puisque tu fais un SendClientMessage sur toi-même.

Donc pour que tous les admins reçoivent les commandes des joueurs, il faut faire un boucle sur tous les joueurs puis dans cette boucle un test pour savoir si le joueur est admin et si c'est le cas, lui envoyer le texte.

Ce qui donne :
GetPlayerName (playerid, player, sizeof (player));
format(tmpp, sizeof (tmpp), "***(id:%i) %s : %s", playerid, player, cmdtext);
for (new i=0 ; i<MAX_PLAYER ; i++)
{
/* Si le joueur est admin */
if (IsPlayerAdmin (i))
{
/* On lui envoie le message */
SendClientMessage (i, COLOR_LIGHTBLUE, tmpp);
}
}

Comme ceci, tous les admins recevront les commandes de tous les joueurs.

Tu peux même ajouter un filtre pour ne pas avoir tes propres commandes :
   if (IsPlayerAdmin (i))
devient
   if (i != playerid && IsPlayerAdmin (i))

++
Syg
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 03 Décembre 2007, 18:24:13
Léger probleme , je ne vois pas les commandes des joueurs ni les miennes , comme si le code n'existait pas  ;D
Titre: Re : Probleme cmd admin
Posté par: Syg le 03 Décembre 2007, 23:12:32
Est-ce que tu t'es loggé admin par le RCON au moins (puisque le test  if (IsPlayerAdmin (i)) ne fonctionne que si tu es admin RCON).
Maintenant, je ne sais pas ce que tu as mis dans ton script donc pas facile de te répondre.
Envoie moi ton script ou juste la callback concernée en PM pour que je regarde ça si tu veux.

++
Syg
Titre: Re : Probleme cmd admin
Posté par: GtaManiac le 04 Décembre 2007, 07:12:24
Oui je suis loggé en RCON et sa ne fonctionne maleuresement pas .

Je t'envoye mon GM en pm  ;)