Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma newdecls required
- #pragma semicolon 1
- #define CONFIG_NAME "data/random_weapon.ini"
- #define MAXLIST 26
- #include <sourcemod>
- #include <sdktools>
- static int gItemsChances[MAXLIST + 11] =
- {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- };
- static const char gWeaponReplace[61][] =
- {
- "weapon_autoshotgun",
- "weapon_first_aid_kit",
- "weapon_pipe_bomb",
- "weapon_molotov",
- "weapon_rifle",
- "weapon_hunting_rifle",
- "weapon_pain_pills",
- "weapon_pistol",
- "weapon_adrenaline",
- "weapon_smg_mp5",
- "weapon_smg",
- "weapon_smg_silenced",
- "weapon_pumpshotgun",
- "weapon_shotgun_chrome",
- "weapon_rifle_m60",
- "weapon_shotgun_spas",
- "weapon_sniper_military",
- "weapon_rifle_ak47",
- "weapon_rifle_desert",
- "weapon_sniper_awp",
- "weapon_rifle_sg552",
- "weapon_sniper_scout",
- "weapon_grenade_launcher",
- "weapon_pistol_magnum",
- "weapon_vomitjar",
- "weapon_defibrillator",
- "weapon_spawn",
- "weapon_item_spawn",
- "weapon_autoshotgun_spawn",
- "weapon_first_aid_kit_spawn",
- "weapon_pipe_bomb_spawn",
- "weapon_molotov_spawn",
- "weapon_rifle_spawn",
- "weapon_hunting_rifle_spawn",
- "weapon_pain_pills_spawn",
- "weapon_pistol_spawn",
- "weapon_adrenaline_spawn",
- "weapon_smg_mp5_spawn",
- "weapon_smg_spawn",
- "weapon_smg_silenced_spawn",
- "weapon_pumpshotgun_spawn",
- "weapon_shotgun_chrome_spawn",
- "weapon_rifle_m60_spawn",
- "weapon_shotgun_spas_spawn",
- "weapon_sniper_military_spawn",
- "weapon_rifle_ak47_spawn",
- "weapon_rifle_desert_spawn",
- "weapon_sniper_awp_spawn",
- "weapon_rifle_sg552_spawn",
- "weapon_sniper_scout_spawn",
- "weapon_grenade_launcher_spawn",
- "weapon_pistol_magnum_spawn",
- "weapon_vomitjar_spawn",
- "weapon_defibrillator_spawn",
- "weapon_melee_spawn",
- "weapon_ammo_spawn",
- "weapon_smg_mp5",
- "weapon_smg_silenced",
- "weapon_smg",
- "weapon_smoker_claw",
- "weapon_sniper_awp"
- };
- static const char gModelsItemsList[MAXLIST + 11][] =
- {
- "models/w_models/weapons/w_autoshot_m4super.mdl", //0
- "models/w_models/weapons/w_eq_Medkit.mdl", //1
- "models/w_models/weapons/w_eq_pipebomb.mdl", //2
- "models/w_models/weapons/w_eq_molotov.mdl", //3
- "models/w_models/weapons/w_rifle_m16a2.mdl", //4
- "models/w_models/weapons/w_sniper_mini14.mdl", //5
- "models/w_models/weapons/w_eq_painpills.mdl", //6
- "models/w_models/weapons/w_pistol_a.mdl", //7
- "models/w_models/weapons/w_eq_adrenaline.mdl", //8
- "models/w_models/weapons/w_smg_mp5.mdl", //9
- "models/w_models/weapons/w_smg_uzi.mdl", //10
- "models/w_models/weapons/w_smg_a.mdl", //11
- "models/w_models/weapons/w_shotgun.mdl", //12
- "models/w_models/weapons/w_pumpshotgun_a.mdl", //13
- "models/w_models/weapons/w_m60.mdl", //14
- "models/w_models/weapons/w_shotgun_spas.mdl", //15
- "models/w_models/weapons/w_sniper_military.mdl", //16
- "models/w_models/weapons/w_rifle_ak47.mdl", //17
- "models/w_models/weapons/w_desert_rifle.mdl", //18
- "models/w_models/weapons/w_sniper_awp.mdl", //19
- "models/w_models/weapons/w_rifle_sg552.mdl", //20
- "models/w_models/weapons/w_sniper_scout.mdl", //21
- "models/w_models/weapons/w_grenade_launcher.mdl", //22
- "models/w_models/weapons/w_desert_eagle.mdl", //23
- "models/w_models/weapons/w_eq_bile_flask.mdl", //24
- "models/w_models/weapons/w_eq_defibrillator.mdl", //25
- "models/weapons/melee/v_fireaxe.mdl", //26
- "models/weapons/melee/v_frying_pan.mdl", //27
- "models/weapons/melee/v_machete.mdl", //28
- "models/weapons/melee/v_bat.mdl", //29
- "models/weapons/melee/v_crowbar.mdl", //30
- "models/weapons/melee/v_cricket_bat.mdl", //31
- "models/weapons/melee/v_tonfa.mdl", //32
- "models/weapons/melee/v_katana.mdl", //33
- "models/weapons/melee/v_electric_guitar.mdl", //34
- "models/weapons/melee/v_golfclub.mdl", //35
- "models/v_models/v_knife_t.mdl" //36
- };
- static const char gItemsList[MAXLIST + 11][] =
- {
- "weapon_autoshotgun",
- "weapon_first_aid_kit",
- "weapon_pipe_bomb",
- "weapon_molotov",
- "weapon_rifle",
- "weapon_hunting_rifle",
- "weapon_pain_pills",
- "weapon_pistol",
- "weapon_adrenaline",
- "weapon_smg_mp5",
- "weapon_smg",
- "weapon_smg_silenced",
- "weapon_pumpshotgun",
- "weapon_shotgun_chrome",
- "weapon_rifle_m60",
- "weapon_shotgun_spas",
- "weapon_sniper_military",
- "weapon_rifle_ak47",
- "weapon_rifle_desert",
- "weapon_sniper_awp",
- "weapon_rifle_sg552",
- "weapon_sniper_scout",
- "weapon_grenade_launcher",
- "weapon_pistol_magnum",
- "weapon_vomitjar",
- "weapon_defibrillator",
- "fireaxe",
- "frying_pan",
- "machete",
- "baseball_bat",
- "crowbar",
- "cricket_bat",
- "tonfa",
- "katana",
- "electric_guitar",
- "golfclub",
- "knife"
- };
- public void OnPluginStart()
- {
- LoadPercents();
- RegConsoleCmd("sm_sss", gs);
- HookEvent("round_start", Random);
- }
- public Action Random(Event event, const char[] name, bool dontbroadcast)
- {
- char sClassName[64], szModelName[128];
- int iRandom, iWeight, iItem;
- float vPos[3], vAng[3];
- for(int i = MaxClients; i <= 2048; i++)
- {
- if(IsValidEntity(i))
- {
- GetEntityClassname(i, sClassName, sizeof sClassName);
- for(int l; l < sizeof gWeaponReplace; l++)
- {
- if(strcmp(sClassName, gWeaponReplace[l]) == 0 && (GetEntPropEnt(i, Prop_Data, "m_hOwnerEntity")) < 1)
- {
- GetEntPropString(i, Prop_Data, "m_ModelName", szModelName, sizeof szModelName);
- GetEntPropVector(i, Prop_Send, "m_vecOrigin", vPos);
- GetEntPropVector(i, Prop_Send, "m_angRotation", vAng);
- vPos[2] += 1;
- iRandom = GetRandomInt(0, sizeof gItemsList - 1);
- iWeight = GetRandomInt(1, 100);
- if (iWeight <= gItemsChances[iRandom])
- {
- iItem = CreateEntityByName(gItemsList[iRandom]);
- if(IsValidEntity(iItem))
- {
- TeleportEntity(iItem, vPos, vAng, NULL_VECTOR);
- DispatchSpawn(iItem);
- if(!IsModelPrecached(szModelName)) PrecacheModel(szModelName, true);
- SetEntityModel(iItem, gModelsItemsList[iRandom]);
- }
- else
- {
- SpawnMelee(gItemsList[iRandom], vPos, vAng);
- }
- }
- AcceptEntityInput(i, "kill");
- }
- }
- }
- }
- }
- public Action gs(int client, int args)
- {
- for( int i; i < sizeof gItemsChances; i++ )
- {
- PrintToChatAll("%i", gItemsChances[i]);
- }
- }
- void LoadPercents()
- {
- char sPath[PLATFORM_MAX_PATH];
- BuildPath(Path_SM, sPath, sizeof(sPath), CONFIG_NAME);
- KeyValues hFile = new KeyValues("OA-ECP-34-12-FAN-SJGFA-JSDA-DN2-SDJASD-SDJ-0x94");
- if(!FileExists(sPath))
- {
- File hCfg = OpenFile(sPath, "w");
- hCfg.WriteLine("");
- delete hCfg;
- if(KvJumpToKey(hFile, "weapons", true))
- {
- for( int i; i < MAXLIST + 11; i++ )
- hFile.SetNum(gItemsList[i], 0);
- }
- hFile.Rewind();
- hFile.ExportToFile(sPath);
- LoadPercents();
- }
- else
- {
- if(hFile.ImportFromFile(sPath))
- {
- if(KvJumpToKey(hFile, "weapons", true))
- for( int i; i < MAXLIST + 11; i++ )
- gItemsChances[i] = hFile.GetNum(gItemsList[i]);
- }
- }
- delete hFile;
- }
- void SpawnMelee(const char[] Melee, float origin[3], float angles[3])
- {
- int iWeapon = CreateEntityByName("weapon_melee");
- if (IsValidEntity(iWeapon))
- {
- DispatchKeyValue(iWeapon, "melee_script_name", Melee);
- DispatchSpawn(iWeapon);
- TeleportEntity(iWeapon, origin, angles, NULL_VECTOR);
- char ModelName[128];
- GetEntPropString(iWeapon, Prop_Data, "m_ModelName", ModelName, sizeof ModelName);
- if (StrContains( ModelName, "hunter", false ) != -1)
- AcceptEntityInput(iWeapon, "kill");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement