Написание плагинов

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429

Вложения

  • franug_autorespawn.sp
    7.4 КБ · Просмотры: 5

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@skaeN, дебаг смотри потом в
C-подобный:
addons/sourcemod/logs/*сегодняшний_лог*.log // НЕ error_log.
 

Вложения

  • no_damage_knife_team.sp
    1,000 байт · Просмотры: 6
  • no_damage_knife_team.smx
    4.1 КБ · Просмотры: 5

skaeN

Участник
Сообщения
204
Реакции
108

Вложения

  • загруженное.jpg
    загруженное.jpg
    87.3 КБ · Просмотры: 32

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@skaeN, у атакующего как-то нож из ксго (м9, керамбит и тд)?
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@skaeN, проверяй (не добавил лишь самые последние ножи, принцип, думаю, ты понял, сможешь добавить, я просто поленился их искать :D )
 

Вложения

  • no_damage_knife_team.smx
    4.1 КБ · Просмотры: 4
  • no_damage_knife_team.sp
    1.2 КБ · Просмотры: 9

skaeN

Участник
Сообщения
204
Реакции
108
@Rabb1t,
C-подобный:
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug3
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug3
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug3

Ничего не помогает.. бррр.. да и ладно, пусть так будет
 

Exle

Участник
Сообщения
190
Реакции
216
@Rabb1t,
C-подобный:
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug3
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug3
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug
L 09/27/2018 - 19:35:57: [no_damage_knife_team.smx] Debug3

Ничего не помогает.. бррр.. да и ладно, пусть так будет
@Rabb1t
Вместо этого всего
PHP:
if (StrEqual(szWeapon, "weapon_knife") || StrEqual(szWeapon, "weapon_bayonet") || StrEqual(szWeapon, "weapon_knife_m9_bayonet")
|| StrEqual(szWeapon, "weapon_knife_butterfly") || StrEqual(szWeapon, "weapon_knife_flip") || StrEqual(szWeapon, "weapon_knife_falchion")
|| StrEqual(szWeapon, "weapon_knife_gut") || StrEqual(szWeapon, "weapon_knife_tactical") || StrEqual(szWeapon, "weapon_knife_karambit")
Можно было просто такую проверку сделать
PHP:
if (!strncmp(szWeapon[7], "knife", 5))

Но у ножа свой тип урона
PHP:
#include <sourcemod>
#include <sdkhooks>

public Plugin myinfo =
{
    name        = "No Damage Knife Team",
    author      = "HLMod", // -Faya
    version     = "1.0",
    url         = "http://hlmod.ru"
};

public OnPluginStart()
{
    for (int i = 1; i <= MaxClients; ++i) if (IsClientInGame(i))
    {
        OnClientPutInServer(i);
    }
}

public void OnClientPutInServer(int client)
{
    SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action OnTakeDamage(int victim, int& attacker, int& inflictor, float& damage, int& damagetype)
{
    if (0 < attacker <= MaxClients && attacker != victim && GetClientTeam(attacker) == GetClientTeam(victim) && damagetype & DMG_SLASH)
    {
        damage = 0.0;
        return Plugin_Handled;
    }

    return Plugin_Continue;
}
 

Вложения

  • no_damage_knife_team.smx
    3.9 КБ · Просмотры: 11

skaeN

Участник
Сообщения
204
Реакции
108
@Exle, воот, спасибо. Вроде как все отлично работает :)
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
@Exle, не знал, учту. А касательно замены, но совсем верно, т.к. Bayonet не войдёт в этот список ножей. И не знаю другие войдут ли (под другими подразумеваю новые).
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
@Rabb1t, bayonet пока единственный, выбивающийся из канона.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Exle, я бы ещё порядок проверки поменял на
PHP:
if (damagetype & DMG_SLASH && attacker != victim && 0 < attacker <= MaxClients && GetClientTeam(attacker) == GetClientTeam(victim))
и вместо attacker != victim поставить после проверки индекса атакующего проверку наличия его в игре, что бы не было ошибки при проверке команды (хотя я сомневаюсь, что она так уж и нужна: вряд ли можно нанести такой тип урона не пребывая в игре :ab: )
 
  • Мне нравится
Реакции: Exle

Afro

Участник
Сообщения
63
Реакции
11
Нужно что бы аптечку можно использовать только в том случае если есть у игрока пистолет или автомат, если нету то нельзя будет использовать.
 

Вложения

  • shop_medkit.sp
    5.7 КБ · Просмотры: 5

-.Razor.-

Участник
Сообщения
151
Реакции
12
Ребят кто может отредактировать плагин чтобы по дефолту он был выключен и включался командой !fade
 

Вложения

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

Faya™

Жуестер
Сообщения
867
Реакции
457
Ребят кто может отредактировать плагин чтобы по дефолту он был выключен и включался командой !fade
PHP:
#include <sourcemod>

#pragma semicolon 1
#pragma newdecls required

bool g_bFade[MAXPLAYERS + 1];

public Plugin myinfo =
{
    name = "Blue Screen of Kill",
    author = "johnspade, Faya™ (DS: Faya™#8514)",
    description = "The plugin fades the screen to transparent blue for a second when you kill someone",
    version = "1.2",
    url = "http://johnspade.ru ; http://hlmod.ru"
}
// Получение события смерти
public void OnPluginStart()
{
    HookEvent("player_death", Event_PlayerDeath);

    RegConsoleCmd("sm_fade", fade);
}
public void OnClientConnected(int iClient)
{
    g_bFade[iClient] = false;
}

// Функция затемнения
void PerformFade(int client, int duration, const color[4])
{
    if(IsClientInGame(client) && g_bFade[client])
    {
        Handle message = StartMessageOne("Fade", client);

        PbSetInt(message, "duration", duration);
        PbSetInt(message, "hold_time", 0);
        PbSetInt(message, "flags", 0x0001);
        PbSetColor(message, "clr", color);

        EndMessage();
    }
}
// Получение игрока-убийцы, применение к нему функции затемнения
public void Event_PlayerDeath(Handle event, char[] name, bool dontBroadcast)
{
    PerformFade(GetClientOfUserId(GetEventInt(event, "attacker")), 300, {0, 0, 200, 51});
    // PerformFade(клиент, продолжительность, {красный, зеленый, синий, прозрачность})
}

public Action fade(int iClient, int args)
{
    g_bFade[iClient] = !g_bFade[iClient];
}
 

Вложения

  • fade.smx
    4.5 КБ · Просмотры: 8
  • fade.sp
    1.5 КБ · Просмотры: 13

-.Razor.-

Участник
Сообщения
151
Реакции
12
PHP:
#include <sourcemod>

#pragma semicolon 1
#pragma newdecls required

bool g_bFade[MAXPLAYERS + 1];

public Plugin myinfo =
{
    name = "Blue Screen of Kill",
    author = "johnspade, Faya™ (DS: Faya™#8514)",
    description = "The plugin fades the screen to transparent blue for a second when you kill someone",
    version = "1.2",
    url = "http://johnspade.ru ; http://hlmod.ru"
}
// Получение события смерти
public void OnPluginStart()
{
    HookEvent("player_death", Event_PlayerDeath);

    RegConsoleCmd("sm_fade", fade);
}
public void OnClientConnected(int iClient)
{
    g_bFade[iClient] = false;
}

// Функция затемнения
void PerformFade(int client, int duration, const color[4])
{
    if(IsClientInGame(client) && g_bFade[client])
    {
        Handle message = StartMessageOne("Fade", client);

        PbSetInt(message, "duration", duration);
        PbSetInt(message, "hold_time", 0);
        PbSetInt(message, "flags", 0x0001);
        PbSetColor(message, "clr", color);

        EndMessage();
    }
}
// Получение игрока-убийцы, применение к нему функции затемнения
public void Event_PlayerDeath(Handle event, char[] name, bool dontBroadcast)
{
    PerformFade(GetClientOfUserId(GetEventInt(event, "attacker")), 300, {0, 0, 200, 51});
    // PerformFade(клиент, продолжительность, {красный, зеленый, синий, прозрачность})
}

public Action fade(int iClient, int args)
{
    g_bFade[iClient] = !g_bFade[iClient];
}
Спасибочки <3
 

Туник

Участник
Сообщения
1,281
Реакции
263
Ребята помогите реализовать плагин (Доступ к серверу по STEAM ID и по флагу)
Хочу с друзьями играть на сервере и не паролить его, тупо дать им доступ к серверу к примеру флаг А, и они могут подключаться без проблем, а тех у кого нет доступа не могут войти их кикает с причиной, если можно сделайте возможность изменить причину на свою, выдачу флаг А, буду выдавать через соурсбанс!спасибо! игра ксго!
 
Последнее редактирование:
Сверху Снизу