Ищу плагин который не даёт убить в спину с ножа
|
|
Levchik97
|
Дата: Пятница, 05.12.2014, 13:04:37 | Сообщение # 1 |
|
Сообщений: 4
Репутация: 0 [ +/- ]
|
|
Ищу плагин который не даёт убить в спину с ножа. Где-то на просторах интернета видел, но забыл где. Пожалуйста, помогите найти. Заранее благодарен!
|
|
| |
dron216
|
Дата: Пятница, 05.12.2014, 20:53:28 | Сообщение # 2 |
|
Сообщений: 151
Репутация: 18 [ +/- ]
|
|
Дык его легко и самому написать... Хукаешь урон по игроку, проверяешь с кого-го оружия нанесен урон, если с ножа И урон более 100: то удар нанесен в спину и зная это можешь изменить урон на 65...
|
|
| |
BarD
|
Дата: Суббота, 06.12.2014, 16:31:44 | Сообщение # 3 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Код #pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <sdkhooks>
public OnClientPostAdminCheck(client) // Когда игрок заходит, то начинаем ловить событие получения урона { if (IsClientInGame(client) && client) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); }
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) //Когда игрок получает урон { decl String:weap[20]; GetClientWeapon(attacker, weap, sizeof(weap)); if (StrContains(weap, "weapon_knif") != -1) //Если с ножа { if (damage > 100) // Если урон больше 100 (со спины) { damage = 65.0; //Ставим 65 return Plugin_Changed; //Применяем изменения } } return Plugin_Continue; //Продолжаем }
public OnClientDisconnect(client) //когда игрок выходит, перестаем ловить событие получения урона { if (IsClientInGame(client) && client) SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage); }
|
|
| |
_wS_
|
Дата: Суббота, 06.12.2014, 17:35:13 | Сообщение # 4 |
|
BarD, зачем такой грязный код даешь? :\
1. В OnClientPostAdminCheck это лишнее "if (IsClientInGame(client) && client)", а если бы и нужно было, то наоборот "if (client > 0 && IsClientInGame(client))"
2. Перед GetClientWeapon attacker'а не проверяешь, может там индекс 0 и тд 3. Делать Unhook после выхода игрока не нужно, SDKHooks сам это делает, и опять делаешь проверку наоборот
Цитата dron216 ( ) если с ножа И урон более 100: то удар нанесен в спину Не так все просто, а если он левой бьет? С координатами мудрить надо.
|
|
| |
serm
|
Дата: Воскресенье, 07.12.2014, 05:34:50 | Сообщение # 5 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата BarD ( ) if (StrContains(weap, "weapon_knif") != -1) //Если с ножа weapon_knif
|
|
| |
BarD
|
Дата: Воскресенье, 07.12.2014, 08:25:35 | Сообщение # 6 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
_wS_, Цитата _wS_ ( ) 1. В OnClientPostAdminCheck это лишнее "if (IsClientInGame(client) && client)", а если бы и нужно было, то наоборот "if (client > 0 && IsClientInGame(client))" После нескольких случаев ошибок в логах "Client index is not in game", я ставлю проверки буквально везде. Лишняя не помешает)
Цитата _wS_ ( ) 2. Перед GetClientWeapon attacker'а не проверяешь, может там индекс 0 и тд Согласен. Здесь забыл проверку.
Цитата _wS_ ( ) 3. Делать Unhook после выхода игрока не нужно, SDKHooks сам это делает Этого не знал. Спасибо за ценный совет.
Цитата _wS_ ( ) Не так все просто, а если он левой бьет? С координатами мудрить надо. Я так понял, что ему нужно, чтоб игрока с 1 удара ножом, т.е. в спину, убить было нельзя. Если урон больше 100, то это в любом случае удар ножом в спину. Следовательно, превращаем его в 65.
serm, я пробовал через StrEqual делать, как положено, но, по каким-то непонятным причинам, урон либо не проходил, либо не изменялся. Пришлось импровизировать.
|
|
| |
Levchik97
|
Дата: Вторник, 09.12.2014, 00:08:18 | Сообщение # 7 |
|
Сообщений: 4
Репутация: 0 [ +/- ]
|
|
Спасибо
|
|
| |
REgion
|
Дата: Вторник, 17.02.2015, 08:39:31 | Сообщение # 8 |
|
Сообщений: 31
Репутация: -2 [ +/- ]
|
|
BarD, Барт ты спешил походу?
Я подправил код, вот держи.
Гости не могут скачивать файлы
|
|
|
| |
SourceSamil
|
Дата: Вторник, 17.02.2015, 09:55:32 | Сообщение # 9 |
|
Сообщений: 237
Репутация: [ +/- ]
|
|
Я же выкладывал мод с настройками Код http://world-source.ru/forum/129-4133-1
|
|
| |
REgion
|
Дата: Вторник, 17.02.2015, 10:05:49 | Сообщение # 10 |
|
Сообщений: 31
Репутация: -2 [ +/- ]
|
|
SourceSamil, Ну а он хочет чтобы было отдельно)
|
|
| |
SourceSamil
|
Дата: Вторник, 17.02.2015, 10:15:03 | Сообщение # 11 |
|
Сообщений: 237
Репутация: [ +/- ]
|
|
А не проще выключить другие функции?
|
|
| |
REgion
|
Дата: Вторник, 17.02.2015, 12:05:30 | Сообщение # 12 |
|
Сообщений: 31
Репутация: -2 [ +/- ]
|
|
SourceSamil, Ну это то да
|
|
| |