Revival

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@msK, вернуть файл переводов.
Ну или убрать в исходнике все строке, где присутствуют %t или %T и после компиляции закинуть на сервер.

Потому что тебе SM английским по чёрному пишет, что отсутствует перевод фразы.
 

msK

Участник
Сообщения
69
Реакции
3
@msK, вернуть файл переводов.
Ну или убрать в исходнике все строке, где присутствуют %t или %T и после компиляции закинуть на сервер.

Потому что тебе SM английским по чёрному пишет, что отсутствует перевод фразы.
Спасибо, я знал что за ошибка. Хотел просто узнать.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Проверьте эту версию на счёт спама в чат при воскрешении. По идее, больше его не должно быть
 

Вложения

  • sm_revival 1.0.6.sp
    21.7 КБ · Просмотры: 24
  • sm_revival 1.0.6_SM1.8.smx
    18.1 КБ · Просмотры: 5
  • sm_revival 1.0.6_SM1.9.smx
    18.4 КБ · Просмотры: 19

FokS

Участник
Сообщения
422
Реакции
52
За всё время игры (около двух часов) один раз спам наблюдался всё-таки. Версия 1.0.6
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Хоть делай отдельную версию чисто для дебага, чтобы узнать из-за какого момента начинается спам
Сейчас должно спамить только если игрок отпускает кнопку, перестаёт стоять на земле, но тогда должно в чат писать, что игрок прекратил воскрешать на скольких-то процентах.
Кмк, такое ещё может быть от нестабильного коннекта или лагов.

Если такого не пишет, значит игрок во время воскрешения выходил за границу зоны воскрешения.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
@Grey83, почему бы тебе OnPlayerRunCmd не заменить на таймер?
У меня в Deathmatch так сделано, небольшой кусок кода:

PHP:
    else
    {
        float fPos[3], fAng[3]; int iEntity, iTime = GetTime();
        for(int i = 1; i <= MaxClients; i++)
        {
            if(!IsClientInGame(i)) continue;
            Informer(i, sBuffer);

            if(!IsFakeClient(i) && IsPlayerAlive(i))
            {
                GetClientEyePosition(i, fPos); GetClientEyeAngles(i, fAng);
                TR_TraceRayFilter(fPos, fAng, MASK_SOLID, RayType_Infinite, TR_Filter, i);
                if((iEntity = TR_GetEntityIndex()) > 0)
                {
                    int iOwner = GetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity");
                    if(iOwner > 0 && IsClientInGame(iOwner) && !IsPlayerAlive(iOwner))
                    {
                        if(GetClientTeam(i) == GetClientTeam(iOwner))
                        {
                            PrintHintText(i, "Вы смотрите на ящик игрока %N\nПодойдите и зажмите кнопку 'E', чтобы возродить игрока!", iOwner);

                            if(GetClientButtons(i) & IN_USE)
                            {
                                float fPos2[3]; GetEntPropVector(iEntity, Prop_Send, "m_vecOrigin", fPos2);
                                if(GetVectorDistance(fPos, fPos2) <= 100)
                                {
                                    if(g_iTimeRespawn[i] < iTime)
                                    {
                                        g_iTimeRespawn[i] = iTime + g_iBoxTimeRespawn;
                                        g_iEntity[i] = iEntity +1;
                                    }

                                    if(g_iEntity[i] == iEntity +1)
                                    {
                                        if(g_iTimeRespawn[i] > iTime) PrintHintText(i, "Возрождаем игрока %N | Осталось %i секунд(а/ы)", iOwner, g_iTimeRespawn[i] - iTime);
                                        else if(g_iTimeRespawn[i] == iTime)
                                        {
                                            CS_RespawnPlayer(iOwner);
                                            if(g_bBoxRespawn) TeleportEntity(iOwner, fPos2, NULL_VECTOR, NULL_VECTOR);
                                            PrintHintText(i, "Вы возродили игрока %N!", iOwner); PrintHintText(iOwner, "Вас возродил игрок %N!", i);
                                            ForwardBox(1, iOwner, i);
                                        }
                                    }
                                    else CancelRespawn(i, iTime, "Что-то пошло не так, возрождение игрока было отменено!");
                                }
                                else CancelRespawn(i, iTime, "Подойдите ближе к ящику, чтобы возродить игрока.");
                            }
                            else g_iTimeRespawn[i] = iTime;
                        }
                    }
                    else
                    {
                        if(g_iTimeRespawn[i] > iTime) CancelRespawn(i, iTime, "Возрождение было отменено!\nИгрок был возрожден или же покинул сервер.");
                    }
                }
                else
                {
                    if(g_iTimeRespawn[i] > iTime) CancelRespawn(i, iTime, "Возрождение было отменено!\nПрицел надо держать на ящике когда пытаетесь возродить игрока.");
                }
            }
        }
    }

PHP:
void CancelRespawn(int iClient, int iTime, char[] sMessage)
{
    g_iTimeRespawn[iClient] = iTime;
    PrintHintText(iClient, sMessage);
}

Если смотреть видео, то это выглядит так:
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Drumanid, потому что я от таймера как раз избавлялся
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
@Grey83, по мне так OnPlayerRunCmd куда хуже таймера, но дело твое :ac:
 

Сергей Марков

Участник
Сообщения
10
Реакции
0
Привет, раскидал всё по папкам. А сам файл кфг не появился.
Понятия не имею по какой причине. Раз 500000 грузанул серв и обновил фтп.
он в стандарте идет.. Все нормально было, ты видно не заметил..
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Troyanskaya, не должно быть, т.к. в самом начале делается проверка на то что жив воскрешатель или же нет.
М/б делать перехват состояния игрока иначе как-то нужно.
 

Troyanskaya

Участник
Сообщения
442
Реакции
30
@Troyanskaya, не должно быть, т.к. в самом начале делается проверка на то что жив воскрешатель или же нет.
М/б делать перехват состояния игрока иначе как-то нужно.
еще бывает что до этого тебя воскресил игрок.и на следующий раунд\или в этом же когда воскрешают тоже спамит.может это из за того что отключается в конце раунда воскрешение???
--- Добавлено позже ---
а что за эффекты на первом скрине???черепки есть, круг когда воскрешение тоже есть.
--- Добавлено позже ---
буквально 2мин назад зашел на серв сыграл раунд.воскрешал игрок меня его убили и спам прошел.до этого никто не воскрешал меня и я никого.
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
может это из за того что отключается в конце раунда воскрешение???
хз, в следующем билде, возможно, введу другой способ определения состояния игрока
что за эффекты на первом скрине???
Это эффект при спавне.
Другой плагин, который делался по заказу, но пока до ума весь требуемый функционал не довёл (то времени нет, то настроения).
 

Troyanskaya

Участник
Сообщения
442
Реакции
30
хз, в следующем билде, возможно, введу другой способ определения состояния игрока
Это эффект при спавне.
Другой плагин, который делался по заказу, но пока до ума весь требуемый функционал не довёл (то времени нет, то настроения).
все сводится к тому что когда тебя ресает игрок и его убивают после этого и происходит спам в чат.бывает просто одним уведомлением о воскрешение,а бывает что просто много.
 

Troyanskaya

Участник
Сообщения
442
Реакции
30
хз, в следующем билде, возможно, введу другой способ определения состояния игрока
Это эффект при спавне.
Другой плагин, который делался по заказу, но пока до ума весь требуемый функционал не довёл (то времени нет, то настроения).
можешь отключить смс что возрождает.только оставить что вас возродил такой то игрок и все???пока не решил эту проблему.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Troyanskaya, закомментируй строки 426 и 427:
PHP:
                GetClientName(client, name, sizeof(name));
                PrintToChat(target[client], "%t%t", "ChatTag", "YouRevivingBy", name);
Это уберёт сообщение у воскрешаемого, что его начали воскрешать
 

Troyanskaya

Участник
Сообщения
442
Реакции
30

Вложения

  • Безымянный.png
    Безымянный.png
    13.6 КБ · Просмотры: 32

FokS

Участник
Сообщения
422
Реакции
52
На SM 1.8 всё норм, скомпилировал без ошибок.
 

Вложения

  • sm_revival 1.0.5.smx
    18 КБ · Просмотры: 5
Сверху Снизу