This repository has been archived by the owner on Apr 18, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit ffe3c7f
Showing
7 changed files
with
282 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Debug.*/ | ||
Release.*/ | ||
*.zip | ||
*.so |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
# (C)2004-2010 Metamod:Source Development Team | ||
# Makefile written by David "BAILOPAN" Anderson | ||
|
||
########################################### | ||
### EDIT THESE PATHS FOR YOUR OWN SETUP ### | ||
########################################### | ||
|
||
HL2SDK_ORIG = hl2sdk | ||
HL2SDK_OB = hl2sdk-ob | ||
HL2SDK_CSS = hl2sdk-css | ||
HL2SDK_OB_VALVE = hl2sdk-ob-valve | ||
HL2SDK_L4D = hl2sdk-l4d | ||
HL2SDK_L4D2 = hl2sdk-l4d2 | ||
HL2SDK_CSGO = hl2sdk-csgo | ||
MMSOURCE19 = metamod-source | ||
ENGINE ?= orangeboxvalve | ||
TICK_RATE ?= 125 | ||
|
||
##################################### | ||
### EDIT BELOW FOR OTHER PROJECTS ### | ||
##################################### | ||
|
||
PROJECT = unlocked_tickrate | ||
OBJECTS = plugin.cpp | ||
|
||
############################################## | ||
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### | ||
############################################## | ||
|
||
OPT_FLAGS = -O3 -funroll-loops -pipe | ||
GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden | ||
DEBUG_FLAGS = -g -ggdb3 -D_DEBUG | ||
CPP = g++ | ||
CPP_OSX = clang | ||
CFLAGS += -DTICK_RATE=$(TICK_RATE) | ||
|
||
########################## | ||
### SDK CONFIGURATIONS ### | ||
########################## | ||
|
||
ifeq "$(ENGINE)" "original" | ||
HL2SDK = $(HL2SDK_ORIG) | ||
CFLAGS += -DSOURCE_ENGINE=1 | ||
endif | ||
ifeq "$(ENGINE)" "orangebox" | ||
HL2SDK = $(HL2SDK_OB) | ||
CFLAGS += -DSOURCE_ENGINE=3 | ||
endif | ||
ifeq "$(ENGINE)" "css" | ||
HL2SDK = $(HL2SDK_CSS) | ||
CFLAGS += -DSOURCE_ENGINE=6 | ||
endif | ||
ifeq "$(ENGINE)" "orangeboxvalve" | ||
HL2SDK = $(HL2SDK_OB_VALVE) | ||
CFLAGS += -DSOURCE_ENGINE=7 | ||
endif | ||
ifeq "$(ENGINE)" "left4dead" | ||
HL2SDK = $(HL2SDK_L4D) | ||
CFLAGS += -DSOURCE_ENGINE=8 | ||
endif | ||
ifeq "$(ENGINE)" "left4dead2" | ||
HL2SDK = $(HL2SDK_L4D2) | ||
CFLAGS += -DSOURCE_ENGINE=9 | ||
endif | ||
ifeq "$(ENGINE)" "csgo" | ||
HL2SDK = $(HL2SDK_CSGO) | ||
CFLAGS += -DSOURCE_ENGINE=12 | ||
endif | ||
|
||
HL2PUB = $(HL2SDK)/public | ||
|
||
ifeq "$(ENGINE)" "original" | ||
INCLUDE += -I$(HL2SDK)/public/dlls | ||
METAMOD = $(MMSOURCE19)/core-legacy | ||
else | ||
INCLUDE += -I$(HL2SDK)/public/game/server | ||
METAMOD = $(MMSOURCE19)/core | ||
endif | ||
|
||
OS := $(shell uname -s) | ||
|
||
ifeq "$(OS)" "Darwin" | ||
LIB_EXT = dylib | ||
HL2LIB = $(HL2SDK)/lib/mac | ||
else | ||
LIB_EXT = so | ||
ifeq "$(ENGINE)" "original" | ||
HL2LIB = $(HL2SDK)/linux_sdk | ||
else | ||
HL2LIB = $(HL2SDK)/lib/linux | ||
endif | ||
endif | ||
|
||
# if ENGINE is original or OB | ||
ifneq (,$(filter original orangebox,$(ENGINE))) | ||
LIB_SUFFIX = _i486.$(LIB_EXT) | ||
else | ||
LIB_PREFIX = lib | ||
ifneq (,$(filter orangeboxvalve css left4dead2,$(ENGINE))) | ||
ifneq "$(OS)" "Darwin" | ||
LIB_SUFFIX = _srv.$(LIB_EXT) | ||
else | ||
LIB_SUFFIX = .$(LIB_EXT) | ||
endif | ||
else | ||
LIB_SUFFIX = .$(LIB_EXT) | ||
endif | ||
endif | ||
|
||
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 \ | ||
-DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 \ | ||
-DSE_PORTAL2=11 -DSE_CSGO=12 | ||
|
||
LINK += $(HL2LIB)/tier1_i486.a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX) | ||
|
||
ifeq "$(ENGINE)" "csgo" | ||
LINK += $(HL2LIB)/interfaces_i486.a | ||
endif | ||
|
||
INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \ | ||
-I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I. -I$(METAMOD) -I$(METAMOD)/sourcehook | ||
|
||
################################################ | ||
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### | ||
################################################ | ||
|
||
BINARY = $(PROJECT).$(LIB_EXT) | ||
|
||
ifeq "$(DEBUG)" "true" | ||
BIN_DIR = Debug.$(ENGINE) | ||
CFLAGS += $(DEBUG_FLAGS) | ||
else | ||
BIN_DIR = Release.$(ENGINE) | ||
CFLAGS += $(OPT_FLAGS) | ||
endif | ||
|
||
|
||
ifeq "$(OS)" "Darwin" | ||
CPP = $(CPP_OSX) | ||
LIB_EXT = dylib | ||
CFLAGS += -DOSX -D_OSX | ||
LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 | ||
else | ||
LIB_EXT = so | ||
CFLAGS += -D_LINUX | ||
LINK += -shared | ||
endif | ||
|
||
IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") | ||
|
||
ifeq "$(IS_CLANG)" "1" | ||
CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/") | ||
CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/") | ||
else | ||
CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1) | ||
CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3) | ||
endif | ||
|
||
CFLAGS += -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \ | ||
-Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \ | ||
-Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wno-non-virtual-dtor -Wno-overloaded-virtual \ | ||
-Werror -fPIC -fno-exceptions -fno-rtti -msse -m32 -fno-strict-aliasing | ||
|
||
# Clang || GCC >= 4 | ||
ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" | ||
CFLAGS += $(GCC4_FLAGS) | ||
endif | ||
|
||
# Clang >= 3 || GCC >= 4.7 | ||
ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" | ||
CFLAGS += -Wno-delete-non-virtual-dtor | ||
endif | ||
|
||
# OS is Linux and not using clang | ||
ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1" | ||
LINK += -static-libgcc | ||
endif | ||
|
||
OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) | ||
|
||
|
||
all: $(BIN_DIR) $(BIN_DIR)/$(BINARY) | ||
|
||
$(BIN_DIR): | ||
mkdir -p $(BIN_DIR) | ||
|
||
$(BIN_DIR)/$(BINARY): $(OBJ_BIN) | ||
ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX) | ||
ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX) | ||
$(CPP) $(INCLUDE) -m32 $(OBJ_BIN) $(LINK) -ldl -lm -o $(BIN_DIR)/$(BINARY) | ||
rm -rf $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX) | ||
|
||
$(BIN_DIR)/%.o: %.cpp | ||
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< | ||
|
||
clean: | ||
rm -rf $(BIN_DIR)/*.o | ||
rm -rf $(BIN_DIR)/$(BINARY) | ||
|
||
release: all | ||
mkdir -p addons/metamod | ||
cp unlocked_tickrate.vdf addons/metamod | ||
cp $(BIN_DIR)/$(BINARY) addons | ||
zip -r unlocked_tickrate-$(TICK_RATE).zip addons | ||
rm -rf addons | ||
|
Empty file.
Submodule hl2sdk-ob-valve
added at
1fca80
Submodule metamod-source
added at
f255fa
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
#include <ISmmPlugin.h> | ||
|
||
PLUGIN_GLOBALVARS(); | ||
SH_DECL_HOOK0(IServerGameDLL, GetTickInterval, const, 0, float); | ||
|
||
#ifndef TICK_INTERVAL | ||
# ifdef TICK_RATE | ||
# define TICK_INTERVAL (1.0f/TICK_RATE) | ||
# else | ||
# define TICK_INTERVAL 0.008 | ||
# endif | ||
#endif | ||
|
||
float Hook_GetTickInterval() | ||
{ | ||
RETURN_META_VALUE(MRES_SUPERCEDE, TICK_INTERVAL); | ||
} | ||
|
||
class TickRatePlugin : public ISmmPlugin | ||
{ | ||
public: | ||
bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); | ||
bool Unload(char *error, size_t maxlen); | ||
public: | ||
const char *GetAuthor(); | ||
const char *GetName(); | ||
const char *GetDescription(); | ||
const char *GetURL(); | ||
const char *GetLicense(); | ||
const char *GetVersion(); | ||
const char *GetDate(); | ||
const char *GetLogTag(); | ||
}; | ||
|
||
TickRatePlugin g_TickRatePlugin; | ||
PLUGIN_EXPOSE(TickRatePlugin, g_TickRatePlugin); | ||
|
||
IServerGameDLL *server = NULL; | ||
|
||
bool TickRatePlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late) | ||
{ | ||
PLUGIN_SAVEVARS(); | ||
#if defined METAMOD_PLAPI_VERSION | ||
GET_V_IFACE_ANY(GetServerFactory, server, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); | ||
#else | ||
GET_V_IFACE_ANY(serverFactory, server, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); | ||
#endif | ||
SH_ADD_HOOK_STATICFUNC(IServerGameDLL, GetTickInterval, server, Hook_GetTickInterval, false); | ||
return true; | ||
} | ||
|
||
bool TickRatePlugin::Unload(char *error, size_t maxlen) | ||
{ | ||
SH_REMOVE_HOOK_STATICFUNC(IServerGameDLL, GetTickInterval, server, Hook_GetTickInterval, false); | ||
return true; | ||
} | ||
|
||
const char *TickRatePlugin::GetLicense() { return "MIT"; } | ||
const char *TickRatePlugin::GetVersion() { return "0.1.0"; } | ||
const char *TickRatePlugin::GetDate() { return __DATE__; } | ||
const char *TickRatePlugin::GetLogTag() { return "mms-unlocked-tickrate"; } | ||
const char *TickRatePlugin::GetAuthor() { return "ldesgoui"; } | ||
const char *TickRatePlugin::GetDescription() { return "Force a server's tickrate"; } | ||
const char *TickRatePlugin::GetName() { return "Unlocked Tickrate"; } | ||
const char *TickRatePlugin::GetURL() { return "https://github.com/ldesgoui/mms-unlocked-tickrate"; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
"Metamod Plugin" | ||
{ | ||
"alias" "Unlocked Tickrate" | ||
"file" "addons/unlocked_tickrate" | ||
} |