[VIP] Dissolve Body

Тема в разделе "Тестовые плагины", создана пользователем san911, 18 сен 2016.

  1. san911

    san911 Вообще короче нечего

    Сообщения:
    210
    Симпатии:
    49
    [VIP] Dissolve Body

    Версия: 1.2.0

    Требование:
    [VIP] Core
    версии не ниже 1.1.0 R

    Описание:
    Позволяет VIP-игрокам включить растворение тела после смерти.

    Cvar`s:

    sm_vip_dissolve_body_delay "1.5" - Время до растворения тела.
    sm_vip_dissolve_body_type "0" - Режим растворения тела. (0 - Рандомный режим растворения, 1 - Растворение на земле, 2 - Растворение в воздухе)
    sm_vip_dissolve_body_type_fire "1" - Режим поджигания тела. (0 - Выкл, 1 - Рандомный режим поджигания, 2 - Поджигать при растворение, 3 - Поджигать до растворения, а потом тушить)

    Параметры:
    Код:
    "DissolveBody"        "1 - Включить, 0 - Выключить"
    В vip_modules.phrases.txt добавить:
    Код:
        "DissolveBody"
        {
            "ru"        "Растворение тела"
            "en"        "Dissolution of the body"
            "fi"        "Liukeneminen elimistössä"
        }    
    Код:
    (Версия: 1.0.0) - Релиз.
    (Версия: 1.1.0) - Оптимизация, прочие улучшения.
    - Добавлен sm_vip_dissolve_body_fire
    - Добавлен рандом в sm_vip_dissolve_body_type
    (Версия: 1.2.0) - sm_vip_dissolve_body_fire переименована в sm_vip_dissolve_body_type_fire.
    - Добавлены новые режимы в sm_vip_dissolve_body_type_fire
    
     

    Вложения:

    Последнее редактирование: 20 сен 2016
  2. skolobes

    skolobes Не раздевайся, я по делу

    Сообщения:
    361
    Симпатии:
    48
    для кс го пойдет?
     
  3. san911

    san911 Вообще короче нечего

    Сообщения:
    210
    Симпатии:
    49
    Да скорее всего.
     
  4. AlmazON

    AlmazON Не путать с самим yand3xmail

    Сообщения:
    5.169
    Симпатии:
    2.412
    Завязывай с приставкой, она ни к чему для обычного хука (только для EventHookMode_Pre).
    Код:
    IsValidEntity(client)
    Для этого есть безошибочный простой:
    PHP:
    IsClientInGame(client)
    Код:
    new ragdoll = GetEntPropEnt(client, Prop_Send, "m_hRagdoll");
    Чтобы удостовериться, добавить хотя бы:
    PHP:
    if(ragdoll == -1) return Plugin_Stop;
    Код:
    decl String:dname[16], String:dtype[5];
    Нецелесообразно большие массивы в адекватные:
    PHP:
    decl String:dname[8], String:dtype[2];
    FormatEx(dname, sizeof(dname), "dis_%d", client); для быстроты.
    Код:
    Format(dtype, sizeof(dtype), "%d", GetConVarInt(cvType));
    Для этого вообще есть:
    PHP:
    IntToString(GetConVarInt(cvType), dtypesizeof(dtype));
     
    Kruzya нравится это.
  5. san911

    san911 Вообще короче нечего

    Сообщения:
    210
    Симпатии:
    49
    Что если стоит аналогичный плагин который уничтожит тело?
    Оффтоп
     
  6. AlmazON

    AlmazON Не путать с самим yand3xmail

    Сообщения:
    5.169
    Симпатии:
    2.412
    Для этого и предложил всё же добавить:
    Если индекс "трупа" получить не удалось (уже уничтожен), то как раз вернёт -1.
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.422
    Симпатии:
    3.441
    PHP:
    static cell_t sm_numtostr(IPluginContext *pCtx, const cell_t *params)
    {
        
    char *str;
        
    pCtx->LocalToString(params[2], &str);
        
    size_t res smcore.Format(strparams[3], "%d"params[1]);

        return 
    static_cast<cell_t>(res);
    }
     
    AlmazON нравится это.
  8. AlmazON

    AlmazON Не путать с самим yand3xmail

    Сообщения:
    5.169
    Симпатии:
    2.412
    Оффтоп Почти с таким же успехом могли stock'ом расписать, но было бы сразу всё понятно.