Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: Unkovic poslato Jun 22, 2018, 17:40:07 POSLE PODNE

Naslov: Dinamican level komandi, promena IG
Poruka od: Unkovic poslato Jun 22, 2018, 17:40:07 POSLE PODNE
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.
Naslov: Odg: Dinamican level komandi, promena IG
Poruka od: m u m i poslato Jun 22, 2018, 17:40:59 POSLE PODNE
Extra,pohvale ;D
Naslov: Odg: Dinamican level komandi, promena IG
Poruka od: Unkovic poslato Jun 22, 2018, 18:06:59 POSLE PODNE
Citat: #Mumi poslato Jun 22, 2018, 17:40:59 POSLE PODNE
Extra,pohvale ;D

Hwala
Naslov: Odg: Dinamican level komandi, promena IG
Poruka od: Purdinho poslato Jul 08, 2018, 11:44:15 PRE PODNE
Super Stefane :D
Naslov: Odg: Dinamican level komandi, promena IG
Poruka od: Muma poslato Jul 13, 2018, 15:37:31 POSLE PODNE
Ne znam sada koliko je neophodno, mada može koristiti, pohvale. :D
Naslov: Odg: Dinamican level komandi, promena IG
Poruka od: ᗪ卂乂 poslato Jul 13, 2018, 15:39:02 POSLE PODNE
Mislim da ovo i nije bas potrebno, ali nije lose imati
Naslov: Odg: Dinamican level komandi, promena IG
Poruka od: 6YuKiMuRo9 poslato Jul 14, 2018, 08:10:26 PRE PODNE
Svidja mi se, nikada nisam mislio o ovome ali necu koristit :-*