Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Запретить перезарядку вообще
Запретить перезарядку вообще
Geny Дата: Четверг, 03.04.2014, 16:56:06 | Сообщение # 1
Сообщений: 110
Репутация: 0 [ +/- ]
Запретить перезарядку вообще
 
BarD Дата: Четверг, 03.04.2014, 17:39:01 | Сообщение # 2
Сообщений: 943
Репутация: 137 [ +/- ]
Твоей цели можно достичь 3 путями:
1) Используя плагин Fast Reload Weapon от wS. Я не знаю, как он работает, но ссылку кину. Попробуй разобраться.


2) Можно каждые 0.5 секунды выдавать полную обойму игроку.
Тема есть на выдачу патронов:

Или такой плагин разбери


3) Можно удалять оружие у игрока и выдавать новое (возможно, что по такому принципу действует Fast Reload Weapon):


Сообщение отредактировал BarD - Четверг, 03.04.2014, 17:43:00
 
_wS_ Дата: Четверг, 03.04.2014, 17:39:40 | Сообщение # 3
Thanks
Хватит спамить, Geny, надоело, как только есть вопрос, сразу пишешь, сам ничего не делаешь, и не пытаешься.
 
BarD Дата: Четверг, 03.04.2014, 17:41:24 | Сообщение # 4
Сообщений: 943
Репутация: 137 [ +/- ]
wS, Да и пусть спрашивает. Я буду отвечать. Когда-то я тоже был начинающим скриптером и много чего не знал. Буду помогать другим
 
Geny Дата: Четверг, 03.04.2014, 17:59:32 | Сообщение # 5
Сообщений: 110
Репутация: 0 [ +/- ]
Код
HookEvent("weapon_reload", weapon_reload);
public weapon_reload(Handle:event, const String:name[], bool:silent)
{
       return Plugin_Handle;
}


Вот мое неработающее предположение. Цель не выдавать патроны а запретить перезарядку вообще!!!!!!
 
Tokami Дата: Пятница, 04.04.2014, 01:54:58 | Сообщение # 6
Сообщений: 238
Репутация: 19 [ +/- ]
хмм


Сообщение отредактировал Tokami - Пятница, 11.04.2014, 15:32:01
 
BarD Дата: Пятница, 04.04.2014, 06:00:23 | Сообщение # 7
Сообщений: 943
Репутация: 137 [ +/- ]
Можно сделать так:
Код
HookEvent("weapon_reload", weapon_reload);  
public weapon_reload(Handle:event, const String:name[], bool:dontBroadcast)  
{  
      new client = GetClientOfUserId(GetEventInt(event, "userid"));//Получаем айди игрока, который перезарядился
        new String:weapon[64];
         GetClientWeapon(client, weapon, sizeof(weapon)); //Получаем название оружия в руках
       FakeClientCommand(client, "use weapon_knife"); //Переключаем его на нож
       FakeClientCommand(client, "use %s", weapon); //Переключаем обратно, тем самым сбрасывая перезарядку
}
 
ThRunningMan Дата: Пятница, 04.04.2014, 08:52:42 | Сообщение # 8
Сообщений: 140
Репутация: 12 [ +/- ]
Есть еще вариант, блокировать команду на сервере, т.е. игрок пердает команду серверу, что он перезарежается, но сервер будет блокировтаь ее, я так думаю, просто не тестил, но работал с похожим, когда надо было забловировать стрельбу...
Код
public OnClientPutInServer(client)
{
  SDKHook(client, SDKHook_PreThink, Hook_PreThinkPost);  
}
public Hook_PreThinkPost(client)  
{  
    if (client && IsClientConnected (client) && IsClientInGame (client) && IsPlayerAlive (client))
  {
   new buttons = GetClientButtons(client);
   if((buttons & IN_RELOAD))
   {
    buttons &= ~IN_RELOAD;
    SetEntProp(client, Prop_Data, "m_nButtons", buttons);
   }
  }
}

Но эт оесли игрок будет жать перзарядку, а если автоперзярядка п оокнчанию патронов, то я в одном своем плагине следил такмером, за тем когда количество птароном в рожке станет 0 и делал код, в данном случае надо подумать исходя из того что требуется и что будет приемлемо допустить
 
MrGreen Дата: Понедельник, 21.02.2022, 15:45:26 | Сообщение # 9
Сообщений: 21
Репутация: 0 [ +/- ]
Цитата BarD ()
Можно сделать так:
HookEvent("weapon_reload", weapon_reload);  
 public weapon_reload(Handle:event, const String:name[], bool:dontBroadcast)  
 {  
      new client = GetClientOfUserId(GetEventInt(event, "userid"));//Получаем айди игрока, который перезарядился
        new String:weapon[64];
         GetClientWeapon(client, weapon, sizeof(weapon)); //Получаем название оружия в руках
       FakeClientCommand(client, "use weapon_knife"); //Переключаем его на нож
       FakeClientCommand(client, "use %s", weapon); //Переключаем обратно, тем самым сбрасывая перезарядку
 }


А можно как-то отловить перезарядку оружия, которая производится без участия игрока? То есть когда игрок выпустил всю обойму и начинается перезарядка оружия. weapon_reload отлавливает сам факт нажатия кнопки перезарядки, но через него нельзя отловить автоматическую перезарядку.
 
_wS_ Дата: Понедельник, 21.02.2022, 18:18:16 | Сообщение # 10
Thanks
Цитата MrGreen ()
А можно как-то отловить перезарядку оружия, которая производится без участия игрока?

Код
HookUserMessage(GetUserMessageId("ReloadEffect"), ...
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Запретить перезарядку вообще
  • Страница 1 из 1
  • 1
Поиск: