Грешка при компилиране. Къде бъркам?

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
YankoNL
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 06 Апр 2017, 09:07
Местоположение: Варна
Се отблагодари: 22 пъти
Получена благодарност: 9 пъти

Грешка при компилиране. Къде бъркам?

Мнение от YankoNL » 12 Май 2021, 13:09

Здравейте, реших да си поиграя и да направя по-лесно променянето на моделите, звуците и спрайтовете в следния плъгин:

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <hamsandwich>
#include <zombieplague>

#define CC_COLORS_TYPE CC_COLORS_SHORT
#include <cromchat>

/*-------------------------------------------------------
	Here you can change Models, Sounds and Sprites
-------------------------------------------------------*/
#define JP_MODEL_V = "models/v_egon.mdl"	// Client view JP model
#define JP_MODEL_P = "models/p_egon.mdl"	// Player JP model
#define JP_MODEL_W = "models/w_egon.mdl"	// On ground JP model
#define ROCKET_MODEL = "models/rpgrocket.mdl"	// Rocket model

#define JP_EQUIP_SOUND = "items/gunpickup2.wav"	// Pickup and buy sound
#define JP_DROP_SOUND = "common/bodydrop2.wav"	// Drop sound
#define JP_SHOOT_SOUND = "weapons/rocketfire1.wav"	// Bazooka shoot sound
#define JP_FLY_SOUND = "jetpack.wav"	// Jetpack flying sound

#define JP_EXPLOSIONS_SPR = "sprites/zerogxplode.spr"	// Explosion effect sprite
#define JP_TRAIL_SPR = "sprites/white.spr"	// Jetpack fly and rocket trail
/*-------------------------------------------------------
	End. Edit after this at your own risk!
-------------------------------------------------------*/

new sprite_explosion, sprite_beamcylinder, jp_itemid,
cvar_cost, cvar_damage, cvar_speed, cvar_reload_time, cvar_radius,
cvar_start_energy, cvar_remove_energy, cvar_heal_energy, cvar_heal_time, cvar_zvelocity, cvar_aimvelocity,
cvar_can_drop, cvar_one_round,
maxplayers, hudsync, has_jetpack[33], can_shoot[33], energy[33], Float:last_sndplay[33]

public plugin_precache()
{
	precache_model(JP_MODEL_V)
	precache_model(JP_MODEL_P)
	precache_model(JP_MODEL_W)
	
	precache_model(ROCKET_MODEL)
	
	sprite_explosion = precache_model(JP_EXPLOSIONS_SPR)
	sprite_beamcylinder = precache_model(JP_TRAIL_SPR)
	
	precache_sound(JP_SHOOT_SOUND)
	precache_sound(JP_DROP_SOUND)
	precache_sound(JP_EQUIP_SOUND)
	precache_sound(JP_FLY_SOUND)
}

public plugin_init() {
	register_plugin("Jetpack + Bazooka", "1.2", "<VeCo>")
	
	cvar_cost = register_cvar("vecjp_cost","30")
	cvar_speed = register_cvar("vecjp_rocket_speed","800")
	cvar_damage = register_cvar("vecjp_damage","800")
	cvar_reload_time = register_cvar("vecjp_reload_time","10.0")
	cvar_radius = register_cvar("vecjp_radius","150")
	cvar_start_energy = register_cvar("vecjp_start_energy","200")
	cvar_remove_energy = register_cvar("vecjp_remove_energy","1")
	cvar_heal_energy = register_cvar("vecjp_heal_energy","10")
	cvar_heal_time = register_cvar("vecjp_heal_time","1.0")
	cvar_zvelocity = register_cvar("vecjp_zvelocity","300")
	cvar_aimvelocity = register_cvar("vecjp_aimvelocity","300")
	cvar_can_drop = register_cvar("vecjp_can_drop","0")
	cvar_one_round = register_cvar("vecjp_one_round","0")
	
	jp_itemid = zp_register_extra_item("Jetpack + bazooka", get_pcvar_num(cvar_cost), ZP_TEAM_HUMAN)
	
	register_clcmd("drop","drop_jetpack")
	
	RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "shoot_jetpack")
	RegisterHam(Ham_Player_Jump, "player", "fly_jetpack")
	
	register_touch("weapon_jetpack","player", "get_jetpack")
	register_touch("","info_jetpack_rocket", "touch_jetpack")
	
	register_event("DeathMsg", "hook_death", "a")
	register_event("CurWeapon", "event_curweapon", "be", "1=1", "2=29")
	
	register_logevent("round_end", 2, "1=Round_End")
	
	maxplayers = get_maxplayers()
	hudsync = CreateHudSyncObj()
}

public zp_extra_item_selected(id,itemid)
{
	if(itemid != jp_itemid) return
	
	if(has_jetpack[id])
	{
		CC_SendMessage(id,"!g[JetPack] !nYou already own a !tJetPack!n.")
		return
	}
	
	has_jetpack[id] = true
	can_shoot[id] = true
	energy[id] = get_pcvar_num(cvar_start_energy)
	
	emit_sound(id, CHAN_AUTO, JP_EQUIP_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	
	client_cmd(id,"weapon_knife")
	
	entity_set_string(id,EV_SZ_viewmodel, JP_MODEL_V)
	entity_set_string(id,EV_SZ_weaponmodel, JP_MODEL_P)
	
	set_task(get_pcvar_float(cvar_heal_time), "action_heal_user_jetpack",id)
}

public drop_jetpack(id) if(get_pcvar_num(cvar_can_drop) && get_user_weapon(id) == CSW_KNIFE && has_jetpack[id]) action_drop_user_jetpack(id)

public shoot_jetpack(ent)
{
	new id = entity_get_edict(ent,EV_ENT_owner)
	if(!has_jetpack[id]) return HAM_IGNORED
	
	if(!can_shoot[id])
	{
		client_print(id, print_center, "[JetPack] You can't shoot right now. Please wait...")
		return HAM_IGNORED
	}
	
	action_shoot_user_jetpack(id)
	
	return HAM_IGNORED
}

public fly_jetpack(id)
{
	if(!has_jetpack[id]) return HAM_IGNORED
	
	if(!energy[id])
	{
		client_print(id, print_center, "[JetPack] You don't have enough energy to fly.")
		return HAM_IGNORED
	}
	
	if(get_user_button(id) & IN_DUCK) action_fly_user_jetpack(id)
	
	return HAM_IGNORED
}

public action_heal_user_jetpack(id)
{
	if(!is_user_connected(id) || !has_jetpack[id]) return
	
	if(zp_get_user_zombie(id) || zp_get_user_nemesis(id))
	{
		action_remove_user_jetpack(id)
		return
	}
	
	if(entity_get_int(id,EV_INT_flags) & FL_INWATER)
	{
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_KILLBEAM)
		write_short(id)
		message_end()
	}
	
	if(entity_get_int(id,EV_INT_flags) & FL_ONGROUND)
	{
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_KILLBEAM)
		write_short(id)
		message_end()
		
		if(energy[id] < get_pcvar_num(cvar_start_energy))
		{
			energy[id] += get_pcvar_num(cvar_heal_energy)
			if(energy[id] > get_pcvar_num(cvar_start_energy)) energy[id] = get_pcvar_num(cvar_start_energy)
			
			set_hudmessage(255, 0, 0, -1.0, 0.29, 0, 6.0, 1.0, 0.1, 0.2, -1)
			ShowSyncHudMsg(id, hudsync, "Jetpack Energy: [%i / %i]", energy[id], get_pcvar_num(cvar_start_energy))
		}
	}
	
	set_task(get_pcvar_float(cvar_heal_time), "action_heal_user_jetpack",id)
}

public action_drop_user_jetpack(id)
{
	remove_task(id)
	
	has_jetpack[id] = false
	can_shoot[id] = false
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_KILLBEAM)
	write_short(id)
	message_end()
	
	emit_sound(id, CHAN_AUTO, JP_DROP_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	
	new ent = create_entity("info_target")
	if(ent)
	{
		new Float:origin[3], Float:velocity[3]
		
		entity_get_vector(id, EV_VEC_origin, origin)
		velocity_by_aim(id, 60, velocity)
		
		origin[0] += velocity[0]

		origin[1] += velocity[1]
		
		entity_set_string(ent, EV_SZ_classname, "weapon_jetpack")
		entity_set_model(ent, JP_MODEL_W)
		
		entity_set_int(ent, EV_INT_solid, SOLID_TRIGGER)
		entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS)
		
		entity_set_int(ent, EV_INT_iuser1, energy[id])
		
		entity_set_float(ent, EV_FL_gravity, 1.0)
		
		entity_set_origin(ent, origin)
	}
	
	energy[id] = 0
}

public action_shoot_user_jetpack(id)
{
	can_shoot[id] = false
	
	emit_sound(id, CHAN_AUTO, JP_SHOOT_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	
	new ent = create_entity("info_target")
	if(ent)
	{
		new Float:origin[3], Float:velocity[3], Float:angles[3]
		
		entity_get_vector(id, EV_VEC_origin, origin)
		velocity_by_aim(id, 60, velocity)
		
		origin[0] += velocity[0]
		origin[1] += velocity[1]
		
		velocity[0] = 0.0
		velocity[1] = 0.0
		
		velocity_by_aim(id, get_pcvar_num(cvar_speed), velocity)
		
		entity_set_string(ent, EV_SZ_classname, "info_jetpack_rocket")
		entity_set_model(ent, ROCKET_MODEL)
		
		entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
		entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY)
		
		entity_set_size(ent, Float: {-0.5, -0.5, -0.5}, Float:{0.5, 0.5, 0.5})
		
		entity_set_vector(ent, EV_VEC_velocity, velocity)
		
		vector_to_angle(velocity, angles)
		entity_set_vector(ent, EV_VEC_angles, angles)
		
		entity_set_edict(ent, EV_ENT_owner,id)
		
		entity_set_int(ent, EV_INT_effects, entity_get_int(ent, EV_INT_effects) | EF_LIGHT)
		
		entity_set_origin(ent, origin)
		
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMFOLLOW)
		write_short(ent)
		write_short(sprite_beamcylinder)
		write_byte(30)
		write_byte(5)
		write_byte(255)
		write_byte(255)
		write_byte(255)
		write_byte(140)
		message_end()
	}
	
	set_task(get_pcvar_float(cvar_reload_time), "action_reload_user_jetpack", id)
}

public action_fly_user_jetpack(id)
{
	new Float:velocity[3]
	velocity_by_aim(id,get_pcvar_num(cvar_aimvelocity),velocity)
	velocity[2] += float(get_pcvar_num(cvar_zvelocity))
	entity_set_vector(id,EV_VEC_velocity,velocity)
	
	energy[id] -= get_pcvar_num(cvar_remove_energy)
	if(energy[id] < 1) energy[id] = 0
	
	set_hudmessage(255, 0, 0, -1.0, 0.29, 0, 6.0, 1.0, 0.1, 0.2, -1)
	ShowSyncHudMsg(id, hudsync, "Jetpack Energy: [%i / %i]", energy[id], get_pcvar_num(cvar_start_energy))
	
	if((get_gametime() - last_sndplay[id]) > 1.0)
	{
		emit_sound(id, CHAN_AUTO, JP_FLY_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
		last_sndplay[id] = get_gametime()
	}
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_KILLBEAM)
	write_short(id)
	message_end()
	
	if(entity_get_int(id,EV_INT_flags) & FL_INWATER) return
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_BEAMFOLLOW)
	write_short(id)
	write_short(sprite_beamcylinder)
	write_byte(25)
	write_byte(10)
	write_byte(255)
	write_byte(255)
	write_byte(255)
	write_byte(175)
	message_end()
}

public action_reload_user_jetpack(id)
{
	if(!is_user_connected(id) || !has_jetpack[id]) return
	can_shoot[id] = true
	
	client_print(id,print_center, "[JetPack] Your jetpack has been reloaded. Now you can shoot again!")
}

public get_jetpack(ent,id)
{
	if(has_jetpack[id] || zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return
	
	remove_task(id)
	
	has_jetpack[id] = true
	can_shoot[id] = false
	energy[id] = entity_get_int(ent, EV_INT_iuser1)
	
	emit_sound(id, CHAN_AUTO, JP_EQUIP_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	
	client_cmd(id, "weapon_knife")
	
	entity_set_string(id, EV_SZ_viewmodel, JP_MODEL_V)
	entity_set_string(id, EV_SZ_weaponmodel, JP_MODEL_P))
	
	set_task(get_pcvar_float(cvar_reload_time), "action_reload_user_jetpack",id)
	set_task(get_pcvar_float(cvar_heal_time), "action_heal_user_jetpack",id)
	
	remove_entity(ent)
}

public touch_jetpack(world, ent)
{
	if(!is_valid_ent(ent) || (is_valid_ent(world) && entity_get_int(world, EV_INT_solid) == SOLID_TRIGGER)) return
	
	new Float:origin[3], origin_int[3], owner = entity_get_edict(ent, EV_ENT_owner)
	entity_get_vector(ent, EV_VEC_origin, origin)
	
	FVecIVec(origin,origin_int)
	
	new id = -1
	while((id = find_ent_in_sphere(id, origin, float(get_pcvar_num(cvar_radius)))) != 0)
	{
		if(!is_user_connected(owner)) break
		
		if(1 <= id <= maxplayers)
		{
			if(!zp_get_user_zombie(id) && !zp_get_user_nemesis(id)) continue
			ExecuteHamB(Ham_TakeDamage, id, owner, owner, float(get_pcvar_num(cvar_damage)), DMG_ALWAYSGIB)
		} else {
			if(!is_valid_ent(id)) continue
			
			new classname[15]
			entity_get_string(id, EV_SZ_classname, classname,14)
			
			if(!equal(classname, "func_breakable")) continue
			
			ExecuteHamB(Ham_TakeDamage, id, owner, owner, float(get_pcvar_num(cvar_damage)), DMG_ALWAYSGIB)
		}
	}
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY, origin_int)
	write_byte(TE_EXPLOSION)
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2])
	write_short(sprite_explosion)
	write_byte(floatround(get_pcvar_num(cvar_radius) * 0.5))
	write_byte(10)
	write_byte(0)
	message_end()
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY, origin_int)
	write_byte(TE_DLIGHT)
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2])
	write_byte(floatround(get_pcvar_num(cvar_radius) * 0.25))
	write_byte(200)
	write_byte(145)
	write_byte(0)
	write_byte(16)
	write_byte(32)
	message_end()
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY, origin_int)
	write_byte(TE_BEAMCYLINDER)
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2])
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2] + get_pcvar_num(cvar_radius))
	write_short(sprite_beamcylinder)
	write_byte(0)
	write_byte(0)
	write_byte(10)
	write_byte(50)
	write_byte(0)
	write_byte(255)
	write_byte(255)
	write_byte(255)
	write_byte(160)
	write_byte(0)
	message_end()
	
	remove_entity(ent)
}

public hook_death()
{
	new id = read_data(2)
	action_remove_user_jetpack(id)
}

public action_remove_user_jetpack(id)
{
	if(get_pcvar_num(cvar_can_drop))
	{
		if(has_jetpack[id] && get_user_weapon(id) == CSW_KNIFE) action_drop_user_jetpack(id)
		
		has_jetpack[id] = false
		can_shoot[id] = false
		energy[id] = 0
		
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_KILLBEAM)
		write_short(id)
		message_end()
	} else {
		has_jetpack[id] = false
		can_shoot[id] = false
		energy[id] = 0
	}
}

public event_curweapon(id)
{
	if(has_jetpack[id] && !zp_get_user_zombie(id))
	{
		entity_set_string(id,EV_SZ_viewmodel, JP_MODEL_V)
		entity_set_string(id,EV_SZ_weaponmodel, JP_MODEL_P)
	}
}

public round_end()
{
	remove_entity_name("weapon_jetpack")
	
	if(get_pcvar_num(cvar_one_round))
	{
		for(new i=1;i<maxplayers;i++)
		{
			if(is_user_connected(i))
			{
				has_jetpack[i] = false
				can_shoot[i] = false
				energy[i] = 0
			}
		}
	}
}

public client_connect(id) has_jetpack[id] = false
public client_disconnect(id) has_jetpack[id] = false
При компилиране ми илиза тов:
unknown.png
unknown.png (36.02 KiB) Преглеждано 1427 пъти
unknown.png
unknown.png (36.02 KiB) Преглеждано 1427 пъти
Разбирам какво пише, но не знам какво да правя. :headbang: :confused: :mad:
Благодаря за помощта предварително.

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Грешка при компилиране. Къде бъркам?

Мнение от Huehue » 12 Май 2021, 15:28

Премахни символа = при използване на #define.

345 ред имаш двойна скоба.
entity_set_string(id, EV_SZ_weaponmodel, JP_MODEL_P))

486 ред промени client_disconnect на client_disconnected
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
YankoNL
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 06 Апр 2017, 09:07
Местоположение: Варна
Се отблагодари: 22 пъти
Получена благодарност: 9 пъти

Грешка при компилиране. Къде бъркам?

Мнение от YankoNL » 12 Май 2021, 16:33

Благодаря, стана! Да попитам как беше това където уточнаваш с if за версиите на amx. Смисъл if amx_version < 183 use client_disconnect else use client_disconnected.

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Грешка при компилиране. Къде бъркам?

Мнение от Huehue » 12 Май 2021, 18:58

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

#if AMXX_VERSION_NUM < 183
public client_disconnect(id)
#else
public client_disconnected(id)
#endif
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
YankoNL
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 06 Апр 2017, 09:07
Местоположение: Варна
Се отблагодари: 22 пъти
Получена благодарност: 9 пъти

Грешка при компилиране. Къде бъркам?

Мнение от YankoNL » 12 Май 2021, 20:36

Супер, благодаря! <3 :lock:

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

Обратно към “Помощ в скриптирането”

Кой е на линия

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