• 05 Juin 2026, 01:02:30


Auteur Sujet: [Resolue][CMD] /Qg  (Lu 1916 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne DarkSky69

  • *
  • Nouveau
  • Messages: 11
    • Voir le profil
[Resolue][CMD] /Qg
« le: 06 Février 2013, 12:06:26 »
Bonjour,

Je suis nouveau mais je voudrais ajouter une commande,
/qg qui nous téléporterais au lieu voulu MAIS,
il y a plusieurs job sur mon serveur (MarinDriver, BusDriver, Mafia, Pilot, Police, Pizza et TruckDriver(=Nom des jobs de mon gamemode)

Et je voudrais ajouter plusieurs qg à certain (donc en faisant ouvrir une fenêtre avec la sélection des qg). Si vous pouriez m'aider cela me serais d'un GRANDE aide.

Merci d'avance !
« Modifié: 10 Février 2013, 18:05:07 par DarkSky69 »

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : [CMD] /Qg
« Réponse #1 le: 06 Février 2013, 13:02:11 »
A la place d'afficher une fenêtre avec la sélection des qg, pourquoi ne pas faire en sorte que le lieu de téléportation soit différent selon le job du joueur ?

Ah et sinon, pour afficher la fenêtre :
http://wiki.sa-mp.com/wiki/ShowPlayerDialog
http://wiki.sa-mp.com/wiki/Dialog_Styles

(Dialog Styles pour faire la liste)

[/url]

Hors ligne DarkSky69

  • *
  • Nouveau
  • Messages: 11
    • Voir le profil
Re : [CMD] /Qg
« Réponse #2 le: 06 Février 2013, 13:11:58 »
Cela serait une bonne idée mais pour quelque job (Police, Truck, Pilote et Bus) J'ai à chaque fois 3 qg.
Et je ne suis que débutant en pawn donc si tu/vous pourrais/pourriez m'aider se m'aiderais mieux à comprendre le pawn :D

Et Merci de ta réponse ;)

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : [CMD] /Qg
« Réponse #3 le: 06 Février 2013, 16:24:26 »
Bon alors voici un simple exemple :

La méthode sans "fenêtre", avec téléportation différente selon le job
Code: (pawn) [Sélectionner]
//Tout en haut du code
#define jobPolice 1
#define jobTruck 2

//Dans OnPlayerCommandText
if(!strcmp(cmdtext,"/qg",true)
{
    if(job[playerid]==jobPolice) SetPlayerPos(playerid, 0, 1, 2);
    if(job[playerid]==jobTruck) SetPlayerPos(playerid, 3, 4, 5);
    return 1;
}

La méthode "fenêtre" :

Code: (pawn) [Sélectionner]
//Tout en haut du code
#define DIALOG_QG 1

//Dans OnPlayerCommandText
if(!strcmp(cmdtext,"/qg",true)
{
    ShowPlayerDialog(playerid, DIALOG_QG, DIALOG_STYLE_LIST, "Liste des QG", "QG Police\nQG Truck\netc...", "Choisir", "Quitter");
    return 1;
}

//Dans OnDialogResponse
if(dialogid==DIALOG_QG)
{
    if(!response) return 1; //Si il choisi de quitter
    if(listitem==0) SetPlayerPos(playerid, 0, 0, 0); //Si il choisi le QG Police
    if(listitem==1) SetPlayerPos(playerid, 0, 0, 0); //Si il choisi le QG Truck
    return 1;


Si tu ne comprend pas des trucs n'hésite pas à le dire :)
« Modifié: 06 Février 2013, 16:29:43 par KonVict92x »

[/url]

Hors ligne DarkSky69

  • *
  • Nouveau
  • Messages: 11
    • Voir le profil
Re : [CMD] /Qg
« Réponse #4 le: 06 Février 2013, 20:05:41 »
Merci beaucoup, je voulait juste savoir si se code était juste:

Code: (pawn) [Sélectionner]
#define DIALOG_QG 1

public OnPlayerCommandText(playerid, cmdtext[])
if(!strcmp(cmdtext,"/qg",true)
{
    ShowPlayerDialog(playerid, DIALOG_QG, DIALOG_STYLE_LIST, "Liste des QG", "QG Police Ls\nQG Police Sf\nQG Police Lv\nQG Camionneur Ls\nQG Camionneur Sf\nQG Mafia\nQG Marin\nQG Cantonier\nQG Pilote Ls\nQG Pilote Sf\nQG Pilote Lv\nQG Bus Ls\nQG Bus Sf\nQG Bus Lv\nQG Pizza", "Choisir", "Quitter");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid==DIALOG_QG)
{
    if(!response) return 1; //Si il choisi de quitter
    if(listitem==0) SetPlayerPos(playerid, 0, 0, 0); //Si il choisi le QG Police
    if(listitem==1) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==2) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==3) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==4) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==5) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==6) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==7) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==8) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==9) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==10) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==11) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==12) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==13) SetPlayerPos(playerid, 0, 0, 0);
    if(listitem==14) SetPlayerPos(playerid, 0, 0, 0);
    return 1;
}

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : [CMD] /Qg
« Réponse #5 le: 06 Février 2013, 22:46:03 »
Oui ça devrait marcher, sauf que je pense, la ligne "ShowPlayerDialog" risque d'être un peut longue... Et des fois pawno n'est pas très content :p
« Modifié: 07 Février 2013, 19:59:23 par Infu. »


Adju ♥
(-_-)



Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : [CMD] /Qg
« Réponse #6 le: 07 Février 2013, 13:19:59 »
Je crois me souvenir que la limite pour les boîtes de dialogue est de 1024 caractères... Tu peux toujours vérifier avec la fonction strlen si c'est inférieur, au cas où. ;)

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : [CMD] /Qg
« Réponse #7 le: 08 Février 2013, 09:52:35 »
Et si c'est au dessus, tu pourras toujours faire des pages en divisant le dialogue en deux :)

[/url]

Hors ligne DarkSky69

  • *
  • Nouveau
  • Messages: 11
    • Voir le profil
Re : [CMD] /Qg
« Réponse #8 le: 08 Février 2013, 16:43:13 »
Bonjour, j'ai essayer de l'ajouter à mon gamemode mais je ne sais pas où placer
Code: (pawn) [Sélectionner]
if(dialogid==DIALOG_QG)
{
        if(!response) return 1; //Si il choisi de quitter
        if(listitem==0) SetPlayerPos(playerid, 0, 0, 0); //Si il choisi le QG Police
        if(listitem==1) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==2) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==3) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==4) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==5) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==6) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==7) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==8) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==9) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==10) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==11) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==12) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==13) SetPlayerPos(playerid, 0, 0, 0);
        if(listitem==14) SetPlayerPos(playerid, 0, 0, 0);
    return 1;
}

Dans: http://pastebin.com/ZgLT9n3V
-----------------------------------------
Et dernière question:

OnPlayerCommandText = dans l'include "zcmd" ?

Merci beaucoup !

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : [CMD] /Qg
« Réponse #9 le: 08 Février 2013, 19:11:27 »
if(dialogid==DIALOG_QG) se place dans la callback OnDialogResponse, qui est appelée lorsque quelque chose se passe dans un dialogue (le joueur choisi la réponse 1, 2 ,3 où choisi de fermer, etc...)

http://wiki.sa-mp.com/wiki/OnDialogResponse

Pour la deuxième question, je craint de ne pas pouvoir répondre étant donné que je n'ai pas compris la question  :(

[/url]