Преработка на плъгина "Magic Marker"

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

Модератори: Extreme, Extreme, Extreme, Extreme, Extreme, Extreme, Extreme

Аватар
MickeyMouse
Извън линия
Потребител
Потребител
Мнения: 36
Регистриран на: 06 Фев 2018, 15:57

Преработка на плъгина "Magic Marker"

Мнение от MickeyMouse » 21 Мар 2018, 15:44

Здравейте. Някой може ли да ми направи този плъгин да е само за играчи с флага "r"
Прикачени файлове
magic_marker.sma
(2.62 KiB) Свалено 100 пъти
magic_marker.sma
(2.62 KiB) Свалено 100 пъти

Аватар
[N]eXuS
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 16 Мар 2018, 04:52

Преработка на плъгина "Magic Marker"

Мнение от [N]eXuS » 21 Мар 2018, 15:53

Заповядай :)

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

#define ADMIN ADMIN_LEVEL_F

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

Флаг "r" ADMIN_LEVEL_F

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

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <xs>

#define PLUGIN "Magic Marker"
#define VERSION "1.0"
#define AUTHOR "stupok69"

#define MAX_PLAYERS 32

#define ADMIN ADMIN_LEVEL_F

new Float:origin[MAX_PLAYERS+1][3]
new prethink_counter[MAX_PLAYERS+1]
new bool:is_drawing[MAX_PLAYERS+1]

new spriteid

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_forward(FM_PlayerPreThink, "forward_FM_PlayerPreThink", 0)
}

public plugin_precache()
{
	spriteid = precache_model("sprites/lgtning.spr")
}

public forward_FM_PlayerPreThink(id)
{
	if(prethink_counter[id]++ > 5 && get_user_flags(id) & ADMIN)
	{
		if(pev(id, pev_button) & IN_ATTACK2)
		{
			static Float:cur_origin[3]

			cur_origin = origin[id]
			
			if(!is_drawing[id])
			{
				fm_get_aim_origin(id, origin[id])
				move_toward_client(id, origin[id])
				is_drawing[id] = true
				return FMRES_IGNORED
			}
			else
			{
				fm_get_aim_origin(id, origin[id])
				move_toward_client(id, origin[id])
				if(get_distance_f(origin[id], cur_origin) > 2)
				{
					draw_line(origin[id], cur_origin)
				}
			}
		}
		else
		{
			is_drawing[id] = false
		}
		prethink_counter[id] = 0
	}
	
	return FMRES_IGNORED
}

stock draw_line(Float:origin1[3], Float:origin2[3])
{
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_BEAMPOINTS)
	engfunc(EngFunc_WriteCoord, origin1[0])
	engfunc(EngFunc_WriteCoord, origin1[1])
	engfunc(EngFunc_WriteCoord, origin1[2])
	engfunc(EngFunc_WriteCoord, origin2[0])
	engfunc(EngFunc_WriteCoord, origin2[1])
	engfunc(EngFunc_WriteCoord, origin2[2])
	write_short(spriteid)
	write_byte(0)
	write_byte(10)
	write_byte(255)
	write_byte(50)
	write_byte(0)
	write_byte(random(255))
	write_byte(random(255))
	write_byte(random(255))
	write_byte(255)
	write_byte(0)
	message_end()
}

//from fakemeta_util.inc
stock fm_get_aim_origin(index, Float:origin[3])
{
	static Float:start[3], Float:view_ofs[3]
	pev(index, pev_origin, start)
	pev(index, pev_view_ofs, view_ofs)
	xs_vec_add(start, view_ofs, start)
	
	static Float:dest[3]
	pev(index, pev_v_angle, dest)
	engfunc(EngFunc_MakeVectors, dest)
	global_get(glb_v_forward, dest)
	xs_vec_mul_scalar(dest, 9999.0, dest)
	xs_vec_add(start, dest, dest)
	
	engfunc(EngFunc_TraceLine, start, dest, 0, index, 0)
	get_tr2(0, TR_vecEndPos, origin)
	
	return 1
}

stock move_toward_client(id, Float:origin[3])
{		
	static Float:player_origin[3]
	
	pev(id, pev_origin, player_origin)
	
	origin[0] += (player_origin[0] > origin[0]) ? 1.0 : -1.0
	origin[1] += (player_origin[1] > origin[1]) ? 1.0 : -1.0
	origin[2] += (player_origin[2] > origin[2]) ? 1.0 : -1.0
}

Аватар
MickeyMouse
Извън линия
Потребител
Потребител
Мнения: 36
Регистриран на: 06 Фев 2018, 15:57

Преработка на плъгина "Magic Marker"

Мнение от MickeyMouse » 21 Мар 2018, 16:24

Благодаря :)

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

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 42 госта