• 23 Avril 2025, 09:39:11


Auteur Sujet: [XNCLICK] ADMINISTRATIVE BOX [V1.21]  (Lu 3978 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
[XNCLICK] ADMINISTRATIVE BOX [V1.21]
« le: 07 Mars 2013, 16:11:00 »
[XNCLICK]



Sommaire


  • Présentation
  • Téléchargement
  • Installation / Utilisation
  • Crédits

Présentation

Une BOX ADMINISTRATIVE qui s'ouvre lorsque vous sélectionnez un joueur en TAB la BOX s'affiche et vous donne le choix entre plusieurs options, la raison des KICK et BAN est a mettre aussi.





Téléchargement

En PWN sur Solidfiles sans PUB.


Changelogs V1.26 :
- Utilisation SWITCH.
- De MAX_PLAYER_NAME.
- + Fonction SPAWNCAR, et MONEY.

Installation

Utilise uniquement le RCON / LOGIN et le TAB de SA:MP aucune include supplémentaire.

Crédits

-Xolokos (Sanctus, Jeffrey Payne)







« Modifié: 08 Mars 2013, 11:59:25 par Xolokos »
Nippah !

Hors ligne ShaDowxx™

  • We are cats.
  • *
  • Grand Banditisme
  • Messages: 706
    • Voir le profil
Re : [XNCLICK] ADMINISTRATIVE BOX [V1.21]
« Réponse #1 le: 07 Mars 2013, 17:03:11 »
Excellent !

Voici un très bon boulot !

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : [XNCLICK] ADMINISTRATIVE BOX [V1.21]
« Réponse #2 le: 07 Mars 2013, 17:43:25 »
Salut,

Pourquoi tu utilises des majuscules pour le nom de tes variables ? Je trouve que ça porte à confusion avec les constantes des directives de préprocesseur. On peut les confondre, ne pas savoir ce qui peut et ce qui ne peut pas être modifié.

De plus, même si le Pawn initialise automatiquement les variables, je pense que c'est une bonne habitude à garder que de le faire soi-même. Tu n'es pas obligé, simplement, si tu utilises un autre langage de programmation par la suite, ça t'évitera des erreurs étranges.

Ensuite, la condition en directive de préprocesseur, tu aurais pu l'éviter. En effet, c'est surtout une condition à l'intention du développeur qui démarre un nouveau script. Ce que tu vient de faire ne sera probablement jamais un gamemode à part entière, donc garder la condition me semble inutile.

Pour la variable NOM, pour la taille plus précisément, tu devrais utiliser la constance MAX_PLAYER_NAME, plutôt que 26. On ne sait jamais, si un jour cela change, tu n'auras pas à modifier ton script (surtout que tu vas galérer à trouver d'où l'erreur viendra).

Pour les deux conditions if(response) et if(IsPlayerAdmin(playerid)), tu pourrais en utiliser qu'une seule. Pareil pour la condition if(TYPE[playerid] == KICKIT). En soi, ça resterait compréhensible. De plus, tu devrais utiliser un switch sur la variable listitem, c'est plus pratique, je pense. Dans tes autres condition, tu fais parfois un truc du genre if(booleen == true). Tu peux directement faire if(booleen), sachant que ce sera remplacé par 1 automatiquement s'il vaut vrai.

En dehors de ça, tu devrais utiliser des noms de variables plus instinctifs. JR, MO, AN, HR, MN et SE, il faut y aller pour comprendre du premier coup ce qu'elles vont contenir... Bien-entendu j'ai compris, mais ça devrait venir instinctivement en lisant le nom, tu vois ? ;)

Voilà, mes remarques sont à prendre à titre informatif, elles ne sont pas là pour te décourager ou te descendre. Au contraire, elles sont là pour t'encourager, et puis ça prouve quand-même que j'ai prit le temps de lire ton script, c'est une marque de reconnaissance, en somme. :p

Merci du partage qui s'avérera utile pour certains, et bonne continuation,
Gzsume.

PS - Désolé pour le manque d'utilisation des balises BBCode, j'ai rédigé ça depuis mon smartphone.

Hors ligne Prince™

  • Loading..
  • *
  • Frag'n'Fun
  • Messages: 1004
    • Voir le profil
    • http://www.gtaonline.fr
Re : [XNCLICK] ADMINISTRATIVE BOX [V1.21]
« Réponse #3 le: 08 Mars 2013, 09:03:57 »
Sa l'air d'etre bien ,faudras que je test ^^

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : [XNCLICK] ADMINISTRATIVE BOX [V1.21]
« Réponse #4 le: 08 Mars 2013, 12:18:35 »
Mise a jour avec les conseils de Gzsume.
Nippah !

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [XNCLICK] ADMINISTRATIVE BOX [V1.21]
« Réponse #5 le: 08 Mars 2013, 12:48:39 »
Salut, j'ai survolé rapidement ton code et j'ai quelques conseils à te donner.

Déjà prends en compte ceux de Gzsume (surtout pour les noms de variables), en programmation on a prit l'habitude par je ne sais quelle convention d'écrire les directives de préprocesseur en majuscule et les variables en minuscules (quand je dis minuscule, ça ne veut pas dire que tout est en minuscule).

Je peux te donner une des méthodes que j'utilise qui est très utile pour la nomenclature des variables, par exemple.


Une variable globale commencera toujours par un g_

Code: (pawn) [Sélectionner]
new g_ClickedPlayer[MAX_PLAYERS];
Une chaine de caractère par sz (pour string zero terminated, en gros une chaine de caractère terminée par un zéro)

Code: (pawn) [Sélectionner]
new szPlayerName[MAX_PLAYER_NAME];
Tu peux aussi les combiner, pour déclarer une variable globale contenant des chaines de caractères.

Code: (pawn) [Sélectionner]
new g_szWeaponsName[46][128] = ....
Ce te permet de savoir à quoi correspond chaque variable, si tu veux le nom de cette convention, elle s'appelle la norme Hongroise et elle est très utilisée dans la programmation sous Windows.



J'ai aussi un autre conseil, par exemple ta callback OnDialogResponse est vraiment chargée, tu mets directement ton code dedans, utilises les fonctions c'est très utile pour découper ton code en plusieurs partie et le rendre plus clair.
Par exemple :

Code: (pawn) [Sélectionner]
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(IsPlayerAdmin(playerid) && response)
{
if(dialogid == DIALOGADM)
{
PlayerRespondedDialogAdmin(playerid, listitem);
}
else if(dialogid == DIALOGADM+5)
{
// Pareil ici tu crées ta fonction qui va faire le boulot
}
}
}


PlayerRespondedDialogAdmin(playerid, listitem)
{
new Float:X,Float:Y,Float:Z;
if(listitem == 0)
{
TYPE[playerid] = KICKIT;
ShowPlayerDialog(playerid,DIALOGADM+5,DIALOG_STYLE_INPUT,"{D70000}RAISON ICI :"," ","KICKER","ANNULER");
return 1;
}
else if(listitem == 1)
{
TYPE[playerid] = BANIT;
ShowPlayerDialog(playerid,DIALOGADM+5,DIALOG_STYLE_INPUT,"{D70000}RAISON ICI :"," ","BANNIR","ANNULER");
return 1;
}

// et la suite du code ici
}

Je te déconseille aussi de ne pas mettre accolade dans un bloc de code, met les toujours même si le bloc ne contient qu'une seule instruction ;)


Voila, c'est tout ce que j'avais à dire, bonne chance.



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : [XNCLICK] ADMINISTRATIVE BOX [V1.21]
« Réponse #6 le: 12 Mars 2013, 11:19:58 »
Je tacherais de l'utiliser (la norme Hongroise) pour les prochaines fois, recréer une fonction pour l'envoyer dans le switch me parait presque inutile mais bon pour que ça soit plus structuré, mais je créer des fonctions uniquement dans le but d'éviter les bouts de codes répétitif...
Sinon merci pour les conseils Ssk.
Nippah !