Ограничение для паутинки

YajSava

Участник
Сообщения
41
Реакции
0
Я видел на нескольких серверах, паутинку с ограниченным кол-вом использований за раунд(15 раз например). Может кто подскажет? Заранее спасибо.
 

MaZa

Участник
Сообщения
1,732
Реакции
980
Последнее редактирование:

suremiur

♂ overlay master ♂
Сообщения
537
Реакции
586
upload_2018-3-21_0-40-14.png


Тут - [ANY] Hook Grab Rope (1.1.4) - AlliedModders
 

YajSava

Участник
Сообщения
41
Реакции
0
J

Join

Простите, а можно что бы это ограничение сбивалось еще и после смерти?
Доброе утро, для начала нужно поймать событие смерти игрока, затем нужно получить id игрока, и после всего применить сброс к умершему игроку, примерно так:
PHP:
public OnPluginStart()
{
    HookEvent("player_death", OnPlayerDeath); //Ставим отлов для события player_death, как только произойдёт смерть сработает код из OnPlayerDeath
}

public OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) //Если игрок умер, то всё что будет в блоке ниже выполниться на сервере.
{
    new iClient = GetClientOfUserId(GetEventInt(event, "userid")); //(Здесь мы создаём локальную переменную iClient и записываем в неё ClientUserId, это нужно для того что бы знать ID умершего игрока )
    for(new HGRAction:k = Hook; k <= Rope; k++) //(Это цыкл for, в данном случае в цикле создаётся, присваивается, сравнивается, и прибавляются всякие всякие данные не понятные нам=) Не будем об этом^_^)
    {
        g_RoundUses[iClient][k] = 0; //(так-как мы получили ID умершего игрока, то мы можем внутри этого блока подпрограммы выполнить действия над игроком, соответственно обнуляем лимит и радуемся)
    }
}

Хочу сказать что скорее всего это работать не будет, даже если вы попытаетесь дописать этот код к основному плагину, дело в том что в самом плагине хука, сброс реализован немножечко иначе, и добавляя всего лишь одну новую функцию(в данном случае вы хотите что бы лимит сбрасывался после смерти), нужно переписывать более 50-70% основного плагина, ибо сброс в нём выполняется в начале раунда, хотя что-то мне подсказывает что я ошибаюсь по поводу переписывания плагина.

В любом случае путей реализации этой функции множество, каким пользоваться решать вам, прикрепил исправленный исходник, попробуйте может будет работать после смерти, но предупреждаю сразу что даже если и заработает то сброс лимита будет срабатывать два раза, после смерти, и в начале раунда, и кстати это тоже можно исправить, но как я уже говорил не факт что вообще работать будет, надо вникать, пробовать, тестировать, вообщем я в кс уже около полугода не играю, по этому к сожалению всю бесплатную помощь со своей доброй стороны, я вам предоставил, если реально хотите результата, то попросите кого-нибудь на форуме бесплатно помочь вам, я уверен такие ребята найдутся, ну или если сильно горит, можете сделать платный заказ у завсегдатых форма, ну или если не боитесь меня, и хотите с экономить, можете меня в ЛС попросить, я помогу о цене договоримся, хд=)

P.S: А если серьёзно ещё можно заменить хук начала раунда на хук спавна(это при том что игрок умрёт и реснется в этом же раунде что и умер, т.е лимит будет выдан повторно), с проверкой на живучесть, должно сработать, хз, кто-бы это всё проверял...
 

Вложения

  • hgrlimit.sp
    5.1 КБ · Просмотры: 30
Последнее редактирование модератором:
  • Мне нравится
Реакции: MaZa

YajSava

Участник
Сообщения
41
Реакции
0
Доброе утро, для начала нужно поймать событие смерти игрока, затем нужно получить id игрока, и после всего применить сброс к умершему игроку, примерно так:
PHP:
public OnPluginStart()
{
    HookEvent("player_death", OnPlayerDeath); //Ставим отлов для события player_death, как только произойдёт смерть сработает код из OnPlayerDeath
}

public OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) //Если игрок умер, то всё что будет в блоке ниже выполниться на сервере.
{
    new iClient = GetClientOfUserId(GetEventInt(event, "userid")); //(Здесь мы создаём локальную переменную iClient и записываем в неё ClientUserId, это нужно для того что бы знать ID умершего игрока )
    for(new HGRAction:k = Hook; k <= Rope; k++) //(Это цыкл for, в данном случае в цикле создаётся, присваивается, сравнивается, и прибавляются всякие всякие данные не понятные нам=) Не будем об этом^_^)
    {
        g_RoundUses[iClient][k] = 0; //(так-как мы получили ID умершего игрока, то мы можем внутри этого блока подпрограммы выполнить действия над игроком, соответственно обнуляем лимит и радуемся)
    }
}

Хочу сказать что скорее всего это работать не будет, даже если вы попытаетесь дописать этот код к основному плагину, дело в том что в самом плагине хука, сброс реализован немножечко иначе, и добавляя всего лишь одну новую функцию(в данном случае вы хотите что бы лимит сбрасывался после смерти), нужно переписывать более 50-70% основного плагина, ибо сброс в нём выполняется в начале раунда, хотя что-то мне подсказывает что я ошибаюсь по поводу переписывания плагина.

В любом случае путей реализации этой функции множество, каким пользоваться решать вам, прикрепил исправленный исходник, попробуйте может будет работать после смерти, но предупреждаю сразу что даже если и заработает то сброс лимита будет срабатывать два раза, после смерти, и в начале раунда, и кстати это тоже можно исправить, но как я уже говорил не факт что вообще работать будет, надо вникать, пробовать, тестировать, вообщем я в кс уже около полугода не играю, по этому к сожалению всю бесплатную помощь со своей доброй стороны, я вам предоставил, если реально хотите результата, то попросите кого-нибудь на форуме бесплатно помочь вам, я уверен такие ребята найдутся, ну или если сильно горит, можете сделать платный заказ у завсегдатых форма, ну или если не боитесь меня, и хотите с экономить, можете меня в ЛС попросить, я помогу о цене договоримся, хд=)

P.S: А если серьёзно ещё можно заменить хук начала раунда на хук спавна(это при том что игрок умрёт и реснется в этом же раунде что и умер, т.е лимит будет выдан повторно), с проверкой на живучесть, должно сработать, хз, кто-бы это всё проверял...

консоль.png
Как это исправить?
--- Добавлено позже ---
hgr файла нигде нет в плагине, либо я плохо искал (папка scripting)
--- Добавлено позже ---
сброс лимита будет срабатывать два раза, после смерти, и в начале раунда,
Мне это и нужно.
 
J

Join

Он отсутствовал в исходном архиве
не правда, лично скачал, перепроверил:
//SourceMod Batch Compiler
// by the SourceMod Dev Team


//// hgrlimit.sp
//
// D:\server\csgo\addons\sourcemod\scripting\hgrlimit.sp(53) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// Code size: 6672 bytes
// Data size: 5056 bytes
// Stack/heap size: 16384 bytes
// Total requirements: 28112 bytes
//
// 1 Warning.
//
// Compilation Time: 0,23 sec
// ----------------------------------------

Press enter to exit ...

То что там предупреждение я не виноват, это не моё, да и на работу влиять никак не будет. Просто не определяет переменную, ну как бы плагин просто под несколько игр написан, по этому так=) Не парьтесь крч.
 

Вложения

  • hgr.inc
    10.3 КБ · Просмотры: 17
  • hgrlimit.sp
    5.1 КБ · Просмотры: 22
  • hgrlimit.smx
    6 КБ · Просмотры: 16
Последнее редактирование модератором:

YajSava

Участник
Сообщения
41
Реакции
0
не правда, лично скачал, перепроверил:

То что там предупреждение я не виноват, это не моё, да и на работу влиять никак не будет. Просто не определяет переменную, ну как бы плагин просто под несколько игр написан, по этому так=) Не парьтесь крч.

Я попробовал, не получилось, лимита вообще нет(
 

ALSHiN

Участник
Сообщения
222
Реакции
14
А можно ограничить паутинку по времени? допустим чтобы можно было ее юзать раз в 5 секунд
 

❌Seメ❥Pikachuツ❌

Участник
Сообщения
5
Реакции
0
а есть паутинка с обширными настройками для vip
где можно будет настроить скорость паутинки, время действия паутинки, время отката(перезарядки) паутинки, разное количество в разных vip группах за раунд, и чтоб паутинку можно было ограничивать как на разных картах так и в shavit чтоб рекорд сбрасывался при использовании паутинки
хз может есть такая да же если кто то продаёт я бы купил
 
Сверху Снизу