Ok im trying to pick 2 players randomly each round , 1 T and 1 CT , and make them a samari , set there knife model to the samari and so on . but this doesnt seem to work . It precaches the model , but its not setting. Thanks
Code:
#include <amxmodx>
#include <fakemeta_util>
#define TE_SMOKE 5
#define TE_LIGHTNING 7
new g_Switch;
new g_TSamari[33];
new g_CTSamari[33];
new sprite;
new origin[3];
new Lightning;
new VictomOrigin[3];
new AttackerOrigin[3];
new Weapon;
public plugin_init()
{
register_plugin("The Samari","0.1","The Specialist");
g_Switch = register_cvar("smr_switch","1");
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
register_event("CurWeapon","SamariModel","be","1=1");
register_forward(FM_PlayerPreThink,"MakeSamariSmoke");
register_event("Damage" , "SamariDamage" , "b");
}
// round start random players
public RoundStart(id)
{
if(get_pcvar_num(g_Switch))
{
new Terrorist[32],T_num;
get_players(Terrorist,T_num,"ace","TERRORIST");
g_TSamari[id] = Terrorist[random_num(0,T_num-1)];
new CTs[32],CT_num;
get_players(CTs,CT_num,"ace","CT");
g_CTSamari[id] = CTs[random_num(0,CT_num -1)];
}
return;
}
// make the samari smoke
public MakeSamariSmoke(id)
{
if(g_CTSamari[id] || g_TSamari[id] && pev(id,pev_button) & IN_USE )
{
pev(id,pev_origin,origin);
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_SMOKE);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
write_short(sprite);
write_byte(255);
write_byte(0);
message_end();
}
}
// give the samari a model
public SamariModel(id)
{
new Weapon = read_data(2)
if(g_CTSamari[id] || g_TSamari[id] && Weapon == CSW_KNIFE)
{
engfunc(EngFunc_SetModel,id,"models/v_samari.mdl");
return 0;
}
return 0;
}
// damage by the samarai sword
public SamariDamage(id)
{
new Damage = read_data( 2 );
new AttackerID = get_user_attacker( id, Weapon );
new Samari_Damage = Damage + 55 ;
new AHealth = get_user_health(AttackerID);
new VHealth = get_user_health(id);
if(Weapon == CSW_KNIFE && (AttackerID == g_CTSamari[id] || g_TSamari[id]))
{
fm_fakedamage(id,"weapon_knife",float(Samari_Damage),DMG_SLASH && DMG_BLAST);
return;
}
if( VHealth < Samari_Damage)
{
pev(id,pev_health,AHealth + VHealth );
pev(id,pev_origin,VictomOrigin);
pev(AttackerID,pev_origin,AttackerOrigin);
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_LIGHTNING);
write_coord(VictomOrigin[0]);
write_coord(VictomOrigin[1]);
write_coord(VictomOrigin[2]);
write_coord(AttackerOrigin[0]) ;
write_coord(AttackerOrigin[1]);
write_coord(AttackerOrigin[2]);
write_byte(50);
write_byte(15);
write_byte(15);
write_short(Lightning);
message_end();
}
}
// precache file needed
public plugin_precache()
{
Lightning = precache_model("sprites/laserbeam.spr");
sprite = precache_model("sprites/steam1.spr");
precache_model("models/v_samari.mdl");
}