#if defined _bteapi_included
  #endinput
#endif
#define _bteapi_included

// ############### BTE WPN API ###################

enum _:BTE_WPN_DATA
{
	// Float:
	BTE_WPNDATA_DAMAGE,
	BTE_WPNDATA_SPEED,
	BTE_WPNDATA_KNOCKBACK,
	BTE_WPNDATA_RECOIL,
	BTE_WPNDATA_DMGZB,
	// Int return float(DATA)
	BTE_WPNDATA_CLIP,
	BTE_WPNDATA_AMMO,
	BTE_WPNDATA_RECOIL,
	BTE_WPNDATA_GRAVITY,
	BTE_WPNDATA_COST,
	BTE_WPNDATA_BUY
}
enum _:BTE_WPN_NAME
{
	BTE_WPNDATA_CN_NAME,
	BTE_WPNDATA_EN_NAME
}
enum _:BTE_MOD
{
	BTE_MOD_NONE=0,
	BTE_MOD_TD,
	BTE_MOD_ZE,
	BTE_MOD_NPC,
	BTE_MOD_ZB1,
	BTE_MOD_ZE,
	BTE_MOD_GD,
	BTE_MOD_DR
}

enum _:BTE_WEAPON_LIMIT
{
	WEAPON_LIMIT_NO=0,
	WEAPON_LIMIT_SNIPER,
	WEAPON_LIMIT_PISTOL,
	WEAPON_LIMIT_GRENADE,
	WEAPON_LIMIT_KNIFE
}

enum _:BTE_ZB3UI_RETINA
{
	RETINA_FASTRUN=1,// Default Zombie
	RETINA_A,
	RETINA_INVISIBLE,// Speed Zombie
	RETINA_SPEEDUP,// Human Skill
	RETINA_A,
	RETINA_A,
	RETINA_ACCSHOOT,// Human Skill
}
// Weapon API
native bte_wpn_get_wpn_data(id,idwpn,iSlot,iSection,iSet,fValue) //weapon data
native bte_wpn_get_is_admin(id) // Check whether the player is for administrators
native bte_wpn_give_named_wpn(id,sName[],iStrip)  // To the players with weapons
native bte_wpn_set_playerwpn_model(id,iVis,sModel[],iBody,iSeq)  // Set after players weapon iVis P model of visual sModel set P model iBody set P model body follow action sequence set P model
native bte_wpn_get_wpn_name(id,iCurrent,iType,sName[]) // Get the player's weapon name if iCurrent = = 0 for current players weapon iType as BTE_WPNDATA_CN_NAME or BTE_WPNDATA_EN_NAME will save in the sName Chinese/English name
native bte_wpn_en_to_cn_name(sEnName[],sCnName[]) // The weapon model name into Chinese name
native bte_wpn_menu_add_item(hMenu,iSlot) // Internal API
native bte_wpn_get_playerwpn_model(id) // P model entity ID get players
native bte_wpn_get_mod_running() // Get the current mode (pay attention to the zombi returned to BTE_MOD_ZB1 1)
native bte_wpn_precache_named_weapon(sName[]) //  Cache is a gun used in bte_fw_precache_weapon_pre (required)
native bte_wpn_play_player_sequence(id,iSeq) // The function has been deleted
native bte_wpn_play_player_sequence2(id,iSeq) // The function has been deleted
native bte_wpn_get_zombie_anim_time(id) // The function has been deleted
native bte_wpn_strip_weapon(id,iSlot) // Confiscation of players weapon iSlot set to weapon slots
native bte_wpn_set_maxspeed(id,Float:fSpeed) // Set maximum speed (pev_maxspeed) players
forward bte_fw_precache_weapon_pre() // When the cache before warehouse weapons you can cache here does not exist in the warehouse gun (to exist. But in bte_wpn ini)
native bte_wpn_set_fullammo(id) // Is the player weapons bullet
native bte_wpn_set_ammo(id,slot,ammo)
native bte_wpn_get_ammo(id,slot)
native bte_wpn_get_wpn_dmg(id)

forward bte_wpn_buy_wpn(id,iSlot)

native bte_wpn_set_ammo_clip(id,iSlot,clip)
native bte_wpn_set_gerenade_ammo(id,type,ammo)
native bte_wpn_play_seqence(id,seq)


native bte_get_wpndata(i,sData[])

// Player API
#define SEX_MALE	1
#define SEX_FEMALE	2
native bte_get_user_sex(id) // Get the gender of the players
native bte_reset_user_model(id) // Reset the player character model
native bte_set_user_model(id, sModel[]) // Set the character model
native bte_set_user_model_index(id, iModelIndex) // The index set model
native bte_reset_user_model_index(id) // Reset the player character index model
native api_cs_set_player_team(q,b,c) // Internal API



// Zombie API
native bte_zb3_register_zombie_class(name[], model[], Float:gravity, Float:speed, Float:knockback, sound_death1[], sound_death2[], sound_hurt1[], sound_hurt2[], sound_heal[], sound_evolution[], sex, modelindex, Float:xdamage, Float:xdamage2, hand) // Internal API
native bte_get_user_zombie(id) // Determining if a player zombies (human returns 0 zombie return 1 hero return 2)
native bte_zb3_get_user_zombie_class(id) // Internal API
native MH_SendZB3Data(id,iDataType,iData) // Internal API
native MH_ZB3UI(id,sz[],slot,type,data) // Internal API
native bte_zb3_can_use_skill() // Internal API
forward bte_zb_infected(victim,attacker) // When humans are infected victim for the infected attacker for infections
native bte_zb3_get_user_level(id) // Internal API
native bte_hms_get_skillstat(id) // Internal API
native bte_zb3_set_max_health(id,health)
native bte_zb3_get_max_health(id)
native bte_zb3_set_max_armor(id,armor)
native bte_zb3_get_max_armor(id)
native bte_zb3_set_max_speed(id,Float:speed)
native bte_zb3_get_max_speed(id)
native bte_zb3_set_xdamage(id,Float:xdamage,level)
native bte_zb3_inflict_player(iAttacker,iVictim)

// Npc API
native bte_npc_is_npc(iEnt)

// Extra API
native bte_fun_get_point(id) // Internal API
native bte_fun_set_point(id,point) // Internal API
native bte_fun_process_data(id,data) // Internal API
native bte_fun_get_enhance_name(id,name[]) // Internal API
native bte_fun_get_enhance_id(id,name[])
native bte_fun_get_have_mode_item(id,iItem)
// Items API
native bte_item_register_item(sName[],sInfo[],iCost,iTeam) // Internal API





