• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
Умный телепорт на ДМ.
AppLeДата: Воскресенье, 30.10.2011, 21:34:52 | Сообщение # 1

Группа: Пользователи
Сообщений: 20
Здраствуйте Ув. пользователи.

Видел на данном форуме урок: Телепорт на ДМ с сохранением позиции.

Он мне показался убогим, и я решил сделать его более "умным".

[!]P.S: за основу взят тот урок.

И так начнём:

1)Создадим переменную:

Code
new DM[MAX_PLAYERS];


2)Cоздадим саму команду телепорта на ДМ зону:

Code
    if (strcmp(cmdtext, "/дм", true)==0 || strcmp(cmd, "/dm", true) == 0)
      {
       DM[playerid] = 1;//установим игроку, что он на ДМ
       SetPlayerVirtualWorld(playerid,1);//установим вирт. мир
       SetPlayerInterior(playerid,0);//установим 0 инт. (улица)
       ResetPlayerWeapons(playerid);//отними все оружие
       GivePlayerWeapon(playerid, 24, 100);//дадим дигл
       SetPlayerHealth(playerid,100);//установим 100 хп
         SendClientMessage(playerid, -1, "Чтобы выйти из ДМ пропишите: /выход.");//выдадим сообщение
       switch(random(4))//5 рандомных телепорта на ДМ.
      {
       case 0: SetPlayerPos(playerid,2786.5872,-1495.9363,290.6088);//1 позиция
       case 1: SetPlayerPos(playerid,2855.9241,-1520.5049,290.1857);//2 позиция
       case 2: SetPlayerPos(playerid,2882.8647,-1584.2328,290.7744);//3 позиция
       case 3: SetPlayerPos(playerid,2865.0654,-1607.5795,290.8746);//4 позиция
       case 4: SetPlayerPos(playerid,2808.3269,-1587.1399,290.1857);//5 позиция
      }
       return 1;
      }


Думаю тут все понятно.

Приступим к команде /выход:

Code
    if (strcmp(cmdtext, "/выход", true)==0 || strcmp(cmd, "/exit", true) == 0)
      {
      new DM;//обозначим переменную
       DM = GetPlayerVirtualWorld(playerid);//приравняем переменную DM к вирт. миру игрока (его мы установили при тп. на ДМ)
        if (DM == 1)//если переменная ДМ = вирт. миру игрока то:
        {
       DM[playerid] = 0;//сними условие нахождения игрока на ДМ
       SpawnPlayer(playerid);//заспавним игрока
       SetPlayerVirtualWorld(playerid,0);//установим 0 вирт. мир [!] обязательно!
       GivePlayerWeapon(playerid, 1, 10);//
       GivePlayerWeapon(playerid, 2, 20);//Дадим игроку пушки
       GivePlayerWeapon(playerid, 3, 30);//
       SetPlayerHealth(playerid,100);//Дадим хп.
      }
       if (DM == 0)return SendClientMessage(playerid,-1,"Вы не на ДМ.");//но если переменная DM не равна виртуальному миру игрок, то выдадим сообщение.
      return 1;
      }


Теперь мелочи:

Добавим в паблик: OnPlayerConnect:

Code
  DM[playerid] = 0;


И в паблик OnPlayerSpawn:

Code
    if(DM[playerid] == 1) return OnPlayerCommandText(playerid,"/дм");//если переменная DM=1 то вернем игрока на дм зону.


Готово.

---
Плюсы этого урока:

1)Если игрок не на дм он не сможет заспавниться.
2)Мы установили вирт. мир => игрок не будет виден другим игрокам.

---

Автор урока: AppLe.

Спасибо за внимание.


Сообщение отредактировал AppLe - Понедельник, 31.10.2011, 10:36:58
 
СообщениеЗдраствуйте Ув. пользователи.

Видел на данном форуме урок: Телепорт на ДМ с сохранением позиции.

Он мне показался убогим, и я решил сделать его более "умным".

[!]P.S: за основу взят тот урок.

И так начнём:

1)Создадим переменную:

Code
new DM[MAX_PLAYERS];


2)Cоздадим саму команду телепорта на ДМ зону:

Code
    if (strcmp(cmdtext, "/дм", true)==0 || strcmp(cmd, "/dm", true) == 0)
      {
       DM[playerid] = 1;//установим игроку, что он на ДМ
       SetPlayerVirtualWorld(playerid,1);//установим вирт. мир
       SetPlayerInterior(playerid,0);//установим 0 инт. (улица)
       ResetPlayerWeapons(playerid);//отними все оружие
       GivePlayerWeapon(playerid, 24, 100);//дадим дигл
       SetPlayerHealth(playerid,100);//установим 100 хп
         SendClientMessage(playerid, -1, "Чтобы выйти из ДМ пропишите: /выход.");//выдадим сообщение
       switch(random(4))//5 рандомных телепорта на ДМ.
      {
       case 0: SetPlayerPos(playerid,2786.5872,-1495.9363,290.6088);//1 позиция
       case 1: SetPlayerPos(playerid,2855.9241,-1520.5049,290.1857);//2 позиция
       case 2: SetPlayerPos(playerid,2882.8647,-1584.2328,290.7744);//3 позиция
       case 3: SetPlayerPos(playerid,2865.0654,-1607.5795,290.8746);//4 позиция
       case 4: SetPlayerPos(playerid,2808.3269,-1587.1399,290.1857);//5 позиция
      }
       return 1;
      }


Думаю тут все понятно.

Приступим к команде /выход:

Code
    if (strcmp(cmdtext, "/выход", true)==0 || strcmp(cmd, "/exit", true) == 0)
      {
      new DM;//обозначим переменную
       DM = GetPlayerVirtualWorld(playerid);//приравняем переменную DM к вирт. миру игрока (его мы установили при тп. на ДМ)
        if (DM == 1)//если переменная ДМ = вирт. миру игрока то:
        {
       DM[playerid] = 0;//сними условие нахождения игрока на ДМ
       SpawnPlayer(playerid);//заспавним игрока
       SetPlayerVirtualWorld(playerid,0);//установим 0 вирт. мир [!] обязательно!
       GivePlayerWeapon(playerid, 1, 10);//
       GivePlayerWeapon(playerid, 2, 20);//Дадим игроку пушки
       GivePlayerWeapon(playerid, 3, 30);//
       SetPlayerHealth(playerid,100);//Дадим хп.
      }
       if (DM == 0)return SendClientMessage(playerid,-1,"Вы не на ДМ.");//но если переменная DM не равна виртуальному миру игрок, то выдадим сообщение.
      return 1;
      }


Теперь мелочи:

Добавим в паблик: OnPlayerConnect:

Code
  DM[playerid] = 0;


И в паблик OnPlayerSpawn:

Code
    if(DM[playerid] == 1) return OnPlayerCommandText(playerid,"/дм");//если переменная DM=1 то вернем игрока на дм зону.


Готово.

---
Плюсы этого урока:

1)Если игрок не на дм он не сможет заспавниться.
2)Мы установили вирт. мир => игрок не будет виден другим игрокам.

---

Автор урока: AppLe.

Спасибо за внимание.

Автор - AppLe
Дата добавления - 30.10.2011 в 21:34:52
[east_side]_traneДата: Понедельник, 31.10.2011, 10:08:43 | Сообщение # 2

Группа: Пользователи
Сообщений: 443
Code
BigDM[playerid] = 0;


BigDm ? Не, не слышал


WTF ?! Откуда взял эту переменную ?
Вроде в уроке была переменная DM :)


Pawn скриптер
Мои услуги по оптимизации
 
Сообщение
Code
BigDM[playerid] = 0;


BigDm ? Не, не слышал


WTF ?! Откуда взял эту переменную ?
Вроде в уроке была переменная DM :)

Автор - [east_side]_trane
Дата добавления - 31.10.2011 в 10:08:43
AppLeДата: Понедельник, 31.10.2011, 10:36:30 | Сообщение # 3

Группа: Пользователи
Сообщений: 20
Из своего мода вырезал, походу изменял переменные :D

Щас исправлю, спасибо :)
 
СообщениеИз своего мода вырезал, походу изменял переменные :D

Щас исправлю, спасибо :)

Автор - AppLe
Дата добавления - 31.10.2011 в 10:36:30
[MTA]MaPeR5518Дата: Суббота, 26.11.2011, 08:20:58 | Сообщение # 4

Группа: Пользователи
Сообщений: 181
Я даже знаю ЧЕЙ это урок :\
PS: Case не удачно

Добавлено (26.11.2011, 08:20:58)
---------------------------------------------
Я даже знаю ЧЕЙ это урок :\
PS: Case не удачно


Ничто не останавливает полет мысли программиста , как компилятор!
+ не помешает
 
СообщениеЯ даже знаю ЧЕЙ это урок :\
PS: Case не удачно

Добавлено (26.11.2011, 08:20:58)
---------------------------------------------
Я даже знаю ЧЕЙ это урок :\
PS: Case не удачно


Автор - [MTA]MaPeR5518
Дата добавления - 26.11.2011 в 08:20:58
=GODmode=Дата: Среда, 21.12.2011, 19:00:22 | Сообщение # 5

Группа: Пользователи
Сообщений: 6
Получается, что если игрок умирает он спавнится там же на ДМ??? Пока не введет /выход?
Это так? Если это так, то это классная ДМ зона будет)
 
СообщениеПолучается, что если игрок умирает он спавнится там же на ДМ??? Пока не введет /выход?
Это так? Если это так, то это классная ДМ зона будет)

Автор - =GODmode=
Дата добавления - 21.12.2011 в 19:00:22
[MTA]MaPeR5518Дата: Четверг, 22.12.2011, 13:40:01 | Сообщение # 6

Группа: Пользователи
Сообщений: 181
=GODmode=, да, кстати, это мой урок! Копирайты не написал

Ничто не останавливает полет мысли программиста , как компилятор!
+ не помешает
 
Сообщение=GODmode=, да, кстати, это мой урок! Копирайты не написал

Автор - [MTA]MaPeR5518
Дата добавления - 22.12.2011 в 13:40:01
  • Страница 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)

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

vkontakte :samp-pawno.ru: