Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±

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

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

      Открыть/закрыть
    PHP код:
    CMD:spec(playeridparams[])
    {
        new 
    Float:Pos[3];
        if(
    Player[playerid][pAdmin] < || 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 
    i8;i++) TextDrawShowForPlayer(playerid,specmenu[playerid][i]);
        for(new 
    ii<= 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") == 0expamount 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") == 0expamount 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 а я в наблюдение заходил с интерьера то когда выхожу у меня виртуальный мир становится такой который у игрока, и я падаю в низ.
    Последний раз редактировалось kala4iks; 17.02.2017 в 23:33.

  2. #2
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Помогите пожалуйста.

  3. #3
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±
    http://pro-pawn.ru/showthread.php?11975
    В комментариях обсуждали ваш вопрос.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •