Code:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <fun>
new g_PlayerModel[] = "models/christmas_santa.mdl"
new g_WeaponVModel[] = "models/santa_v_m249.mdl"
new g_WeaponWModel[] = "models/santa_w_m249.mdl"
new g_RoundStartSound[] = "sound/hohoho.wav"
new g_Switch, g_BulletSpeed
public plugin_init() {
register_plugin("Christmas Santa", "0.1", "MaTTe")
g_Switch = register_cvar("cs_enable", "1")
g_BulletSpeed = register_cvar("cs_bulletspeed", "450")
register_event("HLTV", "round_start", "a", "1=0", "2=0")
register_logevent("round_end", 2, "1=Round_End")
}
public round_start(id) {
emit_sound(0, CHAN_AUTO, g_RoundStartSound, 1.0, ATTN_NORM, 0, PITCH_NORM)
santa(id)
}
public santa(id) {
if(!get_pcvar_num(g_Switch))
return PLUGIN_HANDLED
set_pev(id, pev_health, 250.0)
set_pev(id, pev_armorvalue, 200.0)
switch_playermodel(id)
switch_weaponmodel(id)
bullet_slowdown(id)
return PLUGIN_CONTINUE
}
public bullet_slowdown(id) {
new clipTemp, ammoTemp, wpnid = get_user_weapon(id, clipTemp, ammoTemp)
new Float:viewOfs[3], Float:vOrigin[3], Float:vAngle[3]
pev(id, pev_origin, vOrigin)
pev(id, pev_view_ofs, viewOfs)
vOrigin[0] += viewOfs[0]
vOrigin[1] += viewOfs[1]
vOrigin[2] += viewOfs[2]
pev(id, pev_v_angle, vAngle)
vOrigin[0] += ( floatcos(vAngle[1], degrees) * floatcos(vAngle[0], degrees) ) * 26.0
vOrigin[1] += ( floatsin(vAngle[1], degrees) * floatcos(vAngle[0], degrees) ) * 26.0
vOrigin[2] += ( floatsin(vAngle[0], degrees) * -1.0 ) * 26.0
vAngle[0] *= -1.0
new NewEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
set_pev(NewEnt, pev_classname, "santaBullet")
set_pev(NewEnt, pev_flags, wpnid)
engfunc(EngFunc_SetModel, NewEnt, "models/shell.mdl")
new Float:VecMins[3] = {-1.0, -1.0, -1.0}
new Float:VecMaxs[3] = {1.0, 1.0, 1.0}
set_pev(NewEnt, pev_mins, VecMins)
set_pev(NewEnt, pev_maxs, VecMaxs)
engfunc(EngFunc_SetOrigin, NewEnt, vOrigin)
set_pev(NewEnt, pev_angles, vAngle)
set_pev(NewEnt, pev_solid, SOLID_BBOX)
set_pev(NewEnt, pev_movetype, MOVETYPE_FLY)
set_pev(NewEnt, pev_owner, id)
new Float:fNewVelocity[3]
velocity_by_aim(id, get_pcvar_num(g_BulletSpeed), fNewVelocity)
set_pev(NewEnt, pev_velocity, fNewVelocity)
}
public switch_playermodel(id) {
new team[32]
get_user_team(id, team, 31)
if(equal(team, "TERRORIST")) {
cs_set_user_model(id, g_PlayerModel)
set_user_rendering(id, kRenderFxGlowShell, 155, 0, 0, kRenderGlow, 155)
} else if(equal(team, "COUNTER_TERRORIST")) {
cs_set_user_model(id, g_PlayerModel)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 155, kRenderGlow, 155)
}
}
public switch_weaponmodel(id) {
new wpnid, clip, ammo = get_user_weapon(id, clip, ammo)
if(wpnid==CSW_M249) {
set_pev(id, pev_viewmodel2, g_WeaponVModel)
set_pev(id, pev_viewmodel2, g_WeaponWModel)
}
}
public plugin_precache() {
precache_model(g_PlayerModel)
precache_model(g_WeaponWModel)
precache_model(g_WeaponVModel)
precache_sound(g_RoundStartSound)
}
L 12/14/2006 - 17:31:00: [AMXX] Run time error 10 (plugin "2.amxx") (native "get_user_weapon") - debug not enabled!
L 12/14/2006 - 17:31:00: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes)