Контакты Поиск

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

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Блокировать стрельбу в определенный момент
Блокировать стрельбу в определенный момент
Valeriks Дата: Среда, 05.03.2014, 15:45:54 | Сообщение # 1
Сообщений: 101
Репутация: 3 [ +/- ]
Всем привет!
Подскажите как заблокировать стрельбу у всех игроков в определенный момент? Или как-то убрать все патроны чтобы не стреляли?
 
Vor4uN Дата: Среда, 05.03.2014, 18:40:27 | Сообщение # 2
Сообщений: 49
Репутация: 3 [ +/- ]
А что за момент опиши подробнее.
 
Valeriks Дата: Среда, 05.03.2014, 19:59:53 | Сообщение # 3
Сообщений: 101
Репутация: 3 [ +/- ]
Цитата Vor4uN ()
А что за момент опиши подробнее.

Конец карты в gungame, там есть задержка но она глюченная)) игроков замораживает а вот стрельбу нет... А вообще gg у меня писаный переписанный)) так что не стоит опираться на определенный момент. Меня интересует какой функцией можно запретить стрельбу, либо заблокировать левую кнопку мыши, как-то так =) вообщем проявить смекалку нужно. По другому не как.
 
Vor4uN Дата: Среда, 05.03.2014, 20:21:47 | Сообщение # 4
Сообщений: 49
Репутация: 3 [ +/- ]
По форуму то есть же примеры.
http://world-source.ru/forum/102-2892-1

Залочить вот как то так наверное.

Код
forward Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
         buttons &= ~IN_ATTACK;
         buttons &= ~IN_ATTACK2;
         return Plugin_Changed;
}  


или так

Код
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)  
{    
         if(buttons & IN_ATTACK)  
         {  
                 buttons &= ~IN_ATTACK;
         }
}  


Сообщение отредактировал Vor4uN - Среда, 05.03.2014, 20:36:56
 
Valeriks Дата: Четверг, 06.03.2014, 12:01:38 | Сообщение # 5
Сообщений: 101
Репутация: 3 [ +/- ]
Благодарю!
Сейчас посмотрим что можно придумать.

Добавлено (05.03.2014, 22:12:04)
---------------------------------------------
Нет, с кнопками это всё херня... не то.

Добавлено (06.03.2014, 12:01:38)
---------------------------------------------
Может кто подскажет как удалить все патроны?

 
BarD Дата: Четверг, 06.03.2014, 12:13:25 | Сообщение # 6
Сообщений: 942
Репутация: 132 [ +/- ]
Вот есть тема для добавления патронов. Надеюсь, тебе поможет
 
Valeriks Дата: Четверг, 06.03.2014, 12:37:06 | Сообщение # 7
Сообщений: 101
Репутация: 3 [ +/- ]
Цитата BarD ()
Вот есть тема для добавления патронов. Надеюсь, тебе поможет

Нет, это не то.
Мне вообще желательно загнать блокировку патронов (или стрельбы) через таймер.. вопрос как это сделать?
 
BarD Дата: Четверг, 06.03.2014, 12:50:31 | Сообщение # 8
Сообщений: 942
Репутация: 132 [ +/- ]
Следуя вот этой теме можно вот такой таймер сделать:
Код
CreateTimer(1.0, Timer, client, TIMER_REPEAT)

stock SetWeaponClipAmmo(client, slot, ammo)   
{   
    new ammoOffset = FindSendPropInfo("CCSPlayer", "m_iAmmo");   
    return SetEntData(client, ammoOffset+(slot*4), ammo);   
}   

stock SetWeaponAmmo(client, ammo)   
{   
    new iWeapon = GetEntDataEnt2(client, FindSendPropInfo("CCSPlayer", "m_hActiveWeapon"));   
    SetEntData(iWeapon, FindSendPropInfo("CBaseCombatWeapon", "m_iClip1"), ammo);   
}

public Action:Timer(Handle:timer, any:client)
{
SetWeaponAmmo(client, 0); // Обнуление в обойме
SetWeaponClipAmmo(client, 1, 0); //Обнуляем патроны в Основном оружии
SetWeaponClipAmmo(client, 2, 0);// И в пистолете
}


Вот этот код обнуляет патроны каждую секунду. Время можешь уменьшить до 0.5, чтоб наверняка. Сам не тестил, так что надеюсь на его работу))


Сообщение отредактировал BarD - Четверг, 06.03.2014, 12:51:10
 
Valeriks Дата: Четверг, 06.03.2014, 13:31:46 | Сообщение # 9
Сообщений: 101
Репутация: 3 [ +/- ]
Цитата BarD ()
Вот этот код обнуляет патроны каждую секунду.

Благодарю! Если чего напишу.

Добавлено (06.03.2014, 13:31:46)
---------------------------------------------
Не, обнуляет только в обойме и всё.. а нужно чтобы обнулил вообще все патроны разом.

 
BarD Дата: Четверг, 06.03.2014, 14:34:16 | Сообщение # 10
Сообщений: 942
Репутация: 132 [ +/- ]
Стой, а тебя нулевая обойма не устраивает? Она же обнуляется каждые 0.5 секунды) Они хоть как стрелять не смогут
 
Valeriks Дата: Четверг, 06.03.2014, 14:59:09 | Сообщение # 11
Сообщений: 101
Репутация: 3 [ +/- ]
Я уже положил на это)) надоело.. вернулся к кнопка и почти получилось. Единственное что пока не могу исправить так это то, что один раз стрельнуть можно)) и как бы рука с оружием дергается.. а хочется сделать чтобы при нажатии на выстрел не было ни какой реакции.
 
Selya8314 Дата: Суббота, 08.03.2014, 17:21:43 | Сообщение # 12
Сообщений: 1
Репутация: 0 [ +/- ]
Ребята, как удалить патроны в обоиме ?
Я даю клиенту m4:
Код
GivePlayerItem(client, "weapon_m4a1");

она появляется полная, как сделать что бы у неё небыло патронов вообще или было 10/10 к примеру ?
Это не помогает:
Код
SetWeaponAmmo(client, 0); // Обнуление в обойме  
  SetWeaponClipAmmo(client, 1, 0); //Обнуляем патроны в Основном оружии  
  SetWeaponClipAmmo(client, 2, 0);// И в пистолете

Сорри, что не в новой теме.
 
ThRunningMan Дата: Воскресенье, 09.03.2014, 06:04:36 | Сообщение # 13
Сообщений: 140
Репутация: 12 [ +/- ]
Valeriks, удаляет действие "атака1" до ее применения на сервере, по анимации возможно будет видно выстрелы, но они не будут считаться на сервере

Код
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_ATTACK) || (buttons & IN_ATTACK2))
    {
      buttons &= ~IN_ATTACK;
      SetEntProp(client, Prop_Data, "m_nButtons", buttons);
    }
   }
}


Сообщение отредактировал ThRunningMan - Воскресенье, 09.03.2014, 06:05:58
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Блокировать стрельбу в определенный момент
  • Страница 1 из 1
  • 1
Поиск: