Dinamican level komandi, promena IG

Započeo Unkovic, Jun 22, 2018, 17:40:07 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Zdravo drugari, odlucio sam da van pokazem jednu jako prostu stvar za uraditi. Sa ovim mozete menjati level komandi koji je potreban da bi se one izvrsile. Ukoliko neki admin/helper zloupotrebljava komandu, mozete promeniti level i manji leveli je vise ne mogu koristiti dok veci, i isti mogu

Potrebno:
• Bilo koji command procesor, u mom slucaju cemo koristiti Pawn.CMD koji preporucujem svima.
• Mozete koristit rBits, ali ja ga u ovom tutorijalu necu koristiti
• Jedan sistem cuvanja, u mom slucaju dini2.

Ja sam naucio da radim preko enuma i cuvanja, ukoliko ima drugi nacin, saljite.

Prvo otvorite vas text editor u kome radite s Pawn-om. Pronadjite negde prostor i napravite jedan enum u kojem ce biti vase komande.

Primer:
[pawn]
enum E_CMD_INFO {
     primerkomanda //umesto ovog zapisite ime vase komande
};
new CMDI[E_CMD_INFO]; //ovo bi trebalo svi da znate
[/pawn]

Zatim definisemo fajl gde ce se cuvati komande i dijalog za komande i dijalog za menjanje komandi i varijabl da bi znali koju komandu menjamo.
[pawn]
#define CMDF "Put/Do/Fajla/Za/Komande.sufiks"
#define D_CMDIZMENI 0
#define D_CMD 1

new CMDMENJAJ[MAX_PLAYER];
[/pawn]

Nakon toga radimo cuvanje i ucitavanje komandi
[pawn]
stock SaveKomande() //cuvanje
{
     if(fexist(CMDF))//proverava da li postoji fajl za cuvanje
     {
          dini_IntSet(CMDF, "/primerkomanda", CMDI[primerkomanda]);// cuva komandu
     }
     return 1;
}

stock LoadKomande() //citanje
{
     if(fexist(CMDF))
     {
           CMDI[primerkomanda] = dini_Int(CMDF, "/primerkomanda");
     }
     return 1;
}
[/pawn]

Sada cemo napraviti komandu koja bi menjala levele komandi. I dijalog

[pawn]
CMD:menjaj(playerid, params[])
{
     ShowPlayerDialog(playerid, D_CMD, DIALOG_STYLE_LIST, " Naslov", "primerkomanda", " U redu", ""); // pokazuje igracu dijalog sa komandom
     return 1;
}

// zatim idemo pod ondialogresponse

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
     if(dialogid == D_CMD)//proverava da li je to taj dialog
     {
          if(response) // ako pritisne jedno dugme
          {
               if(listitem == 0)
               {
                     SPD(playerid, D_CMDIZMENI, DIALOG_STYLE_INPUT, " Naslov", "Unesite level za komandu", " U redu", ""); //pokazuje dijalog u kome unosimo level komande
                     CMDMENJAJ[playerid] = 1; //ovde unosite broj komande, mozete da ga definisete imenom
               }
         }
    }
    if(dialogid == D_CMDIZMENI && response) //proverava da li je dijalog taj i da li je kliknuo dugme
    {
         new level = strval(inputtext); // unesen text u integeru
         if(CMDMENJAJ[playerid] == 1) // proverava koja je komanda
         {
              CMDI[primerkomanda] = level; // postavlja level toj komandi
              SaveKomande();
         }
    }       
    return 1;
}
[/pawn]

Sada napravite komandu

[pawn]
CMD:proveri(playerid, params[])
{
     if(/*provera za admina*/ >= CMDI[primerkomanda) {
     // nesto po vasoj zelji
     }
     return 1;
}
[/pawn]

I sada mozete isprobavati, date jednom sebi admina 3 i komandu postavite na level 4, a zatim na level 2 i vidite kako radi.

Ako nesto nije jasno, pitaj.
Unkovic.
- Ex. BlackStorm Founder, Owner & Developer
- Ex. Underground Developer.


Unkovic.
- Ex. BlackStorm Founder, Owner & Developer
- Ex. Underground Developer.


Ne znam sada koliko je neophodno, mada može koristiti, pohvale. :D

Mislim da ovo i nije bas potrebno, ali nije lose imati

credits: Xunder, Ino420, Muma

Citat: Pottus;3903994SetPlayerPos("dreni1998", 666.666, 666.666, 666.666, 666.666);    ///// GO IN HELL MOTHERFUCKER

https://i.imgur.com/XHLx9oj.gif
https://i.ibb.co/ZJqQKWT/NXRX.gif

Svidja mi se, nikada nisam mislio o ovome ali necu koristit :-*
MAJ SKVEL BOGOTAC JA SAM MAJ SKVEL MAKAVELI MAJSTOR OH NE JA SAM BOGOTAC JA ZNAM MAJ SKVEL TI KORISTIS .INI OH NE TI SI BOTARA I KANCER SI JER NE KORISTIS MAJ SKVEL MAKAVELI OH NE...

ili
Y_INI ne odredjuje tvoje sposobnosti :D
(Ono gore Joey)