• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
Телепорт по пикапу при нажатии на "ALT"
SnikezzZДата: Понедельник, 09.11.2015, 18:09:32 | Сообщение # 1

Группа: Пользователи
Сообщений: 5
Всем привет. На форуме этом я в 1й раз.
Смотрел многие уроки и половина из них - это вырезки.
Зачем вырезать нубо-код из всяких RLSок?
Ну не об этом.
Видел здесь 1 тему, человек искал телепорт по пикапу и я постараюсь донести до вас данный функционал.

И так... Будем использовать несколько готовый pawn функций:
1. CreatePickup
2. IsPlayerInRangeOfPoint
3. OnPlayerKeyStateChange

Для начала ко всем вашим define вставим макрос, который сокращает длинное слово CreatePickup:

Код
#define cPickup CreatePickup

Далее создадим переменную наших пикапов:

Код
new testpick[3];

После чего мы создаем наши пикапы, но перед их созданием я хочу некоторым начинающим юзерам сделать подсказку:
- Не нужно вставлять пикапы в OnGameModeInit, т.к. у вас будет путаница.
Мы воспользуемся функцией stock, которая нам поможет засунуть все пикапы в отдельную назовем так функцию, которую после мы выведем в OnGameModeInit.
Некоторые спросят:
- А почему не сделать через public?
- Потому что в public обычно вставляется функционал, который имеет таймер.

Спускаемся в конец мода и создаем наш stock:

Код
stock LoadPick()// stock название(стандартные функции playerid и т.д.)
{// открываем

}// закрываем

И так... Создаем наши пикапы, записывая их в наш созданный stock Load...:

Код
testpick[0] = cPickup(id pickup, style pickup, x,y,z, virtual world);
testpick[1] = cPickup(id pickup, style pickup, x,y,z, virtual world);
testpick[2] = cPickup(id pickup, style pickup, x,y,z, virtual world);
Поясню все по порядку:
1. testpick[0] - мы объявляем наш пикап через переменную, на которую после будет писать функционал.
2. cPickup - используем наш макрос, который воспроизводит CreatePickup
3. id pickup - id пикапа
4. style pickup - тип/стиль пикапа, все называют по-разному
5. x,y,z - координаты пикапа
6. virtual world - номер вирт мира, если есть. Если его нет, то ничего не ставим, либо же ставим 0

Далее идем в паблик под наименованием OnPlayerPickUpPickup.
В нем мы выведем подсказку для игрока, когда он встает на пикап.

Код
new pic = pickupid; // сокращаем pickupid
if(pic == testpick[0] &&  testpick[1] && testpick[2]) // if как все знают - оператор условия. в него вписываются условия. на данный момент мы в условие записали выполнение какого-либо действия когда встали на пикап
   { // открываем нашу функцию для условия
       GameTextForPlayer(playerid,"~w~PRESS ~g~LALT",5000,5); // объявляем функционал, который будет выполняться. в моем случае - вывод текста "PRESS LALT" на экран игрока
   } // и так же закрываем


Мы почти подошли в конец данного урока.
Теперь нам нужно выполнить телепорт по нажатию alt'a на пикапе, а т.е. в его точке
Идем в OnPlayerKeyStateChange и вставляем:

Код
if(newkeys & 1024 && IsPlayerInRangeOfPoint(playerid,2, x,y,z)) // и так... здесь я много расписывать не буду... 1024 - id клавиши alt, IsPlayerInRange....(Проверяет находится ли игрок в указанном радиусе от точки), 2 - радиус, x,y,z - позиция пикапа, на котором будет выполнена функция
   {
    SetPlayerPos(playerid, x,y,z); // само выполнение функции, в моем случае x,y,z - телепорт по координатам
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
   }
   if(newkeys & 1024 && IsPlayerInRangeOfPoint(playerid,2, x,y,z))
   {
    SetPlayerPos(playerid, x,y,z);
          SetPlayerInterior(playerid, 0);
          SetPlayerVirtualWorld(playerid, 0);
   }
if(newkeys & 1024 && IsPlayerInRangeOfPoint(playerid,2, x,y,z))
{
    SetPlayerPos(playerid, x,y,z);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
}

Ну вроде бы все) А чуть ли не забыл... В OnGameModeInit вставляем название нашего стока:

Код
LoadPickup();

Ссылки к этому уроку для новичков:
http://wiki.sa-mp.com/wiki/CreatePickup_RU
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint_RU
http://wiki.sa-mp.com/wiki/SetPlayerPos_RU
http://wiki.sa-mp.com/wiki/GameTextForPlayer
http://wiki.sa-mp.com/wiki/GameTextForAll


[url]http://vk.com/ability.news[/url]
[b]Готовность мода - 1%[/b]
 
СообщениеВсем привет. На форуме этом я в 1й раз.
Смотрел многие уроки и половина из них - это вырезки.
Зачем вырезать нубо-код из всяких RLSок?
Ну не об этом.
Видел здесь 1 тему, человек искал телепорт по пикапу и я постараюсь донести до вас данный функционал.

И так... Будем использовать несколько готовый pawn функций:
1. CreatePickup
2. IsPlayerInRangeOfPoint
3. OnPlayerKeyStateChange

Для начала ко всем вашим define вставим макрос, который сокращает длинное слово CreatePickup:

Код
#define cPickup CreatePickup

Далее создадим переменную наших пикапов:

Код
new testpick[3];

После чего мы создаем наши пикапы, но перед их созданием я хочу некоторым начинающим юзерам сделать подсказку:
- Не нужно вставлять пикапы в OnGameModeInit, т.к. у вас будет путаница.
Мы воспользуемся функцией stock, которая нам поможет засунуть все пикапы в отдельную назовем так функцию, которую после мы выведем в OnGameModeInit.
Некоторые спросят:
- А почему не сделать через public?
- Потому что в public обычно вставляется функционал, который имеет таймер.

Спускаемся в конец мода и создаем наш stock:

Код
stock LoadPick()// stock название(стандартные функции playerid и т.д.)
{// открываем

}// закрываем

И так... Создаем наши пикапы, записывая их в наш созданный stock Load...:

Код
testpick[0] = cPickup(id pickup, style pickup, x,y,z, virtual world);
testpick[1] = cPickup(id pickup, style pickup, x,y,z, virtual world);
testpick[2] = cPickup(id pickup, style pickup, x,y,z, virtual world);
Поясню все по порядку:
1. testpick[0] - мы объявляем наш пикап через переменную, на которую после будет писать функционал.
2. cPickup - используем наш макрос, который воспроизводит CreatePickup
3. id pickup - id пикапа
4. style pickup - тип/стиль пикапа, все называют по-разному
5. x,y,z - координаты пикапа
6. virtual world - номер вирт мира, если есть. Если его нет, то ничего не ставим, либо же ставим 0

Далее идем в паблик под наименованием OnPlayerPickUpPickup.
В нем мы выведем подсказку для игрока, когда он встает на пикап.

Код
new pic = pickupid; // сокращаем pickupid
if(pic == testpick[0] &&  testpick[1] && testpick[2]) // if как все знают - оператор условия. в него вписываются условия. на данный момент мы в условие записали выполнение какого-либо действия когда встали на пикап
   { // открываем нашу функцию для условия
       GameTextForPlayer(playerid,"~w~PRESS ~g~LALT",5000,5); // объявляем функционал, который будет выполняться. в моем случае - вывод текста "PRESS LALT" на экран игрока
   } // и так же закрываем


Мы почти подошли в конец данного урока.
Теперь нам нужно выполнить телепорт по нажатию alt'a на пикапе, а т.е. в его точке
Идем в OnPlayerKeyStateChange и вставляем:

Код
if(newkeys & 1024 && IsPlayerInRangeOfPoint(playerid,2, x,y,z)) // и так... здесь я много расписывать не буду... 1024 - id клавиши alt, IsPlayerInRange....(Проверяет находится ли игрок в указанном радиусе от точки), 2 - радиус, x,y,z - позиция пикапа, на котором будет выполнена функция
   {
    SetPlayerPos(playerid, x,y,z); // само выполнение функции, в моем случае x,y,z - телепорт по координатам
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
   }
   if(newkeys & 1024 && IsPlayerInRangeOfPoint(playerid,2, x,y,z))
   {
    SetPlayerPos(playerid, x,y,z);
          SetPlayerInterior(playerid, 0);
          SetPlayerVirtualWorld(playerid, 0);
   }
if(newkeys & 1024 && IsPlayerInRangeOfPoint(playerid,2, x,y,z))
{
    SetPlayerPos(playerid, x,y,z);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
}

Ну вроде бы все) А чуть ли не забыл... В OnGameModeInit вставляем название нашего стока:

Код
LoadPickup();

Ссылки к этому уроку для новичков:
http://wiki.sa-mp.com/wiki/CreatePickup_RU
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint_RU
http://wiki.sa-mp.com/wiki/SetPlayerPos_RU
http://wiki.sa-mp.com/wiki/GameTextForPlayer
http://wiki.sa-mp.com/wiki/GameTextForAll

Автор - SnikezzZ
Дата добавления - 09.11.2015 в 18:09:32
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
21:16:35
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: