Pozdrav danas cu da vam eventualno pokazem kako sam ja uradio admin duty sistem, da napomenem da sam i sam pocetnik, ali mora se od neceg i poceti jel da? Pa da pocnemo :)
Prvo na vrhu skripte definisemo #include
[pawn]#include <a_samp>
#include <zcmd>[/pawn]
Sada ispod ovih inkludova definisemo neke boje
[pawn]#define ZELENA "{6EF83C}"[/pawn]
Ispod ovih boja odvojimo jedan red na ENTER i definisemo AdminDuznost
[pawn]new AdminDuznostMAX_PLAYERS];[/pawn]
Sledece što radimo CTRL+F i kucamo OnPlayerConnect i radimo ovako
[pawn]public OnPlayerConnect(playerid)
{
AdminDuznost[playerid] = 0; //Kad se igrac poveze na server proveravamo da li je na duznosti
return 1;
}[/pawn]
Onda opet CTRL + F i trazimo OnPlayerDisconnect i pisemo ovaj kod
[pawn]public OnPlayerDisconnect(playerid, reason)
{
AdminDuty[playerid] = 0; //Kada igrac izadje sa servera proveravamo da li je na duznosti, ako jeste onda mu se automatski gasi tj. vise nije na duznosti
return 1;
}[/pawn]
Sledece CTRL + F i trazimo OnPlayerCommandText i kucamo ispod ovako
[pawn]public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
CMD:adminduznost(playerid) //Ovde pravimo komandu sta treba admin da ukuca da bi bio na duznosti ili da ne bude vise na duznosti
{
if(IsPlayerAdmin(playerid)) //Samo ako je igrac admin preko RCONA ili vlasnik moze koristiti ovu komandu ili mozete promeniti ako vam je kao meni npr. umesto if(IsPlayerAdmin(playerid)) stavljamo if(PlayerInfo[playerid][pAdmin] >=1 //Ovo daje adminu lvl 1 ili veci da koristi ovu komandu
{
if (AdminDuznost[playerid] == 0) //Proverava da li je Admin na duznosti
{
new string[128];//Definisemo string
SetPlayerHealth(playerid,999999); //Postavljamo adminu neogranicen zivot tj. da ne moze niko da ga ubije dok je na duznosti ili slicno
SetPlayerColor(playerid,-1); //Postavljamo adminu crvenu boju
SetPlayerSkin(playerid,294); //Postavljamo Adminu skin na 294
format(string,sizeof(string), ""ZELENA"((Admin %s je sada na duznosti, za pomoc kucajte /pitaj))!",GetPlayerNameEx(playerid)); //Ovde formatiramo string da salje igracima poruku
SendClientMessageToAll(-1,string); //Saljemo poruku igracu (-1) To je bela boja ali, nema nikakve veze sto je tu bela jel smo u stringu stavili ""ZELENA" i skripta cita ZELENU boju
SendClientMessage(playerid,-1, ""ZELENA"Sada ste na duznosti"); //Salje poruku adminu da je na duznosti
AdminDuznost[playerid] = 1; //Stavlja igraca na admin duznost
}
else if (AdminDuznost[playerid] == 1) //Proverava da li je admin na duznosti
{
new string[128]; //Definisemo string
SetPlayerHealth(playerid,100); //Ovde postavljamo Adminu Zivot na 100 tj. default
format(string,sizeof(string),""ZELENA"((Admin %s vise nije na duznosti! ))",GetPlayerNameEx(playerid)); //Opet formatiramo string da salje poruku Igracima
SendClientMessageToAll(-1,string); //Saljemo poruku igracu (-1) To je bela boja ali, nema nikakve veze sto je tu bela jel smo u stringu stavili ""ZELENA" i skripta cita ZELENU boju
SendClientMessage(playerid, -1, ""ZELENA"Vise niste na duznosti!"); //Saljemo poruku igracu da nije vise na duznosti
AdminDuznost[playerid] = 0; //Postavljamo adminu duznost na 0 tj, da vise nije na duznosti
}
}
else
SendClientMessage(playerid,-1, ""ZELENA"Samo Admini!"); //Ako neki igrac koji nije admin ukuca ovu komandu ispisuje mu poruku da nije admin tj. da nema admina ili admin level
return 1;
}[/pawn]
To bi bilo to od mene nadam se da sam pocetnicima kao meni pomogao oko ovog sistema nije tesko kao sto izgleda, uzgred ako samo kopirate neciji kod i ne trudite se da ga razumete necete nikada nauciti sta koja funkcija radi tako da ako vec kopirate kodove pokusajte da ga razumete ako vam je bas tesko pitajte u PM rado cu pomoci koliko mogu. Naravno ko je bolji skripter moze mi pomoci ili objasniti na drugi nacin ovu funkciju ili je poboljsati. Ako sam nesto zaboravio pisite :D
P.S Izvinjavam se zbog pravljenja duple teme dogodila se greska posto mi je prvi put da objavljujem nesto na forumu, nisam nesto smart :(
Fino objasneno, samo si zaboravio "[" kod AdminDuznost, sve ostalo fino.
Dobar tutorial jedino si pod onplayerdisconnect stavio adminduty umjesto adminduznost
Odlicno za pocetnika pohvale
Citat: Vuk7 poslato Januar 15, 2018, 19:42:46 POSLE PODNE
Dobar tutorial jedino si pod onplayerdisconnect stavio adminduty umjesto adminduznost
Hvala Vuce i od tebe sam naucio neke fore :D
Citat: Raptorâ,,¢ poslato Januar 15, 2018, 19:39:53 POSLE PODNE
Fino objasneno, samo si zaboravio "[" kod AdminDuznost, sve ostalo fino.
Hvala, zurio sam tokom pravljenja nzm ni sam zasto, ali hvala ti sto si uvideo gresku i na OnPlayerDisconnect sam zaboravio stavio sam AdminDuty valjda sam tako navikao :D
Ne mozes ostaviti OnPlayerCommandText ako planiras koristiti ZCMD ili neki drugi procesor komandi. Mogao si umjesto obicne varijable staviti bool varijablu.
Citat: Bašovski poslato Januar 15, 2018, 19:55:44 POSLE PODNE
Ne mozes ostaviti OnPlayerCommandText ako planiras koristiti ZCMD ili neki drugi procesor komandi. Mogao si umjesto obicne varijable staviti bool varijablu.
Da u pravu si hvala ti, ali OnPlayerCommandText sam stavio da bi igraci poput mene razumeli gde treba da stave, ne mora u opste u OnPlayerCommand moze i na kraju skripte :)
Okej je
Nemas definiciju GetPlayerNameEx :) inc. fin tut :)
Citat: Vasićâ,,¢ poslato Januar 15, 2018, 20:02:05 POSLE PODNE
Nemas definiciju GetPlayerNameEx :) inc. fin tut :)
Ahhhh, daa sad sam i ja uvideo, hvala ti na opazanju moram dodati, inc hvala ti :D
Zaboravio sam da dodam stock
stock mozete dodati na dno skripte
[pawn]stock GetPlayerNameEx(playerid) //Ovaj stock je napravljen da lakse uzima ime igraca
{
new Name[MAX_PLAYER_NAME]; //definisemo name
GetPlayerName(playerid, Name, MAX_PLAYER_NAME); //Uzimamo igracevo ime, ubacujemo definisano Name
return Name; //Vraca Name
}[/pawn]
ZakljuÄavanje teme.
Razlog: prošlo je mjesec dana od zadnjeg odgovora u temi