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

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

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

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

Альтернатива пикапам

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

Folsky

Умник
И так, добрый день уважаемые пользователи Pawno-Info.Ru!
Хочу рассказать вам об достойной альтернативе пикапам.
Плюсы:

Меньше строк кода
Все делается в одном паблике
Не нужны переменные
​
Минусы:

Пикап не будет показываться (но при желании можно сделать и пикап)
​

И так. Теперь давайте сравнивать. Сравним на примере телепорта.

Переменные:
PHP:
new tppickup;
Создаем пикап:
PHP:
tppickup = CreatePickup(1318,2,-86.2432,-299.3747,2.7646);
Присваиваем ему действие:
PHP:
if(pickupid == tppickup)
    {
    SetPlayerPos(playerid,2533.6680,-1282.0072,1048.2891);
    SetPlayerFacingAngle(playerid,180);
    SetPlayerInterior(playerid,2);
    }
Если вам это нужно, и вам это нравится - до свидания, тема не для вас.
И так, продолжаем. Теперь наша альтернатива.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
PHP:
if(newkeys == KEY_WALK)
{
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438))
    {
         SetPlayerPos(playerid,2533.6680,-1282.0072,1048.2891);
         SetPlayerFacingAngle(playerid,180);
         SetPlayerInterior(playerid,2);
    }
}
Разбираем функцию
PHP:
 if(IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438))
7.0 - это радиус действия (в метрах)
А далее просто идут координаты, это как бы начальная точка, на которой будет стоять игрок.
Теперь поясню смысл работы.

Когда игрок нажимает АЛЬТ в определенном месте, которое определяется проверкой IsPlayerInRangeOfPoint, он попадает в интерьер.
Теперь мы можем сократить все это в одну строчку - это инклуд dc_spp, который одновременно убивает двух зайцев:
- Делает наш код меньше
- Морозит игрока на некоторое время, чтобы он не провалился под землю.
Наша же функция, только с инклудом:
PHP:
if(newkeys == KEY_WALK)
{
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438))
    {
         SetPlayerPosEx(playerid,2533.6680,-1282.0072,1048.2891,0,1,0);
     }
}
Описание функции:
PHP:
SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, interior, world, tpcar)
X,Y,Z - координаты
interior - интерьер
world - виртуальный мир
tpcar - телепорт вместе с машиной (0 - нет, 1 - да).

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