Admin Sistem by realmynato

Stefan Scripting Započeo trinty-less
pre 3 godine
1,748
pregleda
14
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
Stefan Scripting
Shot Caller
pre 3 godine
Tip: FilterScript
Slike ili Video: https://www.youtube.com/watch?v=UY6xncEdQaw
Opis i dodatne informacije: moj prvi sistem je admin sistem, ja sam ga pravio znam da je sve vidjeno, ali opet kod je pisan od same 0
Download link: https://www.mediafire.com/file/sgjd8hlmbsf15zu/admin.pwn/file
Scan link: https://www.virustotal.com/gui/url/570cbdfc028a7954085fc842c19c7296dbdc6620e2d76f82706c784ee2377230
Credits: Ja
Jovan Spasic
Shot Caller
pre 3 godine
Kod popravi pod hitno

1.
SendAdminMessage

Nemas nigde definisano

2.
pAdmin

Takodje ne postoji nigde a koristis ga

3.
if(PlayerInfo == 1) { arank = "Admin Level 1"; }
else if(PlayerInfo == 2) { arank = "Admin Level 2"; }
else if(PlayerInfo == 3) { arank = "Admin Level 3"; }
else if(PlayerInfo == 4) { arank = "Admin Level 4"; }
else if (PlayerInfo == 5){ arank = "Head Admin"; }
else if(PlayerInfo == 6) { arank = "Director"; }
else if(PlayerInfo == 7) { arank = "Owner & Founder";}
format(string, sizeof(string), "%s | %s | : %s", arank, ReturnPlayerName(playerid), text);
SendAdminMessage(-1, string);

Umesto else if koristi switch

4.
Pravi svoje funkcije da ne bi morao svaki put da kreiras iznova i iznova uzimanje rankova tipa napravis GetPlayerRank a ne kao sto si radio gore

5. Koristi najnoviji YSI zasto?
zato sto ti omogucuje da ne moras formatirati poruke uopste takodje to vazi za Labele/Tdove itd itd..

6.
OcistiChat

Takodje nema nigde funkcije tacnije nigde nije definisano to

7.
if(PlayerInfo == 0)
return SendClientMessage(playerid, -1, "Nemas Permisije!");
{
new string, targetid;
if(AdminDuty == 0)
return SendClientMessage(playerid, -1, "Moras biti na admin duznosti");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Taj igrac nije ulogovan");
if(!IsPlayerConnected(playerid))
return SendClientMessage(playerid, -1, "Nisi ulogovan!");
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, -1, "/setarmour");
SetPlayerArmour(targetid, 100.0);
format(string, sizeof(string), "Napunio si armor igracu %s", ReturnPlayerName(targetid));
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Admin %s ti je podesio armor na 100", ReturnPlayerName(playerid));
SendClientMessage(targetid, -1, string);
}

sta ce ti zagrade ovde? } {

8. Proveru da li je igrac ulogovan ne stavljas ispod svake moguce komande vec stavis pod OnPlayerCommandReceived

Ima tu jos po nesto al sam nabrojao samo neke stvari koje su mi upale u oci
Mrvica
Crime Lord
pre 3 godine
Lepo😉
Stefan Scripting
Shot Caller
pre 3 godine
Jovan Spasic wrote on December 27, 2022, 12:48 pm:
Kod popravi pod hitno

1.
SendAdminMessage

Nemas nigde definisano

2.
pAdmin

Takodje ne postoji nigde a koristis ga

3.
if(PlayerInfo == 1) { arank = "Admin Level 1"; }
else if(PlayerInfo == 2) { arank = "Admin Level 2"; }
else if(PlayerInfo == 3) { arank = "Admin Level 3"; }
else if(PlayerInfo == 4) { arank = "Admin Level 4"; }
else if (PlayerInfo == 5){ arank = "Head Admin"; }
else if(PlayerInfo == 6) { arank = "Director"; }
else if(PlayerInfo == 7) { arank = "Owner & Founder";}
format(string, sizeof(string), "%s | %s | : %s", arank, ReturnPlayerName(playerid), text);
SendAdminMessage(-1, string);

Umesto else if koristi switch

4.
Pravi svoje funkcije da ne bi morao svaki put da kreiras iznova i iznova uzimanje rankova tipa napravis GetPlayerRank a ne kao sto si radio gore

5. Koristi najnoviji YSI zasto?
zato sto ti omogucuje da ne moras formatirati poruke uopste takodje to vazi za Labele/Tdove itd itd..

6.
OcistiChat

Takodje nema nigde funkcije tacnije nigde nije definisano to

7.
if(PlayerInfo == 0)
return SendClientMessage(playerid, -1, "Nemas Permisije!");
{
new string, targetid;
if(AdminDuty == 0)
return SendClientMessage(playerid, -1, "Moras biti na admin duznosti");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Taj igrac nije ulogovan");
if(!IsPlayerConnected(playerid))
return SendClientMessage(playerid, -1, "Nisi ulogovan!");
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, -1, "/setarmour");
SetPlayerArmour(targetid, 100.0);
format(string, sizeof(string), "Napunio si armor igracu %s", ReturnPlayerName(targetid));
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Admin %s ti je podesio armor na 100", ReturnPlayerName(playerid));
SendClientMessage(targetid, -1, string);
}

sta ce ti zagrade ovde? } {

8. Proveru da li je igrac ulogovan ne stavljas ispod svake moguce komande vec stavis pod OnPlayerCommandReceived

Ima tu jos po nesto al sam nabrojao samo neke stvari koje su mi upale u oci

Razumem to sve u potpunosti, ali ima svako svoj nacin rada, svakako hvala na savetima !
Stefan Scripting
Shot Caller
pre 3 godine
Jovan Spasic wrote on December 27, 2022, 12:48 pm:
Kod popravi pod hitno

1.
SendAdminMessage

Nemas nigde definisano

2.
pAdmin

Takodje ne postoji nigde a koristis ga

3.
if(PlayerInfo == 1) { arank = "Admin Level 1"; }
else if(PlayerInfo == 2) { arank = "Admin Level 2"; }
else if(PlayerInfo == 3) { arank = "Admin Level 3"; }
else if(PlayerInfo == 4) { arank = "Admin Level 4"; }
else if (PlayerInfo == 5){ arank = "Head Admin"; }
else if(PlayerInfo == 6) { arank = "Director"; }
else if(PlayerInfo == 7) { arank = "Owner & Founder";}
format(string, sizeof(string), "%s | %s | : %s", arank, ReturnPlayerName(playerid), text);
SendAdminMessage(-1, string);

Umesto else if koristi switch

4.
Pravi svoje funkcije da ne bi morao svaki put da kreiras iznova i iznova uzimanje rankova tipa napravis GetPlayerRank a ne kao sto si radio gore

5. Koristi najnoviji YSI zasto?
zato sto ti omogucuje da ne moras formatirati poruke uopste takodje to vazi za Labele/Tdove itd itd..

6.
OcistiChat

Takodje nema nigde funkcije tacnije nigde nije definisano to

7.
if(PlayerInfo == 0)
return SendClientMessage(playerid, -1, "Nemas Permisije!");
{
new string, targetid;
if(AdminDuty == 0)
return SendClientMessage(playerid, -1, "Moras biti na admin duznosti");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Taj igrac nije ulogovan");
if(!IsPlayerConnected(playerid))
return SendClientMessage(playerid, -1, "Nisi ulogovan!");
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, -1, "/setarmour");
SetPlayerArmour(targetid, 100.0);
format(string, sizeof(string), "Napunio si armor igracu %s", ReturnPlayerName(targetid));
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Admin %s ti je podesio armor na 100", ReturnPlayerName(playerid));
SendClientMessage(targetid, -1, string);
}

sta ce ti zagrade ovde? } {

8. Proveru da li je igrac ulogovan ne stavljas ispod svake moguce komande vec stavis pod OnPlayerCommandReceived

Ima tu jos po nesto al sam nabrojao samo neke stvari koje su mi upale u oci

Sad sam primetio i ovo gore za neke funkcije, da nemaju ,a koristim, imaju samo sto sam ovaj sistem u svom modu radio modularno
Alitapic
Street Runner
pre 3 godine
Goat Production / / ?
Pohvale za trud...
NegativeIQ
Kingpin
pre 3 godine
Umesto da se stalno formatira admin rank, zar nije lakse?
new AdminRankName[] = {
  "Admin Level 1",
  "Admin Level 2",
  "Admin Level 3",
  "Admin Level 4",
  "Head Admin",
  "Director",
  "Owner & Founder"
};
AdminRankName[PlayerInfo];


To receno, ovo su radile 2 osobe najmanje, i predpostavljam da je ovo neciji tudji sistem a ti si samo prilagodio 2-3 stvari. U komandama promenive su krsteno imenovane, a globalna onda zamrznut.
Plus imas 2 totalno razlicita stila programiranja, sta vise moze se reci dva razlicita nacina razmisljanja.

CMD:makeadmin(playerid, params[])
{
  if(IsPlayerAdmin(playerid))
  {
      new string, targetid, adminlevel;
      if(sscanf(params, "ud", targetid, adminlevel))
      return SendClientMessage(playerid, -1, "[K:RP] /makeadmin");
      if(adminlevel < 0 || adminlevel > 7)
      return SendClientMessage(playerid, -1, "[K:RP] Admin Level can not be smaller of 0 and bigger of 7");
      PlayerInfo = adminlevel;
      format(string, sizeof(string), "Admin %s has been promoted player %s at Admin Level %d", ReturnPlayerName(playerid), ReturnPlayerName(targetid), adminlevel);
      SendAdminMessage(-1, string);
      format(string, sizeof(string), "Admin %s is you promoted at Admin Level %d", ReturnPlayerName(playerid), adminlevel);
      SendClientMessage(targetid, -1, string);
  }
  else
  {
      SendClientMessage(playerid, -1, "[K:RP] you don't have a permissions");
  } 
  return 1;
}

CMD:jetpack(playerid, params[])
{
  if(PlayerInfo == 0)
  return SendClientMessage(playerid, -1, "Nemas permisije!");
  {
      if(AdminDuty == 0)
      return SendClientMessage(playerid, -1, "Moras biti na admin duznosti");
      if(!IsPlayerConnected(playerid))
      return SendClientMessage(playerid, -1, "Nisi ulogovan!");
      SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
      SendClientMessage(playerid, -1, "Uzo si jetpack!");
  }
  return 1;
}

Razlika je ne samo izmedju dve komande nego i u prvoj komandi se vide dva razlicita stila, a u drugoj si totalno ubacio blok viska...Ali jbg to je kad se copy/paste pa edit...U sustini u ovom slucaju nece uticati ni na compile ni na performanse ali ono, sve kaze o tome ko je radio i kako. Inace komande su random uzete, sve su takve cini mi se.
D1NO
Crime Lord
pre 3 godine
Koristis Y_INI onda i koristi Y_COMMANDS 😄

Cemu ovo ?

if(PlayerInfo == 0)
return SendClientMessage(playerid, -1, "Nemas Permisije!");
{


new AdminDuty;
new Zamrznut;


Mogao si ovako

static player_Duty,
        player_Freezed;


90% stvari je izmjesano, pola engleski pola na nasem...
Neuredno i sto kaze Deleted User copy paste
I poradi na imenovanju
Jevtic Script
Made Man
pre 3 godine
Deleted User wrote on December 27, 2022, 1:44 pm:
Umesto da se stalno formatira admin rank, zar nije lakse?
new AdminRankName[] = {
  "Admin Level 1",
  "Admin Level 2",
  "Admin Level 3",
  "Admin Level 4",
  "Head Admin",
  "Director",
  "Owner & Founder"
};
AdminRankName[PlayerInfo];


To receno, ovo su radile 2 osobe najmanje, i predpostavljam da je ovo neciji tudji sistem a ti si samo prilagodio 2-3 stvari. U komandama promenive su krsteno imenovane, a globalna onda zamrznut.
Plus imas 2 totalno razlicita stila programiranja, sta vise moze se reci dva razlicita nacina razmisljanja.

CMD:makeadmin(playerid, params[])
{
  if(IsPlayerAdmin(playerid))
  {
      new string, targetid, adminlevel;
      if(sscanf(params, "ud", targetid, adminlevel))
      return SendClientMessage(playerid, -1, "[K:RP] /makeadmin");
      if(adminlevel < 0 || adminlevel > 7)
      return SendClientMessage(playerid, -1, "[K:RP] Admin Level can not be smaller of 0 and bigger of 7");
      PlayerInfo = adminlevel;
      format(string, sizeof(string), "Admin %s has been promoted player %s at Admin Level %d", ReturnPlayerName(playerid), ReturnPlayerName(targetid), adminlevel);
      SendAdminMessage(-1, string);
      format(string, sizeof(string), "Admin %s is you promoted at Admin Level %d", ReturnPlayerName(playerid), adminlevel);
      SendClientMessage(targetid, -1, string);
  }
  else
  {
      SendClientMessage(playerid, -1, "[K:RP] you don't have a permissions");
  } 
  return 1;
}

CMD:jetpack(playerid, params[])
{
  if(PlayerInfo == 0)
  return SendClientMessage(playerid, -1, "Nemas permisije!");
  {
      if(AdminDuty == 0)
      return SendClientMessage(playerid, -1, "Moras biti na admin duznosti");
      if(!IsPlayerConnected(playerid))
      return SendClientMessage(playerid, -1, "Nisi ulogovan!");
      SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
      SendClientMessage(playerid, -1, "Uzo si jetpack!");
  }
  return 1;
}

Razlika je ne samo izmedju dve komande nego i u prvoj komandi se vide dva razlicita stila, a u drugoj si totalno ubacio blok viska...Ali jbg to je kad se copy/paste pa edit...U sustini u ovom slucaju nece uticati ni na compile ni na performanse ali ono, sve kaze o tome ko je radio i kako. Inace komande su random uzete, sve su takve cini mi se.

new const
Stefan Scripting
Shot Caller
pre 3 godine
Deleted User wrote on December 27, 2022, 1:44 pm:
Umesto da se stalno formatira admin rank, zar nije lakse?
new AdminRankName[] = {
  "Admin Level 1",
  "Admin Level 2",
  "Admin Level 3",
  "Admin Level 4",
  "Head Admin",
  "Director",
  "Owner & Founder"
};
AdminRankName[PlayerInfo];


To receno, ovo su radile 2 osobe najmanje, i predpostavljam da je ovo neciji tudji sistem a ti si samo prilagodio 2-3 stvari. U komandama promenive su krsteno imenovane, a globalna onda zamrznut.
Plus imas 2 totalno razlicita stila programiranja, sta vise moze se reci dva razlicita nacina razmisljanja.

CMD:makeadmin(playerid, params[])
{
  if(IsPlayerAdmin(playerid))
  {
      new string, targetid, adminlevel;
      if(sscanf(params, "ud", targetid, adminlevel))
      return SendClientMessage(playerid, -1, "[K:RP] /makeadmin");
      if(adminlevel < 0 || adminlevel > 7)
      return SendClientMessage(playerid, -1, "[K:RP] Admin Level can not be smaller of 0 and bigger of 7");
      PlayerInfo = adminlevel;
      format(string, sizeof(string), "Admin %s has been promoted player %s at Admin Level %d", ReturnPlayerName(playerid), ReturnPlayerName(targetid), adminlevel);
      SendAdminMessage(-1, string);
      format(string, sizeof(string), "Admin %s is you promoted at Admin Level %d", ReturnPlayerName(playerid), adminlevel);
      SendClientMessage(targetid, -1, string);
  }
  else
  {
      SendClientMessage(playerid, -1, "[K:RP] you don't have a permissions");
  } 
  return 1;
}

CMD:jetpack(playerid, params[])
{
  if(PlayerInfo == 0)
  return SendClientMessage(playerid, -1, "Nemas permisije!");
  {
      if(AdminDuty == 0)
      return SendClientMessage(playerid, -1, "Moras biti na admin duznosti");
      if(!IsPlayerConnected(playerid))
      return SendClientMessage(playerid, -1, "Nisi ulogovan!");
      SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
      SendClientMessage(playerid, -1, "Uzo si jetpack!");
  }
  return 1;
}

Razlika je ne samo izmedju dve komande nego i u prvoj komandi se vide dva razlicita stila, a u drugoj si totalno ubacio blok viska...Ali jbg to je kad se copy/paste pa edit...U sustini u ovom slucaju nece uticati ni na compile ni na performanse ali ono, sve kaze o tome ko je radio i kako. Inace komande su random uzete, sve su takve cini mi se.

u pravu si ciniti se jer nicije tutorijale nisam gledo radio sam sve iz glave zato je i kod izmesan, a zato su takve komande, radio sam kako znam i umem i kako sam naviko , kome se ne svidja ne mora da skida, ja sam za ovo izdvojio  svoje vreme i ulozio neki svoj trud, nijedan mod od 0 na ovom forumu nema komplet admin sistem da bi mogo izvuci neke komande, priznajem ovo za rank nameovanje sam radio po up modu i ostalim modovima nisam se setio da napravim kao jednu funkciju , jebiga, ali mi je prvi sistem koji sam sam pisao,a ne copy/paste sto bi vi rekli, hvala svima na savetima
RomaNn
Made Man
pre 3 godine
realnaith wrote on December 27, 2022, 8:32 pm:
Izvini ali postoji jedan "admin" sistem koji je uradjen jako jako dobro, a komande se jako lako prave, nema potrebe za kopiranjem : https://balkan-samp.com/forum/index.php?topic=142641.0


Sranje, moze to bolje 😉
Spejs
Hustler
pre 3 godine
skazy42O wrote on December 27, 2022, 8:49 pm:
Sranje, moze to bolje 😉

Bespotreban sistem, bukvalno bloat,
final Group:gAdmins = Group_Create("admins");

@cmd(.group = gAdmins) ban(playerid, params[], help)
{
return 1;
}


je sve što ti treba..
NegativeIQ
Kingpin
pre 3 godine
Spejs wrote on December 28, 2022, 8:10 am:
Bespotreban sistem, bukvalno bloat,
final Group:gAdmins = Group_Create("admins");

@cmd(.group = gAdmins) ban(playerid, params[], help)
{
return 1;
}


je sve što ti treba..

Vau...Nisam znao za taj dekorator komandi u ysi...Nazalost izgubice se u smecu kao i ostale dobre stvari do sada...
Spejs
Hustler
pre 3 godine
Deleted User wrote on December 28, 2022, 9:12 am:
Vau...Nisam znao za taj dekorator komandi u ysi...Nazalost izgubice se u smecu kao i ostale dobre stvari do sada...

logično, za bolje i nismo

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava