ReGameDLL_CS, Reverse-engineered mod CS

ReGameDLL_CS, Reverse-engineered mod CS 5.26.0.668

Сообщения
313
Реакции
21
Предупреждения
19
Помог
7 раз(а)
Alexs, выше поднять на пару сообщений религия не позволяет?
Квар антифлеш работает в порядке.
 
Сообщения
282
Реакции
34
Помог
3 раз(а)
Alexs, does religion not allow you to move up a couple of messages?
Kvar anti-flash works fine.
It doesn't work properly.
If you have cross (target) on enemy, you will not be flashed in any situation.
Also, if you throw flash to enemy and target him with cross, you will not get flashed in any situation.

It's a bit broken. I've tested it multiple times, so I assume it's bug. I've wrote on github.
 
Сообщения
941
Реакции
188
Помог
4 раз(а)
Ruby, эти флаги возможно отловить?
 
Сообщения
3,389
Реакции
1,487
Помог
125 раз(а)
Внимание! Если у кого-то стоит Meta плагин Fix Custom MaxClip, отключите его, во избежание визуальных багов с оружием. Последний релиз ReGameDLL уже содержит в себе фикс, который выполнял этот модуль.
 
Сообщения
178
Реакции
-8
Помог
2 раз(а)
Здравствуйте, кто устанавливал данную версию на сервер? Можете отписаться всё ли стабильно работает, не делает ли сервер рестартов и не зависает ли.
 
Сообщения
313
Реакции
21
Предупреждения
19
Помог
7 раз(а)
lol cek, уже как месяц сижу на бетке, никаких проблем т.к. все версии прежде выйти в релиз - тестируются.
 
Сообщения
2,723
Реакции
2,997
Помог
60 раз(а)
Так же нет никакой инфы в чате!
mp_deathmsg_flags "abc"
1704289584890.png
C++:
#include <amxmodx>
#include <amxmisc>

// Flags for specifying extra info about player death
enum _: DeathMsg_ExtraFlags {
    // float[3]
    // Position where the victim was killed by the enemy
    PLAYERDEATH_POSITION          = 0x001,

    // byte
    // Index of the assistant who helped the attacker kill the victim
    PLAYERDEATH_ASSISTANT         = 0x002,

    // short
    // Bitsum classification for the rarity of the kill
    // See enum KillRarity for details
    PLAYERDEATH_KILLRARITY        = 0x004,
}

// Classifying various player kill methods in the game
enum _: KillRarity {
    KILLRARITY_HEADSHOT         = 0x001, // Headshot
    KILLRARITY_KILLER_BLIND     = 0x002, // Killer was blind
    KILLRARITY_NOSCOPE          = 0x004, // No-scope sniper rifle kill
    KILLRARITY_PENETRATED       = 0x008, // Penetrated kill (through walls)
    KILLRARITY_THRUSMOKE        = 0x010, // Smoke grenade penetration kill (bullets went through smoke)
    KILLRARITY_ASSISTEDFLASH    = 0x020, // Assister helped with a flash
    KILLRARITY_DOMINATION_BEGAN = 0x040, // Killer player began dominating the victim (NOTE: this flag is set once)
    KILLRARITY_DOMINATION       = 0x080, // Continues domination by the killer
    KILLRARITY_REVENGE          = 0x100  // Revenge by the killer
}

public plugin_init() {
    register_plugin("DeathMsg ex annoucer", "1.0.0", "Dev-CS")

    if (!is_running("cstrike"))
        set_fail_state("Plugin works only with cstrike!")

    register_event_ex("DeathMsg", "Message_DeathMsg", RegisterEvent_Global /*, "5>0" condition doesn't works! */)
}

public Message_DeathMsg(value) {
    enum {
        arg_killer = 1, arg_victim, arg_isHeadshot, arg_weaponName,
    }

    #pragma unused arg_isHeadshot, arg_weaponName

    new iArg = 5 // start argument pos to read extra info
    if (read_datanum() <= iArg)
        return

    new killer = read_data(arg_killer)
    new victim = read_data(arg_victim)
    new flags = read_data(iArg++)

    if (!flags)
        return

    // if PLAYERDEATH_POSITION present, then skip coordinates
    if (flags & PLAYERDEATH_POSITION)
        iArg += 3

    new assistant
    if (flags & PLAYERDEATH_ASSISTANT)
        assistant = read_data(iArg++)

    new killRarity
    if (flags & PLAYERDEATH_KILLRARITY)
        killRarity = read_data(iArg++)

    new message[192]

    if (assistant) {
        strcat(message, fmt("^3%n^1 assist to ", assistant), charsmax(message))
    }

    strcat(message, fmt("^3%n^1 kill ^3%n^1", killer, victim), charsmax(message))
   
    if (killRarity) {
        new rarityString[128]
        if (BuildRarityString(killRarity, rarityString, charsmax(rarityString))) {
            strcat(message, fmt(" (^4%s^1)", rarityString), charsmax(message))
        }
    }

    client_print_color(0, print_team_red, message)
}

BuildRarityString(const bitKillRarity, buffer[], const len) {
    if (!bitKillRarity)
        return false

    if (bitKillRarity & KILLRARITY_HEADSHOT)        strcat(buffer, "HS ",           len)
    if (bitKillRarity & KILLRARITY_KILLER_BLIND)    strcat(buffer, "Blind ",        len)
    if (bitKillRarity & KILLRARITY_NOSCOPE)         strcat(buffer, "NoScope ",      len)
    if (bitKillRarity & KILLRARITY_PENETRATED)      strcat(buffer, "Wallbang ",     len)
    if (bitKillRarity & KILLRARITY_THRUSMOKE)       strcat(buffer, "ThruSmoke ",    len)
    // etc..

    trim(buffer)

    return strlen(buffer)
}
 
Последнее редактирование:
Сообщения
539
Реакции
468
Предупреждения
16
Помог
9 раз(а)
Ненормативная лексика, завуалированный мат
fl0wer, сука выше посмотри файл код от сайлента. Ты был дермом и дермом остался
3 Янв 2024
Oneni ske jalapdi bolasi qo'taq
 
Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Сообщения
977
Реакции
52
Помог
10 раз(а)
Да тут кода то 100 строк, зачем спорить то:yes3:,воспользуюсь моментом, а при таком раскладе, если массив заполнить до предела
new message[192], краша не будет при отправки?
Код:
client_print_color(0, print_team_red, message)
 
Последнее редактирование:
Сообщения
282
Реакции
34
Помог
3 раз(а)
C++:
#include <amxmodx>
#include <amxmisc>

// Flags for specifying extra info about player death
enum _: DeathMsg_ExtraFlags {
    // float[3]
    // Position where the victim was killed by the enemy
    PLAYERDEATH_POSITION          = 0x001,

    // byte
    // Index of the assistant who helped the attacker kill the victim
    PLAYERDEATH_ASSISTANT         = 0x002,

    // short
    // Bitsum classification for the rarity of the kill
    // See enum KillRarity for details
    PLAYERDEATH_KILLRARITY        = 0x004,
}

// Classifying various player kill methods in the game
enum _: KillRarity {
    KILLRARITY_HEADSHOT         = 0x001, // Headshot
    KILLRARITY_KILLER_BLIND     = 0x002, // Killer was blind
    KILLRARITY_NOSCOPE          = 0x004, // No-scope sniper rifle kill
    KILLRARITY_PENETRATED       = 0x008, // Penetrated kill (through walls)
    KILLRARITY_THRUSMOKE        = 0x010, // Smoke grenade penetration kill (bullets went through smoke)
    KILLRARITY_ASSISTEDFLASH    = 0x020, // Assister helped with a flash
    KILLRARITY_DOMINATION_BEGAN = 0x040, // Killer player began dominating the victim (NOTE: this flag is set once)
    KILLRARITY_DOMINATION       = 0x080, // Continues domination by the killer
    KILLRARITY_REVENGE          = 0x100  // Revenge by the killer
}

public plugin_init() {
    register_plugin("DeathMsg ex annoucer", "1.0.0", "Dev-CS")

    if (!is_running("cstrike"))
        set_fail_state("Plugin works only with cstrike!")

    register_event_ex("DeathMsg", "Message_DeathMsg", RegisterEvent_Global /*, "5>0" condition doesn't works! */)
}

public Message_DeathMsg(value) {
    enum {
        arg_killer = 1, arg_victim, arg_isHeadshot, arg_weaponName,
    }

    #pragma unused arg_isHeadshot, arg_weaponName

    new iArg = 5 // start argument pos to read extra info
    if (read_datanum() <= iArg)
        return

    new killer = read_data(arg_killer)
    new victim = read_data(arg_victim)
    new flags = read_data(iArg++)

    if (!flags)
        return

    // if PLAYERDEATH_POSITION present, then skip coordinates
    if (flags & PLAYERDEATH_POSITION)
        iArg += 3

    new assistant
    if (flags & PLAYERDEATH_ASSISTANT)
        assistant = read_data(iArg++)

    new killRarity
    if (flags & PLAYERDEATH_KILLRARITY)
        killRarity = read_data(iArg++)

    new message[192]

    if (assistant) {
        strcat(message, fmt("^3%n^1 assist to ", assistant), charsmax(message))
    }

    strcat(message, fmt("^3%n^1 kill ^3%n^1", killer, victim), charsmax(message))
  
    if (killRarity) {
        new rarityString[128]
        if (BuildRarityString(killRarity, rarityString, charsmax(rarityString))) {
            strcat(message, fmt(" (^4%s^1)", rarityString), charsmax(message))
        }
    }

    client_print_color(0, print_team_red, message)
}

BuildRarityString(const bitKillRarity, buffer[], const len) {
    if (!bitKillRarity)
        return false

    if (bitKillRarity & KILLRARITY_HEADSHOT)        strcat(buffer, "HS ",           len)
    if (bitKillRarity & KILLRARITY_KILLER_BLIND)    strcat(buffer, "Blind ",        len)
    if (bitKillRarity & KILLRARITY_NOSCOPE)         strcat(buffer, "NoScope ",      len)
    if (bitKillRarity & KILLRARITY_PENETRATED)      strcat(buffer, "Wallbang ",     len)
    if (bitKillRarity & KILLRARITY_THRUSMOKE)       strcat(buffer, "ThruSmoke ",    len)
    // etc..

    trim(buffer)

    return strlen(buffer)
}
This is pretty nice.
Is there a posibility to precache kill legend in top right corner, to show these death messages as 'sprite' ?
 
Сообщения
941
Реакции
188
Помог
4 раз(а)
Code_0xABC, Это всего лишь тестовый вариант на отлов, можешь увеличить и не будет краша
 
Сообщения
977
Реакции
52
Помог
10 раз(а)
BiZaJe, дома буду, для интереса проверим, просто где-то было при отправлении 191 или 192 символов краш
 

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

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