Блокировать стрельбу в определенный момент
|
|
Valeriks
|
Дата: Среда, 05.03.2014, 15:45:54 | Сообщение # 1 |
|
Сообщений: 100
Репутация: 3 [ +/- ]
|
|
Всем привет! Подскажите как заблокировать стрельбу у всех игроков в определенный момент? Или как-то убрать все патроны чтобы не стреляли?
|
|
| |
Vor4uN
|
Дата: Среда, 05.03.2014, 18:40:27 | Сообщение # 2 |
|
Сообщений: 49
Репутация: 3 [ +/- ]
|
|
А что за момент опиши подробнее.
|
|
| |
Valeriks
|
Дата: Среда, 05.03.2014, 19:59:53 | Сообщение # 3 |
|
Сообщений: 100
Репутация: 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 |
|
Сообщений: 100
Репутация: 3 [ +/- ]
|
|
Благодарю! Сейчас посмотрим что можно придумать.Добавлено (05.03.2014, 22:12:04) --------------------------------------------- Нет, с кнопками это всё херня... не то. Добавлено (06.03.2014, 12:01:38) --------------------------------------------- Может кто подскажет как удалить все патроны?
|
|
| |
BarD
|
Дата: Четверг, 06.03.2014, 12:13:25 | Сообщение # 6 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Вот есть тема для добавления патронов. Надеюсь, тебе поможет
|
|
| |
Valeriks
|
Дата: Четверг, 06.03.2014, 12:37:06 | Сообщение # 7 |
|
Сообщений: 100
Репутация: 3 [ +/- ]
|
|
Цитата BarD ( ) Вот есть тема для добавления патронов. Надеюсь, тебе поможет Нет, это не то. Мне вообще желательно загнать блокировку патронов (или стрельбы) через таймер.. вопрос как это сделать?
|
|
| |
BarD
|
Дата: Четверг, 06.03.2014, 12:50:31 | Сообщение # 8 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Следуя вот этой теме можно вот такой таймер сделать: Код 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 |
|
Сообщений: 100
Репутация: 3 [ +/- ]
|
|
Цитата BarD ( ) Вот этот код обнуляет патроны каждую секунду. Благодарю! Если чего напишу.Добавлено (06.03.2014, 13:31:46) --------------------------------------------- Не, обнуляет только в обойме и всё.. а нужно чтобы обнулил вообще все патроны разом.
|
|
| |
BarD
|
Дата: Четверг, 06.03.2014, 14:34:16 | Сообщение # 10 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Стой, а тебя нулевая обойма не устраивает? Она же обнуляется каждые 0.5 секунды) Они хоть как стрелять не смогут
|
|
| |
Valeriks
|
Дата: Четверг, 06.03.2014, 14:59:09 | Сообщение # 11 |
|
Сообщений: 100
Репутация: 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 |
|
| |