Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 20 из 20
  1. #11
    Аватар для f0Re3t
    Новичок

    Статус
    Оффлайн
    Регистрация
    15.08.2015
    Сообщений
    0
    Репутация:
    0 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Лучше делать все макросы в верхнем регистре, дабы отличить от переменной. Я про

    PHP код:
    #define mysql_hostname "localhost"
    #define mysql_username "root"
    #define mysql_database "f0Re3t"
    #define mysql_password "" 
    Да и местами код не табулирован. NP++ может оттабулировать все


    PHP код:
    publics: .. 
    1. Не очень люблю текст большими буквами поэтому так и делал.
    2. В *.pwn файле все нормально же.
    3. А что не так с publics?

  2. #12
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от f0Re3t Посмотреть сообщение
    1. Не очень люблю текст большими буквами поэтому так и делал.
    2. В *.pwn файле все нормально же.
    3. А что не так с publics?
    Код скриптера с Г-И =)

  3. #13
    Аватар для f0Re3t
    Новичок

    Статус
    Оффлайн
    Регистрация
    15.08.2015
    Сообщений
    0
    Репутация:
    0 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Код скриптера с Г-И =)
    Понятно. Так-то можно дать название любое :)

  4. #14
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от f0Re3t Посмотреть сообщение
    Понятно. Так-то можно дать название любое :)
    Ну и мод можно написать свой :3 Но код должен быть более эстетичным

  5. #15
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Ну и мод можно написать свой :3 Но код должен быть более эстетичным
    Какая разница как выглядит код? Если ему удобно так, то пусть пишет как хочет, если вам надо то скачайте мод и переименуйте все, что вам надо.

  6. #16
    Аватар для Роуди.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.07.2015
    Сообщений
    154
    Репутация:
    17 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Какая разница как выглядит код? Если ему удобно так, то пусть пишет как хочет, если вам надо то скачайте мод и переименуйте все, что вам надо.
    Скажем так, люди пропагандируют эту тему, тем самым критикуя тех, кто не придерживается данной темы.

  7. #17
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Какая разница как выглядит код? Если ему удобно так, то пусть пишет как хочет, если вам надо то скачайте мод и переименуйте все, что вам надо.
    дело в том, что портал хочет искоренить "быдлокодинг" в публикуемых материалах, отсюда и подобные рекомендации к написанию кода. Ведь, качают моды из этого раздела, в основном, новички, а кто им будет объяснять за что отвечает какая либо переменная?

  8. #18
    Аватар для vladua100
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    3
    Репутация:
    4 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Но код должен быть более эстетичным
    А уроки должны быть поучительными

      Открыть/закрыть


    Цитата Сообщение от Zangetsu
    При использовании char мы устанавливаем границы каждой ячейки массива: от 0 и до 255.
    Цитата Сообщение от Zangetsu
    Тип char лишь запаковывает
    Цитата Сообщение от Zangetsu

    [Урок] char массивы


    При использовании char мы устанавливаем границы каждой ячейки массива: от 0 и до 255.
    Каждая ячейка может принимать 256 значений.

    Все постигается в сравнении


    Давайте создадим обычный массив.

    PHP код:
    new example_1[MAX_PLAYERS]; 
    Тут мы используем 1000*4 байт, то есть 4000 байт.


    Пояснение:
    если заглянуть в a_samp.inc, то можно увидеть, что по стандарту максимальное количество MAX_PLAYERS равно 1000 (с выходом 0.3.7 клиента)
    4 - количество байт, занимаемых целочисленным типом.



    Давайте создадим массив типа char.

    PHP код:
    new example_2[MAX_PLAYERS char]; 
    Вот она наша оптимизация. Здесь мы используем 1000/4*4 байт, то есть 1000 байт. Не плохо. Да?


    Пояснение:
    Каждая ячейка равна 4 байтам. Тип char лишь запаковывает округленный вверх результат деления числа, стоящего перед ним, на 4.



    Пример использования

    Чтобы обратиться к массиву типа char, мы используем не квадратные скобочки, а фигурные.

    PHP код:
    // создаем
    new example_2[MAX_PLAYERS char];

    // обращаемся к нему
    example_2{playerid}//... 
    Во всем остальном, массив типа char такой же как и обычный массив и использование его точно такое же.

    PHP код:
    // обратимся к конкретному игроку с ID 123
    example_2{123}//... 
    Не знаю, нужно ли вам показывать вызов массива, но может кому-нибудь и будет интересно.

    PHP код:
    new no_char_[MAX_PLAYERS];
    // будет вызван no_char_[1000]; 
    Помните, что массивы типа char можно не везде использовать и нужно их использовать правильно.

    PHP код:
    // ничего у вас не получится!
    enum enum_example
    {
         
    //..
    };
    new 
    example_3[MAX_PLAYERS char][enum_example]; 
    PHP код:
    new array_char[MAX_PLAYERS char];
    array_char{playerid} = INVALID_PLAYER_ID// воу, полугче 
    Я не понял как это 256 значений

    Мы объявляем массив, в котором будут записаны: буквы в различных регистрах, цифры и символы.

    PHP код:
    new example_4[6] = "Darge"
    Или

    PHP код:
    new example_5[6] = {'D''a''r''g''e''\0'}; 
    Вот как это выглядит наглядно (что мы подразумеваем)



     Таблица значений


    Еще один момент

    PHP код:
    // Не правильно!
    // Почему? 
    // Смотри самый верх темы!
    example{playerid} = 256;

    // Правильно
    example{playerid} = 255
    Все возможные принимаемые значения в приведенной таблице (см. выше)




    Автор урока: Darge





    Цитата Сообщение от wAx Посмотреть сообщение
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Какая разница как выглядит код? Если ему удобно так, то пусть пишет как хочет, если вам надо то скачайте мод и переименуйте все, что вам надо.
    дело в том, что портал хочет искоренить "быдлокодинг" в публикуемых материалах, отсюда и подобные рекомендации к написанию кода. Ведь, качают моды из этого раздела, в основном, новички, а кто им будет объяснять за что отвечает какая либо переменная?
    Он пинает человека за то, что тот использовал по назначению директиву замены текста. В самом коде, безусловно, есть за что зацепиться и этого там не мало. Например:
    PHP код:

    SetGameModeText
    (""name_modifications"");
    SetTimer("SAPI"1000true);

    publicsSAPI()
    {
        for(new 
    cycle 0cycle <= GetPlayerPoolSize(); cycle ++)
        {
            
    SAPI_money(cycle);
            if(
    temporary[cycle][flood_kick] > 0temporary[cycle][flood_kick] --;
        }
        return 
    true;

    Или, например, объявление переменных в отдельном файле

    Так что мне непонятна подобная реакция на
    PHP код:
    #define publics:%0(%1) forward %0(%1); public %0(%1) 

  9. #19
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Мой супер крутой аля урок был написал по просьбе одно человечека и по данным мне рекомендациям. По шаблонам. Сам то я знаю не очень и много =)




    Код должен быть понятным, а то слова типа "publics". Что вообще означает? Паблики? В этом паблике паблики? Или что? По рекомендации я использую "function". Да и название оправдывает содержимое :3.

    PHP код:
    #define function%1(%2)  \
        
    forward %1(%2); public %1(%2)

    function 
    PlayerEatBanana(playerid)
    {
        
    // Ом ном ном как вкусно

    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку. © Мартин Фаулер


    Цитата Сообщение от vladua100 Посмотреть сообщение
    Он пинает человека за то, что тот использовал по назначению директиву замены текста. В самом коде, безусловно, есть за что зацепиться и этого там не мало.
    name_modifications - модификация имени. Какого имени? Имени чего? Игрока? Функции? Сервера? Я должен пролистать код, чтобы понять это. Не практичный вариант, хоть и правильно использован.
    SAPI - вот это что, серверный API? Чет не я врубаюсь :)
    Если даже все это оставить, то можно оставить подсказку для будущих разработчиков.

    PHP код:
    // Как пример:
    // Отображаемое имя в клиенте в столбце "Mode"
    #define name_modifications "« Role Play 0.3.7 »" 
    И вопросы сразу отпадают. И я бы не стал сравнивать правильное использование с правильным кодом. Вот тебе было бы приятно видеть в моде что-то вроде этого.

    PHP код:
    #define new_name(%0,%1) \
        
    (GetPlayerName(%0,%1,MAX_PLAYER_NAME))
    new 
    a[MAX_PLAYER_NAME];
    new_name(playerida); 
    Конечно же нет! Кто такой мазахист, чтобы такое использовать.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Только если вдруг решите выложить такой код в паблик - не удивляйтесь, если для других он будет трудночитаемым.
    Оценить рекомендации =>

  10. #20
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от vladua100 Посмотреть сообщение
    Или, например, объявление переменных в отдельном файле
    Конечно, лучше на быдлокодить в одном файле?

 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •