Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ||DesmondMiles|| poslato Oktobar 18, 2014, 09:17:13 PRE PODNE

Naslov: [POMOC]komanda /makeadmin
Poruka od: ||DesmondMiles|| poslato Oktobar 18, 2014, 09:17:13 PRE PODNE
Skripta koju koristim:moja
Problem:pa samo kad bi mi neko u odgovoru poslao kodove komande /makeadmin ali sa mojim varijablom tj AdminLevel mi je varijabl :D
Dio skripte:OnPLayerCommandText
Naslov: Odg: [POMOC]komanda /makeadmin
Poruka od: Nathan Drake poslato Oktobar 18, 2014, 10:04:17 PRE PODNE
Prvo stavi u pInfo sledece
pAdmin
Onda stavi u onplayerdisconnect da spremi podatke od igraca

     new INI:File = INI_Open(VASPATH(playerid));
     INI_SetTag(File,"data");
     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
     INI_Close(File);
//promijeni VASPATH

Potrebno ti je getname da uzme igracevo ime.

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

Najbolje ti je da koristis ZCMD

#include <zcmd>

ili ako zelis YCMD
#include < YSI\y_commands >
Mada su isti :)

Potreban ti je ssacnf

#include <sscanf>

Definisi SCM za brzi rad.

#define SCM    SendClientMessage

I onda idemo na komandu

CMD:makeadmin(playerid,params)
{
    if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"Nisi Admin");//Provjerava dali je igrac ulogovan kao RCON Admin, ako nije posalje mu poruku
new id,admlevel,string[256];//potrebno za komandu
    if(sscanf(params, "ud", id, admlevel)) return SCM(playerid, -1, "/makeadmin [id] [level]");//ako kucas samo /makeadmin ili gorijesis postupak komande mislim ako kucas /makeadmin [level] [id] posalje ti kako treba ispravno uraditi xd
    if(id == INVALID_PLAYER_ID) return SCM(playerid,-1,"Pogresan id");//ako admin pogrijesi id
    if(admlevel< 0 || admlevel> 7) return SCM(playerid, -1, "Ne idite ispod 0 ili iznad 7");//ako igrac ukuca broj ispod 0 ili iznad 7 posalje mu poruku(promjeni sebi)
    PlayerInfo[playerid][pAdmin] = admlevel;//postavi igracu admina level koji si ti ukucao kada si isao /makeadmin
    format(string,sizeof(string),"Admin %s vam je postavio admin level na %d!",GetNAme(playerid),admlevel);
    SCM(id,-1,string);//Posalje igracu poruku nakon sto postavis admina
    format(string,sizeof(string),"Postavili ste igracu %s level admina %d",GetName(id),admlevel);
    SCM(playerid,-1,string);//Posalje adminu poruku
    return 1;//Postavis return 1 ili ce ti pisati "unknown command"
}

Ovo u poruci "%s" ti je za slova, a "%d" ti je za brojeve kao sto vidis.
Ovo INVALID_PLAYER_ID definisi ovako

#define IPI    INVALID_PLAYER_ID
Sacuva ti dosta vremena :P xd

Eto valjda sam ti malo pomogao, ako sam negdje pogrijesio neka neko ispravi.
Naslov: Odg: [POMOC]komanda /makeadmin
Poruka od: ||DesmondMiles|| poslato Oktobar 18, 2014, 10:26:40 PRE PODNE
http://prntscr.com/4x9qz3 brt evo mi ga error ako mozes brzo da mi odgovoris
Naslov: Odg: [POMOC]komanda /makeadmin
Poruka od: Nathan Drake poslato Oktobar 18, 2014, 10:39:04 PRE PODNE
Promjeni to u "GetName" bilo ti je "GetNAme"
Naslov: Odg: [POMOC]komanda /makeadmin
Poruka od: ||DesmondMiles|| poslato Oktobar 18, 2014, 10:58:05 PRE PODNE
promijenio sam i hvala ti puno ali mi je ostao jos jedan error ako mozes samo da mi pomognes sta cu sad http://prntscr.com/4x9wzr
Naslov: Odg: [POMOC]komanda /makeadmin
Poruka od: Nathan Drake poslato Oktobar 18, 2014, 12:16:01 POSLE PODNE
Posalji skriptu gdje je taj error