• 05 Juin 2026, 18:44:59


Auteur Sujet: Menu "giveme2" dans Xtremeadmin 2  (Lu 2059 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne splinter57270

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Menu "giveme2" dans Xtremeadmin 2
« le: 21 Février 2008, 18:43:07 »
Bonjour,
Voila mon problème :
Nous avons un serveur sur SA-MP et nous utilisons Xtremeadmin 2 et je souhaite créer un menu "GiveMe2" pour executer la même action que le menu "GiveMe" ( faire appraitre un véhicule devant sois ) et donc c'est le premier code auquel je touche  :happy et par conséquent : OUI je suis un noob  :P

Après avoir modifier le fichier Xtremadmin2.pwn et compiler celui ci , Nous l'avons tester sur notre serveur et donc je vous laisse imaginer la suite : "unknow command etc..."

Donc voici les petites modifications que j'ai apporter ( ou du moins essayer d'apporter :dry ) :
   
     -Ajouter "GiveMe2" aux commandes
     -Ajouter une liste de noms au début
     -Ajouter les ID et noms vers la fin

Et par conséquent voici la bête :  :rules

 Merci d'utiliser pastebin comme expliqué dans le topic concernant le postage de bouts de code. 
« Modifié: 21 Février 2008, 18:53:44 par spykerc8 »

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #1 le: 21 Février 2008, 18:54:21 »
Dit moi, tu connais PASTEBIN ??

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne splinter57270

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #2 le: 21 Février 2008, 18:57:22 »
heu non mais je sens bien que je vais aller jeter un coup d'oeil lol je revien dans 10 min avec un code qui marche mdr

Hors ligne splinter57270

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #3 le: 21 Février 2008, 19:04:03 »
http://pastebin.gtaonline.fr/pastebin.php?show=354

Voila l'URL si j'ai bien compris comment ca marchait .

Et excusez moi encore pour ce petit incident .

Merci d'avance .

PS: Préparez vous a tomber dans les pommes en voyant mes codes  :happy je débute . HA oui aussi inutile de me dire " cherche dans les tuto il y a celui de urban ghetto etc... je n'ai strictement rien compris  :closedeyes
« Modifié: 21 Février 2008, 19:25:48 par splinter57270 »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #4 le: 21 Février 2008, 23:42:36 »
salut Splinter,
 ;D
bon, premièrement, tu doit mettre ta commande dans la callback OnPlayerCommandText où est-ce??? ???
c'est la où il y a une liste de ligne commençant par dcmd ;)
comme ceci

OnPlayerComamndText(playerid,cmdtext){

dcmd(giveme2,7,cmdtext);
pour t'aider:   dcmd(la commande,longueur de la commande(nb de caractère a regarder), le texte de commande que le joueur a tapé); :cheers

et euh.... il manque un bout su script......(conseil: ne met pas le script au complet, seulement les bouts utiles...)

tu doit créer une ligne :
dcmd_giveme2(playerid,params[]){
     if(IsPlayerCommandLevel(playerid,"giveme"){                                            //on test si le joueur est un admin avec un level suffisant pour faire cette commande
        if(Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must not be spectating.");                 //on teste si l'admin est en train d'observer un autre joueur
            if(!IsPlayerInAnyVehicle(playerid){                                    //on test si l'admin est dans un vehicle, auquel cas il ne sert a rien de lui en donner un 2e
        TogglePlayerControllable(playerid,false);                         //on empêche l'admin de bouger lorsque le menu est visible
                SetCameraBehindPlayer(playerid);                                    // on place la camera derrière l'admin
        return ShowMenuForPlayer(GiveMe2,playerid);                                   //on lui fait voir le menu de sélection des vehicle
        } else return SendClientMessage(playerid,red,"ERROR: You can not be in a vehicle.");                      //on lui dit qu'il ne doit aps être dans un vehicle
    } else return SendLevelErrorMessage(playerid,"giveme");                                             //le joueur n'est pas admin, il ne peut faire cette commande, il doit le savoir....           

et finalement le menu..... :happy le bout que je connais le moins...a vrai dire je n,en ai jamais fait.. :lmfao :lmfao

public OnPlayerSelectedMenuRow(playerid, row) {      //la callback des menus
  new Menu:Current = GetPlayerMenu(playerid);       //on regarde quel menu il demande a voir
  if(Current == GiveMe2) {            //s'il demande le menu giveme2......
new car[20],Float:X,Float:Y,Float:Z,Float:Angle,id,carid;          //on crée des variable où stocker les informations sur le joueur
GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);    //on amasse les donnés en question et on les stock dans les variables....
    switch(row) {                           //ici, il s'agira des différentes possibilité de choix dans le menu
      case 0: car = "Infernus", id = 411;          //en premier une infernus(change cela sinon tu aura deux commandes pareil, mdr)
      case 1: car = "NRG500", id = 522;            //ensuite une nrg....
      case 2: car = "Monster Truck", id = 444;       //et ainsi de suite
      case 3: car = "Packer", id = 443;
      case 4: car = "RC Car", id = 441;
      case 5: car = "Rancher", id = 489;
      case 6: car = "Roadtrain", id = 515;
      case 7: car = "Dumper", id = 406;
      case 8: car = "Sultan", id = 560;
      case 9: car = "Maverick", id = 487;
      case 10: car = "Vortex", id = 539;
      case 11: car = "Hydra", id = 520;
    }
    SendCommandMessageToAdmins(playerid,"GIVEME");                                       //on dit aux autres admins que cette commande a été utilisée
    new string[256]; format(string,sizeof(string),"You have selected \'%s\'.",car); SendClientMessage(playerid,yellow,string);          //on dit à l'admin ce qu'il a choisi
carid = CreateVehicle(id,X,Y,Z,Angle,-1,-1,50000);                                                                                                       //on crée le vehicle du joueur sur lui
PutPlayerInVehicle(playerid,carid,0);                                                             //on met le joueur dans le vehicle
TogglePlayerControllable(playerid,true);                                                        //on lui permet de bouger à nouveau
if(GetPlayerInterior(playerid)) LinkVehicleToInterior(carid,GetPlayerInterior(playerid));             //si le joueur est dans un intérieur, on place le vehicle dans le même
SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));                              //on place le vehicle dans le même monde virtuel que l'admin
}

et voila c'est a peu près ca......
je n'ai pas tester mais ca ne semble pas trop mauvais, tu n'as qu'a changer les vehicles présents sur le menu,   ;)
en passant je n,ai fait que prendre la commande du XtremeAdmin, donc tu peut en faire tout autant pour créer des commandes semblables a celles qui existent déjà,
d'ailleurs, c'est ce que j'ai toujours fait pour ajouter des commandes sur mon xtreme, comme vehicle invincible 8)

donc bonne chance et j,espère que tu comprend les commentaires que j'ai insérer et que tu n'aura plus besoin d'aide sur au moins certaines de ces fonctions.... :cheers

++Sim++





Hors ligne splinter57270

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #5 le: 22 Février 2008, 10:12:46 »
Un grand merci a toi  :-[

Mais j'ai encore un problème a la compilation  :dry

alors voila les 2 warning : :rules

C:\Documents and Settings\----\Mes documents\script\XtremeAdmin2.pwn(1085) : warning 217: loose indentation
C:\Documents and Settings\----\Mes documents\script\XtremeAdmin2.pwn(1077) : warning 203: symbol is never used: "params"

Et avant il y en avait 9 je crois , enfin toutes corrigées

Donc voici pour les ligne concernées que j'ai beau relire des centaines de fois je ne comprend rien :

    } else return SendLevelErrorMessage(playerid,"giveme2");
Elle est exactement le même que celle du giveme d'origine sauf avec "giveme" remplacé par "giveme2"

Et pour le deuxième :

dcmd_giveme2(playerid,params[]) {
La encore une fois exactement la même que celle du "giveme" mais apparemment ca ne va pas au niveau de l'expression "params" alors que la ligne d'origine est la même enfin bref .

Voila si vous pouviez m'aider ca serait super

Et encore merci a SIM  :-*

Hors ligne splinter57270

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #6 le: 22 Février 2008, 11:46:36 »
En fait on vient de le tester mais ca me semble stable et sans bug donc un grand merci a totu le monde  :-[

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Menu "giveme2" dans Xtremeadmin 2
« Réponse #7 le: 22 Février 2008, 13:54:14 »
salut  Splinter,

désolé Urban, je n'avais pas vu ce merveilleux toturiel, sinon je ne me serais pas donné tout ce mal ;D ........ :(

pour en revenir a ton menu, ;D si tu décide de le garder ainsi,

tu n'as qu'a rajouter #pragma unused params au début de la commande (cette ligne dit au script que params est inutilisé dans cette commande, donc il ne te dira pas : ATTENTION: tu n'as pas utilisé cette variable!!!!), voici ce que ça donne:
dcmd_giveme2(playerid,params[]){
            #pragma unused params
............
}

voila pour la seconde erreur, ensuite pour la première il s'agit d'un mauvais alignement des codes :D par exemple:

dcmd_giveme2(playerid,params[]){
     if(IsPlayerCommandLevel(playerid,"giveme"){     
         if(Spec[playerid][Spectating]) return SendClientMessage(playerid,red,"ERROR: You must not be spectating.");     
             if(!IsPlayerInAnyVehicle(playerid){            TogglePlayerControllable(playerid,false);   //si tu place lui ainsi, il n'est pas placé correctement, il faut soit le redescendre d'une ligne ou mettre tous les autres sur la même ligne.....
                SetCameraBehindPlayer(playerid);                 
        return ShowMenuForPlayer(GiveMe2,playerid);     
        } else return SendClientMessage(playerid,red,"ERROR: You can not be in a vehicle.");               
    } else return SendLevelErrorMessage(playerid,"giveme"); 

et voila, ceci devrait corriger a peu près tes erreurs, sinon, tu n'as qu'a chercher un peu.... ;)

on ne va pas tout le corriger a ta place ::)

++Sim++