Помогите с плагином knife_block

drinksweetmilk

Участник
Сообщения
10
Реакции
0
Помогите пофиксить
L 11/24/2017 - 10:14:28: [SM] Exception reported: Client index 0 is invalid
L 11/24/2017 - 10:14:28: [SM] Blaming: knife_block.smx
L 11/24/2017 - 10:14:28: [SM] Call stack trace:
L 11/24/2017 - 10:14:28: [SM] [0] GetClientWeapon
L 11/24/2017 - 10:14:28: [SM] [1] Line 24,
/home/groups/sourcemod/upload_tmp/phpIXs0PV.sp::OnTakeDamage
 

Вложения

  • knife_block.sp
    895 байт · Просмотры: 6
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
проверяй
 

Вложения

  • knife_block.sp
    628 байт · Просмотры: 15
  • knife_block.smx
    4.3 КБ · Просмотры: 5

Felton

Участник
Сообщения
799
Реакции
59
А можно узнать назначение этого плагина.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Felton, судя по коду, блокирует нанесение повышеного дамага нанесённого ножом со спины
 

Felton

Участник
Сообщения
799
Реакции
59
Ну вообщем сам проверил этот плагин на домашнем сервере.Ботов спокойно резал со всех сторон.Так и не понял что этот плагин делает.Игра Counter-Strike Source -старушка
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Felton, с этим плагинов должно быть необходимо 2 удара в спину, чтобы убить противника , вместо одного
 

Felton

Участник
Сообщения
799
Реакции
59
Нельзя убить сзади ножом с админскиой защитой по флагу b(у меня это установлено на сервере)Кто то тут этот плагин выкладывал даже и не помню кто.
 

Вложения

  • SimpleAntiKnife.sp
    1.1 КБ · Просмотры: 12
Последнее редактирование:

Felton

Участник
Сообщения
799
Реакции
59
@kleuser
Это я незнаю как можно сделать.Ну так не интересно же будет что админа нельзя зарезать.У меня допустим на сервере есть несколько ножевых карт.А так что получиться админ будет всех резать а его нельзя будет убить.Вот тут народ и разбижиться от такого сервера.
 

kleuser

Участник
Сообщения
1,838
Реакции
732
У меня допустим на сервере есть несколько ножевых карт.А так что получиться админ будет всех резать а его нельзя будет убить.Вот тут народ и разбижиться от такого сервера.
да у меня паблик с авп картами, так что пофигу, просто под рута сделать да и норм)
@Grey83, а ты не подскажешь ?))
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@kleuser, пробуй
Так нельзя будет зарезать любого админа с флагом а
PHP:
#include <sdktools>
#include <sdkhooks>

public OnClientPostAdminCheck(client)
{
    if(client && IsClientInGame(client) && CheckCommandAccess(client, "sm_admin", ADMFLAG_GENERIC))
        SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
    if(!( 0 < attacker <= MaxClients)) return Plugin_Continue;

    decl String:wpn[20];
    GetClientWeapon(attacker, wpn, sizeof(wpn));
    if(StrContains(wpn, "knife") == -1 && StrContains(wpn, "bayonet") == -1) return Plugin_Continue;

    damage = 0.0;
    return Plugin_Changed;
}
Правда админы друг-друга тоже не смогут
Но можно сделать, чтобы учитывался иммунитет :cool:
 

kleuser

Участник
Сообщения
1,838
Реакции
732
@Grey83, спасибо попробую. Только я сделаю для ADMFLAG_ROOT, я и не собирался всем админам так делать))
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@kleuser, как хочешь
Меняешь ADMFLAG_GENERIC на ADMFLAG_ROOT и всё
 

kleuser

Участник
Сообщения
1,838
Реакции
732
@Grey83, чет странно работает, вроде поставил ADMFLAG_ROOT, но випы тоже попали под действие плагина. WTF ? :D
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@kleuser, тогда вот так попробуй
PHP:
#pragma semicolon 1

#include <sdktools>
#include <sdkhooks>

public OnClientPostAdminCheck(client)
{
    if(client && IsClientInGame(client) && GetUserFlagBits(client) & ADMFLAG_ROOT)
        SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
    if(!( 0 < attacker <= MaxClients)) return Plugin_Continue;

    decl String:wpn[20];
    GetClientWeapon(attacker, wpn, sizeof(wpn));
    if(StrContains(wpn, "knife") == -1 && StrContains(wpn, "bayonet") == -1) return Plugin_Continue;

    damage = 0.0;
    return Plugin_Changed;
}
 
Последнее редактирование:

kleuser

Участник
Сообщения
1,838
Реакции
732
@Grey83, а так вообще не работает )
--- Добавлено позже ---
@Grey83, может на новом синтаксисе попробовать ?
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@kleuser, а ты перезаходил или карту менял после запуска плагина?
 

kleuser

Участник
Сообщения
1,838
Реакции
732
@Grey83, карту менял, я думаю, в таком плагине не обязательно делать рестарт
 
Сверху Снизу