Fists for admin

Islam Cherkess

Там мля о мля
Сообщения
1,504
Реакции
895
  • Автор ресурса
  • #1
Пользователь Dmitry Ahipov разместил новый ресурс:

Fists for admin - Даёт админу кулаки по команде

Даёт админам с флагом SLAY (Убить/нанести вред игроку) кулаки, можно сменить в любой момент на свой, исходник в архиве.
Реализовал самым простым способом,кто хочет то кидайте в комментариях свои версии :)

Узнать больше об этом ресурсе...
 

zeepcore

Участник
Сообщения
140
Реакции
21
Плагин хороший, но особого применения к нему не вижу :)
Разве что фан
 

Islam Cherkess

Там мля о мля
Сообщения
1,504
Реакции
895
  • Автор ресурса
  • #3
@Marcus26 , к примеру можно быстро взять кулаки , ударить врага или союзника правой кнопкой мыши и выбить у него оружие из рук :D
 
  • Мне нравится
Реакции: mika

over_trax

Участник
Сообщения
1,451
Реакции
488
Дает кулаки вместе с ножом, или заменяет его ?
 

Islam Cherkess

Там мля о мля
Сообщения
1,504
Реакции
895
  • Автор ресурса
  • #5
@over_trax вместе с ножом
--- Добавлено позже ---
то-есть он в доп.слот встаёт
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Чуть-чуть "прокаченная" версия с киком с сервера после удара.

PHP:
#include <sdktools_functions>

public Plugin myinfo =
{
    name = "FISTS FOR ADMIN",
    author = "Muvik & Someone",
    description = "fists",
    version = "0.1Ы",
    url = "https://hlmod.ru"
};

public void OnPluginStart() 
{
    RegAdminCmd("sm_fists", CMD_FISTS, ADMFLAG_SLAY);
    HookEvent("player_hurt", Event_PlayerHurt);
}

public Action CMD_FISTS(int iClient, int iArgs)
{
    EquipPlayerWeapon(iClient, GivePlayerItem(iClient, "weapon_fists"));
    return Plugin_Handled;
}

public void Event_PlayerHurt(Event hEvent, const char[] sName, bool bDontBroadcast)
{
    static int iAttacker;
    if((iAttacker = GetClientOfUserId(hEvent.GetInt("attacker"))) != 0)
    {
        static char sBuffer[12];
        hEvent.GetString("weapon", sBuffer, sizeof(sBuffer));
        if(!strcmp(sBuffer[7], "fists") && CheckCommandAccess(iAttacker, "sm_fists", ADMFLAG_SLAY))
        {
            static int iVictim;
            if((iVictim = GetClientOfUserId(hEvent.GetInt("userid"))) != 0 && !CheckCommandAccess(iVictim, "sm_fists", ADMFLAG_SLAY, true))
            {
                KickClient(iVictim, "Вы попали под удар админа %N!", iAttacker);
                //BanClient(iVictim, 60, AUTHID, "Вы попали под удар админа!");
            }
        }
    }
}
 
Последнее редактирование:

Islam Cherkess

Там мля о мля
Сообщения
1,504
Реакции
895
  • Автор ресурса
  • #7
@Someone лучше бы помог сделать строчку с регулировкой урона
 

Туник

Участник
Сообщения
1,281
Реакции
263
@Someone, можешь сделать чтобы кулаки давались без команды !fists, а сразу??? И без кика с сервера после удара!
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@arbigon, вот так:
PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_functions>

bool bIsAdmin[MAXPLAYERS+1];

public void OnPluginStart()
{
    HookEvent("player_spawn", Event_Spawn);
    for(int i = 1; i <= MaxClients; i++) if(IsClientAuthorized(i)) OnClientPostAdminCheck(i);
}

public void OnClientPostAdminCheck(int client)
{
    if(client) bIsAdmin[client] = !IsFakeClient(client) && CheckCommandAccess(client, "sm_admin", ADMFLAG_GENERIC);
}

public void Event_Spawn(Event event, const char[] name, bool dontBroadcast)
{
    static int userID, client;
    if((client = GetClientOfUserId((userID = event.GetInt("userid")))) && bIsAdmin[client]) CreateTimer(1.0, GiveItemsToPlayer, userID);
}

public Action GiveItemsToPlayer(Handle timer, any client)
{
    if((client = GetClientOfUserId(client)) && IsPlayerAlive(client)) EquipPlayerWeapon(client, GivePlayerItem(client, "weapon_fists"));
}
 

Туник

Участник
Сообщения
1,281
Реакции
263
@Grey83, спасибо щас проверю
--- Добавлено позже ---
@Grey83, нашел 1 минус если бить противника то убить его нельзя, хп останавливается на 10, и добить нельзя, использую на сервере плагин хедшот + нож, можно ли сделать чтобы убить с кулаков было актуально?
 
Последнее редактирование:

Islam Cherkess

Там мля о мля
Сообщения
1,504
Реакции
895
  • Автор ресурса
  • #11
@arbigon дополните в способ выше
PHP:
public void OnClientPutInServer(int iClient)
{
    SDKHook(iClient, SDKHook_OnTakeDamageAlive, OnTakeDamageAlive);
}

// Значение 50.0 это значение на которое будет добавлять урон
public Action OnTakeDamageAlive(int iVictim, int &iAttacker, int &iInflictor, float &fDamage, int &damagetype, int &iWeapon, float damageForce[3], float damagePosition[3]);
{
    if(iAttacker > 0 iAttacker <= MaxClients && GetEntProp(iWeapon, Prop_Send, "m_iItemDefinitionIndex") == 69)
    {
        fDamage += 50.0;
        return Plugin_Changed;
    }
    return Plugin_Continue;
}
 
Последнее редактирование:

Туник

Участник
Сообщения
1,281
Реакции
263
@Dmitry Ahipov, не могу скомпилить, проверь правильно ли всё сделал?
 

Вложения

  • kulaki_adminu.sp
    1.5 КБ · Просмотры: 4

Innomeni

Участник
Сообщения
320
Реакции
42
@Dmitry Ahipov, не компилируется с этим кусочком.
// addons\sourcemod\scripting\fists.sp(30) : error 017: undefined symbol "SDKHook"
// addons\sourcemod\scripting\fists.sp(34) : warning 219: local variable "fDamage" shadows a variable at a preceding level
// addons\sourcemod\scripting\fists.sp(34) : error 010: invalid function or declaration
// addons\sourcemod\scripting\fists.sp(36) : error 010: invalid function or declaration
// addons\sourcemod\scripting\fists.sp(39) : error 010: invalid function or declaration
// addons\sourcemod\scripting\fists.sp(41) : error 010: invalid function or declaration
// addons\sourcemod\scripting\fists.sp(38) : warning 203: symbol is never used: "fDamage"
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Innomeni, пробуй:
PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_functions>
#include <sdkhooks>

bool bIsAdmin[MAXPLAYERS+1];

public void OnPluginStart()
{
    HookEvent("player_spawn", Event_Spawn);
    for(int i = 1; i <= MaxClients; i++) if(IsClientAuthorized(i)) OnClientPostAdminCheck(i);
}

public void OnClientPostAdminCheck(int client)
{
    if(!client) return;

    bIsAdmin[client] = !IsFakeClient(client) && CheckCommandAccess(client, "sm_admin", ADMFLAG_GENERIC);
    SDKHook(client, SDKHook_OnTakeDamageAlive, Hook_TakeDamageAlive);
}

public void Event_Spawn(Event event, const char[] name, bool dontBroadcast)
{
    static int userID, client;
    if((client = GetClientOfUserId((userID = event.GetInt("userid")))) && bIsAdmin[client])
        CreateTimer(1.0, GiveItemsToPlayer, userID);
}

public Action GiveItemsToPlayer(Handle timer, any client)
{
    if((client = GetClientOfUserId(client)) && IsPlayerAlive(client))
        EquipPlayerWeapon(client, GivePlayerItem(client, "weapon_fists"));
}

public Action Hook_TakeDamageAlive(int victim, int& attacker, int& inflictor, float& damage, int& damagetype, int& weapon, float damageForce[3], float damagePosition[3])
{
    if(attacker > 0 && attacker <= MaxClients && bIsAdmin[attacker]
    && GetEntProp(weapon, Prop_Send, "m_iItemDefinitionIndex") == 69)
    {
        damage += 50;    // 50 - это значение на которое будет увеличен урон
        return Plugin_Changed;
    }
    return Plugin_Continue;
}
 

Innomeni

Участник
Сообщения
320
Реакции
42
@Grey83, еще хуже.
//// fists.sp
//
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(258) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(258) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(266) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(276) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(285) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(285) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(295) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(305) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(315) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(332) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(332) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(332) : error 147: new-style declarations are required
// C:\Users\djhun\Desktop\═ютр яряър (6)\addons\sourcemod\scripting\include\sdkhooks.inc(332) : fatal error 190: too many error messages on one line
//
// Compilation aborted.
// 13 Errors.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Innomeni, ты только бинарники и геймдату обновлял только, что ли?
А инклюды оставил старые, судя по сообщению компилера.
 

Innomeni

Участник
Сообщения
320
Реакции
42
@Innomeni, ты только бинарники и геймдату обновлял только, что ли?
А инклюды оставил старые, судя по сообщению компилера.
Мне нужен был компилятор, я тупо скачал SM, DHooks, SDKHooks, PTaH и SteamWorks. И свалил всё в одну папку.
Скачал примерно в одно время, т.е. это билд sourcemod-1.9.0-git6275-windows, DHOOKS 2.2, sdkhooks-2.2.0-dev-hg193-windows, PTaH-V1.0.10-build13, SteamWorks-git131.
Собственно, тут всё условно-свежее. До сих пор проблем с компиляцией не было.
 
Сверху Снизу