Szerző Téma: [Leírás]Az adatkezelõ dialógus  (Megtekintve 2109 alkalommal)

Nem elérhető Buba

  • 540
    • Profil megtekintése
[Leírás]Az adatkezelõ dialógus
« Dátum: 2011. február 06. - 10:31:03 »
0 Show voters
[Leírás]Az adatkezelõ dialógus (alapfokon)
Dialógus = párbeszédpanel
Az adatkezelõ dialógust leginkább jelszavak kezelésére szokták használni.
Azonban, ha helyes a jelszó, akkor azt csinálunk a játékossal, amit akarunk, de ellenkezõ esetben(hibás jelszóval) is azt csinálunk az \"áldozattal\" amit akarunk.
Na akkor vágjunk is bele!
Elõször is én egy teleportot mutatok be nektek. Használhatjuk mondjuk adminhely teleportként is, hogyha azt akarjuk, hogy csak szerverünk adminjai teleportáljanak oda, de miért is ne akarnánk?
 
#include <a_samp>

 
Bemeneti pont az új pwn fájlunk elején.
 
#define DIALOG_0 (0)

 
Ezután egy új sorba defináljuk a dialógusunkat, és az ID-jét. A 0 helyére bármilyen számot írhatunk, de akkor a késõbbiekben is ezt kell használnunk.
 
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, \"/adminhely\"))
    {
ShowPlayerDialog(playerid, DIALOG_0, DIALOG_STYLE_INPUT, \"Szia! Írd be a jelszót!\",\"Írd be!!!!\",\"Rendben\",\"Mégse\");
                return 1;
    }
    return 0;
}

 
Ahhoz hogy elõ tudjuk hívni a mi kis dialógusunkat, egy parancsot kell írni. Magyarázatok:
ShowPlayerDialog = A játékosnak elõhív egy dialógust
DIALOG_STYLE_INPUT = Dialóg típusát megadjuk, adatkezelõnek(emellett lehet még MSGBOX vagy LIST is az INPUT helyén, de az már nem kezelne adatokat)
Szia írd be a jelszót <-- ezt a doboz tetején írná ki
Írd be!!!! <-- ezt meg alatta
Rendben és a Mégse remélem érthetõ.
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_0)
    {
        if(response == 1)
        {
            if(strcmp(inputtext,\"9999\")) // A 9999 helyére írhatunk egy tetszõleges jelszót
   {
       SendClientMessage(playerid, 0xEB000FFF, \"A kód helytelen!\");
   }
   else
   {
           SetPlayerPos(playerid,426.7758,2525.3838,16.5087);
                             SendClientMessage(playerid,0xEB000FFF, \" A kód helyes, teleportáltál!\");
   }
}
return 1;
}
    return 0;
}

 
Itt megadjuk, hogy mit csináljon a dialógusunk.
\" 9999 \" helyére írhatunk egy kívánt jelszót magunknak.
Az elsõ lehetõség, hogy helytelen a jelszó. Ekkor akár meg is ölhetjük SetPlayerHealth(playerid,00.0);  dologgal.
Ilyen egyszerû lenne.
De nem csak ezt lehet vele elérni, hanem szinte mindent.
Bemutatok egy kocsilehívást is, pontosabban egy tank hívását.
 
#include <a_samp>
#define DIALOG_1 (1)
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, \"/rhino\"))
    {
ShowPlayerDialog(playerid, DIALOG_1, DIALOG_STYLE_INPUT, \"Szia! Írd be a jelszót!\",\"Írd be!!!!\",\"Rendben\",\"Mégse\");
                return 1;
    }
    return 0;
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_1)
    {
        if(response == 1)
        {
            if(strcmp(inputtext,\"9999\")) // A 9999 helyére írhatunk egy tetszõleges jelszót
   {
       SendClientMessage(playerid, 0xEB000FFF, \"A kód helytelen!\");
   }
   else
   {
                           new Float:x,Float:y,Float:z,Float:a;
                           GetPlayerPos(playerid,x,y,z);
                           GetPlayerFacingAngle(playerid,a);
                           CreateVehicle(432,x+1,y+1,z,a,1,1,10000);
                                   SendClientMessage(playerid,0xEB000FFF,\"A kód helyes, kaptál rhino-t!\");
   }
}
return 1;
}
    return 0;
}
}

 
Az elõzõhez hasonlóan ezt is szerkeszthetjük.
Kezdõknek: példa letöltése
Hát remélem hasznát veszitek!

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
[Leírás]Az adatkezelõ dialógus
« Válasz #1 Dátum: 2011. február 06. - 10:36:48 »
0 Show voters

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal