RCON Cmd -
Sting. - 07.01.2018
Hey guys, I previously cut and pasted my admin script to my GM, and well everything works fine except my setlevel command, which can only be used if the player logs in as Rcon Admin. When it was a FS, it worked but now as I placed it in my GM, everything works fine except this command.....
I use ZCMD, so as the Admin FS. Here is the /rcon setlevel
cmd
Код:
public OnRconCommand(cmd[])
{
new params[130];
sscanf(cmd, "s[128]s[128]", cmd, params);
if(!strcmp(cmd, "setlevel", true))
{
new lookupid, level;
if(sscanf(params, "ui", lookupid, level))
{
print(""#COL_RED"Usage: /rcon setlevel (player: id/name) (level: 0-2)");
}
else if(!IsPlayerConnected(lookupid))
{
print(""#COL_RED"That player isn't connected to the server.");
}
else if(!IsValidAdminLevel(level))
{
print(""#COL_RED"You have entered an invalid admin level.");
}
else
{
new string[144];
aUserInfo[lookupid][user_info_admin_level] = level;
if(IsPlayerOnDuty(lookupid))
{
SetPlayerSkin(lookupid, pBeforeOnDutyInfo[lookupid][0]);
SetPlayerHealth(lookupid, 100.0);
SetPlayerColor(lookupid, pBeforeOnDutyInfo[lookupid][1]);
psOnDuty[lookupid] = false;
}
format(string, sizeof(string), "{%06x}You have set %s(%d) admin level to %d.", GetPlayerAdminLevelColor(lookupid) >>> 8, AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
print(string);
format(string, sizeof(string), "Your admin level has been set to %d.", level);
SendClientMessage(lookupid, GetPlayerAdminLevelColor(lookupid), string);
new log[144];
format(log, sizeof(log), "%s(%d) admin level has been set to %d.", AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
RegisterLog("scriptfiles/Admin Log/rconlog", log);
}
}
return 1;
}
Any ideas how to make this command work again?
Re: RCON Cmd -
jop9888 - 07.01.2018
From samp wiki:
https://sampwiki.blast.hk/wiki/OnRconCommand
Important
Note
You will need to include this callback in a loaded filterscript for it to work in the gamemode!
Re: RCON Cmd -
RowdyrideR - 07.01.2018
Why dont you just use “IsPlayerAdmin(playerid)”
Re: RCON Cmd -
Sting. - 07.01.2018
Quote:
Originally Posted by RowdyrideR
Why dont you just use “IsPlayerAdmin(playerid)”
|
Yea, I'll try that now.
Re: RCON Cmd -
jasperschellekens - 07.01.2018
Conver to ZCMD.
PHP код:
CMD:setlevel(playerid, params[])
{
new string[144] lookupid, level;
if(sscanf(params, "ui", lookupid, level)) return print(""#COL_RED"Usage: /rcon setlevel (player: id/name) (level: 0-2)");
if(!IsValidAdminLevel(level)) return print(""#COL_RED"You have entered an invalid admin level.");
if(!IsPlayerConnected(lookupid)) return print(""#COL_RED"That player isn't connected to the server.");
aUserInfo[lookupid][user_info_admin_level] = level;
if(IsPlayerOnDuty(lookupid))
{
SetPlayerSkin(lookupid, pBeforeOnDutyInfo[lookupid][0]);
SetPlayerHealth(lookupid, 100.0);
SetPlayerColor(lookupid, pBeforeOnDutyInfo[lookupid][1]);
psOnDuty[lookupid] = false;
}
format(string, sizeof(string), "{%06x}You have set %s(%d) admin level to %d.", GetPlayerAdminLevelColor(lookupid) >>> 8, AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
print(string);
format(string, sizeof(string), "Your admin level has been set to %d.", level);
SendClientMessage(lookupid, GetPlayerAdminLevelColor(lookupid), string);
new log[144];
format(log, sizeof(log), "%s(%d) admin level has been set to %d.", AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
RegisterLog("scriptfiles/Admin Log/rconlog", log);
}
Now you can decide to take it on rcon or admin level:
PHP код:
IsPlayerAdmin(playerid)
or
PHP код:
if(aUserInfo[lookupid][user_info_admin_level] == 0 ) return //scm no admin
Re: RCON Cmd -
Sting. - 07.01.2018
I tried converting it, this way. I tried Jesper's there were lots of errors. Well this code below compiles, but just like before, it doesn't show.... I tried without logging in as RCON, and logged in as RCON. Same thing.... XD no response...
Код:
CMD:setlevel(playerid, params[])
{
if(IsPlayerAdmin(playerid))
{
new lookupid, level;
if(sscanf(params, "ui", lookupid, level))
{
print(""#COL_RED"Usage: /rcon setlevel (player: id/name) (level: 0-2)");
}
else if(!IsPlayerConnected(lookupid))
{
print(""#COL_RED"That player isn't connected to the server.");
}
else if(!IsValidAdminLevel(level))
{
print(""#COL_RED"You have entered an invalid admin level.");
}
else
{
new string[144];
aUserInfo[lookupid][user_info_admin_level] = level;
if(IsPlayerOnDuty(lookupid))
{
SetPlayerSkin(lookupid, pBeforeOnDutyInfo[lookupid][0]);
SetPlayerHealth(lookupid, 100.0);
SetPlayerColor(lookupid, pBeforeOnDutyInfo[lookupid][1]);
psOnDuty[lookupid] = false;
}
format(string, sizeof(string), "{%06x}You have set %s(%d) admin level to %d.", GetPlayerAdminLevelColor(lookupid) >>> 8, AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
print(string);
format(string, sizeof(string), "Your admin level has been set to %d.", level);
SendClientMessage(lookupid, GetPlayerAdminLevelColor(lookupid), string);
new log[144];
format(log, sizeof(log), "%s(%d) admin level has been set to %d.", AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
RegisterLog("scriptfiles/LSDMAdmin Log/rconlog", log);
}
}
return 1;
}
EDIT: I tried Jesper's code again and placed:
Код:
new lookupid, level;
new string[144];
It compiles, but in-game, command is unknown.....
Re: RCON Cmd -
RowdyrideR - 07.01.2018
Why dont u make it like
If(!isvalidadmin && !isplayeradmin) return print...
If(sscanf.......) return print...
If(!isplayerconnected) return print...
Then add the code directly under those lines.
Its more readable and organized...
Re: RCON Cmd -
Sting. - 07.01.2018
@Ryder, Invalid command man. No idea why. I did what you asked. Here's the code:
Код:
CMD:setlevel(playerid, params[])
{
new lookupid, level;
if(!IsValidAdminLevel(level) && !IsPlayerAdmin(playerid)) return print(""#COL_RED"You have entered an invalid admin level.");
if(sscanf(params, "ui", lookupid, level)) return print(""#COL_RED"Usage: /rcon setlevel (player: id/name) (level: 0-2)");
if(!IsPlayerConnected(lookupid)) return print(""#COL_RED"That player isn't connected to the server.");
else
{
new string[144];
aUserInfo[lookupid][user_info_admin_level] = level;
if(IsPlayerOnDuty(lookupid))
{
SetPlayerSkin(lookupid, pBeforeOnDutyInfo[lookupid][0]);
SetPlayerHealth(lookupid, 100.0);
SetPlayerColor(lookupid, pBeforeOnDutyInfo[lookupid][1]);
psOnDuty[lookupid] = false;
}
format(string, sizeof(string), "{%06x}You have set %s(%d) admin level to %d.", GetPlayerAdminLevelColor(lookupid) >>> 8, AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
print(string);
format(string, sizeof(string), "Your admin level has been set to %d.", level);
SendClientMessage(lookupid, GetPlayerAdminLevelColor(lookupid), string);
new log[144];
format(log, sizeof(log), "%s(%d) admin level has been set to %d.", AddPertinence(ReturnPlayerName(lookupid)), lookupid, level);
RegisterLog("scriptfiles/LSDMAdmin Log/rconlog", log);
}
return 1;
}
Re: RCON Cmd -
RowdyrideR - 07.01.2018
remove the "else" and its brackets....
Re: RCON Cmd -
Sew_Sumi - 08.01.2018
Put some printf statements in there so you actually have some idea of how far the command was executed, and what was received from the client/callback.