Revival

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
я уже всё перепробовал
C-подобный:
// Default: "revival/T_revival.vmt"
sm_revival_mark_any "revival/T_revival.vmt"
...
// Default: "revival/CT_revival.vmt"
sm_revival_mark_ct "revival/CT_revival.vmt"
...
// Default: ".vmt"
sm_revival_mark_t ".vmt"
Я так понимаю даже редактирование исходника, чтобы запороть его работу?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@DanZa, куда кладёшь файлы T_revival.vmt и CT_revival.vmt (а так же их *.vtf)?
Согласно этим путям они должны находиться в .../cstrike/materials/revival/.

Ну и ещё может быть проблема в содержимом файлов *.vmt.
У них должно быть содержимое типа вот такого:
C-подобный:
"UnlitGeneric"
{
    "$basetexture" "sprites/mark_dead"  // путь к файлу vtf без расширения самого файла
    "$translucent" 1
    "$vertexalpha" 1
    "$vertexcolor" 1
}
Кроме того спрайты всё же лучше хранить в папке materials/sprites, а не прямо в materials. Хотя дефолтный файл для CS:S OB я беру из materials/hud/
 

DanZa

Участник
Сообщения
82
Реакции
11
@DanZa, куда кладёшь файлы T_revival.vmt и CT_revival.vmt (а так же их *.vtf)?
Согласно этим путям они должны находиться в .../cstrike/materials/revival/.

Ну и ещё может быть проблема в содержимом файлов *.vmt.
У них должно быть содержимое типа вот такого:
C-подобный:
"UnlitGeneric"
{
    "$basetexture" "sprites/mark_dead"  // путь к файлу vtf без расширения самого файла
    "$translucent" 1
    "$vertexalpha" 1
    "$vertexcolor" 1
}
Кроме того спрайты всё же лучше хранить в папке materials/sprites, а не прямо в materials. Хотя дефолтный файл для CS:S OB я беру из materials/hud/
Всё лежит в точности как ты и написал, и содержимое .vmt один в один, сейчас попробую перекомпилировать плагин без изменений
Сообщения автоматически склеены:

Всё лежит в точности как ты и написал, и содержимое .vmt один в один, сейчас попробую перекомпилировать плагин без изменений
Перекомпилил, всё так-же... Может кто-то сталкивался с такой ошибкой?
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Всем привет, помогите, я уже всё перепробовал, видимо тупой, вот мой кфг
// This file was auto-generated by SourceMod (v1.11.0.6522)
// ConVars for plugin "sm_revival 1.1.6_29.10.2022.smx"


// The difference in the number of live players of the teams, at which player can revive allies (-1 - disable restriction)
// -
// Default: "-1"
// Minimum: "-1.000000"
// Maximum: "5.000000"
sm_revival_balance "-1"

// Enable/disable progressbar for reviving
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_bar "1"

// Show TOPx revivers at round end (0 - disable)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "10.000000"
sm_revival_best "0"

// Remove body x sec after the death (-1 - don't remove)
// -
// Default: "1"
// Minimum: "-1.000000"
sm_revival_clean "1"

// Any death team mark color. Set by HEX (RGB or RRGGBB, values 0 - F or 00 - FF, resp.). Wrong color code = green
// -
// Default: "00bf00"
sm_revival_color_any "00bf00"

// CT death mark color. Set by HEX (RGB or RRGGBB, values 0 - F or 00 - FF, resp.). Wrong color code = blue
// -
// Default: "1f3fff"
sm_revival_color_ct "1f3fff"

// T death mark color. Set by HEX (RGB or RRGGBB, values 0 - F or 00 - FF, resp.). Wrong color code = red
// -
// Default: "ff3f1f"
sm_revival_color_t "ff3f1f"

// Time for respawn in seconds
// -
// Default: "8"
// Minimum: "0.000000"
sm_revival_countdown "8"

// Crouch a revived player for a split second to avoid getting stuck in a space with a low height.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_crouch "0"

// Can a player revive others if he have less HP than needed for reviving
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_death "1"

// Dissolve effect when removing ragdolls:
// -1 - disable effect, 0 - Energy, 1 - Heavy electrical, 2 - Light electrical, 3 - Core effect
// -
// Default: "3"
// Minimum: "-1.000000"
// Maximum: "3.000000"
sm_revival_dissolve "3"

// Disable revives when both teams have one player alive
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_duel "1"

// Enable/disable effect around to place of death
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_effect "1"

// Enable/disable plugin
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_enabled "1"

// Can a player revive the enemy (the revived player will change the team)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_enemy "0"

// Show revives in the killfeed to the: 1 - allies, 2 - enemies, 4 - spectators (all: 1+2+4 = 7)
// -
// Default: "7"
// Minimum: "0.000000"
// Maximum: "7.000000"
sm_revival_feed "7"

// Give x frags to the player for revived teammate
// -
// Default: "1"
// Minimum: "0.000000"
sm_revival_frag "1"

// How many HP will get revived player
// -
// Default: "40"
// Minimum: "25.000000"
sm_revival_health "40"

// Need's health to respawn others (negative - add HP to reviver)
// -
// Default: "0"
// Minimum: "-100.000000"
// Maximum: "100.000000"
sm_revival_health_cost "0"

// Default key for reviving (0 - 'duck', 1 - 'use', 2 - 'walk', 3 - no key needed)
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
sm_revival_key "3"

// Disable revives when only one player is alive on one of the teams
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_last_man "0"

// Path to the vmt-file in folder 'materials' for the Any mark. Wrong or empty path = default mark.
// -
// Default: "revival/T_revival.vmt"
sm_revival_mark_any "revival/T_revival.vmt"

// Path to the vmt-file in folder 'materials' for the CT mark. Wrong or empty path = default mark.
// -
// Default: "revival/CT_revival.vmt"
sm_revival_mark_ct "revival/CT_revival.vmt"

// Path to the vmt-file in folder 'materials' for the T mark. Wrong or empty path = default mark.
// -
// Default: ".vmt"
sm_revival_mark_t ".vmt"

// The maximum amount of health that a reviver can receive for reviving players (0 - disable limit)
// -
// Default: "20"
// Minimum: "0.000000"
// Maximum: "10000.000000"
sm_revival_maxhealth "20"

// Enable/disable chat messages
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_msg "1"

// Can a players be revived after a round end
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_no_end "0"

// Noblocking time after respawn (set 0 if you have any noblock plugin)
// -
// Default: "0"
// Minimum: "0.000000"
sm_revival_noblock_time "0"

// No damage recive time after respawn (set at 0.0 if you have any spawn protect plugin)
// -
// Default: "1.0"
// Minimum: "0.000000"
// Maximum: "5.000000"
sm_revival_nodmg_time "1.0"

// Enable/disable save the percentage of reviving
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_percent "1"

// Spawn player at: 0 - position of reviver, 1 - his death position, 2 - team spawn point
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "2.000000"
sm_revival_pos "1"

// Radius to respawn death player
// -
// Default: "200.0"
// Minimum: "0.000000"
sm_revival_radius "200.0"

// Reset counter of revived (for cvar 'sm_revival_times') at every: 0 - round, 1 - spawn
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_reset "0"

// Disallow the revival of the players killed: 1 - in the head, 2 - with a knife.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "3.000000"
sm_revival_rip "0"

// How many times can a player will revived by other players during the round (0 - unlimited)
// -
// Default: "0"
// Minimum: "0.000000"
sm_revival_risings "0"

// This sound playing after reviving (empty string = disabled)
// -
// Default: "ui/revivalsound.wav"
// Minimum: "0.000000"
sm_revival_soundpath "ui/revivalsound.wav"

// Can a player be revived after a team change
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_teamchange "1"

// The time after the death of the player, during which the revive is possible (0 - unlimited)
// -
// Default: "0"
// Minimum: "0.000000"
sm_revival_time "0"

// How many times can a player revive other players during the round (0 - unlimited)
// -
// Default: "3"
// Minimum: "0.000000"
sm_revival_times "3"

// Enable/disable key tip at the beginning of the round
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_tip "1"

// Can more than 1 alive player try to revive a player at the same time (0 - 1 reviver per 1 dead player)
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_revival_together "1"

// Show AntiTOP revivers at round end (0 - disable)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "10.000000"
sm_revival_worst "0"
Результат такой как на приложеных фотоПосмотреть вложение 112744Посмотреть вложение 112745, в архиве мои картинки, может с ними что-то не так я не понимаю, когда захожу на сервер они качаються, но скачивается всего 14 б, вместо 11 621 байт, закидывал вручную себе в кс, всё равно результат тот же, буду благодарен если кто-то поймёт в чём причина и скажет(FastDL запускал, ничего не меняет)
Вероятнее всего нет материала по указанному пути. У вас же видимо ошибка при тестировании. Попробуйте сделать всё заново
 

DanZa

Участник
Сообщения
82
Реакции
11
Вероятнее всего нет материала по указанному пути. У вас же видимо ошибка при тестировании. Попробуйте сделать всё заново
Спасибо, переустановка помогла, но только для КТ, у Т вообще даже фиолетового квадратика нету, оно даже не пытается найти файл, хотя путь к нему прописан, с чем это может быть связано?
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@DanZa, м/б потому, что ты не прописал в конфиге путь к иконке для террористов, а только для спецназа?
Сообщения автоматически склеены:

хотя тогда должен дефолтный череп отображаться у них
 

DanZa

Участник
Сообщения
82
Реакции
11
@DanZa, м/б потому, что ты не прописал в конфиге путь к иконке для террористов, а только для спецназа?
Сообщения автоматически склеены:

хотя тогда должен дефолтный череп отображаться у них
Уже всё работает, я не знаю какие именно действия заставили его работать, но как-то получилось, простите что долбал вам мозг))
 

|Fatalist|

Участник
Сообщения
179
Реакции
10
Друзья, 70 страниц лестать правда лень. Не знаю, задавал-ли кто то вопрос но как убрать именно изменение цвета иконки?
Я хочу сделать текстуру именно с своим заданным цветов, окрашивать её через цвет RGB не хочу.
 

Kult

Повелитель костылей
Сообщения
667
Реакции
874
@|Fatalist|, всё предельно просто - сделать свою текстуру.
Текстуры там 2 базово, одна красная и одна синяя.
Обычно, для удобства игроков просят делать красные и синие, чтобы явно и быстро различать что и где.
 

|Fatalist|

Участник
Сообщения
179
Реакции
10
@|Fatalist|, всё предельно просто - сделать свою текстуру.
Текстуры там 2 базово, одна красная и одна синяя.
Обычно, для удобства игроков просят делать красные и синие, чтобы явно и быстро различать что и где.
Я уже сделал текстуры и они залиты на сервер. Я не хочу через команду о задании цвета иконки окрашивать
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Текстуры там 2 базово, одна красная и одна синяя.
У меня - одна.
Просто подкрашивается в цвет команды.
Но есть возможность ставить три: одну для режима, когда все могут поднимать всех, и две для режима, когда можно поднимать только сокомандников.
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Привет всем!
Подскажите где в коде можно приподнять метку?
А то чутка низко,из за этого бывает текстура на половину в пол уходит.
Заранее благодарю!
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@-=|УЧЕНИК|=-, в функции CreateMark() (в исходнике версии 1.1.6 это строка 1613): fDeathPos[client][2] -= 40;
Сообщения автоматически склеены:

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

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
@-=|УЧЕНИК|=-, в функции CreateMark() (в исходнике версии 1.1.6 это строка 1613): fDeathPos[client][2] -= 40;
Сообщения автоматически склеены:

Обычно в событии смерти плагин получает не положение ног до смерти, а точку выше. Поэтому приходится корректировать.
А в землю уходит потому что убили сидящего, скорей всего.
Ну да все верно.
Именно когда сидит игрок.
При обычном убийстве нормально все.
Вот и хотел чутка выше приподнять
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@-=|УЧЕНИК|=-, проблема в том, что при отлове события смерти уже не получается узнать сидел ли в этот момент игрок, чтобы скорректировать позицию метки.
Отлов кнопок не надёжен, т.к. в этот момент кнопка могла быть отпущена или вообще игрок сидел в низком проходе.
Емнип, даже флаг EventHookMode_Pre не помогал.
Сообщения автоматически склеены:

Максимум что можно сделать: определить дистанцию до ближайшей поверхности снизу, на которой можно стоять.
И если она не превышает сколько-то там юнитов (не помню какое расстояние между глазами и подошвами ног), то спавнить чуть выше её.
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
@-=|УЧЕНИК|=-, проблема в том, что при отлове события смерти уже не получается узнать сидел ли в этот момент игрок, чтобы скорректировать позицию метки.
Отлов кнопок не надёжен, т.к. в этот момент кнопка могла быть отпущена или вообще игрок сидел в низком проходе.
Емнип, даже флаг EventHookMode_Pre не помогал.
Сообщения автоматически склеены:

Максимум что можно сделать: определить дистанцию до ближайшей поверхности снизу, на которой можно стоять.
И если она не превышает сколько-то там юнитов (не помню какое расстояние между глазами и подошвами ног), то спавнить чуть выше её.
Ну конечно было не плохо.
Это я так понимаю у всех так,ну видимо не кто за это не замарачивается)

Да я вроде приподнял,чутка выше щас чем по стандарту,ну зато четко все.
Заодно и версию обновил,пока не стал включать sm_revival_feed.
А то включаю только для союзников,оно не так и не так не хочет,ваше не как не скрывало.
Пришлось все листать и читать)
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Максимум что можно сделать: определить дистанцию до ближайшей поверхности снизу, на которой можно стоять.
И если она не превышает сколько-то там юнитов (не помню какое расстояние между глазами и подошвами ног), то спавнить чуть выше её.
Как то так?
C++:
public void Event_PlayerDeath(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
    int iClient = GetClientOfUserId(hEvent.GetInt("userid"));

    float fVec[3];
    GetClientAbsOrigin(iClient, fVec);

    float fVec2[3];
    fVec2[0] = fVec[0];
    fVec2[1] = fVec[1];
    fVec2[2] = fVec[2] - 500.0;

    Handle hTraceRay;
    hTraceRay = TR_TraceRayFilterEx(fVec, fVec2, MASK_SOLID, RayType_Infinite, TraceRayDontHitSelf, iClient);

    if(TR_DidHit(hTraceRay))
    {
        float fPosEnd[3];
        TR_GetEndPosition(fPosEnd, hTraceRay);

        //Получили позицию на земле fPosEnd

    }

    delete hTraceRay;
}

bool TraceRayDontHitSelf(int iEntity, int iMask, any iClient)
{
    return iEntity != iClient && !(0 < iEntity <= MaxClients);
}
 

Nebraska

Участник
Сообщения
225
Реакции
293
@-=|УЧЕНИК|=-, проблема в том, что при отлове события смерти уже не получается узнать сидел ли в этот момент игрок, чтобы скорректировать позицию метки.
Отлов кнопок не надёжен, т.к. в этот момент кнопка могла быть отпущена или вообще игрок сидел в низком проходе.
Емнип, даже флаг EventHookMode_Pre не помогал.
Сообщения автоматически склеены:

Максимум что можно сделать: определить дистанцию до ближайшей поверхности снизу, на которой можно стоять.
И если она не превышает сколько-то там юнитов (не помню какое расстояние между глазами и подошвами ног), то спавнить чуть выше её.
можно узнать сидел ли игрок в событии player_hurt перед смертью игрока
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Nebraska, ну для этого нужно дополнительно хукать ещё одно событие (хотя м/б имеет смысл заменить событие смерти на событие получение урона и просто узнавать сколько хп осталось).
Сообщения автоматически склеены:

@KiKiEEKi, убери размер шрифта в подписи.
Матом тебя прошу.
Сообщения автоматически склеены:

и в TraceRayDontHitSelf() сравнение с индексом игрока можно убрать вообще
Сообщения автоматически склеены:

@-=|УЧЕНИК|=-, @Nebraska, переделал на отлов события player_hurt.
В остальном без изменений (ну кроме того, что ещё убрал коррекцию положения метки).
 

Вложения

  • sm_revival 1.1.7b_19.07.2023.sp
    61.2 КБ · Просмотры: 17
Последнее редактирование:
Сверху Снизу