26

» Корсары / События

nazarpunk, не похоже
uint32_t S_EVENTTAB::AddEventHandler(const char *event_name, uint32_t func_code, uint32_t func_segment_id, int32_t flag, bool bStatic)
{
    uint32_t i;

    const auto hash = MakeHashValue(event_name);

    const auto ti = HASH2INDEX(hash);

    for (uint32_t n = 0; n < Event_num[ti]; n++)
    {
        if (pTable[ti][n].hash == hash)
        {
            if (!storm::iEquals(event_name, pTable[ti][n].name))
                continue;
            // event already in list
            for (i = 0; i < pTable[ti][n].elements; i++)
            {
                // event handler function already set
                if (pTable[ti][n].pFuncInfo[i].func_code == func_code)
                {
                    /*if(pTable[ti][n].pFuncInfo[i].status == FSTATUS_DELETED)
                    {
                      trace("pTable[ti][n].pFuncInfo[i].status == FSTATUS_DELETED : %s",pTable[ti][n].name);
                    }*/
                    // return n;
                    pTable[ti][n].pFuncInfo[i].status = FSTATUS_NORMAL;

                    return (((ti << 24) & 0xff000000) | (n & 0xffffff));
                }
            }
            // add function
            i = pTable[ti][n].elements;
            pTable[ti][n].elements++;
            pTable[ti][n].pFuncInfo.resize(pTable[ti][n].elements);

            pTable[ti][n].pFuncInfo[i].func_code = func_code;
            pTable[ti][n].pFuncInfo[i].segment_id = func_segment_id;
            if (flag)
                pTable[ti][n].pFuncInfo[i].status = FSTATUS_NEW;
            else
                pTable[ti][n].pFuncInfo[i].status = FSTATUS_NORMAL;
            pTable[ti][n].pFuncInfo[i].bStatic = bStatic;
            // return n;
            return (((ti << 24) & 0xff000000) | (n & 0xffffff));
        }
    }

    // add new event
    if (Event_num[ti] >= Buffer_size[ti])
    {
        Buffer_size[ti] += BUFFER_BLOCK_SIZE;
        pTable[ti].resize(Buffer_size[ti]);
    }

    pTable[ti][Event_num[ti]].elements = 1;
    pTable[ti][Event_num[ti]].hash = hash;
    pTable[ti][Event_num[ti]].name = nullptr;

    pTable[ti][Event_num[ti]].pFuncInfo.push_back(EVENT_FUNC_INFO{});
    pTable[ti][Event_num[ti]].pFuncInfo[0].func_code = func_code;
    pTable[ti][Event_num[ti]].pFuncInfo[0].segment_id = func_segment_id;
    if (flag)
        pTable[ti][Event_num[ti]].pFuncInfo[0].status = FSTATUS_NEW;
    else
        pTable[ti][Event_num[ti]].pFuncInfo[0].status = FSTATUS_NORMAL;
    pTable[ti][Event_num[ti]].pFuncInfo[0].bStatic = bStatic;

    if constexpr (true) // bKeepName)
    {
        if (event_name)
        {
            const auto len = strlen(event_name) + 1;
            pTable[ti][Event_num[ti]].name = new char[len];
            memcpy(pTable[ti][Event_num[ti]].name, event_name, len);
        }
    }
    Event_num[ti]++;
    // return (Event_num[ti] - 1);
    return (((ti << 24) & 0xff000000) | ((Event_num[ti] - 1) & 0xffffff));
}
26

» Корсары / Среда разработки

ScorpioT1000, хмм. Вот этого не знал.
Как дойдут руки поковырять Caribbean Legend - я ознакомлюсь. Они там пересобрали движок на MSVS19 и файлы скриптов все перевели в формат .b (это от вижуал бейсика, как я понял).
26

» Корсары / Среда разработки

nazarpunk, проще np++ ничего нет.
Скорпи уже выражал недовольство по поводу моих олдскул-наклонностей))
Я обязательно запилю раздел с MSVS, но сейчас нет на это настроения.
Если есть желание помочь с этим - буду благодарен.
26

» Администрация XGM / Черный Икс

Черный икс - это к нам 🤘
Илон, со своими электронедоразумениями, пусть отдыхает.
26

» Корсары / Объекты

ScorpioT1000, мне бы для начала последние три статьи перевести на человеческий язык и дополнить реальными примерами.
А то они сейчас выглядят как документация, а не обучающий материал для новичка. 😅
За наводки большое спасибо, занесу это в таск-лист.
26

» Администрация XGM / Основы форматирования текста

Почему заголовки нельзя покрасить?
Пробовал по-всякому:
??## текст??
## ??текст??
Получается либо крашенный текст с диесами, либо белый заголовок с вопросительными знаками.
26

» Корсары / Заголовочные файлы

ScorpioT1000, ты же понимаешь, что "работает хорошо" и "работает правильно" это разные вещи.
Не стоит в цикле основ учить людей хитровылюбленным технологиям))
О возможных способах налюбить систему и их последствиях, как правило, пишут в специализированных темах для тех, кто уже разбирается.
26

» Корсары / Заголовочные файлы

ScorpioT1000, да нет, правило вполне себе общее.
Я так и не понял, что тот чувак по ссылке пытается выиграть, перерося код в хедеры. Время компиляции? Это чушь и ему там это сто раз обяснили.
Добиться схожести с джавой? Весь код в одном файле?
Это как переносить другую игру на варкрафт, или переносить варкрафт на движок другой игры.
Через Ж всегда можно сделать. А я пытаюсь учить людей делать правильно))
26

» Корсары / Актуальные вакансии раздела "Корсары"

EugeAl, если у меня появится кто-нибудь, кто занимается моделями - я подумаю над этой мыслью.
26

» Корсары / Актуальные вакансии раздела "Корсары"

EugeAl, на кой черт мне модели для wc3?
Я моддинг Корсаров освещаю.
26

» Администрация XGM / Метки ресурсов и поиск по ним

ScorpioT1000, я читал, там формулировки неоднозначные.
В метках не нужно перечислять название текущего проекта или значения из других дополнительных полей - они либо проставляются сами, либо не требуются по логике работы сайта
Воспринимается как "не нужно для внутреннего поиска".
Поэтому и уточняю.
26

» Администрация XGM / Метки ресурсов и поиск по ним

ScorpioT1000, дополнительные поля, как я понимаю, учитываются и так.
А наследуются ли такие поля от проекта?
То есть есть ресурс, который предположительно может привлекать людей через гугл.
Нужно ли такому ресурсу в теги дополнительно забить название игры, к примеру?
26

» Администрация XGM / Метки ресурсов и поиск по ним

Эти все теги ориентированы только на внутренний поиск по сайту или на внешние поисковики тоже?
Вопрос важный, потому что это категорически разный набор тегов.
26

» Корсары / Актуальные вакансии раздела "Корсары"

Добавил вакансии для желающих помочь с наполнением раздела контентом.
26

» Корсары / TOOL

Последние новости!
Добавлено руководство для тех, у кого не отображаются текстуры на персонажах в GM_Viewer
26

» Администрация XGM / Подсветка кода CSS

ScorpioT1000, опять эта валидность
Мне нравится писать кусками :D
26

» Корсары / Переменные

Вышла новая версия!
Прокрутить к ресурсу
Добавлен раздел, описывающий константы.
26

» Администрация XGM / Основы форматирования текста

умные js поисковики не индексируют текст под спойлером
А вот этого я не знал.
Буду иметь в виду, спасибо.
26

» Администрация XGM / Основы форматирования текста

если тебе нужно вкладывать спойлеры - скорее всего, тебе пора сделать подстатью
С точки зрения UX - ты прав, это не самое хорошее решение.
Со статьями понятно. Я это хотел юзать в топике с рамками. Чтоб простыню скринов закатать в отдельные спойлеры))
Не то, чтобы реальная необходимость, просто удивился, что вложенные спойлеры не работают.
26

» Администрация XGM / Цвета рамок (уровни)

ScorpioT1000, мне тоже этот вариант нравится больше, чем изначальный.
Твоя идея со смещением перехода градиента к углу - прям очень хорошо выглядит.
26

» Администрация XGM / Основы форматирования текста

А почему вложенные спойлеры не работают?
Если это тяжело парсить, то может рассмотреть вариант аналогичный заголовкам?
>>
<<	// парсится как один спойлер 

>>>
<<<	// парсится как другой спойлер

>>>>
<<<<	// третий, и т.д.
26

» Администрация XGM / Цвета рамок (уровни)

Обновил первый пост
  • Уравнял расстояние между цветами всех шести групп.
  • Убавил яркости зелёному, голубому и немного фиолетовому.
  • Общее расстояние между цветами сокращено на 40% (относительно v3).
  • Сместил переход градиента от центра ближе к краю.
  • В выпадающем меню используется текущая система градиента на базе box-shadow.
Возможно, стоит убавить яркость var(--gradient-btm) для темной темы, но это не точно.
У меня уже глаз замылился, чтоб это всё адекватно оценивать))
Жду комментариев
26

» Администрация XGM / Быстрое цитирование

меню под кнопкой "..." у комментария
Все, увидел.
Работает