Folsky
Умник
И так, добрый день уважаемые пользователи Pawno-Info.Ru!
Хочу рассказать вам об достойной альтернативе пикапам.
Плюсы:
Меньше строк кода
Все делается в одном паблике
Не нужны переменные
Минусы:
Пикап не будет показываться (но при желании можно сделать и пикап)
И так. Теперь давайте сравнивать. Сравним на примере телепорта.
Переменные:
Создаем пикап:
Присваиваем ему действие:
Если вам это нужно, и вам это нравится - до свидания, тема не для вас.
И так, продолжаем. Теперь наша альтернатива.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Разбираем функцию
7.0 - это радиус действия (в метрах)
А далее просто идут координаты, это как бы начальная точка, на которой будет стоять игрок.
Теперь поясню смысл работы.
Когда игрок нажимает АЛЬТ в определенном месте, которое определяется проверкой IsPlayerInRangeOfPoint, он попадает в интерьер.
Теперь мы можем сократить все это в одну строчку - это инклуд dc_spp, который одновременно убивает двух зайцев:
- Делает наш код меньше
- Морозит игрока на некоторое время, чтобы он не провалился под землю.
Наша же функция, только с инклудом:
Описание функции:
X,Y,Z - координаты
interior - интерьер
world - виртуальный мир
tpcar - телепорт вместе с машиной (0 - нет, 1 - да).
Ссылка на инклуд:
За плюсами не гонюсь, но если помог желательно поставить
Хочу рассказать вам об достойной альтернативе пикапам.
Плюсы:
Меньше строк кода
Все делается в одном паблике
Не нужны переменные
Пикап не будет показываться (но при желании можно сделать и пикап)
И так. Теперь давайте сравнивать. Сравним на примере телепорта.
Переменные:
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))
А далее просто идут координаты, это как бы начальная точка, на которой будет стоять игрок.
Теперь поясню смысл работы.
Когда игрок нажимает АЛЬТ в определенном месте, которое определяется проверкой 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)
interior - интерьер
world - виртуальный мир
tpcar - телепорт вместе с машиной (0 - нет, 1 - да).
Ссылка на инклуд:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
За плюсами не гонюсь, но если помог желательно поставить
