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

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

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

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

Наблюдение за игроком (/spec)

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

Kala4ik

Компетентный
Добрый вечер при создании системы наблюдения за игроком столкнулся с такой проблемой.
Когда начинаю наблюдать за игроком то в статистике наблюдения пишет то мои данные потом игрока за которым наблюдаю потом опять мои и т.д и т.п.

PHP:
CMD:spec(playerid, params[])
{
	new Float:Pos[3];
	if(Player[playerid][pAdmin] < 3 || AdminDuty[playerid] == 0)return NoRights;
	if(sscanf(params,"r",params[0]))return send(playerid,0x33CCFFFF,"[КОМАНДЫ] {FFFFFF}/spec [id игрока]");
	if(!IsPlayerConnected(params[0]))return Notonline;
	if(Player[params[0]][pAdmin] > Player[playerid][pAdmin])return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Вы не можете наблюдать за администратором старше вас.");
	if(SERIU[playerid][sID] == INVALID_PLAYER_ID)
	{
		TogglePlayerSpectating(playerid,1);
		GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
		SetPVarFloat(playerid,"SpecX",Pos[0]);
		SetPVarFloat(playerid,"SpecY",Pos[1]);
		SetPVarFloat(playerid,"SpecZ",Pos[2]);
		SetPVarInt(playerid,"SpecVW",GetPlayerVirtualWorld(playerid));
		SetPVarInt(playerid,"SpecInt",GetPlayerInterior(playerid));
		SetPlayerInterior(playerid,GetPlayerInterior(params[0]));
	}
	StartSpec(playerid,params[0]);
	SetPVarInt(playerid,"Spec",1);
	for(new i; i < 8;i++) TextDrawShowForPlayer(playerid,specmenu[playerid][i]);
	for(new i; i<= 1;i++) TextDrawShowForPlayer(playerid,spectext[playerid][i]);
	SelectTextDraw(playerid,0x00FF00AA);
	return 1;
}

PHP:
stock StartSpec(playerid,i)
{
	new string[256],Float:health,Float:armour,gunname[32];
	SERIU[playerid][sID] = i;
	GetPlayerHealth(i,health);
	GetPlayerArmour(i,armour);
	new expamount;
	if(GetPVarInt(i, "pLevel") == 0) expamount = 3;
	else expamount = GetPVarInt(i,"pLevel")*5;
	SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(i));
	SetPlayerInterior(playerid,GetPlayerInterior(i));
	GetWeaponName(GetPlayerWeapon(i),gunname,sizeof(gunname));
	if(IsPlayerInAnyVehicle(i))PlayerSpectateVehicle(playerid,GetPlayerVehicleID(i));
	else PlayerSpectatePlayer(playerid,i);
	f(string,"%s [%d]~n~Level: %d [%d / %d]~n~warns: %i / 3~n~health: %.0f~n~armour: %.0f~n~$%i~n~Gun %s~n~speed: %i~n~Vehicle: hp~n~fps: %i ping %i",sendername(i),i,GetPVarInt(i, "pLevel"),GetPVarInt(i,"pExp"),expamount,Player[i][pWarns],health,armour,Player[i][pMoney],gunname,GetPlayerSpeed(i),GetPlayerFPS(i),GetPlayerPing(i));
	TextDrawSetString(spectext[playerid][1],string);
	spectime[playerid] = SetTimerEx("UpdSpec",1000,0,"dd",playerid,i);
	return 1;
}
publics UpdSpec(playerid,params)
{
	new string[256],Float:health,Float:armour,gunname[32];
	SetPlayerInterior(playerid,GetPlayerInterior(params));
	SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(params));
	GetPlayerHealth(params,health);
	GetPlayerArmour(params,armour);
	new expamount;
	if(GetPVarInt(params, "pLevel") == 0) expamount = 3;
	else expamount = GetPVarInt(params,"pLevel")*5;
	f(string,"%s [%d]~n~Level: %d [%d / %d]~n~warns: %i / 3~n~health: %.0f~n~armour: %.0f~n~$%i~n~Gun %s~n~speed: %i~n~Vehicle: hp~n~fps: %i ping %i",sendername(params),params,GetPVarInt(params, "pLevel"),GetPVarInt(params,"pExp"),expamount,Player[params][pWarns],health,armour,Player[params][pMoney],gunname,GetPlayerSpeed(params),GetPlayerFPS(params),GetPlayerPing(params));
	TextDrawSetString(spectext[playerid][1], string);
	spectime[playerid] = SetTimerEx("UpdSpec",1000,0,"dd",playerid,params);
	return 1;
}



И еще после окончания спека теперь если игрок следил за игроком который был на улице с виртуальным миром 0 а я в наблюдение заходил с интерьера то когда выхожу у меня виртуальный мир становится такой который у игрока, и я падаю в низ.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу