• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
Форум » Pawno » Уроки » Телепорт по пикапу при нажатии на "ALT"
Телепорт по пикапу при нажатии на "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
Форум » Pawno » Уроки » Телепорт по пикапу при нажатии на "ALT"
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Услуги скриптинга и Так же MAP's
pawno(основым скриптинга для новичков)
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS
DistHost.Pro - это одна из начинающих компаний
[Продажа] Admin Panel System 1.3

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

(1081)

Считаем до 1000

(274)

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

(260)

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

(80)

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

(71)

Баннеробмен

(64)

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

(64)

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

(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)

devbogatyrev

(Вторник 18:47:29)

quentinmarquis

(Суббота 22:27:18)

202КаЧоК202

(Четверг 11:20:46)

AltoAngelo

(Среда 14:18:33)

zaporohanlo

(Вторник 18:27:06)

sturman1998

(Вторник 00:15:31)

jamilaliyev2k18

(Суббота 09:55:04)

lodffgfg17

(Пятница 12:07:26)

korcuganov71

(Пятница 09:56:20)

evdos123

(Четверг 19:09:17)

Maxspiker2017

(Среда 16:22:36)

tkaquk95

(Среда 12:54:38)

Вверх
00:33:12
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2018

vkontakte :samp-pawno.ru: