Перейти к содержанию
Авторизация  
Аня

mxINI | Запрет /re

Рекомендуемые сообщения

Аня

Объясню в крациях в чём проблема. Есть команда /recon - следить за игроком с - 1 лвла администратора. И 1 лвл администратора может следить за ст.администраторами, но при это в коде вставила что нельзя, но я как понимаю мод не воспринимает его. Почему? можно ли как то запретить админу следить за админами вообще?
 

	if(strcmp(cmd, "/re", true) == 0||strcmp(cmd, "/recon", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if(AdminLog[playerid] != 1) return SendClientMessage(playerid,COLOR_FADE1,ADMINLOG);
			if(PlayerInfo[giveplayerid][pAdmin] >= 12)return SendClientMessage(playerid, COLOR_GREY, "Вы не можете следить за администратором высокого уровня!");
			if(IsPlayerConnected(playerid))
			if (PlayerInfo[playerid][pAdmin] >= 1||PlayerInfo[playerid][pModerators] >= 1)
			tmp = adminspec_strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_WHITE, "Используйте: /re(con) [playerid]");
				return true;
			}
			specplayerid = strval(tmp);
			if(!IsPlayerConnected(specplayerid))
			{
				SendClientMessage(playerid, COLOR_RED,OFFLINE);
				return true;
			}
			if(IsPlayerInAnyVehicle(specplayerid))
			{
				SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specplayerid));
				TogglePlayerSpectating(playerid, 1);
				PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
				gSpectateID[playerid] = specplayerid;
				gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
			}
			else
			{
				SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specplayerid));
				TogglePlayerSpectating(playerid, 1);
				PlayerSpectatePlayer(playerid, specplayerid);
				gSpectateID[playerid] = specplayerid;
				gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
			}
			new ping = GetPlayerPing(specplayerid);
			new Float:health;
			new Float:armour;
			GetPlayerHealth(specplayerid, health);
			new name[24];
			GetPlayerName(specplayerid,name,sizeof(name));
			//SetTimer("SpectatorOb", 1000, 0);
			format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~NICK: %s - ID: %d~n~HP: %.0f - AP: %.1f - PING: %d", name,specplayerid,health,armour,ping);
			GameTextForPlayer(playerid,string,10000,3);
		}
		return 1;
	}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Storm

Вроде бы должно быть так : 

 

if(PlayerInfo[targetid][pAdmin] >= 12)return SendClientMessage(playerid, COLOR_GREY, "Вы не можете следить за администратором высокого уровня!");

 

И почему у Вас проверка на админа стоит почти в конце?

Изменено пользователем Swile

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Аня

Изменила выдаётся ошибка типа "откуда targetid" взялся
3Qq5lZP.png
Так же поставила проверку на администратора выше.
 

	if(strcmp(cmd, "/re", true) == 0||strcmp(cmd, "/recon", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if (PlayerInfo[playerid][pAdmin] >= 1||PlayerInfo[playerid][pModerators] >= 1)
			if(AdminLog[playerid] != 1) return SendClientMessage(playerid,COLOR_FADE1,ADMINLOG);
			if(PlayerInfo[targetid][pAdmin] >= 12)return SendClientMessage(playerid, COLOR_GREY, "Вы не можете следить за администратором Высокого Уровня!");
			if(IsPlayerConnected(playerid))
			tmp = adminspec_strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_WHITE, "USAGE: /re(con) [playerid]");
				return true;
			}
			specplayerid = strval(tmp);
			if(!IsPlayerConnected(specplayerid))
			{
				SendClientMessage(playerid, COLOR_RED,OFFLINE);
				return true;
			}
			if(IsPlayerInAnyVehicle(specplayerid))
			{
				SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specplayerid));
				TogglePlayerSpectating(playerid, 1);
				PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
				gSpectateID[playerid] = specplayerid;
				gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
			}
			else
			{
				SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specplayerid));
				TogglePlayerSpectating(playerid, 1);
				PlayerSpectatePlayer(playerid, specplayerid);
				gSpectateID[playerid] = specplayerid;
				gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
			}
			new ping = GetPlayerPing(specplayerid);
			new Float:health;
			new Float:armour;
			GetPlayerHealth(specplayerid, health);
			new name[24];
			GetPlayerName(specplayerid,name,sizeof(name));
			//SetTimer("SpectatorOb", 1000, 0);
			format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~NICK: %s - ID: %d~n~HP: %.0f - AP: %.1f - PING: %d", name,specplayerid,health,armour,ping);
			GameTextForPlayer(playerid,string,10000,3);
		}
		return 1;
	}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web
if(PlayerInfo[giveplayerid][pAdmin] >= 12) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете следить за администратором высокого уровня!");

можно следить за всеми кроме 12 уровня администрирования

if (PlayerInfo[playerid][pAdmin] >= 1||PlayerInfo[playerid][pModerators] >= 1)

эта уже непосредственно обозначает доступ к самой команде

 

предлагаю заменить 

if(PlayerInfo[giveplayerid][pAdmin] >= 12) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете следить за администратором высокого уровня!");

на

if(PlayerInfo[giveplayerid][pAdmin] >= 1 || PlayerInfo[playerid][pModerators] >= 1)  return SendClientMessage(playerid, COLOR_GREY, "Вы не можете следить за администрацией");
Изменено пользователем Wеb
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
failed

if(strcmp(cmd, "/tv", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pAdministrator] >= 1)
tmp = adminspec_strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /tv [playerid]");
return true;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_RED,OFFLINE);
return true;
}
if(IsPlayerInAnyVehicle(specplayerid))
{
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
else
{
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
}
new ping = GetPlayerPing(specplayerid);
new Float:health;
new Float:armour;
GetPlayerHealth(specplayerid, health);
new name[24];
GetPlayerName(specplayerid,name,sizeof(name));
//SetTimer("SpectatorOb", 1000, 0);
format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~NICK: %s - ID: %d~n~HP: %.0f - AP: %.1f - PING: %d", name,specplayerid,health,armour,ping);
GameTextForPlayer(playerid,string,10000,3);
}
return 1;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

, Я все раписал. Зачем ты скинул аналогичную команду, в которой еще и придется править переменные? Да и GetPlayerPing наверняка понадобится функция. Зачем лезть советовать и помогатаь, не зная самых основ.

Изменено пользователем Wеb

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.