|
Форум Программирование в Pawno Стандартные функции [0.3.7] GetPlayerCameraTarget |
[0.3.7] GetPlayerCameraTarget |
Цитата Доступно с 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; } Программист любитель :) |
| |||
| |||