Сайт восстановлен из веб архива. Сейчас он доступен только для чтения, скачивание материалов также недоступно. Если у вас до сих пор есть какие-то вопросы по разработке серверов CRMP, вы можете перейти на актуальный портал: https://pawno-rus.com

Перейти к содержимому

Уважаемый гость, если у Вас возникли проблемы с регистрацией, просьба обратиться в тех.поддержку или на почту admin@pawno-crmp.ru

Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.

Фотография
Урок

Автоматоны в Pawn

- - - - - criminal russia crmp pawno уроки crmp крмп автоматоны pawn pwn изучение

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1
offline   JoKeR2020

JoKeR2020
  • 502
    • Сообщений: 1 798
    • Регистрация: 26.11.14

Автоматоны в Pawn

 

 

В Pawn есть, так сказать система "состояний". Которая позволяет объявить несколько копий функций для использования в разных условиях.

 

Пример

 

 

Допустим нам нужно сохранить разные данные, например дома и игроков.

  • Обычная реализация

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

  • Реализация через автоматоны

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Согласитесь, вторая конструкция выглядит более приятней, ведь так?

  • rep_up.png Если понадобится добавить в список что нибудь ещё? - Код без автоматонов превратится в огромный switch!
  • rep_up.png Если вы захотите перенести код сохранения данных домов в файл housedata.inc? - Вам придётся создавать доп. функцию и заносить её туда.
  • rep_up.png Конструкция выполненная с помощью автоматонов работает немного быстрей, чем большой switch.

 

Теория

 

  • state

Метод state устанавливает для определённого типа состояние.

Например устанавливаем для data состояние houses:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Для условий с автоматонами есть сокращённое написание кода:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Выше код, тоже самое что и:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

  • entry

Для автоматонов зарезервирована функция entry(), которая вызывается при установке состояния.

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Результатом будет:

Hello

,

World!

 

Функции

 

 

Вы можете объявлять функции с одним состоянием:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Или с несколькими:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

^^^ Данная функция будет вызвана при состоянии one и two. ^^^

 

Или с любым другим состоянием:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

^^^ Данная функция будет вызвана если не было вызвано ни одной функции со своим состоянием ^^^

 

Автор: ziggi

Источник:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.


  • 6

#2
offline   Amfy

Amfy
  • 1609
    • Сообщений: 3 067
    • Регистрация: 24.01.14

Только вчера про них читал.

Забыл указать автора, по-моему автор ziggi


  • 0

#3
offline   JoKeR2020

JoKeR2020
  • 502
    • Сообщений: 1 798
    • Регистрация: 26.11.14

Amfy, точно, забыл. Не против если я укажу ссылку на его статью?


  • 0

#4
offline   compan

compan
  • 693
    • Сообщений: 2 091
    • Регистрация: 13.03.14

JoKeR2020, Достаточно указанного авторства. 


  • 0



Темы с аналогичным тегами Урок, criminal russia, crmp, pawno, уроки crmp, крмп, автоматоны, pawn, pwn, изучение

Количество пользователей, читающих эту тему: 1

0 пользователей, 0 гостей, 0 анонимных


    Alexa (1)

Данную тему посетили 307 пользователей