Problem(error/warning): Imate slike
Deo skripte: [ pawn ]CMD:postaviadmina(playerid,params[])
{
if(IsPlayerAdmin(playerid))
{
new targetid,level;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,-1,"/postaviadmina [ID igraca/Deo imena] [Admin Level]");
if(!IsPlayerConnected(targetid)) return SCM(playerid,-1,"Igrac nije na serveru!");
if(level >5 || level <1) return SCM(playerid,-1,"Najveci admin level je 5, a najmanji 1!");
new str[100],str1[100];
format(str,sizeof(str),"Postavili ste admin level %s igracu %d!",level,GetName(targetid));
format(str1,sizeof(str1),"Admin %s te je promovisao na admin level %d!"),GetName(targetid),level;
SCM(playerid,-1,str);
SCM(targetid,-1,str1);
PlayerInfo[targetid][pAdmin] = level;
}
else
{
SCM(playerid,-1,"Niste ovlasceni da koristite ovu komandu!");
}
return 1;
}[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Jednostavno mi ne pise ko je dao Admina i koji level
Slika/video ingame problema(obavezno ako je ingame problem): https://imgur.com/3CtxJNp
[pawn]CMD:postaviadmina(playerid,params[]) {
if(IsPlayerAdmin(playerid))
{
new targetid,level;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,-1,"/postaviadmina [ID igraca/Deo imena] [Admin Level]");
if(!IsPlayerConnected(targetid)) return SCM(playerid,-1,"Igrac nije na serveru!");
if(level >5 || level <1) return SCM(playerid,-1,"Najveci admin level je 5, a najmanji 1!");
new str[100],str1[100];
format(str,sizeof(str),"Postavili ste admin level %d igracu %s!",level,GetName(playerid));
format(str1,sizeof(str1),"Admin %s te je promovisao na admin level %d!",GetName(playerid),level);
SCM(playerid,-1,str);
SCM(targetid,-1,str1);
PlayerInfo[targetid][pAdmin] = level;
}
else
{
SCM(playerid,-1,"Niste ovlasceni da koristite ovu komandu!");
}
return 1;
}[/pawn]
Citat: anderson87 poslato Jul 11, 2019, 20:21:58 POSLE PODNE
[pawn]CMD:postaviadmina(playerid,params[]) {
if(IsPlayerAdmin(playerid))
{
new targetid,level;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,-1,"/postaviadmina [ID igraca/Deo imena] [Admin Level]");
if(!IsPlayerConnected(targetid)) return SCM(playerid,-1,"Igrac nije na serveru!");
if(level >5 || level <1) return SCM(playerid,-1,"Najveci admin level je 5, a najmanji 1!");
new str[100],str1[100];
format(str,sizeof(str),"Postavili ste admin level %d igracu %s!",level,GetName(playerid));
format(str1,sizeof(str1),"Admin %s te je promovisao na admin level %d!",GetName(playerid),level);
SCM(playerid,-1,str);
SCM(targetid,-1,str1);
PlayerInfo[targetid][pAdmin] = level;
}
else
{
SCM(playerid,-1,"Niste ovlasceni da koristite ovu komandu!");
}
return 1;
}[/pawn]
https://imgur.com/uDH8SxC
Opet mi ne pise koji je admin dao i kom igracu
[pawn]CMD:postaviadmina(playerid,params[])
{
if(IsPlayerAdmin(playerid))
{
new targetid,level;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,-1,"/postaviadmina [ID igraca/Deo imena] [Admin Level]");
if(!IsPlayerConnected(targetid)) return SCM(playerid,-1,"Igrac nije na serveru!");
if(level >5 || level <1) return SCM(playerid,-1,"Najveci admin level je 5, a najmanji 1!");
new str[100];
format(str,sizeof(str), "Postavili ste admin level %d igracu %s!", level, GetName(targetid));
SCM(playerid,-1,str);
format(str,sizeof(str),"Admin %s te je promovisao na admin level %d!", GetName(playerid), level);
SCM(targetid,-1,str);
PlayerInfo[targetid][pAdmin] = level;
}
else
{
SCM(playerid,-1,"Niste ovlasceni da koristite ovu komandu!");
}
return 1;
}[/pawn]
I zamijeni svoju GetName funkciju sa ovom
[pawn]
stock GetName(id)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(id, name, sizeof(name));
return name;
}
[/pawn]
%d - GetName
%s - level
HAHA
Ovako brate, u skriptanju postoje formati, svaki format ima svoje znacenje.
%i Integer (whole number)
%d Integer (whole number).
%s String
%f Floating-point number (Float: tag)
%c ASCII character
%x Hexadecimal number
%b Binary number
%% Literal '%'
%q Escape a text for SQLite. (Added in 0.3.7 R2)
A tvoja greska je u ovoj liniji:
[pawn]format(str,sizeof(str), "Postavili ste admin level %d igracu %s!", level, GetName(targetid));[/pawn]
Sad ce ti verovatno jasnije biti sta si pogresio ako si procitao tabelu iznad. %d koristis za brojeve a %s za stringove. Znaci, pravilno bi trebalo biti ovako:
[pawn]format(str,sizeof(str), "Postavili ste admin level %s igracu %d!", level, GetName(targetid));[/pawn]
Cak imas gresku i ovoj liniji:
[pawn] format(str1,sizeof(str1),"Admin %s te je promovisao na admin level %d!"),GetName(targetid),level;[/pawn]
Koristis 'targetid' u GetName za admina. Znaci igracu ce izaci poruka da je Admin zapravo on. Nisi ni dovrsio liniju kako treba. Pravilno bi trebalo ovako biti:
[pawn] format(str1,sizeof(str1),"Admin %s te je promovisao na admin level %d!",GetName(playerid),level);[/pawn]
I nemas potrebe definisati dva stringa, jer gubis memoriju dzaba. To mozes u jednom stringu raditi.