No Fall Damage

No Fall Damage 1.0.1

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
что мне с этим делать?)я не особо силен
 
Последнее редактирование модератором:
Сообщения
77
Реакции
0

ну вот я скомпилировал.закину по папкам.но как это будет действовать именно на моей карте ka_parkhead,а не на dust 2 к примеру?
 
Последнее редактирование модератором:

Andy Freeman

Fatal error
Сообщения
400
Реакции
91
залил на сервер урон полностью не проходит как и хотел.но это на всех картах,а мне надо только на ka_parkhead.

Плагин для того чтобы выгружать этот данный плагин для других карт
 
Последнее редактирование модератором:
Сообщения
77
Реакции
0

Плагин для того чтобы выгружать этот данный плагин для других карт

получается что создаем файл с именем ka_parkhead.cfg и кидаем его по такому пути cfg/sourcemod/map-cfg/ Вопрос следующий. какое содержание файла ka_parkhead.cfg ?
PHP:
#pragma semicolon 1

public void OnPluginStart()
{
    HookEvent("player_spawn", Event_PlayerSpawn);
}

public Action:Event_PlayerSpawn(Handle:event, const String:name[], bool:dB)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    
    SetEntProp(client, Prop_Data, "m_takedamage", 0, 1);
}
такое или что там прописывать? и еще файлы которые я компелировал с кодом выше тоже закидывать по папкам?или они уже не нужны будут?
 
Последнее редактирование модератором:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Версия с возможностью указания карт. Для тех, кто по каким-то причинам не хочет или не может использовать серверный квар mp_falldamage.
PHP:
#include <sdkhooks>

new const String:Map_NoFallDamage[][] =
{
	"de_dust",
	"de_dust2"
};

public Plugin:myinfo =
{
	name = "No Fall Damage (Map)",
	author = "AlmazON",
	description = "Нет урона при падении (с указанием карты)",
	version = "0.1.0",
	url = "http://www.hlmod.ru"
}

new bool:g_bNoFallDamage;

public OnConfigsExecuted()
{
	decl String:map[32];
	GetCurrentMap(map, sizeof(map));
	for (new i; i < sizeof(Map_NoFallDamage); ++i)
	{
		if (strcmp(Map_NoFallDamage[i], map) == 0)
		{
			g_bNoFallDamage = true;
			return;
		}
	}
	g_bNoFallDamage = false;
}

public OnClientPostAdminCheck(client)
{
	if (g_bNoFallDamage) SDKHook(client, SDKHook_OnTakeDamage, DamagePlayer);
}

public Action:DamagePlayer(victim, &attacker, &inflictor, &Float:damage, &damagetype)
{
	return damagetype & DMG_FALL ? Plugin_Handled : Plugin_Continue;
}
Где Map_NoFallDamage - по аналогии вписываем карты, где хотим избавиться от урона при падениях.
Оффтоп
 

Felton

Участник
Сообщения
799
Реакции
59
@hirowatch,
Перезалей .Архив не открывается.Повреждён или имеет неизвестный формат
 

Felton

Участник
Сообщения
799
Реакции
59
--- Добавлено позже ---
@hirowatch,
Скачалось!А где звук падения "ГЫ"???
В описание написано Плагин убирает урон от падения + звук падения "ГЫ"
 
Последнее редактирование:

Faya™

Жуестер
Сообщения
867
Реакции
457
--- Добавлено позже ---
@hirowatch,
Скачалось!А где звук падения "ГЫ"???
В описание написано Плагин убирает урон от падения + звук падения "ГЫ"
Мб написано, убирает урон от падения И плюс звук "ГЫ"
УБЕРАЕТ ЗВУК "ГЫ"
 

hirowatch

Живет ХЛмод`ом
Сообщения
2,722
Реакции
1,634
  • Автор ресурса
  • #32
Пользователь hirowatch изменил описание ресурса No Fall Damage с новой записью:

Плагин убирает урон от падения + звук падения "ГЫ".
убирает урон от падения + убирает звук падения "ГЫ".

Оригинал для CSS:OB
Оригинал для CSGO

Узнать больше об этом обновлении...
 

Felton

Участник
Сообщения
799
Реакции
59
Доброго времени суток.Не помню задавал я такой вопрос или нет.Сервер Counter-Strike Source v.34 работает на старом синтаксе.Установлен плагин когда игрок падает он не теряет жизни для админов или для всех играков всё это настраевается "No FallDamage".На сервере установлены боты.Есть карты когда боты прыгают с большой высоты и они разбиваются.Можно как то поправить этот плагин что бы боты не разбивались?Пробовал ботам довать права админа.Но они все равно разбиваются.Кто то возьмется допилить этот плагин для проверки бот это ли человек?Вот сам плагин.
C-подобный:
#include <sourcemod>
#include <sdkhooks>

#undef REQUIRE_PLUGIN

#pragma semicolon 1



#define PLUGIN_VERSION "0.6.3"



// Lateload
new bool:g_bLateLoaded;


// Enabled Cvar
new Handle:g_hEnabled;
new bool:g_bEnabled;


// Version
new Handle:g_hVersion;


// Teamfilter
new Handle:g_hTeamFilter;
new g_iTeamFilter;


// ClientFilter
new Handle:g_hClientFilter;
new g_iClientFilter;






public Plugin:myinfo =
{
    name = "No Fall Damage v2",
    author = "Impact",
    description = "Prevents players from taking damage by falling to the ground",
    version = PLUGIN_VERSION,
    url = "http://gugyclan.eu"
}





public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
{
    g_bLateLoaded = late;
    return APLRes_Success;
}





public OnPluginStart()
{
    g_hVersion      = CreateConVar("sm_nofalldamage_version", PLUGIN_VERSION, "Version of this plugin (Not changeable)", FCVAR_NOTIFY|FCVAR_DONTRECORD);
    g_hEnabled      = CreateConVar("sm_nofalldamage_enabled", "1", "Whether or not this plugin is enabled", _, true, 0.0, true, 1.0);
    g_hTeamFilter   = CreateConVar("sm_nofalldamage_teamfilter", "0", "Team that should be protected from falldamage, 0 = Any, 2 = RED, 3 = BLUE", _, true, 0.0, true, 3.0);
    g_hClientFilter = CreateConVar("sm_nofalldamage_clientfilter", "0", "Clients that should be protected from falldamage, 0 = Any, 1 = Only Admins", _, true, 0.0, true, 1.0);
    
    
    g_bEnabled      = GetConVarBool(g_hEnabled);
    g_iTeamFilter   = GetConVarInt(g_hTeamFilter);
    g_iClientFilter = GetConVarInt(g_hClientFilter);
    
    
    SetConVarString(g_hVersion, PLUGIN_VERSION, false, false);
    
    
    HookConVarChange(g_hEnabled, OnCvarChanged);
    HookConVarChange(g_hVersion, OnCvarChanged);
    HookConVarChange(g_hTeamFilter, OnCvarChanged);
    HookConVarChange(g_hClientFilter, OnCvarChanged);
    
    
    // LateLoad;
    if(g_bLateLoaded)
    {
        for(new i; i <= MaxClients; i++)
        {
            if(IsClientValid(i))
            {
                SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
            }
        }
    }
}





public OnCvarChanged(Handle:convar, const String:oldVal[], const String:newVal[])
{
    if(convar == g_hEnabled)
    {
        g_bEnabled = GetConVarBool(g_hEnabled);
    }
    else if(convar == g_hTeamFilter)
    {
        g_iTeamFilter = GetConVarInt(g_hTeamFilter);
    }
    else if(convar == g_hClientFilter)
    {
        g_iClientFilter = GetConVarInt(g_hClientFilter);
    }
    else if(convar == g_hVersion)
    {
        SetConVarString(g_hVersion, PLUGIN_VERSION, false, false);
    }
}





public OnClientPostAdminCheck(client)
{
    if(IsClientValid(client))
    {
        SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
    }
}





public Action:OnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype)
{
    if(g_bEnabled)
    {
        // We first check if damage is falldamage and then check the others
        if(damagetype & DMG_FALL)
        {
            // Teamfilter
            if(g_iTeamFilter < 1 || g_iTeamFilter > 1 && GetClientTeam(client) == g_iTeamFilter)
            {
                // Clientfilter
                if(g_iClientFilter == 0 || g_iClientFilter == 1 && CheckCommandAccess(client, "sm_nofalldamage_immune", ADMFLAG_GENERIC, false))
                {
                    return Plugin_Handled;
                }
            }
        }
    }
    
    return Plugin_Continue;
}





stock bool:IsClientValid(id)
{
    if(id > 0 && id <= MaxClients && IsClientInGame(id))
    {
        return true;
    }
    
    return false;
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@Felton, пробуй.
Квары немного поменял:
sm_nofalldamage_mode: 0 - плагин выключен, 1 - плагин блочит урон всем, 2 - только террористам, 3 - только спецам
sm_nofalldamage_admin: 0 - урон блочится всем, 1 - только админам* и ботам
*Проверяется только наличие флага a
Также плагин теперь создаёт файл конфига.
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdkhooks>

#define PLUGIN_VERSION "0.6.3 (rewritten by Grey83)"

bool
    bLate,
    bAdmin;
int iMode;

public Plugin myinfo =
{
    name        = "No Fall Damage",
    version        = PLUGIN_VERSION,
    description    = "Prevents players from taking damage by falling to the ground",
    author        = "Impact"
}

public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
    bLate = late;
}

public void OnPluginStart()
{
    CreateConVar("sm_nofalldamage_version", PLUGIN_VERSION, "Version of this plugin (Not changeable)", FCVAR_DONTRECORD|FCVAR_NOTIFY|FCVAR_SPONLY);

    ConVar cvar;
    cvar = CreateConVar("sm_nofalldamage_mode", "1", "Team that should be protected from falldamage, 0 = disabled, 1 = Any, 2 = RED, 3 = BLUE", _, true, _, true, 3.0);
    cvar.AddChangeHook(CVarChanged_Team);
    iMode = cvar.IntValue;

    cvar = CreateConVar("sm_nofalldamage_admin", "0", "Clients that should be protected from falldamage, 0 = Any, 1 = Only Admins", _, true, _, true, 1.0);
    cvar.AddChangeHook(CVarChanged_Admin);
    bAdmin = cvar.BoolValue;

    AutoExecConfig(true, "nofalldamage");

    if(bLate) for(int i; i <= MaxClients; i++) OnClientPostAdminCheck(i);
}

public void CVarChanged_Team(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    iMode = cvar.IntValue;
}

public void CVarChanged_Admin(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    bAdmin = cvar.BoolValue;
}

public void OnClientPostAdminCheck(int client)
{
    if(0 < client && client <= MaxClients && IsClientInGame(client)) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action OnTakeDamage(int victim, int& attacker, int& inflictor, float& damage, int& damagetype)
{
    if(!iMode || !(damagetype & DMG_FALL))
        return Plugin_Continue;

    if((iMode == 1 || GetClientTeam(victim) == iMode)
    && (IsFakeClient(victim) || !bAdmin || CheckCommandAccess(victim, "sm_admin", ADMFLAG_GENERIC, true)))
        return Plugin_Handled;

    return Plugin_Continue;
}
 

Felton

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

Grey83 на SourceMod [1.6.4] не компелится.Много ошибок.Вот кусок ошибок​

invalid function or declaration
// nofalldamage_sdkhooks.sp(13) : error 001: expected token: ";", but found "-id
entifier-"
// nofalldamage_sdkhooks.sp(21) : error 021: symbol already defined: "APLRes"
// nofalldamage_sdkhooks.sp(21) : error 010: invalid function or declaration
// nofalldamage_sdkhooks.sp(21 -- 26) : error 001: expected token: ";", but foun
d "-identifier-"
// nofalldamage_sdkhooks.sp(21 -- 26) : fatal error 127: too many error messages
on one line
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@Felton, ты бы уточнил, что до сих пор используешь SM1.6.
А я на новом написал, поэтому и агрится компилер.
Сообщения автоматически склеены:

@Felton, вот на старом синтаксисе:
C-подобный:
#pragma semicolon 1

#include <sdkhooks>

#define PLUGIN_VERSION "0.6.3 (rewritten by Grey83)"

new bool:bLate,
    bool:bAdmin,
    iMode;

public Plugin:myinfo =
{
    name        = "No Fall Damage",
    version        = PLUGIN_VERSION,
    description    = "Prevents players from taking damage by falling to the ground",
    author        = "Impact"
}

public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
{
    bLate = late;
}

public OnPluginStart()
{
    CreateConVar("sm_nofalldamage_version", PLUGIN_VERSION, "Version of this plugin (Not changeable)", FCVAR_DONTRECORD|FCVAR_NOTIFY|FCVAR_SPONLY);

    new Handle:cvar;
    cvar = CreateConVar("sm_nofalldamage_mode", "0", "Team that should be protected from falldamage, 0 = disabled, 1 = Any, 2 = RED, 3 = BLUE", _, true, _, true, 3.0);
    HookConVarChange(cvar, CVarChanged_Team);
    iMode = GetConVarInt(cvar);

    cvar = CreateConVar("sm_nofalldamage_admin", "0", "Clients that should be protected from falldamage, 0 = Any, 1 = Only Admins", _, true, _, true, 1.0);
    HookConVarChange(cvar, CVarChanged_Admin);
    bAdmin = GetConVarBool(cvar);

    AutoExecConfig(true, "nofalldamage");

    if(bLate) for(new i; i <= MaxClients; i++) OnClientPostAdminCheck(i);
}

public CVarChanged_Team(Handle:cvar, const String:oldValue[], const String:newValue[])
{
    iMode = GetConVarInt(cvar);
}

public CVarChanged_Admin(Handle:cvar, const String:oldValue[], const String:newValue[])
{
    bAdmin = GetConVarBool(cvar);
}

public OnClientPostAdminCheck(client)
{
    if(0 < client && client <= MaxClients && IsClientInGame(client)) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)
{
    if(!iMode || !(damagetype & DMG_FALL))
        return Plugin_Continue;

    if((iMode == 1 || GetClientTeam(victim) == iMode)
    && (IsFakeClient(victim) || !bAdmin || CheckCommandAccess(victim, "sm_admin", ADMFLAG_GENERIC, true)))
        return Plugin_Handled;

    return Plugin_Continue;
}
 
Последнее редактирование:

Felton

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

Grey83

Доброго времени суток.Требуется твоя помощ.Хотел человеку для этого плагина то что ты с верху скинул прописать в admin_overrides "CFG" отдельный флаг b.( просто "ab") Ты написал что *Проверяется только наличие флага a.Но чел у него прва "ab" а он разбивается с больщой высоты.Если не сложно можно подпелить этот плагин?
 

Ganter1234

Участник
Сообщения
1,149
Реакции
667

Grey83

Доброго времени суток.Требуется твоя помощ.Хотел человеку для этого плагина то что ты с верху скинул прописать в admin_overrides "CFG" отдельный флаг b.( просто "ab") Ты написал что *Проверяется только наличие флага a.Но чел разбивается с больщой высоты.Если не слжно можно подпелить этот плагин?
Сделать типо чтобы он работал только для админов?
 

Felton

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

Ganter1234

чтобы плагин работал как для z так и для "ab" но чтобы я мог если вслучае чего в admin_overrides "CFG" установить права d.
 
Сверху Снизу