Zaključano

Simple Admin System Tut

Započeo YumikoJR
pre 7 godina
1,799
pregleda
7
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
ᗪ乇Ҝ丂卂
Underboss
pre 7 godina


● INFORMACIJE O TUTORIJALU ●

● U ovom tutorijalu cu vam pokazati kako da napravite Admin System za Vas samp server. ●

● POTREBNO ●
- Y_INI Includes -
- Sscanf Include -
- Register & Login System (Y_INI) -

➦ Za pocetak cemo na vrhu skripte dodati odredjene includove.
#include < a_samp >
#include < sscanf2 >
#include < YSI\y_INI >
#include < YSI\y_commands >
➦ Ukoliko imate register system & login (obavezno je imati), pod vas enum dodate ovako:
enum pInfo {
    xAdmin
}


To bi izgledalo ovako: *PRIMER*
enum pInfo {
  xPassword,
  xAdmin, //ovo
  xNovac,
  xZlato
  ..........
}


➦ Zatim, ukoliko nemate definisan stock GetName vec, dodacemo ga radi lakseg prepoznavanja imena..

stock GetName(playerid) {
    new name[ MAX_PLAYER_NAME ];
    GetPlayerName( playerid, name, sizeof( name ));
    return name;
}


➦ Sada mozemo preci na komandu /makeadmin (postavljanje admina)
➦ Za komande ce nam trebati include sscanf2 i y_commands include, koji smo prethodno definisali na vrhu skripte.

YCMD:makeadmin( playerid, params[], help ) {
    return true;
}


➦ Napravili smo osnovu komande, sada dodajemo proveru, ukoliko je igrac Admin, moze da koristi komandu ukoliko ne, ne moze.

YCMD:makeadmin( playerid, params[], help ) {
    if( PlayerInfo[ playerid ][ xAdmin ] < 6 && !IsPlayerAdmin( playerid )) return SendClientMessage( playerid, -1, "Niste Admin Level 6 ili RCON Admin." );
    return true;
}


➦ Napravili smo proveru, ukoliko igrac nije admin level 6 ili ulogovan na rcon (/rcon login pass), nece moci da koristi komandu.
➦ Idemo dalje.. Definisacemo sve sto nam je potrebno za ovu komandu.

YCMD:makeadmin( playerid, params[], help ) {
    if( PlayerInfo[ playerid ][ xAdmin ] < 6 && !IsPlayerAdmin( playerid )) return SendClientMessage( playerid, -1, "Niste Admin Level 6 ili RCON Admin." );
    new id, level, string[ 128 ];
    return true;
}


➦ new id -> Igrac kome postavljamo admina, level -> level koji postavljamo igracu (level admina), string[ 128 ] -> trebace nam za formatiranje poruke.

YCMD:makeadmin( playerid, params[], help ) {
    if( PlayerInfo[ playerid ][ xAdmin ] < 6 && !IsPlayerAdmin( playerid )) return SendClientMessage( playerid, -1, "Niste Admin Level 6 ili RCON Admin." );
    new id, level, string[ 128 ];
    if( sscanf( params, "ui", id, level )) return SendClientMessage( playerid, -1, "{0070D0}* Koristi: {FFFFFF}/makeadmin [level(0-6)]" );
    return true;
}


➦ Uradili smo sada ako igrac ukuca pogresno komandu (/makeadmin pa ne unese id i level nego nesto drugo), izbacice mu poruku kako treba ukucati pravilno komandu.

➦ Idemo da zavrsimo komandu formatiranjem poruke, slanjem svim igracima, postavljanjem admina igracu.

YCMD:makeadmin( playerid, params[], help ) {
    if( PlayerInfo[ playerid ][ xAdmin ] < 6 && !IsPlayerAdmin( playerid )) return SendClientMessage( playerid, -1, "Niste Admin Level 6 ili RCON Admin." );
    new id, level, string[ 128 ];
    if( sscanf( params, "ui", id, level )) return SendClientMessage( playerid, -1, "{0070D0}* Koristi: {FFFFFF}/makeadmin [level(0-6)]" );
    if( level < 0 || level > 6 ) return SendClientMessage( playerid, -1, "{0070D0}* Error: {FFFFFF}Level ne moze biti manji od 0 i veci od 6." ); //proverava da li dajete odgovarajuci level, ne mozete dati admina ispod 0 i iznad 6.
    PlayerInfo[ id ][ xAdmin ] = level; //[ id ] = igrac kome dajete admina, = level; = level koji ste odabrali..
    //dodajemo format
    format( string, sizeof( string ), "[Make Admin]: Admin %s je postavio Admina igracu %s | Level: %d", GetName( playerid ), GetName( id ), level );
    SendClientMessageToAll( -1, string ); //GetName( playerid ) = prikazuje Vase ime, GetName( id ) = prikazuje ime igraca kome dajete admina, level = prikazuje level admina koji ste dali igracu.
    SavePlayer( id ); //cuvanje igraca (kada radite reg/log system ovo morate imati obavezno !)
    return true;
}


➦ Komanda /makeadmin je spremna za rad, sada cemo dati primer neke komande za admine..

YCMD:oruzije( playerid, params[], help ) {
    if( PlayerInfo[ playerid ][ xAdmin ] < 1 && !IsPlayerAdmin( playerid )) return SendClientMessage( playerid, -1, "Niste Admin Level 1 ili RCON Admin." );
    GivePlayerWeapon( playerid, 24, cellmax );
    return true;
}


➦ Ovo je najjednostavnije sto mi je palo na pamet..
https://pastebin.com/f2pK1M7k

PS. Ovo je moj prvi tutorijal, nadam se da ce nekima pocetnicima pomoci ovo.. Potrudio sam se, nije da nisam, sledeci put cu jos vise, aBd <3  😉
AKO SAM NESTO ZABORAVIO/IZOSTAVIO, NAPISITE U KOMENTAR, DODACU.
Deken
Underboss
pre 7 godina
6/10 zbog truda

SavePlayer( id );

gde ti je stock SavePlayer?
MilosColbart
Enforcer
pre 7 godina
Samo si jos trebao da objasnis oko cuvanja i ucitavanja 🙂, inace dobar tut .
ᗪ乇Ҝ丂卂
Underboss
pre 7 godina
ShomY071 wrote on January 19, 2019, 9:49 am:
Samo si jos trebao da objasnis oko cuvanja i ucitavanja 🙂, inace dobar tut .

Hvala ali rekao sam gore dva puta da se mora imati reg / log system 😛, a kad radis reg / log system, potrebno je odraditi i cuvanje acc-a valjda ali ajde.. Hvala
ᗪ乇Ҝ丂卂
Underboss
pre 7 godina
Deken wrote on January 19, 2019, 9:44 am:
6/10 zbog truda

SavePlayer( id );

gde ti je stock SavePlayer?

● POTREBNO ●
- Register & Login System (Y_INI) -
Valjda je logicno da kad radis register i login system moras odraditi i cuvanje acc-a igraca.. ?
Deken
Underboss
pre 7 godina
Ксалази. wrote on January 19, 2019, 10:04 am:
● POTREBNO ●
- Register & Login System (Y_INI) -
Valjda je logicno da kad radis register i login system moras odraditi i cuvanje acc-a igraca.. ?

pa jeste sto se tice malo iskusnijih
ali oko pocetnika vec druga prica 😄
Purda121
OG Legend
pre 7 godina
Not bad 😄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava