Доступ к архиву

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

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

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

Две проблемы,уважаемые.

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

DEAMON

Умник
Первая проблема:​
Когда я телепортируюсь к игроку (командой /goto), в админ-чат отправляется сообщение типа" Ник телепортировался к игроку ник" два раза. Хотя должно это делаться один раз. Собственно,я не знаю как решить эту проблему. :c
Вот команда "/goto":

PHP:
if(strcmp(cmd, "/goto", true) == 0)
{
	if(PlayerInfo[playerid][pAdmin]<2) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя.");
 	if(IsPlayerConnected(playerid))
 	{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_WHITE, "Используй: /goto [ID ]");
			return 1;
		}
		new Float:plocx,Float:plocy,Float:plocz;
		new plo;
		new plow[MAX_PLAYER_NAME];
		plo = ReturnUser(tmp);
		if(!IsPlayerConnected(plo)) return SendClientMessage(playerid, COLOR_GRAD1, "Такого игрока нет");
		if(PlayerInfo[plo][pAdmin] >= 4) return SendClientMessage(playerid,COLOR_GRAD2,"Нельзя телепортироваться к админу.");
		{
  			if(plo != INVALID_PLAYER_ID)
	    	{
				if (PlayerInfo[playerid][pAdmin] >= 1)
				{
					GetPlayerPos(plo, plocx, plocy, plocz);
     				GetPlayerName(plo, plow, sizeof(plow));
					if (GetPlayerState(playerid) == 2)
					{
						new tmpcar = GetPlayerVehicleID(playerid);
						SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
						TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
					}
					else
					{
						SetPlayerPos(playerid,plocx,plocy+2, plocz);
					}
					for(new i=0; i<GetMaxPlayers(); i++)
					{
						if(IsPlayerConnected(i))
						{
							new admin[MAX_PLAYER_NAME]; new player[MAX_PLAYER_NAME];
		    				GetPlayerName(playerid, admin,sizeof(admin));
					    	GetPlayerName(plo, player,sizeof(player));
							format(string,sizeof(string),"%s телепортировался к игроку %s.",admin,player);
							SendAdminMessage(COLOR_RED, string);
						}
					}
				}
			}
		}
	}
	return 1;
}

Вторая проблема:​
Эта проблема касается команды /spec(следить за игроком).
Дело в том,что когда я ввожу /spec id игрока вот что у меня происходит:


Вот /spec:
PHP:
if(strcmp(cmd, "/spec", true) == 0)
{
	if(PlayerInfo[playerid][pAdmin]<1) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя.");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
   	{
		SendClientMessage(playerid, COLOR_WHITE, "Используй: /spec [ID]");
		return 1;
 	}
    GetPlayerName(specplayerid, giveplayer, sizeof(giveplayer));
	specplayerid = strval(tmp);
	if(!IsPlayerConnected(specplayerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Такого игрока нет");
	if(PlayerInfo[specplayerid][pAdmin]==4) return SendClientMessage(playerid, COLOR_GRAD1, "Следить за адм нельзя.");
	//else if(specplayerid == playerid) return SendClientMessage(playerid, COLOR_GRAD1, "нельзя следить за собой!");
	else if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && gSpectateID[specplayerid] != INVALID_PLAYER_ID)
	{
		SendClientMessage(playerid, COLOR_GRAD1, "Этот модер наблюдает уже!");
		return 1;
	}
	spectry[playerid]=1;
	PlayerSpectatePlayer(playerid, specplayerid);
	SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
	SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(specplayerid));
	TogglePlayerSpectating(playerid, 1);
	gSpectateID[playerid] = specplayerid;
	gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
	SpecHATimer[playerid] = SetTimerEx("SpecHArefresh",500,true,"ff",playerid,specplayerid);
	TextDrawShowForPlayer(playerid, SM_HA[playerid]);//высвечиваем TextDraw
	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;
	}
	return 1;
}

Помогите пожалуйста. Плюсики гарантированы. ;) ​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу