HPB_bot2_i486.so, HPBot2 ver 0.5 release 106 |
HPB_bot2_i486.so, HPBot2 ver 0.5 release 106 |
Xairoo |
Aug 2 2011, 05:21 AM
Post
#81
|
Member Group: Members Posts: 12 Joined: 31-May 11 Member No.: 1,990 |
maybe 2 .so files are linked bad. i'll check this later this day.
go to your orangebox/bin folder and try this: CODE cp libtier0.so tier0_i486.so cp libvstdlib.so vstdlib_i486.so if it works, run this command after an update too! |
Weasel |
Aug 2 2011, 04:26 PM
Post
#82
|
Member Group: Members Posts: 23 Joined: 14-January 09 From: California, USA Member No.: 1,445 |
maybe 2 .so files are linked bad. i'll check this later this day. go to your orangebox/bin folder and try this: CODE cp libtier0.so tier0_i486.so cp libvstdlib.so vstdlib_i486.so if it works, run this command after an update too! Thanks for the follow-up! But, still not working... CODE Unable to load plugin "../bin/HPB_bot2" Unable to load plugin "../bin/HPB_bot2" Seems kind of weird that it says that twice also. I double-checked and I do not have a .VDF file for this, it's just being done with the command-line +plugin_load option. |
TesterYYY |
Feb 9 2013, 01:14 PM
Post
#83
|
Member Group: Members Posts: 24 Joined: 25-January 13 Member No.: 2,251 |
Can somebody compile rcbot 0.71 for linux? I find it hard to compile it under linux... Manual how to compile under linux would be also good.
|
Cheeseh |
Feb 10 2013, 12:39 AM
Post
#84
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
|
Ted |
Mar 19 2013, 09:04 AM
Post
#85
|
Member Group: Members Posts: 13 Joined: 20-February 13 Member No.: 2,257 |
bir3yk is the guy we'd need to talk to but he hasn't been active for more than a year. I've managed to build and run the latest version on Ubuntu. Some changes had to be made to get it to build as the latest version of GCC is a bit more strict regarding syntax. I also discovered that the RunPlayeroveCommand detouring code for LINUX was causing a segmentation fault since the memory address passed to mprotect needs to be page aligned. After fixing that issue, I managed to add a bot, but it just stands around. Any idea what may be causing this? Also for the changes I made, should I send those to you as a diff or do you want the updated files? |
Cheeseh |
Mar 19 2013, 11:02 AM
Post
#86
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
I've managed to build and run the latest version on Ubuntu. Some changes had to be made to get it to build as the latest version of GCC is a bit more strict regarding syntax. I also discovered that the RunPlayeroveCommand detouring code for LINUX was causing a segmentation fault since the memory address passed to mprotect needs to be page aligned. After fixing that issue, I managed to add a bot, but it just stands around. Any idea what may be causing this? Also for the changes I made, should I send those to you as a diff or do you want the updated files? I'd like the code you used for mprotect as i'm not sure how it works in linux As for bots standing around. Runplayermove hook is the most important function needed, so perhaps its not hooking to the correct address or it's an mprotect problem |
Ted |
Mar 20 2013, 07:34 AM
Post
#87
|
Member Group: Members Posts: 13 Joined: 20-February 13 Member No.: 2,257 |
I'd like the code you used for mprotect as i'm not sure how it works in linux As for bots standing around. Runplayermove hook is the most important function needed, so perhaps its not hooking to the correct address or it's an mprotect problem CODE #include <sys/mman.h> #include <errno.h> #include <unistd.h> ..... #ifndef __linux__ VirtualProtect( &pdwNewInterface[vtable], 4, PAGE_EXECUTE_READWRITE, &dwOld ); #else // need page aligned address char *addr = reinterpret_cast<char *>(reinterpret_cast<DWORD>(&pdwNewInterface[vtable]) - reinterpret_cast<DWORD>(&pdwNewInterface[vtable]) % sysconf(_SC_PAGE_SIZE)); int len = sizeof(DWORD) + reinterpret_cast<DWORD>(&pdwNewInterface[vtable]) % sysconf(_SC_PAGE_SIZE); if (mprotect(addr, len, PROT_EXEC|PROT_READ|PROT_WRITE) == -1) { Warning("In VirtualTableHook while calling mprotect for write access: %s.\n", strerror(errno)); } else { #endif dwStor = pdwNewInterface[vtable]; *(DWORD*)&pdwNewInterface[vtable] = newInterface; #ifndef __linux__ VirtualProtect(&pdwNewInterface[vtable], 4, dwOld, &dwOld); #else if (mprotect(addr, len, PROT_EXEC|PROT_READ) == -1) { Warning("In VirtualTableHook while calling mprotect to remove write access: %s.\n", strerror(errno)); } } #endif |
Cheeseh |
Mar 22 2013, 12:18 AM
Post
#88
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
have a look at sourcemod to see if its the same
CODE void Protect(void *addr, size_t length, int prot) { # if defined PLATFORM_WINDOWS DWORD ignore; VirtualProtect(addr, length, prot, &ignore); # else uintptr_t startPage = AddrToPage(uintptr_t(addr)); length += (uintptr_t(addr) - startPage); mprotect((void*)startPage, length, prot); # endif } static inline uintptr_t AddrToPage(uintptr_t address) { return (address & ~(uintptr_t(sysconf(_SC_PAGE_SIZE) - 1))); } |
Ted |
Mar 22 2013, 11:20 PM
Post
#89
|
Member Group: Members Posts: 13 Joined: 20-February 13 Member No.: 2,257 |
have a look at sourcemod to see if its the same CODE void Protect(void *addr, size_t length, int prot) { # if defined PLATFORM_WINDOWS DWORD ignore; VirtualProtect(addr, length, prot, &ignore); # else uintptr_t startPage = AddrToPage(uintptr_t(addr)); length += (uintptr_t(addr) - startPage); mprotect((void*)startPage, length, prot); # endif } static inline uintptr_t AddrToPage(uintptr_t address) { return (address & ~(uintptr_t(sysconf(_SC_PAGE_SIZE) - 1))); } I believe that does the same as what I posted. An address is page aligned if it is a multiple of the page size. Mprotect will throw an EINVAL if a none-page aligned address is given as the input. To page align the address you want to supply mprotect, you decrease the address by the address modulus page size: addr - (addr % page_size). The snippet from SourceMod uses a bit operator trick to get the same result. For example: CODE address = 6 = 0110 page_size = 4 = 0100 page_size - 1 = 3 = 0011 ~(page_size - 1) = 1100 address & ~(page_size -1) = 4 = 0100 6 - 6 % 4 = 4 = 0100 I believe the reason that they chose this (if I remember correctly from my assembler class) method is that it's an optimized way of getting this calculation because modulus requires more CPU cycles to perform. But the result of this optimization will probably be not noticeable for your case as the calculation is done at most 31 times per game. |
Cheeseh |
Mar 29 2013, 12:03 PM
Post
#90
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
Hey Ted. Yeah I thought so too. I've been trying to compile myself on linux so I can test it myself. I've edited the rcbot files so that it compiles under linux however running into frustrations compiling the latest sdk from http://hg.alliedmods.net/hl2sdks/hl2sdk-ob-valve/
had to put CODE #if defined(_LINUX) || defined(__APPLE__) #define NO_MALLOC_OVERRIDE #endif in memoverride.cpp as it came up with g_pMemAlloc not defined errors now coming up with errors in memstack.cpp CODE ./utils/RCBot2/../../tier1/memstack.cpp <command-line>:0:8: warning: extra tokens at end of #undef directive [enabled by default] <command-line>:0:8: warning: extra tokens at end of #undef directive [enabled by default] <command-line>:0:6: warning: extra tokens at end of #undef directive [enabled by default] ../utils/RCBot2/../../tier1/memstack.cpp:29:48: error: expected constructor, destructor, or type conversion before ‘;’ token ../utils/RCBot2/../../tier1/memstack.cpp: In member function ‘bool CMemoryStack::Init(unsigned int, unsigned int, unsigned int, unsigned int)’: ../utils/RCBot2/../../tier1/memstack.cpp:120:80: error: ‘MemAlloc_AllocAligned’ was not declared in this scope ../utils/RCBot2/../../tier1/memstack.cpp: In member function ‘void CMemoryStack::Term()’: ../utils/RCBot2/../../tier1/memstack.cpp:170:33: error: ‘MemAlloc_FreeAligned’ was not declared in this scope make[1]: *** [obj/HPB_bot2_i486/us/RCBot2/tier1/memstack.o] Error 1 I don't really want to be editing non-rcbot files as I'm not sure about all this tier stuff |
Ted |
Mar 30 2013, 12:04 AM
Post
#91
|
Member Group: Members Posts: 13 Joined: 20-February 13 Member No.: 2,257 |
Actually, I found that you don't really need to include the memoverride and memstack objects for compilation. The current LINUX RCBot2 code base does not use any of the functions from those objects.
Also I found it easier to just specify the project as a plugin object rather than go through the mod project route as specified by the Makefile posted in the forum. This allows you skip building vcpm project, which is severely outdated. The only draw back is that you will have to manually update the Makeifle.plugin file. Hey Ted. Yeah I thought so too. I've been trying to compile myself on linux so I can test it myself. I've edited the rcbot files so that it compiles under linux however running into frustrations compiling the latest sdk from http://hg.alliedmods.net/hl2sdks/hl2sdk-ob-valve/ had to put CODE #if defined(_LINUX) || defined(__APPLE__) #define NO_MALLOC_OVERRIDE #endif in memoverride.cpp as it came up with g_pMemAlloc not defined errors now coming up with errors in memstack.cpp CODE ./utils/RCBot2/../../tier1/memstack.cpp <command-line>:0:8: warning: extra tokens at end of #undef directive [enabled by default] <command-line>:0:8: warning: extra tokens at end of #undef directive [enabled by default] <command-line>:0:6: warning: extra tokens at end of #undef directive [enabled by default] ../utils/RCBot2/../../tier1/memstack.cpp:29:48: error: expected constructor, destructor, or type conversion before ‘;’ token ../utils/RCBot2/../../tier1/memstack.cpp: In member function ‘bool CMemoryStack::Init(unsigned int, unsigned int, unsigned int, unsigned int)’: ../utils/RCBot2/../../tier1/memstack.cpp:120:80: error: ‘MemAlloc_AllocAligned’ was not declared in this scope ../utils/RCBot2/../../tier1/memstack.cpp: In member function ‘void CMemoryStack::Term()’: ../utils/RCBot2/../../tier1/memstack.cpp:170:33: error: ‘MemAlloc_FreeAligned’ was not declared in this scope make[1]: *** [obj/HPB_bot2_i486/us/RCBot2/tier1/memstack.o] Error 1 I don't really want to be editing non-rcbot files as I'm not sure about all this tier stuff |
Cheeseh |
Apr 4 2013, 11:53 AM
Post
#92
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
Actually, I found that you don't really need to include the memoverride and memstack objects for compilation. The current LINUX RCBot2 code base does not use any of the functions from those objects. Also I found it easier to just specify the project as a plugin object rather than go through the mod project route as specified by the Makefile posted in the forum. This allows you skip building vcpm project, which is severely outdated. The only draw back is that you will have to manually update the Makeifle.plugin file. well i've updated the source files on the svn to fix the linux compile issues, and removed dependencies on the tier1 source, (just use the lib). I've run into compile problems yet again where it says "libtier0_srv.so could not read symbols: File in wrong format " garrh, I'm compiling in 64-bit ubuntu but using lib32 libs with -m32 flag, dunno what else I need to check. |
Ted |
Apr 10 2013, 09:25 AM
Post
#93
|
Member Group: Members Posts: 13 Joined: 20-February 13 Member No.: 2,257 |
well i've updated the source files on the svn to fix the linux compile issues, and removed dependencies on the tier1 source, (just use the lib). I've run into compile problems yet again where it says "libtier0_srv.so could not read symbols: File in wrong format " garrh, I'm compiling in 64-bit ubuntu but using lib32 libs with -m32 flag, dunno what else I need to check. Here is my Makefile: CODE # # SDK Makefile for x86 Linux # # ############################################################################# # Developer configurable items ############################################################################# # the name of the mod binary (_i486.so is appended to the end) NAME = HPB_bot2 # the location of the vcproj that builds the mod MOD_PROJ = ../utils/RCBot2/HPB_Bot2.vcproj # the name of the mod configuration (typically <proj name>_<build type><build target>) MOD_CONFIG = HPB_bot2_ReleaseWin32 # the directory the base binaries (tier0_i486.so, etc) are located # this should point to your orange box subfolder of where you have srcds installed. SRCDS_DIR = ~/srcds/orangebox # the path to your mods directory # set this so that 'make install' or 'make installrelease' will copy your binary over automatically. GAME_DIR = $(SRCDS_DIR)/ GCC_VER = 4.7 # compiler options (gcc 3.4.1 or above is required - 4.1.2+ recommended) CC = /usr/bin/gcc-$(GCC_VER) CPLUS = /usr/bin/gcc-$(GCC_VER) CLINK = /usr/bin/gcc-$(GCC_VER) CPP_LIB_DIR = /usr/lib/gcc/x86_64-linux-gnu/4.7/32 CPP_LIB = #"$(CPP_LIB_DIR)/libstdc++.a $(CPP_LIB_DIR)/libgcc_eh.a" VSTD_LIB=libvstdlib_srv.so STEAM_LIB=libsteam.so TIER0_LIB=libtier0_srv.so # put any compiler flags you want passed here USER_CFLAGS = # link flags for your mod, make sure to include any special libraries here LDFLAGS = "-lm -ldl $(LIB_DIR)/particles_i486.a $(LIB_DIR)/dmxloader_i486.a $(LIB_DIR)/mathlib_i486.a $(TIER0_LIB) $(VSTD_LIB) $(LIB_DIR)/tier1_i486.a $(LIB_DIR)/tier2_i486.a $(LIB_DIR)/tier3_i486.a $(LIB_DIR)/choreoobjects_i486.a $(STEAM_LIB)" # XERCES 2.6.0 or above ( http://xml.apache.org/xerces-c/ ) is used by the vcproj to makefile converter # it must be installed before being able to run this makefile # if you have xerces installed already you should be able to use the two lines below XERCES_INC_DIR = /usr/include XERCES_LIB_DIR = /usr/lib # Change this to true if you want to build debug binaries for everything # The only exception is the mod/game as MOD_CONFIG determines if it's a debug build or not DEBUG = false ############################################################################# # Things below here shouldn't need to be altered ############################################################################# MAKE = make AR = "ar rvs" # the dir we want to put binaries we build into BUILD_DIR = . # the place to put object files BUILD_OBJ_DIR = $(BUILD_DIR)/obj # the location of the source code SRC_DIR = .. # the location of the Linux static libraries LIB_DIR = $(SRC_DIR)/lib/linux # the CPU target for the build, must be i486 for now ARCH = i486 ARCH_CFLAGS = -mtune=i686 -march=pentium3 -mmmx -m32 DEFINES = -D_LINUX -DLINUX -DVPROF_LEVEL=1 -DSWDS -D_finite=finite -Dstricmp=strcasecmp -D_stricmp=strcasecmp \ -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -DGNUC UNDEF = -Usprintf -Ustrncpy -UPROTECTED_THINGS_ENABLE BASE_CFLAGS = -fno-strict-aliasing -Wall -Wconversion -Wno-non-virtual-dtor -Wno-invalid-offsetof SHLIBEXT = so SHLIBCFLAGS = -fPIC SHLIBLDFLAGS = -shared -Wl,-Map,$@_map.txt -Wl # Flags passed to the c compiler CFLAGS = $(DEFINES) $(ARCH_CFLAGS) -g $(BASE_CFLAGS) ifdef USER_CFLAGS CFLAGS += $(USER_CFLAGS) endif CFLAGS += $(UNDEF) # Debug flags DBG_DEFINES = "-D_DEBUG -DDEBUG" DBG_CFLAGS = "$(DEFINES) $(ARCH_CFLAGS) -g -ggdb $(BASE_CFLAGS) $(UNDEF)" # define list passed to make for the sub makefile BASE_DEFINES = CC=$(CC) AR=$(AR) CPLUS=$(CPLUS) CPP_LIB=$(CPP_LIB) DEBUG=$(DEBUG) \ BUILD_DIR=$(BUILD_DIR) BUILD_OBJ_DIR=$(BUILD_OBJ_DIR) SRC_DIR=$(SRC_DIR) \ LIB_DIR=$(LIB_DIR) SHLIBLDFLAGS=$(SHLIBLDFLAGS) SHLIBEXT=$(SHLIBEXT) \ CLINK=$(CLINK) CFLAGS="$(CFLAGS)" DBG_CFLAGS=$(DBG_CFLAGS) LDFLAGS=$(LDFLAGS) \ DEFINES="$(DEFINES)" DBG_DEFINES=$(DBG_DEFINES) \ ARCH=$(ARCH) SRCDS_DIR=$(SRCDS_DIR) MOD_CONFIG=$(MOD_CONFIG) NAME=$(NAME) \ XERCES_INC_DIR=$(XERCES_INC_DIR) XERCES_LIB_DIR=$(XERCES_LIB_DIR) \ TIER0_LIB=$(TIER0_LIB) VSTD_LIB=$(VSTD_LIB) # Project Makefile MAKE_SERVER = Makefile.server MAKE_VCPM = Makefile.vcpm MAKE_PLUGIN = Makefile.plugin MAKE_TIER1 = Makefile.tier1 MAKE_MATH = Makefile.mathlib MAKE_CHOREO = Makefile.choreo all: check vcpm mod check: $(TIER0_LIB) $(STEAM_LIB) $(VSTD_LIB) tier1 mathlib choreo if [ -x "$(CC)" ]; then echo "Compiler not defined."; exit; fi if [ ! -d $(BUILD_DIR) ];then mkdir -p $(BUILD_DIR);fi # cd $(BUILD_DIR) # if [ ! -e "$(LIB_DIR)/tier1_i486.a" ]; then $(MAKE) tier1;fi # if [ ! -e "$(LIB_DIR)/mathlib_i486.a" ]; then $(MAKE) mathlib;fi # if [ ! -e "$(LIB_DIR)/choreoobjects_i486.a" ]; then $(MAKE) choreo;fi %.so: $(SRCDS_DIR)/bin/%.so ln -s $(SRCDS_DIR)/bin/$@ vcpm: $(MAKE) -f $(MAKE_VCPM) $(BASE_DEFINES) mod: check vcpm export LD_LIBRARY_PATH=./ && ./vcpm $(MOD_PROJ) $(MAKE) -f $(MAKE_SERVER) $(BASE_DEFINES) plugin: check $(MAKE) -f $(MAKE_PLUGIN) $(BASE_DEFINES) tier1: $(LIB_DIR)/tier1_i486.a $(MAKE) -f $(MAKE_TIER1) $(BASE_DEFINES) mathlib: $(LIB_DIR)/mathlib_i486.a $(MAKE) -f $(MAKE_MATH) $(BASE_DEFINES) choreo: $(LIB_DIR)/choreoobjects_i486.a $(MAKE) -f $(MAKE_CHOREO) $(BASE_DEFINES) install: cp -f $(NAME)_$(ARCH).$(SHLIBEXT) $(GAME_DIR)/bin/$(NAME)_$(ARCH).$(SHLIBEXT) installrelease: cp -f $(NAME)_$(ARCH).$(SHLIBEXT) $(GAME_DIR)/bin/$(NAME)_$(ARCH).$(SHLIBEXT) strip $(GAME_DIR)/bin/$(NAME)_$(ARCH).$(SHLIBEXT) clean: $(MAKE) -f $(MAKE_VCPM) $(BASE_DEFINES) clean $(MAKE) -f $(MAKE_PLUGIN) $(BASE_DEFINES) clean $(MAKE) -f $(MAKE_SERVER) $(BASE_DEFINES) clean $(MAKE) -f $(MAKE_TIER1) $(BASE_DEFINES) clean $(MAKE) -f $(MAKE_MATH) $(BASE_DEFINES) clean $(MAKE) -f $(MAKE_CHOREO) $(BASE_DEFINES) clean rm $(TIER0_LIB) $(STEAM_LIB) $(VSTD_LIB) rmdir obj Makefile.plugin CODE # # Sample server plugin for SRC engine # # October 2004, alfred@valvesoftware.com # NAME = HPB_Bot2 PLUGIN_SRC_DIR = $(SRC_DIR)/utils/RCBot2 PUBLIC_SRC_DIR = $(SRC_DIR)/public TIER0_PUBLIC_SRC_DIR = $(SRC_DIR)/public/tier0 TIER1_PUBLIC_SRC_DIR = $(SRC_DIR)/public/tier1 PLUGIN_OBJ_DIR = $(BUILD_OBJ_DIR)/$(NAME)_$(ARCH) TIER0_OBJ_DIR = $(PLUGIN_OBJ_DIR)/tier0 INCLUDEDIRS = -I$(PUBLIC_SRC_DIR) -I$(TIER0_PUBLIC_SRC_DIR) -I$(TIER1_PUBLIC_SRC_DIR) -I$(PUBLIC_SRC_DIR)/mathlib -I$(SRC_DIR)/game/shared -I$(SRC_DIR)/game/server -I$(PUBLIC_SRC_DIR)/game/server -I$(PUBLIC_SRC_DIR)/engine LDFLAGS_PLG = -lm -ldl $(TIER0_LIB) $(VSTD_LIB) $(LIB_DIR)/mathlib_i486.a $(LIB_DIR)/tier1_i486.a $(LIB_DIR)/tier2_i486.a DO_CC = $(CPLUS) $(INCLUDEDIRS) -DARCH=$(ARCH) ifeq "$(DEBUG)" "true" DO_CC += $(DBG_DEFINES) $(DBG_CFLAGS) else DO_CC += -DNDEBUG $(CFLAGS) endif DO_CC += -o $@ -c $< ##################################################################### PLUGIN_OBJS = \ $(PLUGIN_OBJ_DIR)/bot.o \ $(PLUGIN_OBJ_DIR)/bot_accessclient.o \ $(PLUGIN_OBJ_DIR)/bot_buttons.o \ $(PLUGIN_OBJ_DIR)/bot_client.o \ $(PLUGIN_OBJ_DIR)/bot_commands.o \ $(PLUGIN_OBJ_DIR)/bot_configfile.o \ $(PLUGIN_OBJ_DIR)/bot_coop.o \ $(PLUGIN_OBJ_DIR)/bot_css_bot.o \ $(PLUGIN_OBJ_DIR)/bot_dod_bot.o \ $(PLUGIN_OBJ_DIR)/bot_events.o \ $(PLUGIN_OBJ_DIR)/bot_fortress.o \ $(PLUGIN_OBJ_DIR)/bot_ga.o \ $(PLUGIN_OBJ_DIR)/bot_ga_ind.o \ $(PLUGIN_OBJ_DIR)/bot_getprop.o \ $(PLUGIN_OBJ_DIR)/bot_globals.o \ $(PLUGIN_OBJ_DIR)/bot_hl1dmsrc.o \ $(PLUGIN_OBJ_DIR)/bot_hldm_bot.o \ $(PLUGIN_OBJ_DIR)/bot_kv.o \ $(PLUGIN_OBJ_DIR)/bot_main.o \ $(PLUGIN_OBJ_DIR)/bot_mods.o \ $(PLUGIN_OBJ_DIR)/bot_mtrand.o \ $(PLUGIN_OBJ_DIR)/bot_navmesh.o \ $(PLUGIN_OBJ_DIR)/bot_perceptron.o \ $(PLUGIN_OBJ_DIR)/bot_profile.o \ $(PLUGIN_OBJ_DIR)/bot_profiling.o \ $(PLUGIN_OBJ_DIR)/bot_schedule.o \ $(PLUGIN_OBJ_DIR)/bot_script.o \ $(PLUGIN_OBJ_DIR)/bot_som.o \ $(PLUGIN_OBJ_DIR)/bot_strings.o \ $(PLUGIN_OBJ_DIR)/bot_task.o \ $(PLUGIN_OBJ_DIR)/bot_usercmd.o \ $(PLUGIN_OBJ_DIR)/bot_utility.o \ $(PLUGIN_OBJ_DIR)/bot_visibles.o \ $(PLUGIN_OBJ_DIR)/bot_waypoint.o \ $(PLUGIN_OBJ_DIR)/bot_waypoint_locations.o \ $(PLUGIN_OBJ_DIR)/bot_waypoint_visibility.o \ $(PLUGIN_OBJ_DIR)/bot_weapons.o \ $(PLUGIN_OBJ_DIR)/bot_wpt_dist.o \ $(PLUGIN_OBJ_DIR)/bot_zombie.o \ TIER0_OBJS = all: dirs $(NAME)_$(ARCH).$(SHLIBEXT) dirs: -mkdir -p $(BUILD_OBJ_DIR) -mkdir -p $(PLUGIN_OBJ_DIR) -mkdir -p $(TIER0_OBJ_DIR) $(NAME)_$(ARCH).$(SHLIBEXT): $(PLUGIN_OBJS) $(TIER0_OBJS) $(CLINK) -o $(BUILD_DIR)/$@ -m32 $(SHLIBLDFLAGS) $(PLUGIN_OBJS) $(TIER0_OBJS) $(PUBLIC_OBJS) $(CPP_LIB) $(LDFLAGS_PLG) $(CPP_LIB) $(PLUGIN_OBJ_DIR)/%.o: $(PLUGIN_SRC_DIR)/%.cpp $(DO_CC) $(TIER0_OBJ_DIR)/%.o: $(TIER0_PUBLIC_SRC_DIR)/%.cpp $(DO_CC) clean: -rm -rf $(PLUGIN_OBJ_DIR) -rm -f $(NAME)_$(ARCH).$(SHLIBEXT) I turned off the compiler optimzer -O3 in order to debug and turned on debugging flags. |
Cheeseh |
Apr 13 2013, 12:16 AM
Post
#94
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
cheers Ted, I had to make a few changes though, and for some reason says "gcc-4.7 -shared false -o ..." unknown command false . obv something missing, and couldn't find that in the makefile. Anyway I just copied and pasted it into the terminal and removed 'false' and it compiled.
Would anyone care to try? For dods in linux: the rcbot_runplayer_cmd_dods must be 415 for non steampipe otherwise it will crash http://rcbot.bots-united.com/downloads/HPB..._i486.so.tar.gz |
RMCvik |
Oct 17 2013, 02:14 PM
Post
#95
|
Member Group: Members Posts: 12 Joined: 13-October 13 Member No.: 2,311 |
hi guys new to this
downloaded the bots for dods followed all th einstructions fo rinstalling to a rented linux server when i ran the command i got this show up in concole any help would be appreciated im dying to get these running ] rcon plugin_load HPB_bot2_i486.so<<<< was the command i used failed to dlopen /home/games/dods/1071250/178.32.80.157:27015/orangebox/bin/HPB_bot2_i486.so error=/home/games/dods/1071250/178.32.80.157:27015/orangebox/bin/HPB_bot2_i486.so: ELF file OS ABI invalid failed to dlopen HPB_bot2_i486.so error=bin/HPB_bot2_i486.so: ELF file OS ABI invalid Unable to load plugin "HPB_bot2_i486.so" U so what went worng what does ELF file OS ABI invalid mean. im stuck and dont know how to get the bots to work:( |
RMCvik |
Oct 30 2013, 05:17 PM
Post
#96
|
Member Group: Members Posts: 12 Joined: 13-October 13 Member No.: 2,311 |
ok now i did this in console
] rcon plugin_load rcbot_mm_i586 .so this is what appeared inthe console Loaded plugin "rcbot_mm_i586" then i added this line rcbotd addbot server shut down and rebooted itself plz help as i ma lost now |
madmax2 |
Nov 1 2013, 06:47 PM
Post
#97
|
RCBot Guru Group: Waypointers Posts: 957 Joined: 2-March 12 From: USA, WA state Member No.: 2,162 |
Hi RMCvik,
I'm not sure if there is a linux build that will work on rented servers right now? I believe the last release for linux was .75r2. The rcbot folder must still be installed to your home folder with that version, which may not be accessable on a rented server? A few things to check: I think the rcbot_runplayer_cmd_dods & rcbot_runplayer_cmd_tf2 settings are currently the same, the sourcemodplugins.org site for dods is wrong. currently windows=417 & linux=418 If it crashes when adding a bot, do this manually... start the game server running and load the rcbot2 plugin with the -insecure switch, then manually enter the rcbot_runplayer_cmd & variable (rcbot_runplayer_cmd_dods 418), then try rcbotd addbot. Cross your fingers... Check these threads, it's windows but still good info... See Cheesehs Post #9 http://rcbot.bots-united.com/forums/index....amp;#entry12150 and this one on steamcmd, rcbot .76 is the solution for windows, the rcbot folder can be relocated to the server folder instead of the user/home folder... http://rcbot.bots-united.com/forums/index....amp;#entry12321 Again, I'm not sure this will work on a rented linux server, even if you do have access to the home folder...? rcbot2 .76 is suppose to fix this issue (rented servers)... Good Luck, max |
RMCvik |
Nov 1 2013, 07:02 PM
Post
#98
|
Member Group: Members Posts: 12 Joined: 13-October 13 Member No.: 2,311 |
Hi RMCvik, I'm not sure if there is a linux build that will work on rented servers right now? I believe the last release for linux was .75r2. The rcbot folder must still be installed to your home folder with that version, which may not be accessable on a rented server? A few things to check: I think the rcbot_runplayer_cmd_dods & rcbot_runplayer_cmd_tf2 settings are currently the same, the sourcemodplugins.org site for dods is wrong. currently windows=417 & linux=418 If it crashes when adding a bot, do this manually... start the game server running and load the rcbot2 plugin with the -insecure switch, then manually enter the rcbot_runplayer_cmd & variable (rcbot_runplayer_cmd_dods 418), then try rcbotd addbot. Cross your fingers... Check these threads, it's windows but still good info... See Cheesehs Post #9 http://rcbot.bots-united.com/forums/index....amp;#entry12150 and this one on steamcmd, rcbot .76 is the solution for windows, the rcbot folder can be relocated to the server folder instead of the user/home folder... http://rcbot.bots-united.com/forums/index....amp;#entry12321 Again, I'm not sure this will work on a rented linux server, even if you do have access to the home folder...? rcbot2 .76 is suppose to fix this issue (rented servers)... Good Luck, max whats the -insecure swich plz? and thanks for replaying thought i was talking to a dead world lol |
RMCvik |
Nov 2 2013, 05:14 PM
Post
#99
|
Member Group: Members Posts: 12 Joined: 13-October 13 Member No.: 2,311 |
dint work mate:(
i need someone to go into my ftp to check igot the right files int he right place and guide me thorugh it as if i ws a 5 year old spastic im not the greatest techie |
madmax2 |
Nov 3 2013, 03:31 AM
Post
#100
|
RCBot Guru Group: Waypointers Posts: 957 Joined: 2-March 12 From: USA, WA state Member No.: 2,162 |
whats the -insecure swich plz? and thanks for replaying thought i was talking to a dead world lol -insecure disables "Valve Anti Cheat" (VAC) for your game server. Rcbot2 needs sv_cheats enabled to work. RCbot2 is not an "approved" plugin... Heh heh, well it's not quite a dead world... Activity here seems to go up & down with the seasons... I'm not the greatest techie either, I feel like the blind leading the blind when it comes to this stuff... Don't think I can be much more help on this, as I don't know linux, or Source engine dedi setups or rented servers. Just been going by what I've read here & HL1 LAN dedi experience. I haven't seen any confirmation anyone has got the linux build of rcbot2 running correctly on a rented server. I haven't even seen positive feedback for the latest windows build (.76) running on a rented server. Although Cheeseh did provide a dll with .76 that looks for the rcbot2 folder above the mod folder, .75r2 won't do that... Where has the rcbot2 folder been installed on your server, what path? The path to the hpb_bot2_i486.so looks odd to me, with the IP address & i guess an account number inbedded into the path, but maybe thats ok? The hpb_bot2_i486.so should be in the bin folder next to the dod game/mod folder. What does your bot_mods.ini dod part say? Just so you know, this could be a complete waist of time, you may need a rcbot2 .76 linux build, to make it work... I take it that you don't have a windows option for the rented server? |
Lo-Fi Version | Time is now: 22nd December 2024 - 06:46 PM |