Преработка на zl_clustergrenade Item | CustomShop

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

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

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от Marinovv » 10 Авг 2019, 07:06

Ще е възможно ли преработка на този плъгин. Възможно ли е да се настрои за CustomShop Магазинът на OciXCrom. Тоест плъгина да се включи само при закупуването, а при умиране да си е нормално.

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

//-----------
// ClusterGrenade
//
// Разработка игровых режимов / Development of game modes
// http://zombielite.Ru/
//--
// By Alexander.3
// http://Alexander3.Ru/

#include < amxmodx >
#include < engine >
#include < fakemeta >
#include < hamsandwich >

#define NAME			"[ZL] ClusterGrenade"
#define VERSION			"Public [1.0]"
#define AUTHOR			"Alexander.3"

#define TRAIL			// Включить поддержку хвостика от осколок
#define SHOCKWAVE		// Включить поддержку обруча от осколок
#define SCREENFADE		// Включить поддержку затемнения экрана
#define SCREENSHACKE		// Включить поддержку тряски экрана
#define RANDOM			// Включить поддержку разных цветов ( цвета будут в рандомном порядке )

const cluster_num =		10	// Кол-во осколок
const Float:cluster_radius = 	200.0	// Радиус разлета осколок
const Float:cluster_dradius =	240.0	// Радиус урона осколок
const Float:cluster_damage =	100.0	// Урон наносимый от осколок

new const cluster_models[] =	"models/w_hegrenade.mdl"	// Модель осколок
new const cluster_sprite[] =	"sprites/dexplo.spr"		// Спрайт взрыва осколок

// Настройка следа от гранаты
#if defined TRAIL
new g_Trail
new const cluster_trail[] =	"sprites/laserbeam.spr"		// Спрайт полосоки от осколок
new cluster_trail_red =		255	// Красный
new cluster_trail_green =	0	// Зеленый
new cluster_trail_blue =	50	// Синий
#endif

// Настройка обруча
#if defined SHOCKWAVE
new g_sw
new const cluster_sw[] =		"sprites/shockwave.spr"		// Спрайт-обруч от осколок
new cluster_sw_red =		255	// Красный
new cluster_sw_green =		0	// Зеленый
new cluster_sw_blue =		50	// Синий
#endif

// НАстройка затемнения экрана
#if defined SCREENFADE
new cluster_sf_red =		255	// Красный
new cluster_sf_green =		0	// Синий
new cluster_sf_blue =		50 	// Зеленый
#endif

new g_Exlplosion

public plugin_init() {
	register_plugin(NAME, VERSION, AUTHOR)
	
	RegisterHam(Ham_Think, "grenade", "Hook_Grenade", 1)	// Регистрируем синк для гранат
	
	register_touch("cluster_bomb", "*", "Hook_Touch")	// Ловим прикосновение гранаты
}

public Hook_Grenade( Ent ) {
	if (!pev_valid( Ent ))	// Проверка на валидность
		return HAM_IGNORED
	
	static Float:dmgtime
	
	pev(Ent, pev_dmgtime, dmgtime)	// Получаем время взрыва гранаты
	
	if (dmgtime > get_gametime())	// Ловим момент взрыва гранаты
		return HAM_IGNORED
	
	new szModels[32]
	pev(Ent, pev_model, szModels, charsmax(szModels))	// Получаем модель
	
	if (!equal(szModels, "models/w_hegrenade.mdl"))		// Проверка на he_ гранату
		return HAM_IGNORED
	
	new Float:b_origin[3]
	pev(Ent, pev_origin, b_origin)	// Получаем координаты гранаты
	
	for (new i; i < cluster_num; i++) {
		#if defined RANDOM
		cluster_effect()
		#endif
		
		new bomb			
		bomb = create_entity("info_target")		// Создаем энтити
		engfunc(EngFunc_SetOrigin, bomb, b_origin)	// Устанавливаем координаты для созданной энтити
		engfunc(EngFunc_SetModel, bomb, cluster_models)	// Устанавливаем модельку
		set_pev(bomb, pev_solid, SOLID_TRIGGER)		// Солидность ставим на TRGGGER, что бы не взрывались раньше нужного времени
		set_pev(bomb, pev_classname, "cluster_bomb")	// Устанавливаем ClassName для проверки в Touch эвенте
		set_pev(bomb, pev_movetype, MOVETYPE_TOSS)	// Устанавливаем MOVETYPE_TOSS
		set_pev(bomb, pev_owner, pev(Ent, pev_owner))	// Устанавливаем индекс игрока для энтити
		
		// Работа с разбросом, будет рандомная в пределе лимита.
		new Float:velocity[3]
		velocity[0] = random_float(-(cluster_radius), cluster_radius)	
		velocity[1] = random_float(-(cluster_radius), cluster_radius)
		velocity[2] = cluster_radius + 185.0 // 185 - смещение
		
		set_pev(bomb, pev_velocity, velocity)	// Устанавливаем силу разлета осколок
		
		#if defined TRAIL
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMFOLLOW)
		write_short(bomb)
		write_short(g_Trail)
		write_byte(13)
		write_byte(5)
		write_byte(cluster_trail_red)
		write_byte(cluster_trail_green)
		write_byte(cluster_trail_blue)
		write_byte(255)
		message_end()
		#endif
	}
	set_pev(Ent, pev_flags, FL_KILLME)	// Удаляем стандартную бомбу
	return HAM_HANDLED
}

public Hook_Touch(grenade, went) {
	if (!pev_valid( grenade ))	// Проверка на валидность
		return
	
	new szWEnt[32]
	pev(went, pev_classname, szWEnt, charsmax(szWEnt))	// Получаем ClassName нашего осколка
	
	if (equal(szWEnt, "cluster_bomb"))	// Проверка энтити на осколки
		return
	
	new Float:origin[3]	// Координаты осколок
	new victim = -1		// Игроки которые попадут в радиус
	
	pev(grenade, pev_origin, origin)	// Получаем координаты гранаты
	
	while((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, cluster_dradius))) {
		if (!is_user_alive( victim ))	// Проверка на валидность
			continue
			
		if (get_user_team(victim) == get_user_team(pev(grenade, pev_owner)))	// Проверка на команду, что бы не наносило урон членам по команде
			continue
	
		ExecuteHamB(Ham_TakeDamage, victim, 0, grenade, cluster_damage, (1<<24))	// Наносим урон игрокам которые попали в радиус действия взрыва
		
		// Болевая иконка
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), {0,0,0}, victim)
		write_byte(0)
		write_byte(100)
		write_long(1<<1)
		engfunc(EngFunc_WriteCoord, origin[0])
		engfunc(EngFunc_WriteCoord, origin[1])
		engfunc(EngFunc_WriteCoord, origin[2])
		message_end()
		
		#if defined SCREENFADE
		ZL_ScreenFade(victim, 2, 1, cluster_sf_red, cluster_sf_green, cluster_sf_blue, 130, 1) // Окраска экрана
		#endif
		
		// Тряска экрана
		#if defined SCREENSHACKE		
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"), {0,0,0}, victim)
		write_short(1<<14)
		write_short((1<<12) * 8)
		write_short((2<<12) * 7)
		message_end()
		#endif
	}
	
	// Волна от осколок
	#if defined SHOCKWAVE
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2])
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + cluster_dradius)
	write_short(g_sw)
	write_byte(0)
	write_byte(0)
	write_byte(4)
	write_byte(20)
	write_byte(0)
	write_byte(cluster_sw_red)
	write_byte(cluster_sw_green)
	write_byte(cluster_sw_blue)
	write_byte(255)
	write_byte(0)
	message_end()
	#endif
	
	// Эмулируем взрыв
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_EXPLOSION)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + 25.0)
	write_short(g_Exlplosion)
	write_byte(20)
	write_byte(10)
	write_byte(0)
	message_end()
	
	// Удаляем осколок
	engfunc(EngFunc_RemoveEntity, grenade)
}

// Загружаем ресурсы
public plugin_precache() {
	g_Exlplosion = precache_model(cluster_sprite)
	#if defined TRAIL
	g_Trail = precache_model(cluster_trail)
	#endif
	#if defined SHOCKWAVE
	g_sw = precache_model(cluster_sw)
	#endif
}

#if defined RANDOM
cluster_effect() {
	#if defined TRAIL
	cluster_trail_red = random(255)
	cluster_trail_green = random(255)
	cluster_trail_blue = random(255)
	#endif
	
	#if defined SHOCKWAVE
	cluster_sw_red = random(255)
	cluster_sw_green = random(255)
	cluster_sw_blue = random(255)
	#endif
	
	#if defined SCREENFADE
	cluster_sf_red = random(255)
	cluster_sf_green = random(255)
	cluster_sf_blue = random(255)
	#endif
}
#endif

stock ZL_ScreenFade(id, Timer, FadeTime, red, green, blue, Alpha, type) {
	if(id) if(!is_user_connected(id)) return

	if (Timer > 0xFFFF) Timer = 0xFFFF
	if (FadeTime <= 0) FadeTime = 4
	
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, get_user_msgid("ScreenFade"), _, id);
	write_short(Timer * 1 << 12)
	write_short(FadeTime * 1 << 12)
	switch (type) {
		case 1: write_short(0x0000)		// IN ( FFADE_IN )
		case 2: write_short(0x0001)		// OUT ( FFADE_OUT )
		case 3: write_short(0x0002)		// MODULATE ( FFADE_MODULATE )
		case 4: write_short(0x0004)		// STAYOUT ( FFADE_STAYOUT )
		default: write_short(0x0001)
	}
	write_byte(red)
	write_byte(green)
	write_byte(blue)
	write_byte(Alpha)
	message_end()
}
Ще се радвам, ако го направи някой. Благодаря ВИ :)
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
TryAgain
Извън линия
Потребител
Потребител
Мнения: 182
Регистриран на: 25 Яну 2017, 16:59
Се отблагодари: 1 път
Получена благодарност: 26 пъти

Преработка на zl_clustergrenade Item | CustomShop

Мнение от TryAgain » 12 Авг 2019, 07:27

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

//-----------
// ClusterGrenade
//
// Разработка игровых режимов / Development of game modes
// http://zombielite.Ru/
//--
// By Alexander.3
// http://Alexander3.Ru/

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <customshop>

#define NAME			"[ZL] ClusterGrenade"
#define VERSION			"Public [1.0]"
#define AUTHOR			"Alexander.3"

#define TRAIL			// Включить поддержку хвостика от осколок
#define SHOCKWAVE		// Включить поддержку обруча от осколок
#define SCREENFADE		// Включить поддержку затемнения экрана
#define SCREENSHACKE		// Включить поддержку тряски экрана
#define RANDOM			// Включить поддержку разных цветов ( цвета будут в рандомном порядке )

const cluster_num =		10	// Кол-во осколок
const Float:cluster_radius = 	200.0	// Радиус разлета осколок
const Float:cluster_dradius =	240.0	// Радиус урона осколок
const Float:cluster_damage =	100.0	// Урон наносимый от осколок

new const cluster_models[] =	"models/w_hegrenade.mdl"	// Модель осколок
new const cluster_sprite[] =	"sprites/dexplo.spr"		// Спрайт взрыва осколок
new g_enabled[33],item_ready

// Настройка следа от гранаты
#if defined TRAIL
new g_Trail
new const cluster_trail[] =	"sprites/laserbeam.spr"		// Спрайт полосоки от осколок
new cluster_trail_red =		255	// Красный
new cluster_trail_green =	0	// Зеленый
new cluster_trail_blue =	50	// Синий
#endif

// Настройка обруча
#if defined SHOCKWAVE
new g_sw
new const cluster_sw[] =		"sprites/shockwave.spr"		// Спрайт-обруч от осколок
new cluster_sw_red =		255	// Красный
new cluster_sw_green =		0	// Зеленый
new cluster_sw_blue =		50	// Синий
#endif

// НАстройка затемнения экрана
#if defined SCREENFADE
new cluster_sf_red =		255	// Красный
new cluster_sf_green =		0	// Синий
new cluster_sf_blue =		50 	// Зеленый
#endif

new g_Exlplosion

public plugin_init() {
	register_plugin(NAME, VERSION, AUTHOR)
	
	RegisterHam(Ham_Think, "grenade", "Hook_Grenade", 1)	// Регистрируем синк для гранат
	
	register_touch("cluster_bomb", "*", "Hook_Touch")	// Ловим прикосновение гранаты
}

public Hook_Grenade( Ent ) {
	if (!pev_valid(Ent) || !g_enabled[Ent])	// Проверка на валидность
		return HAM_IGNORED
	
	static Float:dmgtime
	
	pev(Ent, pev_dmgtime, dmgtime)	// Получаем время взрыва гранаты
	
	if (dmgtime > get_gametime())	// Ловим момент взрыва гранаты
		return HAM_IGNORED
	
	new szModels[32]
	pev(Ent, pev_model, szModels, charsmax(szModels))	// Получаем модель
	
	if (!equal(szModels, "models/w_hegrenade.mdl"))		// Проверка на he_ гранату
		return HAM_IGNORED
	
	new Float:b_origin[3]
	pev(Ent, pev_origin, b_origin)	// Получаем координаты гранаты
	
	for (new i; i < cluster_num; i++) {
		#if defined RANDOM
		cluster_effect()
		#endif
		
		new bomb			
		bomb = create_entity("info_target")		// Создаем энтити
		engfunc(EngFunc_SetOrigin, bomb, b_origin)	// Устанавливаем координаты для созданной энтити
		engfunc(EngFunc_SetModel, bomb, cluster_models)	// Устанавливаем модельку
		set_pev(bomb, pev_solid, SOLID_TRIGGER)		// Солидность ставим на TRGGGER, что бы не взрывались раньше нужного времени
		set_pev(bomb, pev_classname, "cluster_bomb")	// Устанавливаем ClassName для проверки в Touch эвенте
		set_pev(bomb, pev_movetype, MOVETYPE_TOSS)	// Устанавливаем MOVETYPE_TOSS
		set_pev(bomb, pev_owner, pev(Ent, pev_owner))	// Устанавливаем индекс игрока для энтити
		
		// Работа с разбросом, будет рандомная в пределе лимита.
		new Float:velocity[3]
		velocity[0] = random_float(-(cluster_radius), cluster_radius)	
		velocity[1] = random_float(-(cluster_radius), cluster_radius)
		velocity[2] = cluster_radius + 185.0 // 185 - смещение
		
		set_pev(bomb, pev_velocity, velocity)	// Устанавливаем силу разлета осколок
		
		#if defined TRAIL
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMFOLLOW)
		write_short(bomb)
		write_short(g_Trail)
		write_byte(13)
		write_byte(5)
		write_byte(cluster_trail_red)
		write_byte(cluster_trail_green)
		write_byte(cluster_trail_blue)
		write_byte(255)
		message_end()
		#endif
	}
	set_pev(Ent, pev_flags, FL_KILLME)	// Удаляем стандартную бомбу
	return HAM_HANDLED
}

public Hook_Touch(grenade, went) {
	if (!pev_valid(grenade) || !g_enabled[went])	// Проверка на валидность
		return
	
	new szWEnt[32]
	pev(went, pev_classname, szWEnt, charsmax(szWEnt))	// Получаем ClassName нашего осколка
	
	if (equal(szWEnt, "cluster_bomb"))	// Проверка энтити на осколки
		return
	
	new Float:origin[3]	// Координаты осколок
	new victim = -1		// Игроки которые попадут в радиус
	
	pev(grenade, pev_origin, origin)	// Получаем координаты гранаты
	
	while((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, cluster_dradius))) {
		if (!is_user_alive( victim ))	// Проверка на валидность
			continue
			
		if (get_user_team(victim) == get_user_team(pev(grenade, pev_owner)))	// Проверка на команду, что бы не наносило урон членам по команде
			continue
	
		ExecuteHamB(Ham_TakeDamage, victim, 0, grenade, cluster_damage, (1<<24))	// Наносим урон игрокам которые попали в радиус действия взрыва
		
		// Болевая иконка
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), {0,0,0}, victim)
		write_byte(0)
		write_byte(100)
		write_long(1<<1)
		engfunc(EngFunc_WriteCoord, origin[0])
		engfunc(EngFunc_WriteCoord, origin[1])
		engfunc(EngFunc_WriteCoord, origin[2])
		message_end()
		
		#if defined SCREENFADE
		ZL_ScreenFade(victim, 2, 1, cluster_sf_red, cluster_sf_green, cluster_sf_blue, 130, 1) // Окраска экрана
		#endif
		
		// Тряска экрана
		#if defined SCREENSHACKE		
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"), {0,0,0}, victim)
		write_short(1<<14)
		write_short((1<<12) * 8)
		write_short((2<<12) * 7)
		message_end()
		#endif
	}
	
	// Волна от осколок
	#if defined SHOCKWAVE
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2])
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + cluster_dradius)
	write_short(g_sw)
	write_byte(0)
	write_byte(0)
	write_byte(4)
	write_byte(20)
	write_byte(0)
	write_byte(cluster_sw_red)
	write_byte(cluster_sw_green)
	write_byte(cluster_sw_blue)
	write_byte(255)
	write_byte(0)
	message_end()
	#endif
	
	// Эмулируем взрыв
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_EXPLOSION)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + 25.0)
	write_short(g_Exlplosion)
	write_byte(20)
	write_byte(10)
	write_byte(0)
	message_end()
	
	// Удаляем осколок
	engfunc(EngFunc_RemoveEntity, grenade)
}

// Загружаем ресурсы
public plugin_precache() {
	g_Exlplosion = precache_model(cluster_sprite)
	#if defined TRAIL
	g_Trail = precache_model(cluster_trail)
	#endif
	#if defined SHOCKWAVE
	g_sw = precache_model(cluster_sw)
	#endif
	
	item_ready = cshop_register_item("clustergranate","ClusterGrenade",5000)
}

#if defined RANDOM
cluster_effect() {
	#if defined TRAIL
	cluster_trail_red = random(255)
	cluster_trail_green = random(255)
	cluster_trail_blue = random(255)
	#endif
	
	#if defined SHOCKWAVE
	cluster_sw_red = random(255)
	cluster_sw_green = random(255)
	cluster_sw_blue = random(255)
	#endif
	
	#if defined SCREENFADE
	cluster_sf_red = random(255)
	cluster_sf_green = random(255)
	cluster_sf_blue = random(255)
	#endif
}
#endif

public cshop_item_selected(id,item)
{
	if(item == item_ready)
	g_enabled[id] = true
}

stock ZL_ScreenFade(id, Timer, FadeTime, red, green, blue, Alpha, type) {
	if(id) if(!is_user_connected(id) || !g_enabled[id]) return

	if (Timer > 0xFFFF) Timer = 0xFFFF
	if (FadeTime <= 0) FadeTime = 4
	
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, get_user_msgid("ScreenFade"), _, id);
	write_short(Timer * 1 << 12)
	write_short(FadeTime * 1 << 12)
	switch (type) {
		case 1: write_short(0x0000)		// IN ( FFADE_IN )
		case 2: write_short(0x0001)		// OUT ( FFADE_OUT )
		case 3: write_short(0x0002)		// MODULATE ( FFADE_MODULATE )
		case 4: write_short(0x0004)		// STAYOUT ( FFADE_STAYOUT )
		default: write_short(0x0001)
	}
	write_byte(red)
	write_byte(green)
	write_byte(blue)
	write_byte(Alpha)
	message_end()
}

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от Marinovv » 12 Авг 2019, 11:15

Прощавай братле, но не работи нещо. Закупувам този Item и после съответно си закупувам и HE граната и нищо. Всичко си е нормално. Дали не си пропуснал нещо по кода или? :)

В лог регистрите пише това:

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

L 08/12/2019 - 11:13:21: [AMXX] Run time error 4 (plugin "cshop_cluster.amxx") - debug not enabled!
L 08/12/2019 - 11:13:21: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от mi0 » 12 Авг 2019, 13:10

Marinovv написа: 12 Авг 2019, 11:15 add "debug" after the plugin name in plugins.ini
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от Marinovv » 12 Авг 2019, 13:53

mi0 написа: 12 Авг 2019, 13:10
Marinovv написа: 12 Авг 2019, 11:15 add "debug" after the plugin name in plugins.ini
Ама хубаво де, но съм пробвал това. Отново същото става. Плъгинът не работи. Нещо има за да излиза тази грешка. :shok:
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от OciXCrom » 12 Авг 2019, 14:17

Добавяне на "debug" не оправя плъгина, а изкарва цялостна грешка с точен ред в кода на който се намира проблемът. Качи новата грешка.

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от Marinovv » 12 Авг 2019, 14:19

OciXCrom написа: 12 Авг 2019, 14:17 Добавяне на "debug" не оправя плъгина, а изкарва цялостна грешка с точен ред в кода на който се намира проблемът. Качи новата грешка.

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

L 08/12/2019 - 14:13:09: [AMXX] Displaying debug trace (plugin "cshop_cluster.amxx", version "Public [1.0]")
L 08/12/2019 - 14:13:09: [AMXX] Run time error 4: index out of bounds 
L 08/12/2019 - 14:13:09: [AMXX]    [0] cshop_cluster.sma::Hook_Grenade (line 71)
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от mi0 » 12 Авг 2019, 16:22

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

//-----------
// ClusterGrenade
//
// Разработка игровых режимов / Development of game modes
// http://zombielite.Ru/
//--
// By Alexander.3
// http://Alexander3.Ru/

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <customshop>

#define NAME			"[ZL] ClusterGrenade"
#define VERSION			"Public [1.0]"
#define AUTHOR			"Alexander.3"

#define TRAIL			// Включить поддержку хвостика от осколок
#define SHOCKWAVE		// Включить поддержку обруча от осколок
#define SCREENFADE		// Включить поддержку затемнения экрана
#define SCREENSHACKE		// Включить поддержку тряски экрана
#define RANDOM			// Включить поддержку разных цветов ( цвета будут в рандомном порядке )

const cluster_num =		10	// Кол-во осколок
const Float:cluster_radius = 	200.0	// Радиус разлета осколок
const Float:cluster_dradius =	240.0	// Радиус урона осколок
const Float:cluster_damage =	100.0	// Урон наносимый от осколок

new const cluster_models[] =	"models/w_hegrenade.mdl"	// Модель осколок
new const cluster_sprite[] =	"sprites/dexplo.spr"		// Спрайт взрыва осколок
new g_enabled[33],item_ready

// Настройка следа от гранаты
#if defined TRAIL
new g_Trail
new const cluster_trail[] =	"sprites/laserbeam.spr"		// Спрайт полосоки от осколок
new cluster_trail_red =		255	// Красный
new cluster_trail_green =	0	// Зеленый
new cluster_trail_blue =	50	// Синий
#endif

// Настройка обруча
#if defined SHOCKWAVE
new g_sw
new const cluster_sw[] =		"sprites/shockwave.spr"		// Спрайт-обруч от осколок
new cluster_sw_red =		255	// Красный
new cluster_sw_green =		0	// Зеленый
new cluster_sw_blue =		50	// Синий
#endif

// НАстройка затемнения экрана
#if defined SCREENFADE
new cluster_sf_red =		255	// Красный
new cluster_sf_green =		0	// Синий
new cluster_sf_blue =		50 	// Зеленый
#endif

new g_Exlplosion

public plugin_init() {
	register_plugin(NAME, VERSION, AUTHOR)
	
	RegisterHam(Ham_Think, "grenade", "Hook_Grenade", 1)	// Регистрируем синк для гранат
	
	register_touch("cluster_bomb", "*", "Hook_Touch")	// Ловим прикосновение гранаты
}

public Hook_Grenade( Ent ) {
	if (!is_user_connected(ent))	// Проверка на валидность
		return HAM_IGNORED

	if (!g_enabled[Ent])
		return HAM_IGNORED
	
	static Float:dmgtime
	
	pev(Ent, pev_dmgtime, dmgtime)	// Получаем время взрыва гранаты
	
	if (dmgtime > get_gametime())	// Ловим момент взрыва гранаты
		return HAM_IGNORED
	
	new szModels[32]
	pev(Ent, pev_model, szModels, charsmax(szModels))	// Получаем модель
	
	if (!equal(szModels, "models/w_hegrenade.mdl"))		// Проверка на he_ гранату
		return HAM_IGNORED
	
	new Float:b_origin[3]
	pev(Ent, pev_origin, b_origin)	// Получаем координаты гранаты
	
	for (new i; i < cluster_num; i++) {
		#if defined RANDOM
		cluster_effect()
		#endif
		
		new bomb			
		bomb = create_entity("info_target")		// Создаем энтити
		engfunc(EngFunc_SetOrigin, bomb, b_origin)	// Устанавливаем координаты для созданной энтити
		engfunc(EngFunc_SetModel, bomb, cluster_models)	// Устанавливаем модельку
		set_pev(bomb, pev_solid, SOLID_TRIGGER)		// Солидность ставим на TRGGGER, что бы не взрывались раньше нужного времени
		set_pev(bomb, pev_classname, "cluster_bomb")	// Устанавливаем ClassName для проверки в Touch эвенте
		set_pev(bomb, pev_movetype, MOVETYPE_TOSS)	// Устанавливаем MOVETYPE_TOSS
		set_pev(bomb, pev_owner, pev(Ent, pev_owner))	// Устанавливаем индекс игрока для энтити
		
		// Работа с разбросом, будет рандомная в пределе лимита.
		new Float:velocity[3]
		velocity[0] = random_float(-(cluster_radius), cluster_radius)	
		velocity[1] = random_float(-(cluster_radius), cluster_radius)
		velocity[2] = cluster_radius + 185.0 // 185 - смещение
		
		set_pev(bomb, pev_velocity, velocity)	// Устанавливаем силу разлета осколок
		
		#if defined TRAIL
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMFOLLOW)
		write_short(bomb)
		write_short(g_Trail)
		write_byte(13)
		write_byte(5)
		write_byte(cluster_trail_red)
		write_byte(cluster_trail_green)
		write_byte(cluster_trail_blue)
		write_byte(255)
		message_end()
		#endif
	}
	set_pev(Ent, pev_flags, FL_KILLME)	// Удаляем стандартную бомбу
	return HAM_HANDLED
}

public Hook_Touch(grenade, went) {
	if (!pev_valid(grenade) || !g_enabled[went])	// Проверка на валидность
		return
	
	new szWEnt[32]
	pev(went, pev_classname, szWEnt, charsmax(szWEnt))	// Получаем ClassName нашего осколка
	
	if (equal(szWEnt, "cluster_bomb"))	// Проверка энтити на осколки
		return
	
	new Float:origin[3]	// Координаты осколок
	new victim = -1		// Игроки которые попадут в радиус
	
	pev(grenade, pev_origin, origin)	// Получаем координаты гранаты
	
	while((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, cluster_dradius))) {
		if (!is_user_alive( victim ))	// Проверка на валидность
			continue
			
		if (get_user_team(victim) == get_user_team(pev(grenade, pev_owner)))	// Проверка на команду, что бы не наносило урон членам по команде
			continue
	
		ExecuteHamB(Ham_TakeDamage, victim, 0, grenade, cluster_damage, (1<<24))	// Наносим урон игрокам которые попали в радиус действия взрыва
		
		// Болевая иконка
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), {0,0,0}, victim)
		write_byte(0)
		write_byte(100)
		write_long(1<<1)
		engfunc(EngFunc_WriteCoord, origin[0])
		engfunc(EngFunc_WriteCoord, origin[1])
		engfunc(EngFunc_WriteCoord, origin[2])
		message_end()
		
		#if defined SCREENFADE
		ZL_ScreenFade(victim, 2, 1, cluster_sf_red, cluster_sf_green, cluster_sf_blue, 130, 1) // Окраска экрана
		#endif
		
		// Тряска экрана
		#if defined SCREENSHACKE		
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"), {0,0,0}, victim)
		write_short(1<<14)
		write_short((1<<12) * 8)
		write_short((2<<12) * 7)
		message_end()
		#endif
	}
	
	// Волна от осколок
	#if defined SHOCKWAVE
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2])
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + cluster_dradius)
	write_short(g_sw)
	write_byte(0)
	write_byte(0)
	write_byte(4)
	write_byte(20)
	write_byte(0)
	write_byte(cluster_sw_red)
	write_byte(cluster_sw_green)
	write_byte(cluster_sw_blue)
	write_byte(255)
	write_byte(0)
	message_end()
	#endif
	
	// Эмулируем взрыв
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_EXPLOSION)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + 25.0)
	write_short(g_Exlplosion)
	write_byte(20)
	write_byte(10)
	write_byte(0)
	message_end()
	
	// Удаляем осколок
	engfunc(EngFunc_RemoveEntity, grenade)
}

// Загружаем ресурсы
public plugin_precache() {
	g_Exlplosion = precache_model(cluster_sprite)
	#if defined TRAIL
	g_Trail = precache_model(cluster_trail)
	#endif
	#if defined SHOCKWAVE
	g_sw = precache_model(cluster_sw)
	#endif
	
	item_ready = cshop_register_item("clustergranate","ClusterGrenade",5000)
}

#if defined RANDOM
cluster_effect() {
	#if defined TRAIL
	cluster_trail_red = random(255)
	cluster_trail_green = random(255)
	cluster_trail_blue = random(255)
	#endif
	
	#if defined SHOCKWAVE
	cluster_sw_red = random(255)
	cluster_sw_green = random(255)
	cluster_sw_blue = random(255)
	#endif
	
	#if defined SCREENFADE
	cluster_sf_red = random(255)
	cluster_sf_green = random(255)
	cluster_sf_blue = random(255)
	#endif
}
#endif

public cshop_item_selected(id,item)
{
	if(item == item_ready)
	g_enabled[id] = true
}

stock ZL_ScreenFade(id, Timer, FadeTime, red, green, blue, Alpha, type) {
	if(id) if(!is_user_connected(id) || !g_enabled[id]) return

	if (Timer > 0xFFFF) Timer = 0xFFFF
	if (FadeTime <= 0) FadeTime = 4
	
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, get_user_msgid("ScreenFade"), _, id);
	write_short(Timer * 1 << 12)
	write_short(FadeTime * 1 << 12)
	switch (type) {
		case 1: write_short(0x0000)		// IN ( FFADE_IN )
		case 2: write_short(0x0001)		// OUT ( FFADE_OUT )
		case 3: write_short(0x0002)		// MODULATE ( FFADE_MODULATE )
		case 4: write_short(0x0004)		// STAYOUT ( FFADE_STAYOUT )
		default: write_short(0x0001)
	}
	write_byte(red)
	write_byte(green)
	write_byte(blue)
	write_byte(Alpha)
	message_end()
}
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от Marinovv » 12 Авг 2019, 16:37

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

//// cshop_cluster.sma
// C:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\cshop_cluster.sma(71) : error 017: undefined symbol "ent"
//
// 1 Error.
// Could not locate output file C:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\compiled\cshop_cluster.amx (compile failed).
//
// Compilation Time: 0,33 sec
Не ще да компилира
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Преработка на zl_clustergrenade Item | CustomShop

Мнение от mi0 » 12 Авг 2019, 16:43

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

//-----------
// ClusterGrenade
//
// Разработка игровых режимов / Development of game modes
// http://zombielite.Ru/
//--
// By Alexander.3
// http://Alexander3.Ru/

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <customshop>

#define NAME			"[ZL] ClusterGrenade"
#define VERSION			"Public [1.0]"
#define AUTHOR			"Alexander.3"

#define TRAIL			// Включить поддержку хвостика от осколок
#define SHOCKWAVE		// Включить поддержку обруча от осколок
#define SCREENFADE		// Включить поддержку затемнения экрана
#define SCREENSHACKE		// Включить поддержку тряски экрана
#define RANDOM			// Включить поддержку разных цветов ( цвета будут в рандомном порядке )

const cluster_num =		10	// Кол-во осколок
const Float:cluster_radius = 	200.0	// Радиус разлета осколок
const Float:cluster_dradius =	240.0	// Радиус урона осколок
const Float:cluster_damage =	100.0	// Урон наносимый от осколок

new const cluster_models[] =	"models/w_hegrenade.mdl"	// Модель осколок
new const cluster_sprite[] =	"sprites/dexplo.spr"		// Спрайт взрыва осколок
new g_enabled[33],item_ready

// Настройка следа от гранаты
#if defined TRAIL
new g_Trail
new const cluster_trail[] =	"sprites/laserbeam.spr"		// Спрайт полосоки от осколок
new cluster_trail_red =		255	// Красный
new cluster_trail_green =	0	// Зеленый
new cluster_trail_blue =	50	// Синий
#endif

// Настройка обруча
#if defined SHOCKWAVE
new g_sw
new const cluster_sw[] =		"sprites/shockwave.spr"		// Спрайт-обруч от осколок
new cluster_sw_red =		255	// Красный
new cluster_sw_green =		0	// Зеленый
new cluster_sw_blue =		50	// Синий
#endif

// НАстройка затемнения экрана
#if defined SCREENFADE
new cluster_sf_red =		255	// Красный
new cluster_sf_green =		0	// Синий
new cluster_sf_blue =		50 	// Зеленый
#endif

new g_Exlplosion

public plugin_init() {
	register_plugin(NAME, VERSION, AUTHOR)
	
	RegisterHam(Ham_Think, "grenade", "Hook_Grenade", 1)	// Регистрируем синк для гранат
	
	register_touch("cluster_bomb", "*", "Hook_Touch")	// Ловим прикосновение гранаты
}

public Hook_Grenade( Ent ) {
	if (!is_user_connected(Ent))	// Проверка на валидность
		return HAM_IGNORED

	if (!g_enabled[Ent])
		return HAM_IGNORED
	
	static Float:dmgtime
	
	pev(Ent, pev_dmgtime, dmgtime)	// Получаем время взрыва гранаты
	
	if (dmgtime > get_gametime())	// Ловим момент взрыва гранаты
		return HAM_IGNORED
	
	new szModels[32]
	pev(Ent, pev_model, szModels, charsmax(szModels))	// Получаем модель
	
	if (!equal(szModels, "models/w_hegrenade.mdl"))		// Проверка на he_ гранату
		return HAM_IGNORED
	
	new Float:b_origin[3]
	pev(Ent, pev_origin, b_origin)	// Получаем координаты гранаты
	
	for (new i; i < cluster_num; i++) {
		#if defined RANDOM
		cluster_effect()
		#endif
		
		new bomb			
		bomb = create_entity("info_target")		// Создаем энтити
		engfunc(EngFunc_SetOrigin, bomb, b_origin)	// Устанавливаем координаты для созданной энтити
		engfunc(EngFunc_SetModel, bomb, cluster_models)	// Устанавливаем модельку
		set_pev(bomb, pev_solid, SOLID_TRIGGER)		// Солидность ставим на TRGGGER, что бы не взрывались раньше нужного времени
		set_pev(bomb, pev_classname, "cluster_bomb")	// Устанавливаем ClassName для проверки в Touch эвенте
		set_pev(bomb, pev_movetype, MOVETYPE_TOSS)	// Устанавливаем MOVETYPE_TOSS
		set_pev(bomb, pev_owner, pev(Ent, pev_owner))	// Устанавливаем индекс игрока для энтити
		
		// Работа с разбросом, будет рандомная в пределе лимита.
		new Float:velocity[3]
		velocity[0] = random_float(-(cluster_radius), cluster_radius)	
		velocity[1] = random_float(-(cluster_radius), cluster_radius)
		velocity[2] = cluster_radius + 185.0 // 185 - смещение
		
		set_pev(bomb, pev_velocity, velocity)	// Устанавливаем силу разлета осколок
		
		#if defined TRAIL
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMFOLLOW)
		write_short(bomb)
		write_short(g_Trail)
		write_byte(13)
		write_byte(5)
		write_byte(cluster_trail_red)
		write_byte(cluster_trail_green)
		write_byte(cluster_trail_blue)
		write_byte(255)
		message_end()
		#endif
	}
	set_pev(Ent, pev_flags, FL_KILLME)	// Удаляем стандартную бомбу
	return HAM_HANDLED
}

public Hook_Touch(grenade, went) {
	if (!pev_valid(grenade) || !g_enabled[went])	// Проверка на валидность
		return
	
	new szWEnt[32]
	pev(went, pev_classname, szWEnt, charsmax(szWEnt))	// Получаем ClassName нашего осколка
	
	if (equal(szWEnt, "cluster_bomb"))	// Проверка энтити на осколки
		return
	
	new Float:origin[3]	// Координаты осколок
	new victim = -1		// Игроки которые попадут в радиус
	
	pev(grenade, pev_origin, origin)	// Получаем координаты гранаты
	
	while((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, cluster_dradius))) {
		if (!is_user_alive( victim ))	// Проверка на валидность
			continue
			
		if (get_user_team(victim) == get_user_team(pev(grenade, pev_owner)))	// Проверка на команду, что бы не наносило урон членам по команде
			continue
	
		ExecuteHamB(Ham_TakeDamage, victim, 0, grenade, cluster_damage, (1<<24))	// Наносим урон игрокам которые попали в радиус действия взрыва
		
		// Болевая иконка
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), {0,0,0}, victim)
		write_byte(0)
		write_byte(100)
		write_long(1<<1)
		engfunc(EngFunc_WriteCoord, origin[0])
		engfunc(EngFunc_WriteCoord, origin[1])
		engfunc(EngFunc_WriteCoord, origin[2])
		message_end()
		
		#if defined SCREENFADE
		ZL_ScreenFade(victim, 2, 1, cluster_sf_red, cluster_sf_green, cluster_sf_blue, 130, 1) // Окраска экрана
		#endif
		
		// Тряска экрана
		#if defined SCREENSHACKE		
		message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"), {0,0,0}, victim)
		write_short(1<<14)
		write_short((1<<12) * 8)
		write_short((2<<12) * 7)
		message_end()
		#endif
	}
	
	// Волна от осколок
	#if defined SHOCKWAVE
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2])
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + cluster_dradius)
	write_short(g_sw)
	write_byte(0)
	write_byte(0)
	write_byte(4)
	write_byte(20)
	write_byte(0)
	write_byte(cluster_sw_red)
	write_byte(cluster_sw_green)
	write_byte(cluster_sw_blue)
	write_byte(255)
	write_byte(0)
	message_end()
	#endif
	
	// Эмулируем взрыв
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_EXPLOSION)
	engfunc(EngFunc_WriteCoord, origin[0])
	engfunc(EngFunc_WriteCoord, origin[1])
	engfunc(EngFunc_WriteCoord, origin[2] + 25.0)
	write_short(g_Exlplosion)
	write_byte(20)
	write_byte(10)
	write_byte(0)
	message_end()
	
	// Удаляем осколок
	engfunc(EngFunc_RemoveEntity, grenade)
}

// Загружаем ресурсы
public plugin_precache() {
	g_Exlplosion = precache_model(cluster_sprite)
	#if defined TRAIL
	g_Trail = precache_model(cluster_trail)
	#endif
	#if defined SHOCKWAVE
	g_sw = precache_model(cluster_sw)
	#endif
	
	item_ready = cshop_register_item("clustergranate","ClusterGrenade",5000)
}

#if defined RANDOM
cluster_effect() {
	#if defined TRAIL
	cluster_trail_red = random(255)
	cluster_trail_green = random(255)
	cluster_trail_blue = random(255)
	#endif
	
	#if defined SHOCKWAVE
	cluster_sw_red = random(255)
	cluster_sw_green = random(255)
	cluster_sw_blue = random(255)
	#endif
	
	#if defined SCREENFADE
	cluster_sf_red = random(255)
	cluster_sf_green = random(255)
	cluster_sf_blue = random(255)
	#endif
}
#endif

public cshop_item_selected(id,item)
{
	if(item == item_ready)
	g_enabled[id] = true
}

stock ZL_ScreenFade(id, Timer, FadeTime, red, green, blue, Alpha, type) {
	if(id) if(!is_user_connected(id) || !g_enabled[id]) return

	if (Timer > 0xFFFF) Timer = 0xFFFF
	if (FadeTime <= 0) FadeTime = 4
	
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, get_user_msgid("ScreenFade"), _, id);
	write_short(Timer * 1 << 12)
	write_short(FadeTime * 1 << 12)
	switch (type) {
		case 1: write_short(0x0000)		// IN ( FFADE_IN )
		case 2: write_short(0x0001)		// OUT ( FFADE_OUT )
		case 3: write_short(0x0002)		// MODULATE ( FFADE_MODULATE )
		case 4: write_short(0x0004)		// STAYOUT ( FFADE_STAYOUT )
		default: write_short(0x0001)
	}
	write_byte(red)
	write_byte(green)
	write_byte(blue)
	write_byte(Alpha)
	message_end()
}
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

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

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

Кой е на линия

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