Initial commit

This commit is contained in:
2025-04-15 22:27:20 -04:00
parent 5b7b68f81f
commit 771d8fe8e8
597 changed files with 149544 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
//Simple script setup
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <regex>
#define DLYCFG_VERSION "1.0.0"
//Give plugin info
public Plugin:myinfo =
{
name = "Config Delayer",
author = "Tonybear5",
description = "Waits for server load then fires after a 60 second delay.",
version = "DLYCFG_VERSION",
url = "http://veterangiveaways.co.uk"
};
//Hook into server
public OnAllPluginsLoaded()
{
CreateTimer(60.0, Command_FireConfig);
}
//Execute the config after the above delay
public Action:Command_FireConfig(Handle timer)
{
ServerCommand("exec server.cfg");
}

File diff suppressed because it is too large Load Diff

2405
scripting/FallingBack.sp Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,91 @@
#include <sourcemod>
//#include <sdktools>
#pragma semicolon 1
public Plugin myinfo =
{
name = "Falling Back Framework",
author = "DovahKingWarrior#0001",
description = "Framework for Falling Back",
version = "1.0.0",
url = "https://forums.firehostredux.com"
};
public void OnPluginStart()
{
RegAdminCmd("fb_wave1", Command_WaveOne, ADMFLAG_ROOT, "Wave one started."),
RegAdminCmd("fb_wave1_bmbavail", Command_WaveOneBombUp, ADMFLAG_ROOT, "Wave one - bomb available."),
RegAdminCmd("fb_wave2", Command_WaveTwo, ADMFLAG_ROOT, "Wave two started."),
RegAdminCmd("fb_wave3", Command_WaveThree, ADMFLAG_ROOT, "Wave three started."),
RegAdminCmd("fb_wave4", Command_WaveFour, ADMFLAG_ROOT, "Wave four started."),
RegAdminCmd("fb_wave5", Command_WaveFive, ADMFLAG_ROOT, "Wave five started."),
RegAdminCmd("fb_wave6", Command_WaveSix, ADMFLAG_ROOT, "Wave six started."),
RegAdminCmd("fb_wave7", Command_WaveSeven, ADMFLAG_ROOT, "Wave seven started."),
HookEvent("player_death", EventDeath);
// RegAdminCmd("fb_failed", Command_KeyEntryfailed, ADMFLAG_ROOT, "Client %s failed key entry."); //WORK IN PROGRESS
}
public Action Command_WaveOne(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA]\x07FFFFFFWave 1: Locus");
}
public Action Command_WaveOneBombUp(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00LOCUS\x070000AA] \x0700AA55RED's \x07FF0000WARHEAD \x0700AA55is now available for deployment!");
}
public Action Command_WaveTwo(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x07FFFFFFWave 2: Grandma Destruction");
}
public Action Command_WaveTwoBombUp(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x0700AA55RED's \x07FF0000#BOMBNAME# \x0700AA55is now available for deployment!");
}
public Action Command_WaveThree(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x07FFFFFFWave 3: Exponential Entropy");
}
public Action Command_WaveFour(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x07FFFFFFWave 4: Torn From The Heavens");
}
public Action Command_WaveFive(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x07FFFFFFWave 5: Metal - Brute Justice Mode");
}
public Action Command_WaveSix(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x07FFFFFFWave 6: Under The Weight");
}
public Action Command_WaveSeven(int client, int args)
{
PrintToChatAll("\x070000AA[\x0700AA00CORE\x070000AA] \x07FFFFFFWave 7: Revenge Twofold");
}
//Check who died by what, missing some data however.
public Action EventDeath(Handle:Spawn_Event, String:Spawn_Name[], bool:Spawn_Broadcast)
{
new client = GetClientOfUserId(GetEventInt(Spawn_Event, "userid"));
// new attacker = GetClientOfUserId(GetEventInt(Spawn_Event, "attacker")); //UNUSED RIGHT NOW, MAY BE USED LATER.
new String:weapon[32];
GetEventString(Spawn_Event, "weapon", weapon, 32);
if (!(client == 0))
{
// new customkill = GetEventInt(Spawn_Event, "customkill"); // if (customkill == 6) // Unknown what this really is or does, so removed for now.
new damagebits = GetEventInt(Spawn_Event, "damagebits");
if (damagebits == 256)
{
PrintToChatAll("Client %N has humliated themself with an incorrect key entry!", client);
}
}
return Plugin_Handled;
}

File diff suppressed because it is too large Load Diff

BIN
scripting/FartsysAss.smx Normal file

Binary file not shown.

96
scripting/FartsysAss.sp Normal file
View File

@@ -0,0 +1,96 @@
/* WELCOME TO FARTSY'S ASS ROTTENBURG.
*
* A FEW THINGS TO KNOW: ONE.... THIS IS INTENDED TO BE USED WITH UBERUPGRADES.
* TWO..... THE MUSIC USED WITH THIS MOD MAY OR MAY NOT BE COPYRIGHTED. WE HAVE NO INTENTION ON INFRINGEMENT. THIS PROJECT IS PURELY NON PROFIT AND JUST FOR FUN. SHOULD COPYRIGHT HOLDERS WISH THIS PROJECT BE TAKEN DOWN, I (Fartsy) SHALL OBLIGE WITHOUT HESITATION.
* THREE..... THIS MOD IS INTENDED FOR USE ON THE FIREHOSTREDUX SERVERS ONLY. SUPPORT IS LIMITED.
* FOUR..... THIS WAS A NIGHTMARE TO FIGURE OUT AND BUG FIX. I HOPE IT WAS WORTH IT.
* FIVE..... PLEASE HAVE FUN AND ENJOY YOURSELF!
* SIX..... THE DURATION OF MUSIC TIMERS SHOULD BE SET DEPENDING WHAT SONG IS USED. SET THIS USING THE CONFIG FILES. SONG DUR IN SECONDS / 0.0151515151515 = REFIRE TIME.
* SEVEN..... TIPS AND TRICKS MAY BE ADDED TO THE TIMER, SEE PerformAdverts(Handle timer);
*
* GL HF!!!
*/
#include <sourcemod>
#include <sdktools>
#include <clientprefs>
#include <morecolors>
#include <regex>
#include <tf2_stocks>
#include <fartsy/fastfire2>
#include <fartsy/ass_enhancer>
#include <fartsy/ass_helper>
#include <fartsy/ass_bosshandler>
#include <fartsy/ass_commands>
#include <fartsy/ass_events>
#include <fartsy/ass_sudo>
#pragma newdecls required
#pragma semicolon 1
public Database Get_Ass_Database(){
return Ass_Database;
}
public Plugin myinfo = {
name = "Fartsy's Ass - Framework",
author = "Fartsy",
description = "Framework for Fartsy's Ass (MvM Mods)",
version = PLUGIN_VERSION,
url = "https://forums.firehostredux.com"
};
public void OnPluginStart() {
PrecacheSound(TBGM0, true);
PrecacheSound(TBGM2, true);
PrecacheSound(TBGM3, true);
PrecacheSound(TBGM4, true);
PrecacheSound(TBGM5, true);
PrecacheSound(TBGM6, true);
AssLogger(LOGLVL_INFO, "####### STARTUP SEQUENCE INITIATED... PREPARE FOR THE END TIMES #######");
RegisterAndPrecacheAllFiles();
RegisterAllCommands();
SetupCoreData();
UpdateAllHealers();
CreateTimer(1.0, UpdateMedicHealing);
CPrintToChatAll("{darkred}Plugin Reloaded. If you do not hear music, please do !sounds and configure your preferences.");
cvarSNDDefault = CreateConVar("sm_fartsysass_sound", "3", "Default sound for new users, 3 = Everything, 2 = Sounds Only, 1 = Music Only, 0 = Nothing");
SetCookieMenuItem(FartsysSNDSelected, 0, "Fartsys Ass Sound Preferences");
AssLogger(LOGLVL_INFO, "####### STARTUP COMPLETE (v%s) #######", PLUGIN_VERSION);
}
//Begin executing IO when ready
public void OnFastFire2Ready(){
AudioManager.Reset();
WeatherManager.Reset();
for (int i = 0; i < sizeof(MapLighting); i++) MapLighting[i].Repair();
CreateTimer(1.0, SelectAdminTimer);
sudo(1002);
}
//Process ticks and requests in real time
public void OnGameFrame() {
float pos[3];
float ang[3];
float vel[3];
float newPos[3];
vel[0] = 0.0;
vel[1] = 0.0;
vel[2] = 0.0;
if(tickOnslaughter){
int BossEnt = FindEntityByTargetname("FB.BruteJusticeTrain", "func_tracktrain");
int BossTP = FindEntityByTargetname("FB.OnslaughterBase", "base_boss");
GetEntPropVector(BossEnt, Prop_Send, "m_vecOrigin", pos);
GetEntPropVector(BossEnt, Prop_Data, "m_angRotation", ang);
newPos[0] = pos[0];
newPos[1] = pos[1];
newPos[2] = pos[2] + 0.0;
//PrintToChatAll("%f %f %f %f %f %f", pos[0], pos[1], pos[2], ang[0], ang[1], ang[2]);
TeleportEntity(BossTP, newPos, ang, vel);
}
if (Enhancer_IsWave != core.isWave) Enhancer_IsWave = core.isWave;
if(WeatherManager.TornadoWarning) WeatherManager.TickSiren();
if (AudioManager.shouldTick) AudioManager.TickBGM();
if (BossHandler.shouldTick) BossHandler.Tick();
WeatherManager.TickFogDensity();
}

File diff suppressed because it is too large Load Diff

BIN
scripting/FartsysKSYS.smx Normal file

Binary file not shown.

237
scripting/FartsysKSYS.sp Normal file
View File

@@ -0,0 +1,237 @@
#include <sourcemod>
#include <sdktools>
#include <clientprefs>
#include <tf2_stocks>
#include <morecolors>
Database KSYS_Database;
//Registry of all playable classes
char ClassDefs[][32] = {
"scout",
"sniper",
"soldier",
"demoman",
"medic",
"heavy",
"pyro",
"spy",
"engineer",
""
};
enum struct PLAYER_SOUNDS {
int killcount;
char sound[256];
char sound_old[256];
}
PLAYER_SOUNDS PD[MAXPLAYERS+1];
enum struct TEMP_SOUNDS {
char sound[256];
}
TEMP_SOUNDS TEMPSNDS[MAXPLAYERS+1][10];
stock bool IsValidClient(int client) {
return (0 < client <= MaxClients && IsClientInGame(client) && !IsFakeClient(client));
}
char PLUGIN_VERSION[8] = "1.0.0";
public Plugin myinfo = {
name = "Fartsy's Kill Streak System",
author = "Fartsy",
description = "Allows users to listen to music on kill streaks",
version = PLUGIN_VERSION,
url = "https://forums.firehostredux.com"
};
public void OnPluginStart(){
HookEvent("player_death", EventDeath);
HookEvent("player_spawn", EventSpawn);
RegConsoleCmd("sm_ksys", Command_SetKSYS, "Set your killstreak sounds");
}
//Connect to database
public void OnConfigsExecuted() {
if (!KSYS_Database) Database.Connect(Database_OnConnect, "ksys");
}
//Format database if needed
public void Database_OnConnect(Database db, char[] error, any data) {
if (!db) {
LogError(error);
return;
}
char buffer[64];
db.Driver.GetIdentifier(buffer, sizeof(buffer));
if (!StrEqual(buffer, "mysql", false)) {
delete db;
LogError("Could not connect to the database: expected mysql database.");
return;
}
KSYS_Database = db;
KSYS_Database.Query(Database_FastQuery, "CREATE TABLE IF NOT EXISTS killstreak_sounds(steamid INT UNSIGNED, scout TEXT DEFAULT 'null', soldier TEXT DEFAULT 'null', pyro TEXT DEFAULT 'null', demoman TEXT DEFAULT 'null', heavy TEXT DEFAULT 'null', engineer TEXT DEFAULT 'null', medic TEXT DEFAULT 'null', sniper TEXT DEFAULT 'null', spy TEXT DEFAULT 'null', streak INT UNSIGNED DEFAULT '5', multiFile INT UNSIGNED DEFAULT '0', PRIMARY KEY (steamid, streak));");
}
//Database Fastquery Manager - Writing only
void Database_FastQuery(Database db, DBResultSet results, const char[] error, any data) {
if (!results) LogError("Failed to query database: %s", error);
}
public void Database_MergeDataError(Database db, any data, int numQueries,
const char[] error, int failIndex, any[] queryData) {
LogError("Failed to query database (transaction): %s", error);
}
//Set up thing with thing
public Action Command_SetKSYS(int client, int args){
char class[16]; char sound[256]; char streak[8];
GetCmdArg(1, class, sizeof(class));
GetCmdArg(2, sound, sizeof(sound));
GetCmdArg(3, streak, sizeof(streak));
int steamID = GetSteamAccountID(client);
if (!steamID || steamID <= 10000) return Plugin_Handled;
else {
if (!KSYS_Database) {
LogError("NO DATABASE");
return Plugin_Handled;
}
char query[1024];
Format(query, sizeof(query), "INSERT INTO killstreak_sounds (steamid, %s, streak) VALUES ('%d', '%s', '%i') ON DUPLICATE KEY UPDATE %s = '%s';", class, steamID, sound, StringToInt(streak), class, sound);
KSYS_Database.Query(Database_FastQuery, query);
CPrintToChat(client, "{orange}[{white}CORE{orange}] {white} You set {limegreen}%s{white} to play upon obtaining a {limegreen}%s{white} kill streak as {limegreen} %s{white} .", sound, streak, class);
}
return Plugin_Handled;
}
//Do Killstreak Sounds
public Action EventDeath(Event Spawn_Event, const char[] Spawn_Name, bool Spawn_Broadcast) {
int client = GetClientOfUserId(Spawn_Event.GetInt("userid"));
int attacker = GetClientOfUserId(Spawn_Event.GetInt("attacker"));
int steamid = GetSteamAccountID(attacker);
if (IsValidClient(client)){
ResetSound(client, true);
PD[client].killcount = 0;
}
if (steamid && client != attacker && IsValidClient(attacker)){
PD[attacker].killcount++;
for (int i = 5; i <= 50; i = i+5){
if(i == PD[attacker].killcount){
CPrintToChatAll("{limegreen}%N{white} has a {darkred}%i{white} killstreak!", attacker, PD[attacker].killcount);
char query[1024];
Format(query, sizeof(query), "SELECT %s, streak FROM killstreak_sounds WHERE steamID = '%d' AND streak = '%i';", ClassDefs[GetEntProp(attacker, Prop_Send, "m_iClass") - 1], steamid, i);
KSYS_Database.Query(KSYS_Query, query, attacker);
}
}
}
return Plugin_Continue;
}
public Action EventSpawn(Event Spawn_Event, const char[] Spawn_Name, bool Spawn_Broadcast) {
int client = GetClientOfUserId(Spawn_Event.GetInt("userid"));
if (IsValidClient(client)) PD[client].killcount = 0;
return Plugin_Continue;
}
void KSYS_Query(Database db, DBResultSet results, const char[] error, int client) {
if (!results) return;
if (results.FetchRow()) {
results.FetchString(0, PD[client].sound, 256);
if (strcmp(PD[client].sound, "null") == 0 || strcmp(PD[client].sound, "") == 0){
PrintToConsole(client, "[Fartsy's Killstreak System] SOUND %s WAS NULL. You may add your own music using sm_ksys class path/file.mp3 killstreakNumber.", PD[client].sound);
return;
}
//It's multi file, load ALL the things!
if (StrContains(PD[client].sound, "_multi") != -1){
char query[512];
Format(query, sizeof(query), "SELECT %s, streak FROM killstreak_sounds WHERE steamID = '%d' AND %s LIKE '%%_multi%%';", ClassDefs[GetEntProp(client, Prop_Send, "m_iClass") - 1], GetSteamAccountID(client), ClassDefs[GetEntProp(client, Prop_Send, "m_iClass") - 1]);
KSYS_Database.Query(KSYS_Query_Multi, query, client);
}
//It's single file, load the thing.
else {
PrintToConsole(client, "[Fartsy's Killstreak System] Playing %s...", PD[client].sound);
InjectAndLoadSound(PD[client].sound);
ResetSound(client, false);
CSEClient(client, PD[client].sound, 100, 0, 1.0, 100);
strcopy(PD[client].sound_old, 256, PD[client].sound);
}
}
}
void KSYS_Query_Multi(Database db, DBResultSet results, const char[] error, int client){
if (!results) return;
int i = 0;
while (results.FetchRow()){
results.FetchString(0, TEMPSNDS[client][i].sound, 256);
InjectAndLoadSound(TEMPSNDS[client][i].sound);
PrintToConsole(client, "[Fartsy's Killstreak System] Loading file %s!", TEMPSNDS[client][i].sound);
++i;
}
switch(PD[client].killcount){
case 5:{
if (strcmp(TEMPSNDS[client][0].sound, "null") == 0 || strcmp(TEMPSNDS[client][0].sound, "") == 0){
return;
}
CSEClient(client, TEMPSNDS[client][0].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][1].sound, 100, 1, 0.05, 100);
CSEClient(client, TEMPSNDS[client][2].sound, 100, 1, 0.05, 100);
CSEClient(client, TEMPSNDS[client][3].sound, 100, 1, 0.05, 100);
CSEClient(client, TEMPSNDS[client][4].sound, 100, 1, 0.05, 100);
strcopy(PD[client].sound_old, 256, TEMPSNDS[client][0].sound);
}
case 10:{
if (strcmp(TEMPSNDS[client][1].sound, "null") == 0 || strcmp(TEMPSNDS[client][1].sound, "") == 0) return;
CSEClient(client, TEMPSNDS[client][0].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][1].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][2].sound, 100, 1, 0.05, 100);
CSEClient(client, TEMPSNDS[client][3].sound, 100, 1, 0.05, 100);
CSEClient(client, TEMPSNDS[client][4].sound, 100, 1, 0.05, 100);
strcopy(PD[client].sound_old, 256, TEMPSNDS[client][1].sound);
}
case 15:{
if (strcmp(TEMPSNDS[client][2].sound, "null") == 0 || strcmp(TEMPSNDS[client][2].sound, "") == 0) return;
CSEClient(client, TEMPSNDS[client][0].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][1].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][2].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][3].sound, 100, 1, 0.05, 100);
CSEClient(client, TEMPSNDS[client][4].sound, 100, 1, 0.05, 100);
strcopy(PD[client].sound_old, 256, TEMPSNDS[client][2].sound);
}
case 20:{
if (strcmp(TEMPSNDS[client][3].sound, "null") == 0 || strcmp(TEMPSNDS[client][3].sound, "") == 0) return;
CSEClient(client, TEMPSNDS[client][0].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][1].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][2].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][3].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][4].sound, 100, 1, 0.05, 100);
strcopy(PD[client].sound_old, 256, TEMPSNDS[client][3].sound);
}
case 25:{
if (strcmp(TEMPSNDS[client][4].sound, "null") == 0 || strcmp(TEMPSNDS[client][4].sound, "") == 0) return;
CSEClient(client, TEMPSNDS[client][0].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][1].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][2].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][3].sound, 100, 1, 1.0, 100);
CSEClient(client, TEMPSNDS[client][4].sound, 100, 1, 1.0, 100);
strcopy(PD[client].sound_old, 256, TEMPSNDS[client][4].sound);
}
}
}
void InjectAndLoadSound(const char[] sound){
PrecacheSound(sound, true);
}
//Play sound to client. Ripped straight from potato. AGAIN. Allows us to play sounds directly to people when they join.
void CSEClient(int client, char[] sndName, int TSNDLVL, int flags, float vol, int pitch) {
EmitSoundToClient(client, sndName, _, 6, TSNDLVL, flags, vol, pitch, _, _, _, _, _);
}
void ResetSound(int client, bool override){
if (strcmp(PD[client].sound_old, "") != 0 || strcmp(PD[client].sound_old, PD[client].sound) != 0 || override){
for (int i = 0; i < 10; i++){
StopSound(client, i, PD[client].sound_old);
if (strcmp(TEMPSNDS[client][i].sound, "") != 0) for (int x = 0; x < 10; x++) StopSound(client, x, TEMPSNDS[client][i].sound);
}
PrintToServer("[Fartsy's Killstreak System] Stopping %s for %N", PD[client].sound_old, client);
Format (PD[client].sound_old, sizeof(PD[client].sound_old), "");
}
}

157
scripting/LOL/LOLsound.inc Normal file
View File

@@ -0,0 +1,157 @@
// File Name : LOLSound.inc
// File Version : 1.3
// File Updated date : 08-10-2013
/*
*게렛의 택티컬 건모드2의 TGM2sound.inc을 참고(배껴서..)만든 include 파일
*/
#if defined _LOLsound_included
#endinput
#endif
#define _LOLsound_included
//소리파일의 경로와 소리 관련 상수에 대한 정의는 이곳에 온다
#define TOTALSOUND 53
//인수로 받는 소리
#define SOUNDFIRSTBLOOD 0
#define SOUNDALLYSLAIN1 1
#define SOUNDALLYSLAIN2 2
#define SOUNDENEMYSLAIN1 3
#define SOUNDENEMYSLAIN2 4
#define SOUNDENEMYSLAIN3 5
#define SOUNDYOUSLAIN1 6
#define SOUNDYOUSLAIN2 7
#define SOUNDEXECUTED 8
#define SOUNDYOUVESLAIN1 9
#define SOUNDYOUVESLAIN2 10
#define SOUNDYOUVESLAIN3 11
#define SOUNDACE1 12
#define SOUNDACE2 13
#define SOUNDENEMYDOUBLEKILL1 14
#define SOUNDENEMYDOUBLEKILL2 15
#define SOUNDDOUBLEKILL1 16
#define SOUNDDOUBLEKILL2 17
#define SOUNDDOUBLEKILL3 18
#define SOUNDENEMYTRIPLEKILL1 19
#define SOUNDENEMYTRIPLEKILL2 20
#define SOUNDTRIPLEKILL1 21
#define SOUNDTRIPLEKILL2 22
#define SOUNDENEMYQUADRAKILL 23
#define SOUNDQUADRAKILL1 24
#define SOUNDQUADRAKILL2 25
#define SOUNDENEMYPENTAKILL1 26
#define SOUNDENEMYPENTAKILL2 27
#define SOUNDPENTAKILL1 28
#define SOUNDPENTAKILL2 29
#define SOUNDSHUTDOWN 30
#define SOUNDENEMYKILLINGSPREE1 31
#define SOUNDENEMYKILLINGSPREE2 32
#define SOUNDKILLINGSPREE1 33
#define SOUNDKILLINGSPREE2 34
#define SOUNDENEMYRAMPAGE 35
#define SOUNDRAMPAGE1 36
#define SOUNDRAMPAGE2 37
#define SOUNDENEMYUNSTOPPABLE1 38
#define SOUNDENEMYUNSTOPPABLE2 39
#define SOUNDUNSTOPPABLE 40
#define SOUNDENEMYDOMINATING 41
#define SOUNDDOMINATING 42
#define SOUNDENEMYGODLIKE1 43
#define SOUNDENEMYGODLIKE2 44
#define SOUNDGODLIKE1 45
#define SOUNDGODLIKE2 46
#define SOUNDENEMYLEGENDARY1 47
#define SOUNDENEMYLEGENDARY2 48
#define SOUNDLEGENDARY1 49
#define SOUNDLEGENDARY2 50
#define SOUNDLEGENDARY3 51
#define SOUNDSERVERJOIN 52
new String:sounddata[TOTALSOUND][128] =
{
{"LOLannounce_v3/female1_OnFirstBlood_1.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroHero.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroHero_1.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroHero_2.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroHero_5.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroHero_7.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroYouE.mp3"},
{"LOLannounce_v3/female1_OnChampionKillHeroYouE_1.mp3"},
{"LOLannounce_v3/female1_OnChampionKillTurretHe_4.mp3"},
{"LOLannounce_v3/female1_OnChampionKillYouHeroY.mp3"},
{"LOLannounce_v3/female1_OnChampionKillYouHeroY_1.mp3"},
{"LOLannounce_v3/female1_OnChampionKillYouHeroY_2.mp3"},
{"LOLannounce_v3/female1_OnAce_1.mp3"},
{"LOLannounce_v3/female1_OnAce_2.mp3"},
{"LOLannounce_v3/female1_OnChampionDoubleKillEn.mp3"},
{"LOLannounce_v3/female1_OnChampionDoubleKillEn_1.mp3"},
{"LOLannounce_v3/female1_OnChampionDoubleKillYo.mp3"},
{"LOLannounce_v3/female1_OnChampionDoubleKillYo_1.mp3"},
{"LOLannounce_v3/female1_OnChampionDoubleKillYo_2.mp3"},
{"LOLannounce_v3/female1_OnChampionTripleKillEn.mp3"},
{"LOLannounce_v3/female1_OnChampionTripleKillEn_1.mp3"},
{"LOLannounce_v3/female1_OnChampionTripleKillYo.mp3"},
{"LOLannounce_v3/female1_OnChampionTripleKillYo_1.mp3"},
{"LOLannounce_v3/female1_OnChampionQuadraKillEn.mp3"},
{"LOLannounce_v3/female1_OnChampionQuadraKillYo.mp3"},
{"LOLannounce_v3/female1_OnChampionQuadraKillYo_1.mp3"},
{"LOLannounce_v3/female1_OnChampionPentaKillEne.mp3"},
{"LOLannounce_v3/female1_OnChampionPentaKillEne_1.mp3"},
{"LOLannounce_v3/female1_OnChampionPentaKillYou.mp3"},
{"LOLannounce_v3/female1_OnChampionPentaKillYou_1.mp3"},
{"LOLannounce_v3/female1_OnKilledUnitOnKillingS.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet1Enem.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet1Enem_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet1Your.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet1Your_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet2Enem.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet2Your.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet2Your_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet3Enem.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet3Enem_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet3Your.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet4Enem.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet4Your.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet5Enem.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet5Enem_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet5Your.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet5Your_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet6Enem.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet6Enem_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet6Your.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet6Your_1.mp3"},
{"LOLannounce_v3/female1_OnKillingSpreeSet6Your_2.mp3"},
{"LOLannounce_v3/ServerJoinSound.mp3"}
};
//함수들
stock prepatch_and_download_sounds()
{
new String:prepatch_gamename[64];
GetGameFolderName(prepatch_gamename, sizeof(prepatch_gamename));
//소리 프리패치, 쓰이는 모든 소리를 프리패치하고 다운한다.
for(new i = 0; i < TOTALSOUND; i++){
new String:downtemp[256];
if(StrEqual(prepatch_gamename, "csgo"))
{
Format(downtemp, sizeof(downtemp), "music/%s", sounddata[i]);
PrecacheSound(sounddata[i], true);
Format(downtemp, sizeof(downtemp), "sound/music/%s", sounddata[i]);
}
else
{
PrecacheSound(sounddata[i], true);
Format(downtemp, sizeof(downtemp), "sound/%s", sounddata[i]);
}
AddFileToDownloadsTable(downtemp);
}
}
stock playsoundfromclient(client, sound){
EmitSoundToClient(client, sounddata[sound], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL, _, volumeValue[client]);
}

File diff suppressed because it is too large Load Diff

2
scripting/README.md Normal file
View File

@@ -0,0 +1,2 @@
# fartsys SMScripts
Fartsalot's Sourcemod mods, repo is messy at the moment. Please bear with us.

Some files were not shown because too many files have changed in this diff Show More