MultiJumps [ReAPI]

Плъгини използващи ReAPI модула.
Аватар
Nikolow
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 196
Регистриран на: 27 Ное 2016, 13:02
Местоположение: Варна
Се отблагодари: 7 пъти
Получена благодарност: 79 пъти
Обратна връзка:

MultiJumps [ReAPI]

Мнение от Nikolow » 07 Фев 2018, 18:00

Автор:
  • Nikolow

Описание:
Добавя extra jumps при скок, използвайки ReAPI.
Добре познатият ни multijumps плъгин.

Формула:
Нормален скок + mj_extra_jumps = брой скоци

API:
give_user_multijump(index) - дава на играч mutli jump
remove_user_multijump(index) - премахва на играча multi jump
Смятам излишно правенето на цял .inc файл заради 2 натива, така че добавете най-отгоре в плъгина, в който ще го ползвате следното:

Код за потвърждение: Избери целия код

native give_user_multijump(index);
native remove_user_multijump(index);

Изисквания:
Cvars:
  • mj_give_all_multijump "1" ; 1/0 - дали да дава на всички multijump
  • mj_extra_jumps "1" ; брой допълнителни скоци

multijump_reapi.sma
(1.39 KiB) Свалено 428 пъти
multijump_reapi.sma
(1.39 KiB) Свалено 428 пъти
Tired and retired...

Аватар
Kobra
Извън линия
Foreigner
Foreigner
Мнения: 20
Регистриран на: 06 Ное 2018, 20:55
Се отблагодари: 1 път
Получена благодарност: 1 път

MultiJumps [ReAPI]

Мнение от Kobra » 21 Юни 2022, 11:02

Can someone add flag support or is there any other multijump plugin with flag support?

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

MultiJumps [ReAPI]

Мнение от Radeon » 22 Юни 2022, 15:46

Kobra написа: 21 Юни 2022, 11:02 Can someone add flag support or is there any other multijump plugin with flag support?
Try it. You can change flag ADMIN_LEVEL_A . Now shoud be only people with flag "m" can use jumps

Код за потвърждение: Избери целия код

ADMIN_ALL      0   /* everyone */
 ADMIN_IMMUNITY      (1<<0)   /* flag "a" */
 ADMIN_RESERVATION   (1<<1)   /* flag "b" */
 ADMIN_KICK      (1<<2)   /* flag "c" */
 ADMIN_BAN      (1<<3)   /* flag "d" */
 ADMIN_SLAY      (1<<4)   /* flag "e" */
 ADMIN_MAP      (1<<5)   /* flag "f" */
 ADMIN_CVAR      (1<<6)   /* flag "g" */
 ADMIN_CFG      (1<<7)   /* flag "h" */
ADMIN_CHAT      (1<<8)   /* flag "i" */
 ADMIN_VOTE      (1<<9)   /* flag "j" */
ADMIN_PASSWORD      (1<<10)   /* flag "k" */
 ADMIN_RCON      (1<<11)   /* flag "l" */
ADMIN_LEVEL_A      (1<<12)   /* flag "m" */
ADMIN_LEVEL_B      (1<<13)   /* flag "n" */
 ADMIN_LEVEL_C      (1<<14)   /* flag "o" */
 ADMIN_LEVEL_D      (1<<15)   /* flag "p" */
ADMIN_LEVEL_E      (1<<16)   /* flag "q" */
 ADMIN_LEVEL_F      (1<<17)   /* flag "r" */
 ADMIN_LEVEL_G      (1<<18)   /* flag "s" */
 ADMIN_LEVEL_H      (1<<19)   /* flag "t" */
 ADMIN_MENU      (1<<20)   /* flag "u" */
ADMIN_BAN_TEMP   (1<<21) /* flag "v" */
 ADMIN_ADMIN      (1<<24)   /* flag "y" */
ADMIN_USER      (1<<25)   /* flag "z" */

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

#define FLAG ADMIN_LEVEL_A
new iJumps[33], bool:bGiveMultiJump[33]
new cvar_enable_multijump, cvar_multijumps

public plugin_init()
{
	register_plugin("Multi-Jumps [ReAPI]", "0.1", "Nikolow")
	
	RegisterHookChain(RG_CBasePlayer_Jump, "Fw_PlayerJump_Pre", 0)
	
	cvar_enable_multijump 	= 	register_cvar("mj_give_all_multijump", "1")
	cvar_multijumps 		= 	register_cvar("mj_extra_jumps", "1")
}

public plugin_natives()
{
	register_native("give_user_multijump", "native_give_user_multijump", 1)
	register_native("remove_user_multijump", "native_remove_user_multijump", 1)
}

public native_give_user_multijump(id) bGiveMultiJump[id] = true
public native_remove_user_multijump(id) bGiveMultiJump[id] = false

public Fw_PlayerJump_Pre(id)
{
	if (!is_user_alive(id))
		return HC_SUPERCEDE

	new iFlags = get_entvar(id, var_flags)

	if (iFlags & FL_WATERJUMP || get_entvar(id, var_waterlevel) >= 2 || !(get_member(id, m_afButtonPressed) & IN_JUMP))
		return HC_CONTINUE

	if (iFlags & FL_ONGROUND)
	{
		iJumps[id] = 0
		return HC_CONTINUE
	}
	if(get_user_flags(id) & FLAG){ 
	
	
	if (get_pcvar_num(cvar_enable_multijump) || bGiveMultiJump[id] )
	{
		if (++iJumps[id] <= get_pcvar_num(cvar_multijumps))
		{
			new Float:fVelocity[3]
			get_entvar(id, var_velocity, fVelocity)
			fVelocity[2] = 268.328157
			set_entvar(id, var_velocity, fVelocity)
			
			return HC_SUPERCEDE
		}
	}
	}
	return HC_CONTINUE
}

Аватар
Lethality
Извън линия
VHE Mapper
VHE Mapper
Мнения: 211
Регистриран на: 06 Яну 2020, 15:41
Местоположение: Германия
Се отблагодари: 34 пъти
Получена благодарност: 50 пъти
Обратна връзка:

MultiJumps [ReAPI]

Мнение от Lethality » 22 Юни 2022, 20:25

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <reapi>

new g_iJumps[MAX_PLAYERS + 1], bool:bGiveMultiJump[MAX_PLAYERS + 1];

enum _:Cvars
{
	MJ_ENABLE,
	MJ_COUNT,
	MJ_FLAG[2]
};
new g_pCvar[Cvars];

public plugin_init()
{
	register_plugin("Multi-Jumps [ReAPI]", "0.1", "Nikolow")

	RegisterHookChain(RG_CBasePlayer_Jump, "Fw_PlayerJump_Pre", .post = false)

	bind_pcvar_num(create_cvar("mj_give_all_multijump", "1"), g_pCvar[MJ_ENABLE]);
	bind_pcvar_num(create_cvar("mj_extra_jumps", "1"), g_pCvar[MJ_COUNT]);
	bind_pcvar_string(create_cvar("mj_flag", "c"), g_pCvar[MJ_FLAG], charsmax(g_pCvar[MJ_FLAG]));
}

public plugin_natives()
{
	register_native("give_user_multijump", "native_give_user_multijump", 1)
	register_native("remove_user_multijump", "native_remove_user_multijump", 1)
}

public native_give_user_multijump(id) bGiveMultiJump[id] = true
public native_remove_user_multijump(id) bGiveMultiJump[id] = false

public Fw_PlayerJump_Pre(id)
{
	if (!is_user_alive(id))
		return HC_SUPERCEDE
	
	if(!has_flag(id, g_pCvar[MJ_FLAG]))
		return HC_SUPERCEDE

	new iFlags = get_entvar(id, var_flags)

	if (iFlags & FL_WATERJUMP || get_entvar(id, var_waterlevel) >= 2 || !(get_member(id, m_afButtonPressed) & IN_JUMP))
		return HC_CONTINUE

	if (iFlags & FL_ONGROUND)
	{
		g_iJumps[id] = 0
		return HC_CONTINUE
	}

	if (get_pcvar_num(g_pCvar[MJ_ENABLE]) || bGiveMultiJump[id])
	{
		if (++g_iJumps[id] <= get_pcvar_num(g_pCvar[MJ_COUNT]))
		{
			new Float:fVelocity[3]
			get_entvar(id, var_velocity, fVelocity)
			fVelocity[2] = 268.328157
			set_entvar(id, var_velocity, fVelocity)
			
			return HC_SUPERCEDE
		}
	}
	return HC_CONTINUE
}
mj_flag "c" (ADMIN_KICK) Change the flag letter if you want, by default now is "c"

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Плъгини за ReAPI”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта