Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Заключена
Потребителски аватар

Автор на темата
M36
Потребител
Потребител
Мнения: 62
Регистриран: 19 фев 2019, 11:34
Се отблагодари: 7 пъти

Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

Мнение от M36 » 26 май 2019, 16:25

Здравейте !
Доста търсих в интернет "no fall damage" не открих нищо надежно, има много стари теми,та ако може да ми се добавят две опции :
1- да е за всички
2- да е под флаг "ADMIN_RESERVATION"
Благодаря предварително!

Потребителски аватар

DevilsAspect
Потребител
Потребител
Мнения: 8
Регистриран: 25 май 2019, 23:10
Контакти:

Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

Мнение от DevilsAspect » 26 май 2019, 16:55

Код: Избери всички

#include <amxmodx>
#include <hlsdk_const>
#include <hamsandwich>

#define PLUGIN "Admin/VIP No FallDamage"
#define VERSION "0.0.1"

new g_pCvarFallDmgImmuneFlags

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, "ConnorMcLeod" )

    g_pCvarFallDmgImmuneFlags = register_cvar("amx_falldamage_immune_flags", "a")

    RegisterHam(Ham_TakeDamage, "player", "OnCBasePlayer_TakeDamage")
}

public OnCBasePlayer_TakeDamage( id, iInflictor, iAttacker, Float:flDamage, bitsDamageType ) // return int
{
    if( bitsDamageType & DMG_FALL )
    {
        new szFlags[32]
        get_pcvar_string(g_pCvarFallDmgImmuneFlags, szFlags, charsmax(szFlags))
        new iFlags = read_flags(szFlags)
        if( get_user_flags(id) & iFlags == iFlags )
        {
            return HAM_SUPERCEDE
        }
    }
    return HAM_IGNORED
}  

Потребителски аватар

Автор на темата
M36
Потребител
Потребител
Мнения: 62
Регистриран: 19 фев 2019, 11:34
Се отблагодари: 7 пъти

Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

Мнение от M36 » 26 май 2019, 17:13

DevilsAspect написа:
26 май 2019, 16:55

Код: Избери всички

#include <amxmodx>
#include <hlsdk_const>
#include <hamsandwich>

#define PLUGIN "Admin/VIP No FallDamage"
#define VERSION "0.0.1"

new g_pCvarFallDmgImmuneFlags

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, "ConnorMcLeod" )

    g_pCvarFallDmgImmuneFlags = register_cvar("amx_falldamage_immune_flags", "a")

    RegisterHam(Ham_TakeDamage, "player", "OnCBasePlayer_TakeDamage")
}

public OnCBasePlayer_TakeDamage( id, iInflictor, iAttacker, Float:flDamage, bitsDamageType ) // return int
{
    if( bitsDamageType & DMG_FALL )
    {
        new szFlags[32]
        get_pcvar_string(g_pCvarFallDmgImmuneFlags, szFlags, charsmax(szFlags))
        new iFlags = read_flags(szFlags)
        if( get_user_flags(id) & iFlags == iFlags )
        {
            return HAM_SUPERCEDE
        }
    }
    return HAM_IGNORED
}  
Мерси колега пробвах и работи! ако махна флага и оставя празно ще може ли да го ползват всички?

Потребителски аватар

DevilsAspect
Потребител
Потребител
Мнения: 8
Регистриран: 25 май 2019, 23:10
Контакти:

Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

Мнение от DevilsAspect » 26 май 2019, 20:01

M36 написа:
26 май 2019, 17:13
Мерси колега пробвах и работи! ако махна флага и оставя празно ще може ли да го ползват всички?
Няма смисъл. Ползвай този.

Код: Избери всички

#include <amxmodx>
#include <VexdUM>

#define FALL_VELOCITY 350.0

new g_bAlive, g_bFalling
#define SetIdBits(%1,%2)    %1 |= (1<<(%2-1))
#define RemoveIdBits(%1,%2) %1 &= ~(1<<(%2-1))
#define GetIdBits(%1,%2)    %1 & (1<<(%2-1))

new bool:g_bEnabled
new g_cvar_mp_falldamage

public plugin_init() {
  register_plugin("No Fall Damage", "0.3", "v3x");
  register_logevent("eRoundStart", 2, "1=Round_Start");
  register_event("ResetHUD", "eResetHUD", "be");
  register_event("DeathMsg", "eDeathMsg", "a");
  if(get_cvar_pointer("mp_falldamage") == 0) {
    g_cvar_mp_falldamage = register_cvar("mp_falldamage", "0");
  }
}

public eRoundStart() {
  g_bEnabled = (get_cvarptr_num(g_cvar_mp_falldamage) > 0) ? false : true;
}

public eResetHUD(id) {
  SetIdBits(g_bAlive, id);
  //g_bEnabled = (get_cvarptr_num(g_cvar_mp_falldamage) > 0) ? false : true;
}

public eDeathMsg() {
  RemoveIdBits(g_bAlive, read_data(2));
}

public client_prethink(id) {
  if(g_bEnabled && GetIdBits(g_bAlive, id)) {
    const m_flFallVelocity = 251;
    if(get_offset_float(id, m_flFallVelocity) >= FALL_VELOCITY) {
      SetIdBits(g_bFalling, id);
    }
    else {
      RemoveIdBits(g_bFalling, id);
    }
  }
}

public client_postthink(id) {
  if(g_bEnabled && GetIdBits(g_bAlive, id) && GetIdBits(g_bFalling, id)) {
    entity_set_int(id, EV_INT_watertype, CONTENTS_WATER);
  }
}

Потребителски аватар

<VeCo>
AMXX Скриптър
AMXX Скриптър
Мнения: 145
Регистриран: 28 яну 2019, 19:01
Се отблагодари: 11 пъти
Получена благодарност: 70 пъти
Години: 24
Контакти:

Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

Мнение от <VeCo> » 26 май 2019, 20:45

M36 написа:
26 май 2019, 17:13
Мерси колега пробвах и работи! ако махна флага и оставя празно ще може ли да го ползват всички?

Код: Избери всички

#include <amxmodx>
#include <hlsdk_const>
#include <hamsandwich>

new cvalFlags_bits
public plugin_init()
{
	register_plugin("No Fall Damage (flags)","1.0", "<VeCo>")
	
	hook_cvar_change(register_cvar("nofall_flags","b"), "@OnCvarChange_Flags")
	
	RegisterHam(Ham_TakeDamage,"player", "@Ham_Player_TakeDamage")
}

@OnCvarChange_Flags(pcvar, oldValue[],newValue[]) cvalFlags_bits = (newValue[0] != EOS) ? read_flags(newValue) : 0

@Ham_Player_TakeDamage(victim,inflictor,attacker, Float:damage, bitsDamageType)
{
	return (bitsDamageType == DMG_FALL && (cvalFlags_bits == 0 ||
		   ((get_user_flags(victim) & cvalFlags_bits) == cvalFlags_bits))) ? HAM_SUPERCEDE : HAM_IGNORED
}
:pepo_think3:

Потребителски аватар

Автор на темата
M36
Потребител
Потребител
Мнения: 62
Регистриран: 19 фев 2019, 11:34
Се отблагодари: 7 пъти

Заявка за "no fall damage" плъгин с опция за "ВИП" и за всички

Мнение от M36 » 26 май 2019, 21:26

Мерси момчета всичко е "ОК" :clap: :hooray: :lock: :lock: :lock:

Заключена

Върни се в “Заявки за плъгини”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 4 госта