Code:
public OnMapStart()
{
BeamSprite=PrecacheModel("materials/sprites/lgtning.vmt");
HaloSprite=PrecacheModel("effects/tp_eyefx/tpeye3.vmt");
//HaloSprite=PrecacheModel("materials/sprites/halo01.vmt");
Laser=PrecacheModel("materials/sprites/laserbeam.vmt");
GlowSprite=PrecacheModel("materials/sprites/greenglow1.vmt");
PrecacheModel("models/player/slow/aliendrone_v3/slow_alien.mdl", true);
War3_PrecacheSound(ultimateSound);
War3_PrecacheSound(wardDamageSound);
}
...
...
...
public WardEffectAndDamage(owner,wardindex)
{
new ownerteam=GetClientTeam(owner);
new beamcolor[]={0,0,200,255};
if(ownerteam==2)
{ //TERRORISTS/RED in TF?
beamcolor[0]=255;
beamcolor[1]=0;
beamcolor[2]=0;
beamcolor[3]=255; //red blocks more than blue, so less alpha
}
new Float:start_pos[3];
new Float:end_pos[3];
new Float:tempVec1[]={0.0,0.0,WARDBELOW};
new Float:tempVec2[]={0.0,0.0,WARDABOVE};
AddVectors(WardLocation[wardindex],tempVec1,start_pos);
AddVectors(WardLocation[wardindex],tempVec2,end_pos);
TE_SetupBeamPoints(start_pos,end_pos,BeamSprite,HaloSprite,0,GetRandomInt(30,100),0.17,float(10),float(10),0,0.0,beamcolor,10);
TE_SendToAll();
TE_SetupBeamRingPoint(start_pos, 10.0, float(WARDRADIUS), BeamSprite,HaloSprite, 0, 15, 1.0, 15.0, 0.0, beamcolor, 10, 0);
TE_SendToAll();
TE_SetupGlowSprite(end_pos, GlowSprite, 1.0, 1.0, 50);
TE_SendToAll();
new Float:BeamXY[3];
for(new x=0;x<3;x++) BeamXY[x]=start_pos[x]; //only compare xy
new Float:BeamZ= BeamXY[2];
BeamXY[2]=0.0;
new Float:VictimPos[3];
new Float:tempZ;
for(new i=1;i<=MaxClients;i++)
{
if(ValidPlayer(i,true)&& GetClientTeam(i)!=ownerteam )
{
GetClientAbsOrigin(i,VictimPos);
tempZ=VictimPos[2];
VictimPos[2]=0.0; //no Z
if(GetVectorDistance(BeamXY,VictimPos) < WARDRADIUS) ////ward RADIUS
{
// now compare z
if(tempZ>BeamZ+WARDBELOW && tempZ < BeamZ+WARDABOVE)
{
if(W3HasImmunity(i,Immunity_Skills))
{
W3MsgSkillBlocked(i,_,"Wards");
}
else
{
//Boom!
new DamageScreen[4];
DamageScreen[0]=beamcolor[0];
DamageScreen[1]=beamcolor[1];
DamageScreen[2]=beamcolor[2];
DamageScreen[3]=50; //alpha
W3FlashScreen(i,DamageScreen);
if(War3_DealDamage(i,WARDDAMAGE,owner,DMG_ENERGYBEAM,"wards",_,W3DMGTYPE_MAGIC))
{
if(LastThunderClap[i]<GetGameTime()-2){
EmitSoundToAll(wardDamageSound,i,SNDCHAN_WEAPON);
LastThunderClap[i]=GetGameTime();
}
}
}
}
}
}
}
}
{
BeamSprite=PrecacheModel("materials/sprites/lgtning.vmt");
HaloSprite=PrecacheModel("effects/tp_eyefx/tpeye3.vmt");
//HaloSprite=PrecacheModel("materials/sprites/halo01.vmt");
Laser=PrecacheModel("materials/sprites/laserbeam.vmt");
GlowSprite=PrecacheModel("materials/sprites/greenglow1.vmt");
PrecacheModel("models/player/slow/aliendrone_v3/slow_alien.mdl", true);
War3_PrecacheSound(ultimateSound);
War3_PrecacheSound(wardDamageSound);
}
...
...
...
public WardEffectAndDamage(owner,wardindex)
{
new ownerteam=GetClientTeam(owner);
new beamcolor[]={0,0,200,255};
if(ownerteam==2)
{ //TERRORISTS/RED in TF?
beamcolor[0]=255;
beamcolor[1]=0;
beamcolor[2]=0;
beamcolor[3]=255; //red blocks more than blue, so less alpha
}
new Float:start_pos[3];
new Float:end_pos[3];
new Float:tempVec1[]={0.0,0.0,WARDBELOW};
new Float:tempVec2[]={0.0,0.0,WARDABOVE};
AddVectors(WardLocation[wardindex],tempVec1,start_pos);
AddVectors(WardLocation[wardindex],tempVec2,end_pos);
TE_SetupBeamPoints(start_pos,end_pos,BeamSprite,HaloSprite,0,GetRandomInt(30,100),0.17,float(10),float(10),0,0.0,beamcolor,10);
TE_SendToAll();
TE_SetupBeamRingPoint(start_pos, 10.0, float(WARDRADIUS), BeamSprite,HaloSprite, 0, 15, 1.0, 15.0, 0.0, beamcolor, 10, 0);
TE_SendToAll();
TE_SetupGlowSprite(end_pos, GlowSprite, 1.0, 1.0, 50);
TE_SendToAll();
new Float:BeamXY[3];
for(new x=0;x<3;x++) BeamXY[x]=start_pos[x]; //only compare xy
new Float:BeamZ= BeamXY[2];
BeamXY[2]=0.0;
new Float:VictimPos[3];
new Float:tempZ;
for(new i=1;i<=MaxClients;i++)
{
if(ValidPlayer(i,true)&& GetClientTeam(i)!=ownerteam )
{
GetClientAbsOrigin(i,VictimPos);
tempZ=VictimPos[2];
VictimPos[2]=0.0; //no Z
if(GetVectorDistance(BeamXY,VictimPos) < WARDRADIUS) ////ward RADIUS
{
// now compare z
if(tempZ>BeamZ+WARDBELOW && tempZ < BeamZ+WARDABOVE)
{
if(W3HasImmunity(i,Immunity_Skills))
{
W3MsgSkillBlocked(i,_,"Wards");
}
else
{
//Boom!
new DamageScreen[4];
DamageScreen[0]=beamcolor[0];
DamageScreen[1]=beamcolor[1];
DamageScreen[2]=beamcolor[2];
DamageScreen[3]=50; //alpha
W3FlashScreen(i,DamageScreen);
if(War3_DealDamage(i,WARDDAMAGE,owner,DMG_ENERGYBEAM,"wards",_,W3DMGTYPE_MAGIC))
{
if(LastThunderClap[i]<GetGameTime()-2){
EmitSoundToAll(wardDamageSound,i,SNDCHAN_WEAPON);
LastThunderClap[i]=GetGameTime();
}
}
}
}
}
}
}
}






Logged


DarkEnergy

