[Script/interface] Mots de passe ou fenêtre d'informations

Répondre
Partager Rechercher
J'ai fait un peu le tour de la fonction "DisplayInputBox(...)", et j'en ai retiré quelques petites choses amusantes.
Tout d'abord, voici la fonction complète. La description sur l'éditeur est un peu cassée donc je me permets de lui mettre quelques pansements :
Code PHP:

// Cette fonction affiche une boîte de dialogue de type "entrée"
// pour la personne indiquée dans le premier paramètre.
//
// oPC : Le joueur pour lequel la boîte de dialogue sera affichée.
// nMessageStrRef : La ligne de référence (du fichier dialog.tlk) affichée en message.
// sMessage : Le texte à marquer en message
//            (remplacera le texte de nMessageStrRef, sauf si vide).
// sOkCB : Le script lancé par le bouton "OK". Par défaut, aucun script.
//         Un script personnalisé devra commencer par 'gui'.
// sCancelCB : Le script lancé par le bouton "Cancel". Par défaut, aucun script.
//             Un script personnalisé devra commencer par 'gui'.
// bShowCancel : Réglé sur TRUE, le bouton "Cancel" apparaîtra sur la fenêtre.
// sScreenName : Le nom de la fenêtre à utiser à la place de la fenêtre par défaut.
//               Le nom doit déjà exister. Si on marque n'importe quoi, ça ne marche pas.
//               La fenêtre par défaut est SCREEN_STRINGINPUT_MESSAGEBOX
// nOkStrRef : La ligne de référence (du fichier dialog.tlk) affichée sur le bouton "OK".
//             Par défaut, c'est "OK".
// sOkString : Le texte à marquer sur le bouton "OK"
//             (remplacera le texte de nOkStrRef, sauf si vide).
// nCancelStrRef : La ligne de référence (du fichier dialog.tlk) affichée sur le bouton "Cancel".
//                 Par défaut, c'est "Cancel".
// sCancelString : Le texte à marquer sur le bouton "Cancel"
//                 (remplacera le texte de nCancelStrRef, sauf si vide).
// sDefaultString : Un texte personnalisé qui sera copié dans la zone d'insersion.
//
void DisplayInputBox(object oPC,
                     
int nMessageStrRef,
                     
string sMessage="",
                     
string sOKCB="",
                     
string sCancelCB="",
                     
int bShowCancel=FALSE,
                     
string sScreenName="SCREEN_STRINGINPUT_MESSAGEBOX",
                     
int nOkStrRef=-1,
                     
string sOkString="OK",
                     
int nCancelStrRef=-1,
                     
string sCancelString="Cancel",
                     
string sDefaultString="",
                     
string sUnusedString=""); 
A présent, imaginons que quelque part, quelque chose demande un mot de passe. Par le biais d'un script, je vais lancer une "boîte de dialogue", de cette manière :
Code PHP:

object oPlayer GetMachinTruc();

DisplayInputBox(oPlayer// le joueur
                
0,       // la référence TLK, mais pas besoin.
                
"Le mot de passe est requis pour ouvrir la porte des toilettes."// le message affiché
                
"gui_mon_script_mdp"// Le script qui sera lancé en appuyant sur le bouton "OK"
                
"",    // Pas de script pour le bouton "Cancel"...
                
FALSE// ... vu que je ne l'affiche pas.
                
"SCREEN_STRINGINPUT_MESSAGEBOX",
                
0,  // la référence TLK du bouton "OK", mais pas besoin.
                
"Donner le mot de passe",  // Mon bouton "OK" s'appellera comme ça.
                
0,  // La référence TLK du bouton "Cancel" mais...
                
""// ... vu que je ne l'utilise pas, pas besoin.
                
"");  // Pas besoin d'entrée par défaut, c'est à moi de taper le mot de passe. 
Maintenant, dans mon script "gui_mon_script_mdp", je vais y mettre ceci :
Code PHP:

// "string sInput" sera le texte entré dans la fenêtre.
// c'est quand même très très pratique.

void main(string sInput)
{
    
// Si vous vous posiez la question "comment retrouver le joueur" :
    
object oPlayer OBJECT_SELF;

    
string szMessage;

    
// Je convertis mon texte en minuscules, pour être sûre
    // que juste les lettres correspondent.
    
if(GetStringLowerCase(sInput)=="le mot de passe")
        
szMessage "Youpi, vous avez le bon mot de passe !";

    else
        
szMessage "Rhooolala, vous n'avez pas le bon mot de passe...";

    
SendMessageToPC(oPlayer,szMessage);

Voilou. Et tout ça sans HakPack. ^^

Notez que vous ne pourrez entrer que 128 caractères (tous caractères confondus), et que certains caractères peuvent ne pas être affichés correctement. L'utilisation des guillements est notamment interdite.
Ici je vais détailler la fonction "DisplayMessageBox(...)" :
Code PHP:

// Cette fonction fait apparaître une fenêtre de message
// pour la personne indiquée dans le premier paramètre.
//
// oPC : Le joueur pour lequel la fenêtre sera affichée.
// nMessageStrRef : La ligne de référence (du fichier dialog.tlk) affichée en message.
// sMessage  : Le texte à marquer en message
//            (remplacera le texte de nMessageStrRef, sauf si vide).
// sOkCB : Le script lancé par le bouton "OK". Par défaut, aucun script.
//         Un script personnalisé devra commencer par 'gui'.
// sCancelCB : Le script lancé par le bouton "Cancel". Par défaut, aucun script.
//             Un script personnalisé devra commencer par 'gui'.
// bShowCancel : Réglé sur TRUE, le bouton "Cancel" apparaîtra sur la fenêtre.
// sScreenName : Le nom de la fenêtre à utiser à la place de la fenêtre par défaut.
//               Le nom doit déjà exister. Si on marque n'importe quoi, ça ne marche pas.
//               La fenêtre par défaut est SCREEN_MESSAGEBOX_DEFAULT
// nOkStrRef : La ligne de référence (du fichier dialog.tlk) affichée sur le bouton "OK".
//             Par défaut, c'est "OK".
// sOkString : Le texte à marquer sur le bouton "OK"
//             (remplacera le texte de nOkStrRef, sauf si vide).
// nCancelStrRef : La ligne de référence (du fichier dialog.tlk) affichée sur le bouton "Cancel".
//                 Par défaut, c'est "Cancel".
// sCancelString : Le texte à marquer sur le bouton "Cancel"
//                 (remplacera le texte de nCancelStrRef, sauf si vide).
//
void DisplayMessageBox(object oPC,
                       
int nMessageStrRef,
                       
string sMessage="",
                       
string sOkCB="",
                       
string sCancelCB="",
                       
int bShowCancel=FALSE,
                       
string sScreenName="SCREEN_MESSAGEBOX_DEFAULT",
                       
int nOkStrRef=-1,
                       
string sOkString="",
                       
int nCancelStrRef=-1,
                       
string sCancelString=""); 
Par exemple, je veux afficher une fenêtre qui va marquer toutes les caractéristiques de mon personnage. Comme j'aime les détails, je vais même rajouter des couleurs :
Code PHP:

void main()
{
    
object oPlayer oGetBrubidule();

    
// Vous remarquerez que ça prend en compte
    // les balises pour changer la couleur.
    
string szMessage "<color=Yellow>Force : </color>"+IntToString(GetAbilityScore(oPlayer,0));

    
// le "\n", c'est le retour à la ligne.
    
szMessage += "\n<color=Yellow>Dextérité : </color>"+IntToString(GetAbilityScore(oPlayer,1));

    
szMessage += "\n<color=Yellow>Constitution : </color>"+IntToString(GetAbilityScore(oPlayer,2));

    
szMessage += "\n<color=Yellow>Intelligence : </color>"+IntToString(GetAbilityScore(oPlayer,3));

    
szMessage += "\n<color=Yellow>Sagesse : </color>"+IntToString(GetAbilityScore(oPlayer,4));

    
szMessage += "\n<color=Yellow>Charisme : </color>"+IntToString(GetAbilityScore(oPlayer,5));

    
szMessage += "\n<color=Green>Voila vos caractéristiques, c'est joli, hein ?</color>";

    
// Et là, j'affiche tout dans ma fenêtre :
    
DisplayMessageBox(oPlayer,
                      
0,
                      
szMessage,
                      
"",
                      
"",
                      
FALSE,
                      
"SCREEN_MESSAGEBOX_DEFAULT",
                      
0,
                      
"Merci",
                      
0,
                      
"");

Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés