BLOG "Моё хобби" или "как я трачу свободное время"

Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
1525170261265.png
Жаль, что ушел так рано.
(на самом деле, мне дико смешна ситуация)
Жаль, оставил нас одних.
Знаешь, my-amxx.ru, мне ведь не хватает
Нежных слов и советов твоих. ©


upd: как ожидаемо, комбэкнулся.
 

Download all Attachments

Последнее редактирование:
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
Мини пример о "симуляции" перегрузки функции в Pawn :mosking:

О, как таковой возможности напомнил - PRoSToTeM@
Где почитать о коде и собственно, source-content: http://pro-pawn.ru/showthread.php?12257-Перегрузка-функций-в-Pawn-(tagof)&s=0a606a5f9a99fe24a7b95fd948f7af1a
Код:
#include <amxmodx>

stock PrintInt(i)
    server_print("int: %d", i);

stock server_printloat(Float:f)
    server_print("float: %f", f);

stock PrintBool(bool:b)
    server_print("bool: %s", (b)?("true"):("false"));

stock Print({ _, Float, MyCustomTag }:arg, arg_type=tagof(arg))
{
    switch(arg_type)
    {
        case (tagof(Float:)):
            server_printloat(Float:arg);
        case (tagof(bool:)):
            PrintBool(bool:arg);
        default:
            PrintInt(_:arg);
    }
}

public plugin_init()
{
    server_print("--Function overloading emulation test--");
    Print(1);
    Print(1.0);
    Print(true);
}
P.S: кстати, не плохой источник информации.
 
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
1546689005751.png
Шаблоны игрового программирования
Автор/Издательство: Robert Nystrom
Оригинальное название: «Game Programming Patterns»
Год: 2014
Кол-во страниц: больше 350
Формат: PDF
Размер: 8.52 Мб
Язык: Русский
Оф. сайт: http://gameprogrammingpatterns.com/
Интересная книжка попалась. [#Habr]
Есть много полезного, разжеванного до самых самых...
1546688416882.png1546688513490.png1546688775173.png
 

Download all Attachments

Последнее редактирование:
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
Понаркоманим?:yes3:
Код:
#include <amxmodx>
#pragma ctrlchar '\'

public plugin_cfg()
    set_task(5.0, "hide_CVars");

public hide_CVars()
{
    new fp = Get_CVars_FilePointer();

    new buffer[128];
    while(fp && !feof(fp))
    {
        fgets(fp, buffer, charsmax(buffer));

        static cvar_name[64];
        parse(buffer, cvar_name, charsmax(cvar_name));
        if(!cvar_exists(cvar_name))
        {
            server_print("[WARN]: CVar not exists: '%s'", cvar_name);
            continue;
        }
        new cvar_pointer = get_cvar_pointer(cvar_name);
        if(!cvar_pointer)
        {
            server_print("[WARN]: CVar has invalid pointer: '[%i]='%s'", cvar_pointer, cvar_name);
            continue;
        }

        new cvar_flags = get_pcvar_flags(cvar_pointer);

        set_pcvar_flags(cvar_pointer, cvar_flags &~ FCVAR_SERVER);
    }

    fclose(fp);
}

Get_CVars_FilePointer()
{
    server_cmd("cvarlist log");
    server_exec();

    new buffer[128];
    new pos;
    new cvarlist_file_name[64];

    while(read_dir(".", pos++, buffer, charsmax(buffer)))
    {
        if(buffer[0] == 'c' && buffer[7] == 't')
        {
            if(contain(buffer, "cvarlist") != -1)
                copy(cvarlist_file_name, charsmax(cvarlist_file_name), buffer);
        }
    }

    return fopen(cvarlist_file_name, "rt");
}
P.S: чёрт(, спалил свой IP
 

Вложения

Последнее редактирование:
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
Доброго времени суток каждому, кто это читает.
В свете последних событий для меня - мне пришлось многое переосмыслить, расставить приоритеты в жизни и принять множество важных для себя решений, для этого было необходимо некоторое время в общем... Виной тому стали некоторые чрезвычайные обстоятельства, которые повергли меня в шок и это нормальная реакция.

Благодарность всем тем, кто беспокоился за моё отсутствие, по всей видимости, общество во мне нуждается.
Отныне я стану меньше времени уделять сообществу, возможно продолжу посвящать себя некоторым разработкам, однако теперь менее интенсивно.

Благодарю за "понимание", если это так можно назвать... и прошу прощения за столь внезапный уход от контактов.
 
Последнее редактирование:
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)

ОБНОВЛЕНИЕ ФОРКА РЕПОЗИТОРИРИЯ ЧЕРЕЗ ИНТЕРФЕЙС GITHUB

Часто бывает, что форкаешь чей-то репозиторий и вносишь не значительные изменения в проект и приходит время когда нужно обновить проект из оригинального репозитория, большенство информации либо уже не актуально относительно GUI github или предлагают скучный и долгий, но надежный способ через терминал. Ниже я опишу нативный способ через web интерфейс.

Да начнется обновление…

Для начала нам нужно перейти в свой Fork и нажать кнопку «New pull request».
1532204082401.png
В форме с выпадающими списками репозиториев нужно поменять направления слияния или, просто говоря, поменять местами.
Чтобы в итоге получилось слева ваша копия, а справа оригинальный репозиторий.
1532204124076.png

После выбора одинаковых репозиториев GitHub скажет, что нечего сравнивать. Нужно нажать на «compare across forks» и выбрать второй репозиторий.
1532204133559.png

В результате репозитории поменялись местами друг с другом и GitHub выведет разницу оригинального репозитория с вашим.
1532204151965.png

Смело нажимайте Pull request и Merge, это не отправить запрос в оригинальный репозиторий, а всего лишь в ваш зальет последние изменения из original.

Теперь у вас форк со свежими изменениями из origin репозитория без лишнего таскания данных через терминал.
 
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
:derisive: почти провалившийся проект... Причина? Отсутствие ̶в̶р̶е̶м̶е̶н̶и̶ мотивации маппера.
 

Download all Attachments

Последнее редактирование:
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
1533267228174.png1533267426642.png1533267443641.png1533267609311.png1533267622142.png1533267670775.png1533267701133.png
Источник: https://vk.com/hl_collection?w=wall-30700826_2107 | KorteZZ
#Статья@hl_collection #CounterStrike@hl_collection
Благодарность Mr.Jeff за предоставленный материал, полезный к освоению. :good2:
Прошло 19 лет с момента появления на свет Counter-Strike. И с тех пор все знают про эту великую игру. Но кое-кто знает про нее больше, чем большинство.
Пользователь форума мапперов CSM - Mr.Jeff выпустил обзор первой версии Counter-Strike beta 1. В нем он рассказывает и про историю создания, и про ресурсы игры, карты и прочее, о чем вы, вероятно, даже не слышали. И поэтому не стоит удивляться тому, что столь детальный обзор весит аж 18 Мб.
Приятного чтения!

Скачать обзор:
https://yadi.sk/d/mQp_xH2C3YVCfQ
Обсуждать тут:
https://cs-mapping.com.ua/forum/showthread.php?t=38962

2 Авг 2018


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

"Заранее большое спасибо."
Благодарность авансом — это неумелая манипуляция.
Автор пытается вызвать чувство долженствования, сыграть на правиле взаимного обмена: «Я уже поблагодарил тебя за это. Теперь ты обязан это сделать».
Но! Правило взаимного обмена работает только тогда, когда мы даём что-то ценное. А благодарность авансом ничем не подкреплена и ничего не стоит. :dntknw:

3 Авг 2018

Копаясь в исходниках AMXModX нахожу "интересные хаки". :crazy:
Ядро AMXX перед запуском плагина проверяет не находится ли он в чёрном списке. В чёрном списке находятся плагины, не соответствующие "заговору GPL" (NONGPL_PLUGIN_LIST).
Зачем это? - Всё просто так в старые времена (и по сей день :crazy:) избавлялись от плагинов с закрытым исходным кодом.
К таковым в нынешнее время можно отнести труды таких известных авторов как: Radius и целый "магазин" основанный командой SKAJIbnEJIb и несколько работе других, менее известных авторов. (ничего личного против них и их бизнеса не имею).
C++:
void CPluginMngr::CPlugin::AddToFailCounter(unsigned int i)
{
    failcounter += i;
    if ((failcounter >= 3)
        && (status ))
    {
        errorMsg = "This plugin is non-GPL which violates AMX Mod X's license.";
        status = ps_bad_load;
    }
}
Чёрный список был составлен в таковом виде:
Код:
    // Перечень названия плагинов
NONGPL_PLUGIN_T NONGPL_PLUGIN_LIST[] =
{
    {"Live", "CZ Gun Game", "czgungame.amxx"},
    {"Live", "AMXX Gun Game", "czgungame.amxx"},
    {NULL, NULL, NULL},
};

    // Перечень контролируемых CVar'ов
NONGPL_CVAR_T NONGPL_CVAR_LIST[] =
{
    {"gg_mode", 0},
    {"gg_warmuptimer", 0},
    {"gg_ff", 0},
    {"gg_fflevel", 0},
    {"gg_stats", 0},
    {"gg_dm", 0},
    {"gg_turbo", 0},
    {"amx_ggreset", 1},
    {"amx_gg", 1},
    {NULL, 0},
};
А суть остаётся таковой. При инициализации плагинов и дополнительных CVar'ов, добавленных с помощью register_native \ create_cvar вводится проверка на совпадение с наименованием плагина или CVar'а из списка. И если совпадений набирается больше чем дозволено (>=3) - плагин форсивно останавливался системой:
C++:
void CPluginMngr::CPlugin::AddToFailCounter(unsigned int i)
{
    failcounter += i;
    if ((failcounter >= 3)
        && (status ))
    {
        errorMsg = "This plugin is non-GPL which violates AMX Mod X's license.";
        status = ps_bad_load;
    }
}
C в выдачей статуса ошибки, который гласит:
This plugin is non-GPL which violates AMX Mod X's license.
- Данный плагин нарушает правила GPL-лицензии. ("Открытого кода").

Такие вот дела. В 2018 году-то, может быть обновить списочек?​
Так сказать отдавая дань традициям... Тем более, текущий куратор проекта активно идёт на контакт. :haha:
P.S: описано смеха ради конечно, но забывать о том, что "в каждой шутке есть доля правды" - не стоит.
3 Авг 2018
А, ещё примечательно, что места, куда помещали плагины и авторов называли "Hall of shame" - зал стыда.:haha:
 
Последнее редактирование:
Сообщения
160
Реакции
170
Помог
1 раз(а)
wopox1337,
:derisive: почти провалившийся проект... Причина? Отсутствие времени маппера
"Почти"- ключевое слово! Что само по себе уже +:ok:.И не отсутствие времени главная причина,скорее отсутствие моральной поддержки .
Один в поле не воин,а мои вояки похоже на пенсию собрались )).Так пусть не радуются ,не скоро ещё пенсия то :derisive:.Дело продвигается хотя и очень слабо.Проект будет закончен,надеюсь к тому времени CS ещё не умрет)).У кого есть желание помучится над этой картой или какой другой,буду рад любым предложениям.
 
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
mr_CHikAZ, хм, а я как раз могу оказать хорошую моральную поддержку. Странно, что данные причины я не выявил ранее. Для проекта у меня ещё много идей. (как раз для новоиспечённого клиента от Dev-MS).
 
Сообщения
160
Реакции
170
Помог
1 раз(а)
wopox1337, Уж чего чего, а идеями нас бог не обделил.Только вот с реализацией чуток заминка)).А новоиспечённый клиент от Dev-MS,достоин будет отдельных разделов в сфере разработки.
 

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

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу