• Страница 1 из 1
  • 1
Форум » Программирование в Pawno » Стандартные функции » [0.3.7] GetPlayerCameraTarget
[0.3.7] GetPlayerCameraTarget
Добавлено 12.05.2016 в 00:54 | Сообщение №1
Сообщений: 265 Репутация: 0
Администраторы
Цитата
Доступно с SA-MP 0.3.7 RC3!

GetPlayerCameraTargetPlayer(playerid) для нахождения объекта, машины, игрока, на которого игрок смотрит.

GetPlayerCameraTargetPlayer(playerid) - Узнает ID игрока, на которого смотрит игрок
GetPlayerCameraTargetVehicle(playerid) - Узнает ID машины, на которую смотрит игрок
GetPlayerCameraTargetActor(playerid) - Узнает ID актера, на которого смотрит игрок
GetPlayerCameraTargetObject(playerid) - Узнает ID объекта, на который смотрит игрок

Параметры:
playerid - ID игрока

Эта функция по умолчанию отключена для экономии трафика. Используйте EnablePlayerCameraTarget , чтобы включить ее для каждого игрока.
Код
public OnPlayerConnect(playerid)
{
     EnablePlayerCameraTarget(playerid, 1);
     return 1;
}

1 - включить
0 - выключить

Теперь рассмотрим, как это работает.

GetPlayerCameraTargetPlayer(playerid):
Код
new playerTarget = GetPlayerCameraTargetPlayer(playerid);
if(IsPlayerAdmin(playerTarget))
{
    GameTextForPlayer(playerid, "Looking at an admin", 3000, 3);
}

Не путаем эту функцию с GetPlayerTargetPlayer!

GetPlayerCameraTargetVehicle(playerid):
Код
new globalVehicleID;
public OnGameModeInit()
{
    globalVehicleID = CreateVehicle(596, 0, 0, 3, 0, 0, 0, -1, -1, -1);
    return 1;
}

public OnPlayerConnect(playerid)
{
    EnablePlayerCameraTarget(playerid, true);
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/check", true))
    {
        new vehicleid = GetPlayerCameraTargetVehicle(playerid);
        if(vehicleid == globalVehicleID)
        {
             SendClientMessage(playerid, -1, "Ты смотришь на свой автомобиль!");
        }
        else
        {
            SendClientMessage(playerid, -1, "Ты  не смотришь на свой автомобиль.");
        }
        return 1;
    }
    return 0;
}


GetPlayerCameraTargetActor(playerid):
Код
new bool:ActorHandsup[MAX_ACTORS];

public OnPlayerConnect(playerid)
{
    EnablePlayerCameraTarget(playerid, 1);
    return 1;
}

public OnPlayerUpdate(playerid)
{
    // Find out what actor (if any) the player is LOOKING at
    new playerTargetActor = GetPlayerCameraTargetActor(playerid);

    // If they ARE looking at ANY actor
    if(playerTargetActor != INVALID_ACTOR_ID)
    {
        // Store the player's weapon so we can check if they are armed
        new playerWeapon = GetPlayerWeapon(playerid);

        // Get the player's keys so we can check if they are aiming
        new keys, updown, leftright;
        GetPlayerKeys(playerid, keys, updown, leftright);

        // If the actor hasn't put its hands up yet, AND the player is ARMED
        if(!ActorHandsup [playerTargetActor]&& playerWeapon >= 22 && playerWeapon <= 42 && keys & KEY_AIM)
        {
            // Apply 'hands up' animation
            ApplyActorAnimation(playerTargetActor, "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0);

            // Set 'ActorHandsup' to true, so the animation won't keep being reapplied
            ActorHandsup [playerTargetActor]= true;
        }
    }
    return 1;
}

Не путаем эту функцию с GetPlayerTargetActor!

GetPlayerCameraTargetObject(playerid):
Код
new globalObjectID;
public OnGameModeInit()
{
    globalObjectID = CreateObject(1337, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0);
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/check", true))
    {
        new objectid = GetPlayerCameraTargetObject(playerid);
        if(objectid == globalObjectID)
        {
             SendClientMessage(playerid, -1, "You're looking at your object.");
        }
        else if(objectid == INVALID_OBJECT_ID) // INVALID_OBJECT_ID = 65535
        {
             SendClientMessage(playerid, -1, "You're not looking at any object.");
        }
        return 1;
    }
    return 0;
}


Программист любитель :)
Форум » Программирование в Pawno » Стандартные функции » [0.3.7] GetPlayerCameraTarget
  • Страница 1 из 1
  • 1
Поиск: