Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 7
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: robot Bot, crawl Bot, robot Bot, crawl Bot, Yahoo Bot, Yandex Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 27-11-2011, 00:06 Просмотров: 12962

    Урок 1. Числа и работа с числами (Ответ на вопрос что такое %d)

    Какие бывают числа в скриптинге?

    В скриптинге есть 2 типа чисел, как и в математике в прочем:
    1. Целые числа 5, 10 или 100
    2. Дробные числа 5.5 или 10.3
    В скриптинге это принципиально важно, как и в других языках программирования.
    Поймите раз и навсегда, компьютер это как чистый лист бумаги, что бы он что то сделал - ему необходимо это "объяснить".

    Как работать с числами, где они хранятся и как к ним обратиться?

    Если вы в коде просто так напишите где то число, то это ни чего вам не даст,вернее скорее наоборот, выдаст ошибку и плагин не скомпилируется.
    Все данные с которыми работает плагин хранятся в переменных или массивах.
    Что бы создать простую переменную в которую можно будет поместить одно число, необходимо ее объявить ( создать - по нашему простому )
    new MoeChislo

    new - Обозначает создание ( то есть что это новая переменная)
    MoeChislo - Название переменной ( можно задавать любое, какое вам взбредет в голову, но естественно лучше что бы оно было понятным по смыслу что в ней хранится и было на английском языке(латинице))

    Как же поместить число в данную переменную?
    Очень просто, или сразу же при объявлении ее:
    new MoeChislo = 5

    Или потом:
    new MoeChislo
    MoeChislo = 5


    В дальнейшем в коде плагина, если вы хотите обратиться в любой из функций, вы ставите не число а свою переменную MoeChislo.

    Это что касалось целых чисел, теперь о дробных.
    Для объявления новой дробной переменной (число с плавающей точкой) необходимо добавить слово Float перед переменной:
    new Float: MoeDrobnoeChislo

    Поместить в не число можно точно так же как и с обычным числом, но не забывая что надо указывать дробь:
    new Float: MoeDrobnoeChislo = 5.5


    Работа с числами, сложение, вычитание и другие математические действия.

    Все плагины работают с числами, складывают и вычитают их и делается это не чуть не сложнее, вернее точно так же как и в младших классах в школе, с единственным различием что работа происходит не с самими числами, а с переменными которые их хранят.
    Чем то похоже на уравнения.

    • Сложение:
      new Integer_one = 3
      new Integer_two = 5
      new equality = Integer_one + Integer_two

      То есть это ни что иное как: 3+5=8 Восемь записывается в переменную equality
    • Вычитание:
      new Integer_one = 8
      new Integer_two = 5
      new equality = Integer_one - Integer_two

      8-5=3
    • Умножение
      new Integer_one = 3
      new Integer_two = 4
      new equality = Integer_one * Integer_two

      3*4=12
    • Деление:
      new Integer_one = 15
      new Integer_two = 5
      new equality = Integer_one / Integer_two

      15/5=3

    Разумеется это не все действия которые можно с числами проделать, но думаю вы сами найдете способы обращения с более сложными математическими, алгебраическими и другими действиями.

    Как вывести число в сообщение игроку и не только ему

    Так как я сам не программист, а самоучка, расскажу как я это понимаю, а не как профессионал.
    Для подстановки различных данных в сообщения существуют специальные конструкции, конструкции для чисел:
    • %d - Для подстановки целого числа
      server_print("Вывод целого числа: %d",integer)
    • %f - Для подстановки дробного числа
      server_print("Вывод дробного числа: %f",num_float)


    Множество чисел. Массивы чисел

    Для хранения множества чисел, необходимы "массивы".
    Например это необходимо для хранения количества фрагов игроков, не создавать же на каждого игрока отдельную переменную.
    Если объявляя переменную, после названия поставить две квадратные скобки [] то это уже будет массив.
    new MyFirstArray [x]

    X это количество чисел, которые можно хранить в данном массиве (Еще это дело называют Размером массива)

    Для того что бы нам обратиться к какой то части массива, необходимо указать его индекс.( обратите внимание индекс начинается с 0, а не с единицы)
    MyFirstArray [0]


    Пример: на массиве который хранит цвет в RGB формате:
    new my_color[3]
    my_color[0] = 145
    my_color[1] = 98
    my_color[2] = 234


    Или можно так:
    new color[3] = { 145, 98, 234 } 
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    droper

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    стоило бы написать о типах, таких как static/const/public/stock.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    --------------------
    droper

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Там описаны функции, а я говорю про переменные. Ведь мало кто знает, что можно создать stock или public переменную.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Я отстал от жизни видимо.
    Но я не знаю как создать сток или паблик переменную. request
    --------------------
    droper

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    stock переменная, так же как и функция, не компилируется если не используется в коде, пример можно посмотреть в инклуде dhud.
    stock var = 0

    public переменная, так же как и функция, доступен извне, т.е. можно получить или установить из другого плагина. Пример переменных, по-моему, есть в statsx или каких-то плагинах статистики. Для работы с публичными переменными существует всего пять native функций: get_xvar_id ( const name[] ) - возвращает номер переменной, get_xvar_[num/float] ( xvar_id ) - получить целочисленное или дробное значние переменной по ее индексу, и set_cvar_[num/float] ( xvar_id, value ) - устанавливает новое значение переменной.
    public pubvar = 0
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Я этого не знал сам )
    так что писать не могу..
    Напиши сам )
    --------------------
    HoLLyWooD

    26.09.2011
    ICQ: 8272341
    Публикаций: 3
    Комментариев: 10
    Репутация: -  0  +

    droper,
    Что-бы получить значение из вне недостаточно одной только паблик

    В любом случае для доступа из вне нужны нейтивы.
    droper

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Почему? Вполне достаточно.
    new public stock const variable = 1;// в основном плагине
    get_xvar_num ( get_xvar_id ( "variable" ) ); // в другиз плагинах
    Единственный минус публичных переменых - нельзя работать с массивами, точнее, нету доступа к ячейкам массива из дочерних плагинов.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Кажется вы залезаете далеко за грани уроков для новичков :)
    --------------------
    HoLLyWooD

    26.09.2011
    ICQ: 8272341
    Публикаций: 3
    Комментариев: 10
    Репутация: -  0  +

    Я имел ввиду работу с функциями из вне

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама