Admin Duznost

Započeo BeKaSRB, Januar 15, 2018, 18:50:14 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

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.
Oduvek sam se pitao:
"Zbog cega se ljudi toliko brinu jedni za druge?",
"Zasto ljudi daju sve od sebe da usrece neku osobu?"

Najjednostavnije receno brinu se jer vole tu osobu celim svojim srcem,
daju sve od sebe da je usrece zbog toga sto ne zele da je ikada vide tuznom ili rasplakanom.
#xsarnaaparatima..

Dobar tutorial jedino si pod onplayerdisconnect stavio adminduty umjesto adminduznost

Odlicno za pocetnika pohvale
CitatNe idite uokolo tumačeći kako vam svijet duguje život. Svijet vam ne duguje ništa. On je bio prvi ovdje.

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.


bilo je lijepo dok je trajalo.


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 :)



Nemas definiciju GetPlayerNameEx :) inc. fin tut :)
• Website: www.vasic.dev
Web Development & Cyber Security

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