Admin Sistem by realmynato

Započeo trinty-less, Decembar 27, 2022, 13:05:26 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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
Poslednja Izmena: Decembar 27, 2022, 13:09:09 POSLE PODNE od realmynato

Kod popravi pod hitno

1.
[pawn]SendAdminMessage[/pawn]
Nemas nigde definisano


2.
[pawn]pAdmin[/pawn]
Takodje ne postoji nigde a koristis ga

3.
[pawn]if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Admin Level 1"; }
      else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Admin Level 2"; }
      else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Admin Level 3"; }
      else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Admin Level 4"; }
      else if (PlayerInfo[playerid][pAdmin] == 5){ arank = "Head Admin"; }
      else if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Director"; }
      else if(PlayerInfo[playerid][pAdmin] == 7) { arank = "Owner & Founder";}
      format(string, sizeof(string), "%s | %s | : %s", arank, ReturnPlayerName(playerid), text);
      SendAdminMessage(-1, string); [/pawn]
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. [pawn]OcistiChat[/pawn]
Takodje nema nigde funkcije tacnije nigde nije definisano to


7.
[pawn]if(PlayerInfo[playerid][pAdmin] == 0)
   return SendClientMessage(playerid, -1, "Nemas Permisije!");
   {
      new string[128], targetid;
      if(AdminDuty[playerid] == 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[targetid]");
      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);
   }[/pawn]
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
Poslednja Izmena: Decembar 27, 2022, 13:54:19 POSLE PODNE od Jovan Spasic


Citat: Jovan Spasic poslato Decembar 27, 2022, 13:48:09 POSLE PODNE
Kod popravi pod hitno

1.
[pawn]SendAdminMessage[/pawn]
Nemas nigde definisano


2.
[pawn]pAdmin[/pawn]
Takodje ne postoji nigde a koristis ga

3.
[pawn]if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Admin Level 1"; }
      else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Admin Level 2"; }
      else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Admin Level 3"; }
      else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Admin Level 4"; }
      else if (PlayerInfo[playerid][pAdmin] == 5){ arank = "Head Admin"; }
      else if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Director"; }
      else if(PlayerInfo[playerid][pAdmin] == 7) { arank = "Owner & Founder";}
      format(string, sizeof(string), "%s | %s | : %s", arank, ReturnPlayerName(playerid), text);
      SendAdminMessage(-1, string); [/pawn]
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. [pawn]OcistiChat[/pawn]
Takodje nema nigde funkcije tacnije nigde nije definisano to


7.
[pawn]if(PlayerInfo[playerid][pAdmin] == 0)
   return SendClientMessage(playerid, -1, "Nemas Permisije!");
   {
      new string[128], targetid;
      if(AdminDuty[playerid] == 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[targetid]");
      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);
   }[/pawn]
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 !

Citat: Jovan Spasic poslato Decembar 27, 2022, 13:48:09 POSLE PODNE
Kod popravi pod hitno

1.
[pawn]SendAdminMessage[/pawn]
Nemas nigde definisano


2.
[pawn]pAdmin[/pawn]
Takodje ne postoji nigde a koristis ga

3.
[pawn]if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Admin Level 1"; }
      else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Admin Level 2"; }
      else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Admin Level 3"; }
      else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Admin Level 4"; }
      else if (PlayerInfo[playerid][pAdmin] == 5){ arank = "Head Admin"; }
      else if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Director"; }
      else if(PlayerInfo[playerid][pAdmin] == 7) { arank = "Owner & Founder";}
      format(string, sizeof(string), "%s | %s | : %s", arank, ReturnPlayerName(playerid), text);
      SendAdminMessage(-1, string); [/pawn]
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. [pawn]OcistiChat[/pawn]
Takodje nema nigde funkcije tacnije nigde nije definisano to


7.
[pawn]if(PlayerInfo[playerid][pAdmin] == 0)
   return SendClientMessage(playerid, -1, "Nemas Permisije!");
   {
      new string[128], targetid;
      if(AdminDuty[playerid] == 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[targetid]");
      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);
   }[/pawn]
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

Goat Production / / ?
Pohvale za trud...

Umesto da se stalno formatira admin rank, zar nije lakse?
[pawn]new AdminRankName[7][] = {
   "Admin Level 1",
   "Admin Level 2",
   "Admin Level 3",
   "Admin Level 4",
   "Head Admin",
   "Director",
   "Owner & Founder"
};
AdminRankName[PlayerInfo[playerid][pAdmin]];[/pawn]


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.
[pawn]
CMD:makeadmin(playerid, params[])
{
   if(IsPlayerAdmin(playerid))
   {
      new string[128], targetid, adminlevel;
      if(sscanf(params, "ud", targetid, adminlevel))
      return SendClientMessage(playerid, -1, "[K:RP] /makeadmin[targetid][level]");
      if(adminlevel < 0 || adminlevel > 7)
      return SendClientMessage(playerid, -1, "[K:RP] Admin Level can not be smaller of 0 and bigger of 7");
      PlayerInfo[playerid][pAdmin] = 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[playerid][pAdmin] == 0)
   return SendClientMessage(playerid, -1, "Nemas permisije!");
   {
      if(AdminDuty[playerid] == 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;
}[/pawn]
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.

Koristis Y_INI onda i koristi Y_COMMANDS :D

Cemu ovo ?
[pawn]
if(PlayerInfo[playerid][pAdmin] == 0)
return SendClientMessage(playerid, -1, "Nemas Permisije!");
{
[/pawn]

[pawn]
new AdminDuty[MAX_PLAYERS];
new Zamrznut[MAX_PLAYERS];
[/pawn]

Mogao si ovako

[pawn]
static player_Duty[MAX_PLAYERS],
         player_Freezed[MAX_PLAYERS];
[/pawn]

90% stvari je izmjesano, pola engleski pola na nasem...
Neuredno i sto kaze Deleted User copy paste
I poradi na imenovanju
SPEED HACK (C++) https://github.com/nouddy/samp-speed-hack
Reliant GameMode (open.mp) https://github.com/nouddy/reliant-omp
SA:MP Landing Page https://github.com/nouddy/samp-landing-page


Kolko drama ima u 7 grama

Citat: Deleted User poslato Decembar 27, 2022, 14:44:09 POSLE PODNE
Umesto da se stalno formatira admin rank, zar nije lakse?
[pawn]new AdminRankName[7][] = {
   "Admin Level 1",
   "Admin Level 2",
   "Admin Level 3",
   "Admin Level 4",
   "Head Admin",
   "Director",
   "Owner & Founder"
};
AdminRankName[PlayerInfo[playerid][pAdmin]];[/pawn]


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.
[pawn]
CMD:makeadmin(playerid, params[])
{
   if(IsPlayerAdmin(playerid))
   {
      new string[128], targetid, adminlevel;
      if(sscanf(params, "ud", targetid, adminlevel))
      return SendClientMessage(playerid, -1, "[K:RP] /makeadmin[targetid][level]");
      if(adminlevel < 0 || adminlevel > 7)
      return SendClientMessage(playerid, -1, "[K:RP] Admin Level can not be smaller of 0 and bigger of 7");
      PlayerInfo[playerid][pAdmin] = 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[playerid][pAdmin] == 0)
   return SendClientMessage(playerid, -1, "Nemas permisije!");
   {
      if(AdminDuty[playerid] == 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;
}[/pawn]
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

Citat: Deleted User poslato Decembar 27, 2022, 14:44:09 POSLE PODNE
Umesto da se stalno formatira admin rank, zar nije lakse?
[pawn]new AdminRankName[7][] = {
   "Admin Level 1",
   "Admin Level 2",
   "Admin Level 3",
   "Admin Level 4",
   "Head Admin",
   "Director",
   "Owner & Founder"
};
AdminRankName[PlayerInfo[playerid][pAdmin]];[/pawn]


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.
[pawn]
CMD:makeadmin(playerid, params[])
{
   if(IsPlayerAdmin(playerid))
   {
      new string[128], targetid, adminlevel;
      if(sscanf(params, "ud", targetid, adminlevel))
      return SendClientMessage(playerid, -1, "[K:RP] /makeadmin[targetid][level]");
      if(adminlevel < 0 || adminlevel > 7)
      return SendClientMessage(playerid, -1, "[K:RP] Admin Level can not be smaller of 0 and bigger of 7");
      PlayerInfo[playerid][pAdmin] = 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[playerid][pAdmin] == 0)
   return SendClientMessage(playerid, -1, "Nemas permisije!");
   {
      if(AdminDuty[playerid] == 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;
}[/pawn]
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

Citat: realnaith poslato Decembar 27, 2022, 21:32:18 POSLE PODNE
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 ;)
skazy42O

Reborn - Developer & Owner
- www.reborn-ogc.com

Citat: skazy42O poslato Decembar 27, 2022, 21:49:32 POSLE PODNE
Sranje, moze to bolje ;)
Bespotreban sistem, bukvalno bloat,

[pawn]final Group:gAdmins = Group_Create("admins");

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

je sve što ti treba..

Citat: Spejs poslato Decembar 28, 2022, 09:10:06 PRE PODNE
Bespotreban sistem, bukvalno bloat,

[pawn]final Group:gAdmins = Group_Create("admins");

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

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...

Citat: Deleted User poslato Decembar 28, 2022, 10:12:46 PRE PODNE
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