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

    Всего на сайте: 10
    Гостей: 7
    Пользователи: - отсутствуют
    Роботы: crawl Bot, Google AdSense, Google Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 2-09-2011, 13:21 Просмотров: 7304

    equal Функция сравнивает строки или часть строки.

    Зачем сравнивать строки?
    Вот пара примеров:
    Работа антимата: введенное слово в чат игроком сравнивается с мат листом.
    Все авторизации пользователей происходят одинаково,сравниваются введенный логи и пароль с эталонными значениями, хранящиеся в базе данных или файле.
    Таких примеров можно привести целую кучу, данная функция используется в очень многих плагинах в сам разнообразных целях, но делает она только одно сравнивает строки

    Инфо из string.inc:
    /* Checks if two strings equal. If len var is set
    * then there are only c chars comapred. */
    native equal(const a[],const b[],c=0);]


    Синтаксис:
    equal ( const a[], const b[], [ c ] )

    • const a[] - Сравниваемая Строка
    • const b[] - Эталонная строка
    • [c] - Количество символов (для сравнения части сроки с эталоном)


    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "Sravnenie strok"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    new string1[] = {"my text"}
    new string2[] = {"my text"}
        
    new string3[] = {"My text"}
    new string4[] = {"My text"}

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_srvcmd("sravni","func_equal")
    }
    public func_equal(){

        //1 Случай
        if(equal(string1,string2))
            server_print("[equal] my text = my text is True")
        
        //2 Случай
        if(equal(string1[3],"text",4))
            server_print("[equal] text = text (4) is True")
        
        //3 Случай
        if(!equal(string1,string3,0))
            server_print("[equal] my text = My text is False")
        
        //4 Случай
        if(equal(string3,string4,0))
            server_print("[equal] My text = My text is True")
        
    }


    Описание:
    Так как функция не зрелищная, то и работать с ней будем в консоле сервера, что бы не мучиться с запуском клиента игры.
    Создадим 2 пары массивов, попарно равные. и отличающиеся друг от друга только регистром букв(в данной функции регистр букв отличается так же как будто это разные буквы,то есть функция чувствительна к регистру Привет не равно привет)
    Зарегистрируем консольную команду sravni.В исполняемой функции от этой команды рассмотрим 4 разных варианта работы функции:

    • 1 Случай: Сравниваем массив string1 и string2
      Так как строки равно,условие возвращает true и выполняет server_print(вывод сообщения в консоль сервера )
    • 2 Случай: Сравниваем часть массива string1 и текст(строку) text
      if(equal(string1[3],"text",4))

      Здесь мы указываем что в строке string1, нужно сравнивать начиная с 3 символа с текстом "text" и длина сравнения 4 символа
      Функция так же возвращает true, так как text и text одно и тоже.
    • 3 Случай: Сравниваем массив string1 и string3
      Массивы string1 и string3 отличаются одной буквой, вернее ее регистром, так как они разные функция вернет false, по этому в условии ставим знак !, что означает "Не равно", и у нас условие получается Если (string1 и string 3 не равно) и это правда,функция возвращает true
    • 4 Случай: Сравниваем массив string3 и string4
      Аналогично первому варианту, только строки уже разные.


    Если же вам необходимо сравнить 2 строки без сравнения регистра букв,то используйте функцию equali
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    equal Функция сравнивает строки или часть строки.
    Rhyme

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

    опечатка в описании:
    Внимание! У Вас нет прав для просмотра скрытого текста.

    Информация

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

Реклама