1 PublicRadiusdamage (float:vecsrc[3], Pevinflictor, Pevattacker, Float:fldamage, Float:flradius, Iclassignore, Bitsdamagetype)2 {3 Newpentity;4 Newfloat:fladjusteddamage, Float:falloff;5 Newfloat:vecorigin[3];6 Newfloat:vectemp[3];7 8 if(Flradius)9Falloff = fldamage/Flradius;Ten Else OneFalloff =1.0; A - NewBinwater =Engfunc (engfunc_pointcontents, vecsrc); - thevecsrc[2] +=1.0; - - if(!pevattacker) -Pevattacker =Pevinflictor; + - while((pentity = Engfunc (Engfunc_findentityinsphere, pentity, VECSRC, Flradius))! =0) + { A if(Pev (pentity, pev_takedamage) = =damage_no) at Continue; - - if(Iclassignore! =0&& Executeham (ham_classify, pentity) = =Iclassignore) - Continue; - - if(Binwater &&!)Pev (pentity, pev_waterlevel)) in Continue; - to if(!binwater && Pev (pentity, pev_waterlevel) = =3) + Continue; - the Pev (pentity, Pev_origin, vecorigin); * xs_vec_sub (VECSRC, Vecorigin, vectemp); $ Panax NotoginsengFladjusteddamage = Xs_vec_len (vectemp) *falloff; -Fladjusteddamage = Fldamage-Fladjusteddamage; the + executehamb (Ham_takedamage, pentity, Pevinflictor, Pevattacker, Fladjusteddamage, bitsdamagetype); A } the}
Radiusdamage function of imitating MP