Simple Admin System Tut

Započeo YumikoJR, Januar 19, 2019, 09:58:33 PRE PODNE

prethodna tema - sledeća tema

0 članova i 5 gostiju pregledaju ovu temu.



● 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.
[pawn]#include < a_samp >
#include < sscanf2 >
#include < YSI\y_INI >
#include < YSI\y_commands >
[/pawn]
➦ Ukoliko imate register system & login (obavezno je imati), pod vas enum dodate ovako:

[pawn]enum pInfo {
    xAdmin
}
[/pawn]

To bi izgledalo ovako: *PRIMER*

[pawn]enum pInfo {
   xPassword,
   xAdmin, //ovo
   xNovac,
   xZlato
   ..........
}
[/pawn]

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

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

➦ 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.
[pawn]
YCMD:makeadmin( playerid, params[], help ) {
    return true;
}
[/pawn]

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

[pawn]
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;
}
[/pawn]

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

[pawn]
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;
}
[/pawn]

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

[pawn]
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 [id] [level(0-6)]" );
    return true;
}
[/pawn]

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

[pawn]
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 [id] [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;
}
[/pawn]

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

[pawn]
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;
}
[/pawn]

➦ Ovo je najjednostavnije sto mi je palo na pamet..


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.

6/10 zbog truda
[pawn]
SavePlayer( id );
[/pawn]
gde ti je stock SavePlayer?

Samo si jos trebao da objasnis oko cuvanja i ucitavanja :), inace dobar tut .

Citat: ShomY071 poslato Januar 19, 2019, 10:49:57 PRE PODNE
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 :P, a kad radis reg / log system, potrebno je odraditi i cuvanje acc-a valjda ali ajde.. Hvala

Citat: Deken poslato Januar 19, 2019, 10:44:14 PRE PODNE
6/10 zbog truda
[pawn]
SavePlayer( id );
[/pawn]
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.. ?

Citat: Ксалази. poslato Januar 19, 2019, 11:04:30 PRE PODNE
● 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 :D