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.
Extra,pohvale ;D
Super Stefane :D
Ne znam sada koliko je neophodno, mada može koristiti, pohvale. :D
Mislim da ovo i nije bas potrebno, ali nije lose imati
Svidja mi se, nikada nisam mislio o ovome ali necu koristit :-*