Просмотр полной версии : [Вопрос] Пикап
Здравствуйте, подскажите, как будет лучше создать пикапы входа.
Отдельно создавать пикап как объект через CreatePickup и делать Телепорт в интерьер и наоборот через IsPlayerInRangeOfPoint.
Или же значение приравнивать к Пикапу и уже совершать действие в OnPlayerPickUpPickup
vovandolg
06.01.2017, 00:40
Ну как делают посмотри во всех модах
Создали пикап и записали его в глобальную переменную,
далее в каллбеке OnPlayerPickUpPickup уже сверяют(с глоб. переменной) на какой пикап наступил игрок,
а там далее и другие действия внутри проверок.
Ну как делают посмотри во всех модах
Создали пикап и записали его в глобальную переменную,
далее в каллбеке OnPlayerPickUpPickup уже сверяют(с глоб. переменной) на какой пикап наступил игрок,
а там далее и другие действия внутри проверок.
Это понятно, просто не знаю что лучше...
Есть вариант например создать массив
Lspd_pickup[6];
if(pickupid == Lspd_pickup[0])
{
SetPlayerPos(playerid, 246.7689,65.2401,1003.6406);
SetPlayerInterior(playerid, 6);
SetPlayerFacingAngle(playerid, 0.0);
SetCameraBehindPlayer(playerid);
PlayerInfo[playerid][pInt] = 6;
SetPlayerVirtualWorld(playerid,1);
}
if(pickupid == Lspd_pickup[1])
{
SetPlayerPos(playerid, 1552.5708,-1675.5957,16.1953);
SetPlayerInterior(playerid, 0);
SetPlayerFacingAngle(playerid, 90.0);
SetCameraBehindPlayer(playerid);
PlayerInfo[playerid][pInt] = 0;
SetPlayerVirtualWorld(playerid,0);
}
Lspd_pickup[0] = CreatePickup(19132, 23, 1554.8417,-1675.6074,16.1953, 0);
Lspd_pickup[2] = CreatePickup(19132, 23, 1524.4866,-1677.8508,6.2188, 0);
А можно сделать так еще.
Создать просто пикапы.
CreatePickup(19132, 23, 1554.8417,-1675.6074,16.1953, 0);
CreatePickup(19132, 23, 1524.4866,-1677.8508,6.2188, 0);
А через IsPlayerInRangeOfPoint делать уже телепорт.
Я бы предложил второй вариант. Или же вообще использовать динамические зоны, например, и уже по ним определять какой пикап сработал. Это всяко удобнее, нежели пикап, срабатывающий когда на него становишься
vovandolg
06.01.2017, 11:35
Пикап на то он и пикап что на него становится надо, не нравится юзайте круг шамболы:pardon:
Я за первый вариант не чего плохого не вижу в нём, тем более что не надо не чего другого вызывать и затрачиваться во времени.
Пикап на то он и пикап что на него становится надо, не нравится юзайте круг шамболы:pardon:
Я за первый вариант не чего плохого не вижу в нём, тем более что не надо не чего другого вызывать и затрачиваться во времени.
Ну мне тоже 1 показался удобнее, просто узнал, какой из вариантов эффективнее и менее нагружает мод.
Всем спасибо.
Пикап на то он и пикап что на него становится надо, не нравится юзайте круг шамболы:pardon:
Я за первый вариант не чего плохого не вижу в нём, тем более что не надо не чего другого вызывать и затрачиваться во времени.
И потом изобретай велосипеды для того, чтоб пикапы не срабатывали повторно, когда тебе, например, нужно показывать диалог при взятии пикапа :fool: А после, благодаря твоему изобретению, чтоб повторно взять пикап и открыть диалог, нужно будет отойти от пикапа, подождать и опять подойти. Когда с кнопкой всё закончилось бы на том, что тебе просто нужно повторно нажать ALT.
Автоподбор пикапов - это очень удобно
http://risovach.ru/upload/2013/01/generator/kayf_8509696_orig_.png
А вот если в OnPlayerPickUpPickup сделать проверку на нажатую кнопку через GetPlayerKeys.
Я нуб, ну очень нуп
vovandolg
06.01.2017, 17:40
И потом изобретай велосипеды для того, чтоб пикапы не срабатывали повторно, когда тебе, например, нужно показывать диалог при взятии пикапа :fool: А после, благодаря твоему изобретению, чтоб повторно взять пикап и открыть диалог, нужно будет отойти от пикапа, подождать и опять подойти. Когда с кнопкой всё закончилось бы на том, что тебе просто нужно повторно нажать ALT.
Автоподбор пикапов - это очень удобно
http://risovach.ru/upload/2013/01/generator/kayf_8509696_orig_.png
Ну перейдем к тому что человек делает щас телепорты, а для такого хватит и простой системы)
А во вторых мы в одной теме уже говорили про это как можно сделать в несколько строк чтобы было удобнее.:blush2:
Ну перейдем к тому что человек делает щас телепорты, а для такого хватит и простой системы)
Ну либо делать телепорт по принципу "телепортировать чуть дальше пикапа, который является выходом из интерьера" (в итоге, целые 4 координаты подбирать нужно), либо просто телепортировать на сам пикап (всего 2 координаты). В любом случае оно проще :)
А во вторых мы в одной теме уже говорили про это как можно сделать в несколько строк чтобы было удобнее.:blush2:
Метод, на самом деле, не особо рабочий, ибо там не учитывается, что пикапы обновляются всего раз в секунду и момент обновления пикапов часто просто не совпадает с приходом пакета о том, что игрок нажал на нужную кнопку. В итоге, получается, что ты жмёшь кнопку и потом около секунды просто стоишь (а то и вообще ничего не сработает).
Гораздо надёжнее именно через описанный мною в первом моём сообщении делать телепорт. Сейчас может даже накидаю инклуд, который позволит подобные телепорты создавать двумя функциями.
Ну либо делать телепорт по принципу "телепортировать чуть дальше пикапа, который является выходом из интерьера" (в итоге, целые 4 координаты подбирать нужно), либо просто телепортировать на сам пикап (всего 2 координаты). В любом случае оно проще :)
Ну вот мне как раз и нужно по принципу "телепортировать чуть дальше пикапа, который является выходом из интерьера.
Ну вот мне как раз и нужно по принципу "телепортировать чуть дальше пикапа, который является выходом из интерьера.
При желании можно и пикапы на кнопку по такому принципу сделать. А уж как будет тебе удобней - решай сам.
Но я, имхо, всегда считал автоподбор пикапов зашкваром. Они хороши только в редких случаях. В остальных же лучше дать игроку выбор, использовать пикап или не использовать. Точнее, пикап будет лишь указанием того, что в таком-то месте можно нажать на кнопку и сработает действие.
Вопрос, как я понимаю, решён, да?
При желании можно и пикапы на кнопку по такому принципу сделать. А уж как будет тебе удобней - решай сам.
Но я, имхо, всегда считал автоподбор пикапов зашкваром. Они хороши только в редких случаях. В остальных же лучше дать игроку выбор, использовать пикап или не использовать. Точнее, пикап будет лишь указанием того, что в таком-то месте можно нажать на кнопку и сработает действие.
Вопрос, как я понимаю, решён, да?
Да, решен. Спасибо)
Просто хотелось узнать еще, нагрузка и в плане оптимизации это как то повлияет?
Да, решен. Спасибо)
Просто хотелось узнать еще, нагрузка и в плане оптимизации это как то повлияет?
Ни реализация через пикапы, ни реализация через IsPlayerInRangeOfPoint не заставят твой сервер лагать.
А большего знать и не нужно :)
Закрыто
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot