Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Новый и удобный /re

Статус
В этой теме нельзя размещать новые ответы.

iStrange

Компетентный
Вот такую менюшку мы получим:

Код делался под мод Skrillax-Rp

Ко всем new:
PHP:
new Menu:AdmSpectate;
new Spectate[MAX_PLAYERS];
new Text:recon[MAX_PLAYERS];
new gSpectateID[MAX_PLAYERS];
new gSpectateType[MAX_PLAYERS];
Ко всем enum:
PHP:
enum pSpec
{
	sName[MAX_PLAYER_NAME],
	sIp[16],
Float:scarhealth,
Float:shealths,
Float:sarmour,
Float:svhealth,
	sping,
};
new Spectagin[MAX_PLAYERS][pSpec];
В stock Menu()
PHP:
AdmSpectate = CreateMenu("Recon", 1, 0.0, 140.0, 90.0);
AddMenuItem(AdmSpectate,0,"NEXT PLAYER");
AddMenuItem(AdmSpectate,0,"BACK PLAYER");
AddMenuItem(AdmSpectate,0,"UPDATE");
AddMenuItem(AdmSpectate,0,"SLAP");
AddMenuItem(AdmSpectate,0,"STATS");
AddMenuItem(AdmSpectate,0,"WEAPON");
AddMenuItem(AdmSpectate,0,"FREEZE");
AddMenuItem(AdmSpectate,0,"UNFREEZE");
AddMenuItem(AdmSpectate,0,"GMTEST");
AddMenuItem(AdmSpectate,0,"GETIP");
AddMenuItem(AdmSpectate,0,"REOFF");
В самый низ мода (Комманда на CMD):
PHP:
CMD:re(playerid,params[])
{
	new giveplayerid, tmp[50];
	giveplayerid = ReturnUser(tmp);
	if(PlayerInfo[playerid][pAdminkaloxarp] == 0) return true;
	if(sscanf(params,"d",giveplayerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Введите: /re [ID]");
	if(!IsPlayerConnected(giveplayerid) || gPlayerLogged[giveplayerid] == 0) return SendClientMessage(playerid, COLOR_GREY,"Игрок не авторизирован / зарегистрирован");
	if(Spectate[playerid] == INVALID_PLAYER_ID)
	{
		GetPlayerPos(playerid, SpectPosFloat[playerid][0], SpectPosFloat[playerid][1], SpectPosFloat[playerid][2]);
		GetPlayerFacingAngle(playerid, SpectPosFloat[playerid][3]);
		SpectPos[playerid][0] = GetPlayerInterior(playerid);
		SpectPos[playerid][1] = GetPlayerVirtualWorld(playerid);
	}
	Spectate[playerid] = giveplayerid;
	TogglePlayerSpectating(playerid, 1);
	if(IsPlayerInAnyVehicle(Spectate[playerid]))
	{
		SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
		SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
		PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Spectate[playerid]), 1);
	}
	else
	{
		SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
		SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
		PlayerSpectatePlayer(playerid, Spectate[playerid], 1);
	}
	Spectagin[playerid][sping] = GetPlayerPing(Spectate[playerid]);
	GetPlayerArmour(Spectate[playerid],Spectagin[playerid][sarmour]);
	GetPlayerHealth(Spectate[playerid],Spectagin[playerid][shealths]);
	GetPlayerName(Spectate[playerid], Spectagin[playerid][sName], MAX_PLAYER_NAME);
	GetPlayerIp(Spectate[playerid],  Spectagin[playerid][sIp], 16);
	Spectagin[playerid][svhealth] = 0.0;
	TextDrawShowForPlayer(playerid, recon[playerid]);
	ShowMenuForPlayer(AdmSpectate, playerid);
	return true;
}
PHP:
	else if (strcmp(cmd, "/re", true) == 0)
	{
		if(PlayerInfo[playerid][pAdminkaloxarp] == 0) return true;
		tmp = strcharsplit(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /re [id]");
		giveplayerid = ReturnUser(tmp);
		if(!IsPlayerConnected(giveplayerid) || gPlayerLogged[giveplayerid] == 0) return SendClientMessage(playerid, COLOR_GREY,"Игрок не авторизирован / зарегистрирован");
		if(Spectate[playerid] == INVALID_PLAYER_ID)
		{
			GetPlayerPos(playerid, SpectPosFloat[playerid][0], SpectPosFloat[playerid][1], SpectPosFloat[playerid][2]);
			GetPlayerFacingAngle(playerid, SpectPosFloat[playerid][3]);
			SpectPos[playerid][0] = GetPlayerInterior(playerid);
			SpectPos[playerid][1] = GetPlayerVirtualWorld(playerid);
		}
		Spectate[playerid] = giveplayerid;
		TogglePlayerSpectating(playerid, 1);
		if(IsPlayerInAnyVehicle(Spectate[playerid]))
		{
			SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
			SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
			PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Spectate[playerid]), 1);
		}
		else
		{
			SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
			SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
			PlayerSpectatePlayer(playerid, Spectate[playerid], 1);
		}
		Spectagin[playerid][sping] = GetPlayerPing(Spectate[playerid]);
		GetPlayerArmour(Spectate[playerid],Spectagin[playerid][sarmour]);
		GetPlayerHealth(Spectate[playerid],Spectagin[playerid][shealths]);
		GetPlayerName(Spectate[playerid], Spectagin[playerid][sName], MAX_PLAYER_NAME);
		GetPlayerIp(Spectate[playerid],  Spectagin[playerid][sIp], 16);
		Spectagin[playerid][svhealth] = 0.0;
		TextDrawShowForPlayer(playerid, recon[playerid]);
		ShowMenuForPlayer(AdmSpectate, playerid);
		reconp[playerid]++;
		return true;
	}

В public OnPlayerSelectedMenuRow
PHP:
	if(Current == AdmSpectate)
	{
		switch(row)
		{
		case 0:
			{
				ShowMenuForPlayer(AdmSpectate, playerid);
				new mess[15];
				format(mess, sizeof(mess), "/re %i",Spectate[playerid]+1);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				if(IsPlayerInAnyVehicle(Spectate[playerid])) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Spectate[playerid]), 1);
				else PlayerSpectatePlayer(playerid, Spectate[playerid], 1);
				SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
				ShowMenuForPlayer(AdmSpectate, playerid);
			}
		case 1:
			{
				ShowMenuForPlayer(AdmSpectate, playerid);
				new mess[15];
				format(mess, sizeof(mess), "/re %i",Spectate[playerid]-1);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				if(IsPlayerInAnyVehicle(Spectate[playerid])) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Spectate[playerid]), 1);
				else PlayerSpectatePlayer(playerid, Spectate[playerid], 1);
				SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
				ShowMenuForPlayer(AdmSpectate, playerid);
			}
		case 2:
			{
				if(IsPlayerInAnyVehicle(Spectate[playerid])) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Spectate[playerid]), 1);
				else PlayerSpectatePlayer(playerid, Spectate[playerid], 1);
				SetPlayerInterior(playerid,GetPlayerInterior(Spectate[playerid]));
				SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(Spectate[playerid]));
				ShowMenuForPlayer(AdmSpectate, playerid);
				return true;
			}
		case 3:
			{
				new mess[15];
				format(mess, sizeof(mess), "/slap %i",Spectate[playerid]);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				ShowMenuForPlayer(AdmSpectate, playerid);
			}
		case 4: ShowStats(playerid, Spectate[playerid]), ShowMenuForPlayer(AdmSpectate, playerid);
		case 5:
			{
				ShowMenuForPlayer(AdmSpectate, playerid);
				new mess[15];
				format(mess, sizeof(mess), "/iwep %i",Spectate[playerid]);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
			}
		case 6:
			{
				new mess[15];
				format(mess, sizeof(mess), "/freeze %i",Spectate[playerid]);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				ShowMenuForPlayer(AdmSpectate, playerid);
				return true;
			}
		case 7:
			{
				new mess[15];
				format(mess, sizeof(mess), "/unfreeze %i",Spectate[playerid]);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				ShowMenuForPlayer(AdmSpectate, playerid);
				return true;
			}
		case 8:
			{
				new mess[15];
				format(mess, sizeof(mess), "/gm %i",Spectate[playerid]);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				ShowMenuForPlayer(AdmSpectate, playerid);
				return true;
			}
		case 9:
			{
				new mess[15];
				format(mess, sizeof(mess), "/getip %i",Spectate[playerid]);
				CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
				ShowMenuForPlayer(AdmSpectate, playerid);
				return true;
			}
		case 10:
			{
				TogglePlayerSpectating(playerid, 0);
				SetCameraBehindPlayer(playerid);
				PlayerSpec[PlayerSpectateID[playerid]] = INVALID_PLAYER_ID;
				SetPlayerHealthAC(playerid, 100);
				PlayerSpectateID[playerid] = INVALID_PLAYER_ID;
				GameTextForPlayer(playerid, "~W~RECON ~R~OFF", 5000, 4);
				StopSpectate(playerid);
				HideMenuForPlayer(AdmSpectate, playerid);  
			}
		}
		return true;
	}
В самый низ мода:
PHP:
stock StopSpectate(playerid)
{
	SetTimerEx("SpectOff",100,false,"i",playerid);
	TogglePlayerSpectating(playerid, false);
	gSpectateID[playerid] = INVALID_PLAYER_ID;
	gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
	return true;
}
publics: SpectOff(playerid) return SpawnPlayer(playerid);
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу