Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ** ATTENTION
- ** THE PRODUCED CODE, IS NOT ABLE TO COMPILE!
- ** THE DECOMPILER JUST TRIES TO GIVE YOU A POSSIBILITY
- ** TO LOOK HOW A PLUGIN DOES IT'S JOB AND LOOK FOR
- ** POSSIBLE MALICIOUS CODE.
- **
- ** ALL CONVERSIONS ARE WRONG! AT EXAMPLE:
- ** SetEntityRenderFx(client, RenderFx 0); → SetEntityRenderFx(client, view_as<RenderFx>0); → SetEntityRenderFx(client, RENDERFX_NONE);
- */
- PlVers __version = 5;
- float NULL_VECTOR[3];
- char NULL_STRING[1];
- Extension __ext_core = 64;
- int MaxClients;
- Extension __ext_sdktools = 2232;
- Extension __ext_sdkhooks = 2276;
- float TRACE_TOLERANCE = 1103626240;
- float BILE_POS_HEIGHT_FIX = 1116471296;
- int ZOMBIECLASS_BOOMER = 2;
- int L4D2Team_Survivors = 2;
- int L4D2Team_Infected = 3;
- char ENTPROP_ZOMBIE_CLASS[4] = "m_zombieClass";
- char GAMEDATA_FILE[4] = "l4d2addresses";
- char ENTPROP_IS_GHOST[3] = "m_isGhost";
- char CLASS_BILEJAR[5] = "vomitjar_projectile";
- char CLASS_ZOMBIE[3] = "infected";
- char CLASS_WITCH[2] = "witch";
- int CommonType[4097];
- bool isMapRunning;
- Handle cvarRandomChance;
- Handle cvarType1HPMin;
- Handle cvarType1HPMax;
- Handle cvarType1Damage;
- Handle cvarType1MagnumArmor;
- Handle cvarType2HPMin;
- Handle cvarType2HPMax;
- Handle cvarType2Damage;
- Handle cvarType2MagnumArmor;
- Handle cvarType3HPMin;
- Handle cvarType3HPMax;
- Handle cvarType3Damage;
- Handle cvarType3MagnumArmor;
- Handle cvarType4HPMin;
- Handle cvarType4HPMax;
- Handle cvarType4Damage;
- Handle cvarType4MagnumArmor;
- Handle cvarTankSpeed;
- Handle cvarTankHPMin;
- Handle cvarChargerHPMin;
- Handle cvarChargerHPMax;
- Handle cvarHunterHPMin;
- Handle cvarHunterHPMax;
- Handle cvarJockeyHPMin;
- Handle cvarJockeyHPMax;
- Handle cvarTankHPMax;
- Handle cvarWitchHPMin;
- Handle cvarWitchHPMax;
- Handle isEnabled;
- Handle cvarSplashRadius;
- Handle sdkCallVomitOnPlayer;
- Handle sdkCallBileJarPlayer;
- Handle sdkCallBileJarInfected;
- int laggedMovementOffset;
- int health_default_witch;
- int health_default_tank;
- int health_default_charger;
- int health_default_hunter;
- int health_default_jockey;
- public Plugin myinfo =
- {
- name = "[L4D2] Infected Abilities",
- description = "Allows custom set Survivor Speed.",
- author = "NoBody",
- version = "1.0",
- url = ""
- };
- public int __ext_core_SetNTVOptional()
- {
- MarkNativeAsOptional("GetFeatureStatus");
- MarkNativeAsOptional("RequireFeature");
- MarkNativeAsOptional("AddCommandListener");
- MarkNativeAsOptional("RemoveCommandListener");
- MarkNativeAsOptional("BfWriteBool");
- MarkNativeAsOptional("BfWriteByte");
- MarkNativeAsOptional("BfWriteChar");
- MarkNativeAsOptional("BfWriteShort");
- MarkNativeAsOptional("BfWriteWord");
- MarkNativeAsOptional("BfWriteNum");
- MarkNativeAsOptional("BfWriteFloat");
- MarkNativeAsOptional("BfWriteString");
- MarkNativeAsOptional("BfWriteEntity");
- MarkNativeAsOptional("Bf");
- MarkNativeAsOptional("BfWriteCoord");
- MarkNativeAsOptional("BfWriteVecCoord");
- MarkNativeAsOptional("BfWriteVecNormal");
- MarkNativeAsOptional("BfWriteAngles");
- MarkNativeAsOptional("BfReadBool");
- MarkNativeAsOptional("BfReadByte");
- MarkNativeAsOptional("BfReadChar");
- MarkNativeAsOptional("BfReadShort");
- MarkNativeAsOptional("BfReadWord");
- MarkNativeAsOptional("BfReadNum");
- MarkNativeAsOptional("BfReadFloat");
- MarkNativeAsOptional("BfReadString");
- MarkNativeAsOptional("BfReadEntity");
- MarkNativeAsOptional("BfReadAngle");
- MarkNativeAsOptional("BfReadCoord");
- MarkNativeAsOptional("BfReadVecCoord");
- MarkNativeAsOptional("BfReadVecNormal");
- MarkNativeAsOptional("BfReadAngles");
- MarkNativeAsOptional("BfGetNumBytesLeft");
- MarkNativeAsOptional("BfWrite.WriteBool");
- MarkNativeAsOptional("BfWrite.WriteByte");
- MarkNativeAsOptional("BfWrite.WriteChar");
- MarkNativeAsOptional("BfWrite.WriteShort");
- MarkNativeAsOptional("BfWrite.WriteWord");
- MarkNativeAsOptional("BfWrite.WriteNum");
- MarkNativeAsOptional("BfWrite.WriteFloat");
- MarkNativeAsOptional("BfWrite.WriteString");
- MarkNativeAsOptional("BfWrite.WriteEntity");
- MarkNativeAsOptional("BfWrite.WriteAngle");
- MarkNativeAsOptional("BfWrite.WriteCoord");
- MarkNativeAsOptional("BfWrite.WriteVecCoord");
- MarkNativeAsOptional("BfWrite.WriteVecNormal");
- MarkNativeAsOptional("BfWrite.WriteAngles");
- MarkNativeAsOptional("BfRead.ReadBool");
- MarkNativeAsOptional("BfRead.ReadByte");
- MarkNativeAsOptional("BfRead.ReadChar");
- MarkNativeAsOptional("BfRead.ReadShort");
- MarkNativeAsOptional("BfRead.ReadWord");
- MarkNativeAsOptional("BfRead.ReadNum");
- MarkNativeAsOptional("BfRead.ReadFloat");
- MarkNativeAsOptional("BfRead.ReadString");
- MarkNativeAsOptional("BfRead.ReadEntity");
- MarkNativeAsOptional("BfRead.ReadAngle");
- MarkNativeAsOptional("BfRead.ReadCoord");
- MarkNativeAsOptional("BfRead.ReadVecCoord");
- MarkNativeAsOptional("BfRead.ReadVecNormal");
- MarkNativeAsOptional("BfRead.ReadAngles");
- MarkNativeAsOptional("BfRead.GetNumBytesLeft");
- MarkNativeAsOptional("PbReadInt");
- MarkNativeAsOptional("PbReadFloat");
- MarkNativeAsOptional("PbReadBool");
- MarkNativeAsOptional("PbReadString");
- MarkNativeAsOptional("PbReadColor");
- MarkNativeAsOptional("PbReadAngle");
- MarkNativeAsOptional("PbReadVector");
- MarkNativeAsOptional("PbReadVector2D");
- MarkNativeAsOptional("PbGetRepeatedFieldCount");
- MarkNativeAsOptional("PbSetInt");
- MarkNativeAsOptional("PbSetFloat");
- MarkNativeAsOptional("PbSetBool");
- MarkNativeAsOptional("PbSetString");
- MarkNativeAsOptional("PbSetColor");
- MarkNativeAsOptional("PbSetAngle");
- MarkNativeAsOptional("PbSetVector");
- MarkNativeAsOptional("PbSetVector2D");
- MarkNativeAsOptional("PbAddInt");
- MarkNativeAsOptional("PbAddFloat");
- MarkNativeAsOptional("PbAddBool");
- MarkNativeAsOptional("PbAddString");
- MarkNativeAsOptional("PbAddColor");
- MarkNativeAsOptional("PbAddAngle");
- MarkNativeAsOptional("PbAddVector");
- MarkNativeAsOptional("PbAddVector2D");
- MarkNativeAsOptional("PbRemoveRepeatedFieldValue");
- MarkNativeAsOptional("PbReadMessage");
- MarkNativeAsOptional("PbReadRepeatedMessage");
- MarkNativeAsOptional("PbAddMessage");
- MarkNativeAsOptional("Protobuf.ReadInt");
- MarkNativeAsOptional("Protobuf.ReadFloat");
- MarkNativeAsOptional("Protobuf.ReadBool");
- MarkNativeAsOptional("Protobuf.ReadString");
- MarkNativeAsOptional("Protobuf.ReadColor");
- MarkNativeAsOptional("Protobuf.ReadAngle");
- MarkNativeAsOptional("Protobuf.ReadVector");
- MarkNativeAsOptional("Protobuf.ReadVector2D");
- MarkNativeAsOptional("Protobuf.GetRepeatedFieldCount");
- MarkNativeAsOptional("Protobuf.SetInt");
- MarkNativeAsOptional("Protobuf.SetFloat");
- MarkNativeAsOptional("Protobuf.SetBool");
- MarkNativeAsOptional("Protobuf.SetString");
- MarkNativeAsOptional("Protobuf.SetColor");
- MarkNativeAsOptional("Protobuf.SetAngle");
- MarkNativeAsOptional("Protobuf.SetVector");
- MarkNativeAsOptional("Protobuf.SetVector2D");
- MarkNativeAsOptional("Protobuf.AddInt");
- MarkNativeAsOptional("Protobuf.AddFloat");
- MarkNativeAsOptional("Protobuf.AddBool");
- MarkNativeAsOptional("Protobuf.AddString");
- MarkNativeAsOptional("Protobuf.AddColor");
- MarkNativeAsOptional("Protobuf.AddAngle");
- MarkNativeAsOptional("Protobuf.AddVector");
- MarkNativeAsOptional("Protobuf.AddVector2D");
- MarkNativeAsOptional("Protobuf.RemoveRepeatedFieldValue");
- MarkNativeAsOptional("Protobuf.ReadMessage");
- MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
- MarkNativeAsOptional("Protobuf.AddMessage");
- VerifyCoreVersion();
- return 0;
- }
- int MakeVectorFromPoints(float pt1[3], float pt2[3], float output[3])
- {
- output[0] = FloatSub(pt2[0], pt1[0]);
- output[4] = FloatSub(pt2[4], pt1[4]);
- output[8] = FloatSub(pt2[8], pt1[8]);
- return 0;
- }
- bool StrEqual(char str1[], char str2[], bool caseSensitive)
- {
- return strcmp(str1, str2, caseSensitive) == 0;
- }
- int GetEntSendPropOffs(int ent, char prop[], bool actual)
- {
- char cls[64];
- if (!GetEntityNetClass(ent, cls, 64))
- {
- return -1;
- }
- if (actual)
- {
- return FindSendPropInfo(cls, prop, 0, 0, 0);
- }
- return FindSendPropOffs(cls, prop);
- }
- bool GetEntityClassname(int entity, char clsname[], int maxlength)
- {
- return !!GetEntPropString(entity, PropType 1, "m_iClassname", clsname, maxlength, 0);
- }
- public void OnPluginStart()
- {
- CreateConVar("sm_infectedabilities_version", "1.0", "Infected Abilities Version", 270656, false, 0, false, 0);
- cvarRandomChance = CreateConVar("sm_randomchance", "90", "Chance that the Common Infected will be turned. (Def 90)", 262144, true, 0, false, 0);
- cvarType1HPMin = CreateConVar("sm_type1hpmin", "20", "Type 1: Minimum HP for the Common. (Def 20)", 262144, true, 0, false, 0);
- cvarType1HPMax = CreateConVar("sm_type1hpmax", "40", "Type 1: Maximum HP for the Common. (Def 40)", 262144, true, 0, false, 0);
- cvarType1Damage = CreateConVar("sm_type1damage", "1.5", "Type 1: Multiplier for damage done to the Survivors (Def 1.5)", 262144, true, 0, false, 0);
- cvarType1MagnumArmor = CreateConVar("sm_type1magnumarmor", "1.8", "Type 1: Multiplier for damage done to infected from magnum. (Def 1.2)", 262144, true, 0, false, 0);
- cvarType2HPMin = CreateConVar("sm_type2hpmin", "65", "Type 2: Minimum HP for the Common. (Def 65)", 262144, true, 0, false, 0);
- cvarType2HPMax = CreateConVar("sm_type2hpmax", "85", "Type 2: Maximum HP for the Common. (Def 85)", 262144, true, 0, false, 0);
- cvarType2Damage = CreateConVar("sm_type2damage", "0.8", "Type 2: Multiplier for damage done to the Survivors (Def 0.8)", 262144, true, 0, false, 0);
- cvarType2MagnumArmor = CreateConVar("sm_type2magnumarmor", "0.7", "Type 2: Multiplier for damage done to infected from magnum. (Def 0.7)", 262144, true, 0, false, 0);
- cvarType3HPMin = CreateConVar("sm_type3hpmin", "30", "Type 3: Minimum HP for the Common. (Def 30)", 262144, true, 0, false, 0);
- cvarType3HPMax = CreateConVar("sm_type3hpmax", "60", "Type 3: Maximum HP for the Common. (Def 60)", 262144, true, 0, false, 0);
- cvarType3Damage = CreateConVar("sm_type3damage", "1.3", "Type 3: Multiplier for damage done to the Survivors (Def 1.3)", 262144, true, 0, false, 0);
- cvarType3MagnumArmor = CreateConVar("sm_type3magnumarmor", "1.1", "Type 3: Multiplier for damage done to infected from magnum. (Def 1.1)", 262144, true, 0, false, 0);
- cvarType4HPMin = CreateConVar("sm_type4hpmin", "80", "Type 4: Minimum HP for the Common. (Def 80)", 262144, true, 0, false, 0);
- cvarType4HPMax = CreateConVar("sm_type4hpmax", "110", "Type 4: Maximum HP for the Common. (Def 110)", 262144, true, 0, false, 0);
- cvarType4Damage = CreateConVar("sm_type4damage", "0.6", "Type 4: Multiplier for damage done to the Survivors (Def 0.6)", 262144, true, 0, false, 0);
- cvarType4MagnumArmor = CreateConVar("sm_type4magnumarmor", "0.5", "Type 4: Multiplier for damage done to infected from magnum. (Def 0.5)", 262144, true, 0, false, 0);
- cvarSplashRadius = CreateConVar("sm_bile_the_world_radius", "200", "Radius of Bile Splash on Boomer Death and Vomit Jar", 270336, false, 0, false, 0);
- isEnabled = CreateConVar("sm_bile_the_world_enabled", "1", "Turn Bile the World on and off", 270336, false, 0, false, 0);
- cvarTankSpeed = CreateConVar("sm_deftankspeed", "1.32", "Tank speed increase", 262144, true, 0, false, 0);
- cvarTankHPMin = CreateConVar("sm_randomtank_min", "5000", "Minimum HP For The Tank", 262144, true, 0, false, 0);
- cvarTankHPMax = CreateConVar("sm_randomtank_max", "15000", "Maximum HP For The Tank", 262144, true, 0, false, 0);
- cvarChargerHPMin = CreateConVar("sm_randomcharger_min", "600", "Minimum HP For The Charger", 262144, true, 0, false, 0);
- cvarChargerHPMax = CreateConVar("sm_randomcharger_max", "900", "Maximum HP For The Charger", 262144, true, 0, false, 0);
- cvarHunterHPMin = CreateConVar("sm_randomhunter_min", "250", "Minimum HP For The Hunter", 262144, true, 0, false, 0);
- cvarHunterHPMax = CreateConVar("sm_randomhunter_max", "318", "Maximum HP For The Hunter", 262144, true, 0, false, 0);
- cvarJockeyHPMin = CreateConVar("sm_randomjockey_min", "300", "Minimum HP For The Jockey", 262144, true, 0, false, 0);
- cvarJockeyHPMax = CreateConVar("sm_randomjockey_max", "325", "Maximum HP For The Jockey", 262144, true, 0, false, 0);
- cvarWitchHPMin = CreateConVar("sm_randomwitch_min", "100", "Minimum HP For The Witch", 262144, true, 0, false, 0);
- cvarWitchHPMax = CreateConVar("sm_randomwitch_max", "200", "Maximum HP For The Witch", 262144, true, 0, false, 0);
- laggedMovementOffset = FindSendPropInfo("CTerrorPlayer", "m_flLaggedMovementValue", 0, 0, 0);
- health_default_witch = GetConVarInt(FindConVar("z_witch_health"));
- health_default_tank = GetConVarInt(FindConVar("z_tank_health"));
- health_default_charger = GetConVarInt(FindConVar("z_charger_health"));
- health_default_hunter = GetConVarInt(FindConVar("z_hunter_health"));
- health_default_jockey = GetConVarInt(FindConVar("z_jockey_health"));
- PrepSDKCalls();
- HookEvent("player_death", EventHook 47, EventHookMode 1);
- HookEvent("tank_spawn", EventHook 53, EventHookMode 1);
- HookEvent("player_first_spawn", EventHook 49, EventHookMode 1);
- HookEvent("player_spawn", EventHook 49, EventHookMode 1);
- HookEvent("round_start", EventHook 51, EventHookMode 1);
- AutoExecConfig(true, "l4d2_abilities", "sourcemod");
- return void 0;
- }
- int InitDef()
- {
- SetConVarInt(FindConVar("z_witch_health"), health_default_witch, true, true);
- SetConVarInt(FindConVar("z_tank_health"), health_default_tank, true, true);
- SetConVarInt(FindConVar("z_charger_health"), health_default_charger, true, true);
- SetConVarInt(FindConVar("z_hunter_health"), health_default_jockey, true, true);
- SetConVarInt(FindConVar("z_jockey_health"), health_default_hunter, true, true);
- return 0;
- }
- public Action event_RoundStart(Handle event, char name[], bool dontBroadcast)
- {
- InitDef();
- return Action 0;
- }
- public void OnMapStart()
- {
- isMapRunning = 1;
- return void 0;
- }
- public void OnClientPostAdminCheck(int client)
- {
- SDKHook(client, SDKHookType 2, SDKHookCB 29);
- return void 0;
- }
- public int OnEntityCreated(int entity, char classname[])
- {
- int var1;
- if (!isMapRunning)
- {
- return 0;
- }
- if (StrEqual(classname, "infected", false))
- {
- CreateTimer(0,5, Timer_CommonSpawn, EntIndexToEntRef(entity), 2);
- }
- if (StrEqual(classname, "witch", false))
- {
- SetRandomWitchHealth();
- }
- return 0;
- }
- public Action Timer_CommonSpawn(Handle timer, any ref)
- {
- int entity = EntRefToEntIndex(ref);
- int var1;
- if (entity == -1)
- {
- return Action 4;
- }
- int NightmareChance = GetRandomInt(0, 99);
- int NightmarePercent = GetConVarInt(cvarRandomChance);
- if (NightmareChance < NightmarePercent)
- {
- int integer = GetRandomInt(1, 4);
- int iHP = 0;
- switch (integer)
- {
- case 1: {
- iHP = GetRandomInt(GetConVarInt(cvarType1HPMin), GetConVarInt(cvarType1HPMax));
- CommonType[entity] = 1;
- }
- case 2: {
- iHP = GetRandomInt(GetConVarInt(cvarType2HPMin), GetConVarInt(cvarType2HPMax));
- CommonType[entity] = 2;
- }
- case 3: {
- iHP = GetRandomInt(GetConVarInt(cvarType3HPMin), GetConVarInt(cvarType3HPMax));
- CommonType[entity] = 3;
- }
- case 4: {
- iHP = GetRandomInt(GetConVarInt(cvarType4HPMin), GetConVarInt(cvarType4HPMax));
- CommonType[entity] = 4;
- }
- default: {
- }
- }
- SDKHook(entity, SDKHookType 2, SDKHookCB 27);
- SetEntProp(entity, PropType 1, "m_iMaxHealth", iHP, 4, 0);
- SetEntProp(entity, PropType 1, "m_iHealth", iHP, 4, 0);
- }
- return Action 0;
- }
- public Action OnTakeDamage_Survivor(int victim, &int attacker, &int inflictor, &float damage, &int damagetype)
- {
- int var1;
- if (!isMapRunning)
- {
- return Action 4;
- }
- if (IsValidCommon(attacker))
- {
- int var2;
- if (IsValidClient(victim))
- {
- switch (CommonType[attacker][0][0])
- {
- case 1: {
- float damagemod = GetConVarFloat(cvarType1Damage);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- case 2: {
- float damagemod = GetConVarFloat(cvarType2Damage);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- case 3: {
- float damagemod = GetConVarFloat(cvarType3Damage);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- case 4: {
- float damagemod = GetConVarFloat(cvarType4Damage);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- default: {
- }
- }
- }
- }
- return Action 1;
- }
- public Action OnTakeDamage_Infected(int victim, &int attacker, &int inflictor, &float damage, &int damagetype, &int weapon, float damageForce[3], float damagePosition[3])
- {
- int var1;
- if (!isMapRunning)
- {
- return Action 4;
- }
- char weaponName[32];
- if (IsValidCommon(victim))
- {
- int var2;
- if (weapon > 0)
- {
- GetEntityClassname(weapon, weaponName, 32);
- }
- if (!damagetype & 1073741824)
- {
- if (StrEqual(weaponName, "weapon_pistol_magnum", true))
- {
- switch (CommonType[victim][0][0])
- {
- case 1: {
- float damagemod = GetConVarFloat(cvarType1MagnumArmor);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- case 2: {
- float damagemod = GetConVarFloat(cvarType2MagnumArmor);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- case 3: {
- float damagemod = GetConVarFloat(cvarType3MagnumArmor);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- case 4: {
- float damagemod = GetConVarFloat(cvarType4MagnumArmor);
- if (FloatCompare(damagemod, 1))
- {
- damage = FloatMul(damage, damagemod);
- }
- }
- default: {
- }
- }
- }
- }
- }
- return Action 1;
- }
- public Action event_PlayerDeath(Handle event, char name[], bool dontBroadcast)
- {
- int client = GetClientOfUserId(GetEventInt(event, "userid", 0));
- int var1;
- if (!client)
- {
- return Action 0;
- }
- float pos[3];
- GetClientEyePosition(client, pos);
- VomitSplash(true, pos);
- return Action 0;
- }
- public int OnEntityDestroyed(int entity)
- {
- if (!IsValidEdict(entity))
- {
- return 0;
- }
- char class[64];
- GetEdictClassname(entity, class, 64);
- if (!StrEqual(class, CLASS_BILEJAR, true))
- {
- return 0;
- }
- float pos[3];
- GetEntityAbsOrigin(entity, pos);
- int var1 = pos[8];
- var1 = FloatAdd(var1, BILE_POS_HEIGHT_FIX);
- VomitSplash(false, pos);
- return 0;
- }
- int VomitSplash(bool BoomerDeath, float pos[3])
- {
- if (!GetConVarBool(isEnabled))
- {
- return 0;
- }
- float targetpos[3];
- float distancesetting = GetConVarFloat(cvarSplashRadius);
- if (BoomerDeath)
- {
- int i = 1;
- while (i <= MaxClients)
- {
- int var1;
- if (!IsClientInGame(i))
- {
- }
- else
- {
- GetClientEyePosition(i, targetpos);
- int var2;
- if (__FLOAT_GT__(GetVectorDistance(pos, targetpos, false), distancesetting))
- {
- }
- }
- i++;
- }
- char class[64];
- int maxents = GetMaxEntities();
- int i = MaxClients + 1;
- while (i <= maxents)
- {
- if (IsValidEdict(i))
- {
- GetEdictClassname(i, class, 64);
- int var3;
- if (!StrEqual(class, CLASS_ZOMBIE, true))
- {
- }
- }
- i++;
- }
- }
- else
- {
- int i = 1;
- while (i <= MaxClients)
- {
- int var5;
- if (!IsClientInGame(i))
- {
- }
- else
- {
- GetClientEyePosition(i, targetpos);
- int var6;
- if (__FLOAT_GT__(GetVectorDistance(pos, targetpos, false), distancesetting))
- {
- }
- }
- i++;
- }
- }
- return 0;
- }
- public Action event_TankSpawn(Handle event, char name[], bool dontBroadcast)
- {
- int client = GetClientOfUserId(GetEventInt(event, "userid", 0));
- if (IsValidTank(client))
- {
- CreateTimer(0,5, Event_TankSpeed, client, 0);
- }
- SetRandomTankHealth();
- return Action 0;
- }
- public int SetRandomTankHealth()
- {
- int tHPMin = GetConVarInt(cvarTankHPMin);
- int tHPMax = GetConVarInt(cvarTankHPMax);
- int tHP = GetRandomInt(tHPMin, tHPMax);
- SetConVarInt(FindConVar("z_tank_health"), tHP, false, false);
- return 0;
- }
- public Action event_PlayerSpawn(Handle event, char name[], bool dontBroadcast)
- {
- int client = GetClientOfUserId(GetEventInt(event, "userid", 0));
- if (IsValidCharger(client))
- {
- SetRandomChargerHealth();
- }
- if (IsValidHunter(client))
- {
- SetRandomHunterHealth();
- }
- if (IsValidJockey(client))
- {
- SetRandomJockeyHealth();
- }
- return Action 0;
- }
- public int SetRandomChargerHealth()
- {
- int cHPMin = GetConVarInt(cvarChargerHPMin);
- int cHPMax = GetConVarInt(cvarChargerHPMax);
- int cHP = GetRandomInt(cHPMin, cHPMax);
- SetConVarInt(FindConVar("z_charger_health"), cHP, false, false);
- return 0;
- }
- public int SetRandomHunterHealth()
- {
- int hHPMin = GetConVarInt(cvarHunterHPMin);
- int hHPMax = GetConVarInt(cvarHunterHPMax);
- int hHP = GetRandomInt(hHPMin, hHPMax);
- SetConVarInt(FindConVar("z_hunter_health"), hHP, false, false);
- return 0;
- }
- public int SetRandomJockeyHealth()
- {
- int jHPMin = GetConVarInt(cvarJockeyHPMin);
- int jHPMax = GetConVarInt(cvarJockeyHPMax);
- int jHP = GetRandomInt(jHPMin, jHPMax);
- SetConVarInt(FindConVar("z_jockey_health"), jHP, false, false);
- return 0;
- }
- public int SetRandomWitchHealth()
- {
- int wHPMin = GetConVarInt(cvarWitchHPMin);
- int wHPMax = GetConVarInt(cvarWitchHPMax);
- int wHP = GetRandomInt(wHPMin, wHPMax);
- SetConVarInt(FindConVar("z_witch_health"), wHP, false, false);
- return 0;
- }
- public Action Event_TankSpeed(Handle timer, any client)
- {
- if (IsValidTank(client))
- {
- SetEntDataFloat(client, laggedMovementOffset, FloatMul(1, GetConVarFloat(cvarTankSpeed)), true);
- }
- return Action 0;
- }
- public int IsValidTank(int client)
- {
- int var1;
- if (IsValidClient(client))
- {
- int class = GetEntProp(client, PropType 0, "m_zombieClass", 4, 0);
- if (class == 8)
- {
- return 1;
- }
- return 0;
- }
- return 0;
- }
- public int IsValidCharger(int client)
- {
- int var1;
- if (IsValidClient(client))
- {
- int class = GetEntProp(client, PropType 0, "m_zombieClass", 4, 0);
- if (class == 6)
- {
- return 1;
- }
- return 0;
- }
- return 0;
- }
- public int IsValidHunter(int client)
- {
- int var1;
- if (IsValidClient(client))
- {
- int class = GetEntProp(client, PropType 0, "m_zombieClass", 4, 0);
- if (class == 3)
- {
- return 1;
- }
- return 0;
- }
- return 0;
- }
- public int IsValidJockey(int client)
- {
- int var1;
- if (IsValidClient(client))
- {
- int class = GetEntProp(client, PropType 0, "m_zombieClass", 4, 0);
- if (class == 5)
- {
- return 1;
- }
- return 0;
- }
- return 0;
- }
- int PrepSDKCalls()
- {
- Handle ConfigFile = LoadGameConfigFile(GAMEDATA_FILE);
- StartPrepSDKCall(SDKCallType 2);
- PrepSDKCall_SetFromConf(ConfigFile, SDKFuncConfSource 1, "CTerrorPlayer_OnVomitedUpon");
- PrepSDKCall_AddParameter(SDKType 1, SDKPassMethod 0, 0, 0);
- PrepSDKCall_AddParameter(SDKType 4, SDKPassMethod 1, 0, 0);
- sdkCallVomitOnPlayer = EndPrepSDKCall();
- if (sdkCallVomitOnPlayer)
- {
- StartPrepSDKCall(SDKCallType 2);
- PrepSDKCall_SetFromConf(ConfigFile, SDKFuncConfSource 1, "CTerrorPlayer_OnHitByVomitJar");
- PrepSDKCall_AddParameter(SDKType 0, SDKPassMethod 0, 0, 0);
- sdkCallBileJarPlayer = EndPrepSDKCall();
- if (sdkCallBileJarPlayer)
- {
- StartPrepSDKCall(SDKCallType 1);
- PrepSDKCall_SetFromConf(ConfigFile, SDKFuncConfSource 1, "Infected_OnHitByVomitJar");
- PrepSDKCall_AddParameter(SDKType 0, SDKPassMethod 0, 0, 0);
- sdkCallBileJarInfected = EndPrepSDKCall();
- if (sdkCallBileJarInfected)
- {
- CloseHandle(ConfigFile);
- return 0;
- }
- SetFailState("Cant initialize Infected_OnHitByVomitJar SDKCall");
- return 0;
- }
- SetFailState("Cant initialize CTerrorPlayer_OnHitByVomitJar SDKCall");
- return 0;
- }
- SetFailState("Cant initialize OnVomitedUpon SDKCall");
- return 0;
- }
- bool IsVisibleTo(float position[3], float targetposition[3])
- {
- float vAngles[3];
- float vLookAt[3];
- MakeVectorFromPoints(position, targetposition, vLookAt);
- GetVectorAngles(vLookAt, vAngles);
- Handle trace = TR_TraceRayFilterEx(position, vAngles, 1174421507, RayType 1, TraceEntityFilter 43, any 0);
- bool isVisible = 0;
- if (TR_DidHit(trace))
- {
- float vStart[3];
- TR_GetEndPosition(vStart, trace);
- if (__FLOAT_GE__(FloatAdd(GetVectorDistance(position, vStart, false), TRACE_TOLERANCE), GetVectorDistance(position, targetposition, false)))
- {
- isVisible = 1;
- }
- }
- CloseHandle(trace);
- return isVisible;
- }
- public bool _TraceFilter(int entity, int contentsMask)
- {
- int var1;
- if (!entity)
- {
- return false;
- }
- return true;
- }
- int GetEntityAbsOrigin(int entity, float origin[3])
- {
- int var1;
- if (entity)
- {
- float mins[3];
- float maxs[3];
- GetEntPropVector(entity, PropType 0, "m_vecOrigin", origin, 0);
- GetEntPropVector(entity, PropType 0, "m_vecMins", mins, 0);
- GetEntPropVector(entity, PropType 0, "m_vecMaxs", maxs, 0);
- int var2 = origin;
- var2[0] = FloatAdd(var2[0], FloatMul(0,5, FloatAdd(mins[0], maxs[0])));
- int var3 = origin[4];
- var3 = FloatAdd(var3, FloatMul(0,5, FloatAdd(mins[4], maxs[4])));
- int var4 = origin[8];
- var4 = FloatAdd(var4, FloatMul(0,5, FloatAdd(mins[8], maxs[8])));
- }
- return 0;
- }
- int GetAnyValidSurvivor()
- {
- int i = 1;
- while (i <= MaxClients)
- {
- int var1;
- if (IsClientInGame(i))
- {
- return i;
- }
- i++;
- }
- return 1;
- }
- public int IsValidCommon(int common)
- {
- int var1;
- if (common > MaxClients)
- {
- char classname[32];
- GetEdictClassname(common, classname, 32);
- if (StrEqual(classname, "infected", true))
- {
- return 1;
- }
- }
- return 0;
- }
- public void OnMapEnd()
- {
- isMapRunning = 0;
- return void 0;
- }
- public int IsValidClient(int client)
- {
- if (0 >= client)
- {
- return 0;
- }
- if (client > MaxClients)
- {
- return 0;
- }
- if (!IsClientInGame(client))
- {
- return 0;
- }
- if (!IsPlayerAlive(client))
- {
- return 0;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment