From aec37282f8d7a9e4e501c93307a56205eb730acf Mon Sep 17 00:00:00 2001 From: Lucas GAUTHERON Date: Mon, 25 Apr 2011 23:23:02 +0000 Subject: [PATCH] kill messages cfg editable in game, and separated from server config git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6347 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- config/killmessages.cfg | 26 ------------- config/menus_settings.cfg | 36 +++++++++--------- config/servercmdline.txt | 2 +- source/src/clientgame.cpp | 78 +++++++++++++++++++++++---------------- source/src/main.cpp | 3 +- source/src/protos.h | 4 +- source/vcpp/cubeprj.sln | 29 --------------- 7 files changed, 69 insertions(+), 109 deletions(-) delete mode 100644 config/killmessages.cfg delete mode 100644 source/vcpp/cubeprj.sln diff --git a/config/killmessages.cfg b/config/killmessages.cfg deleted file mode 100644 index 155cfe71..00000000 --- a/config/killmessages.cfg +++ /dev/null @@ -1,26 +0,0 @@ -// kill messages - -// sets frag and gib messages -// they will appear on the HUD (client) and in the logs (server) -// e.g. fragmessage 2 "picked off" => set "picked off" as carbine's kill message : -// you picked off unarmed - -// WARNING : since this file is used by both client and server -// you SHOULDN'T use cubescript here. -// But if you really need to, you can use separate files, -// using -E switch to set another kill messages file in your server command line - -fragmessage 1 busted // pistol -fragmessage 2 "picked off" // carbine -fragmessage 3 peppered // shotgun -fragmessage 4 sprayed // smg -fragmessage 5 punctured // sniper -fragmessage 6 shredded // assault rifle -fragmessage 7 busted // cpistol -fragmessage 9 busted // akimbo - -gibmessage 0 slashed // knife -gibmessage 3 splattered // shotgun gib -gibmessage 5 headshot // sniper gib -gibmessage 8 gibbed // nade gib - diff --git a/config/menus_settings.cfg b/config/menus_settings.cfg index d7086037..a63085bd 100644 --- a/config/menus_settings.cfg +++ b/config/menus_settings.cfg @@ -383,7 +383,7 @@ menuitemcheckbox "Show scores on death: " "$showscoresondeath" [ showscoresondea menuitem "Change to the enemy team" [ changeteam ] menuitem "Change weapon..." [ showmenu Weapons ] menuitem "Change player skin..." [ showmenu (at [CLA RVSF] (curteam)) ] -// menuitem "Edit kill messages" [ showmenu "Kill Messages" ] // Uncomment when kill messages are ready. (written to saved.cfg) +menuitem "Edit kill messages" [ showmenu "Kill Messages" ] menuitemslider "Akimbo end action: " 0 2 "$akimboendaction" 1 [ "Switch to pistol" "Switch to primary weapon" "Switch to grenades" ] [ akimboendaction $arg1 ] __fontsetting = 0 // Initial setting for status of fonts so AC doesn't give errors. @@ -592,22 +592,20 @@ menuitemcheckbox "Thanks, man: " "(soundmuted 96)" [ mutesound 96 (! menuitemcheckbox "Awesome (1): " "(soundmuted 97)" [ mutesound 97 (! $arg1) ] menuitemcheckbox "Awesome (2): " "(soundmuted 98)" [ mutesound 98 (! $arg1) ] -// The kill messages must be written to saved.cfg before the menu below will really become of any use. -// Uncomment when the kill messages are ready. (assuming no further editing is necessary) -// newmenu "Kill Messages" -// menuitemvar [concat (c 9)Frag messages: ] [] [] -// menuitemtextinput [Pistol: ] [fragmessage 1] [ fragmessage 1 $arg1 ] [] 256 -// menuitemtextinput [Carbine: ] [fragmessage 2] [ fragmessage 2 $arg1 ] [] 256 -// menuitemtextinput [Shotgun: ] [fragmessage 3] [ fragmessage 3 $arg1 ] [] 256 -// menuitemtextinput [SMG: ] [fragmessage 4] [ fragmessage 4 $arg1 ] [] 256 -// menuitemtextinput [Sniper: ] [fragmessage 5] [ fragmessage 5 $arg1 ] [] 256 -// menuitemtextinput [AR: ] [fragmessage 6] [ fragmessage 6 $arg1 ] [] 256 -// menuitemtextinput [CPistol: ] [fragmessage 7] [ fragmessage 7 $arg1 ] [] 256 -// menuitemtextinput [Akimbo: ] [fragmessage 9] [ fragmessage 9 $arg1 ] [] 256 -// menuitem [] -1 -// menuitemvar [concat (c 9)Gib messages: ] [] [] -// menuitemtextinput [Knife: ] [gibmessage 0] [ gibmessage 0 $arg1 ] [] 256 -// menuitemtextinput [Shotgun: ] [gibmessage 3] [ gibmessage 3 $arg1 ] [] 256 -// menuitemtextinput [Sniper: ] [gibmessage 5] [ gibmessage 5 $arg1 ] [] 256 -// menuitemtextinput [Grenades: ] [gibmessage 8] [ gibmessage 8 $arg1 ] [] 256 +newmenu "Kill Messages" +menuitemvar [concat (c 9)Frag messages: ] [] [] +menuitemtextinput [Pistol: ] [fragmessage 1] [ fragmessage 1 $arg1 ] [] 256 +menuitemtextinput [Carbine: ] [fragmessage 2] [ fragmessage 2 $arg1 ] [] 256 +menuitemtextinput [Shotgun: ] [fragmessage 3] [ fragmessage 3 $arg1 ] [] 256 +menuitemtextinput [SMG: ] [fragmessage 4] [ fragmessage 4 $arg1 ] [] 256 +menuitemtextinput [Sniper: ] [fragmessage 5] [ fragmessage 5 $arg1 ] [] 256 +menuitemtextinput [AR: ] [fragmessage 6] [ fragmessage 6 $arg1 ] [] 256 +menuitemtextinput [CPistol: ] [fragmessage 7] [ fragmessage 7 $arg1 ] [] 256 +menuitemtextinput [Akimbo: ] [fragmessage 9] [ fragmessage 9 $arg1 ] [] 256 +menuitem [] -1 +menuitemvar [concat (c 9)Gib messages: ] [] [] +menuitemtextinput [Knife: ] [gibmessage 0] [ gibmessage 0 $arg1 ] [] 256 +menuitemtextinput [Shotgun: ] [gibmessage 3] [ gibmessage 3 $arg1 ] [] 256 +menuitemtextinput [Sniper: ] [gibmessage 5] [ gibmessage 5 $arg1 ] [] 256 +menuitemtextinput [Grenades: ] [gibmessage 8] [ gibmessage 8 $arg1 ] [] 256 diff --git a/config/servercmdline.txt b/config/servercmdline.txt index 630326cc..0b4e1f10 100644 --- a/config/servercmdline.txt +++ b/config/servercmdline.txt @@ -40,7 +40,7 @@ // -B // server IP blacklist file, default config/serverblacklist.cfg // -K // server nickname blacklist file, default config/nicknameblacklist.cfg // -g // server forbidden words file, default config/forbidden.cfg -// -E // server kill messages file, default config/killmessages.cfg +// -E // server kill messages file, default config/serverkillmessages.cfg // -P // voting permission string (read docs/commandline.html) // k kick players // b ban players (and remove bans) diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index e58f9ccf..41b028c1 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -750,6 +750,53 @@ bool tryrespawn() VARP(hitsound, 0, 0, 1); +// client kill messages +void setkillmessage(int gun, bool gib, const char *message) +{ + if(!message || !*message) + { + result(killmessage(gun, gib)); + return; + } + + if(gun < 0 || gun >= NUMGUNS) + { + conoutf("invalid gun specified"); + return; + } + + if(gib) copystring(gibmessages[gun], message, sizeof(gibmessages[gun])); + else copystring(fragmessages[gun], message, sizeof(fragmessages[gun])); +} + +void fragmessage(const char *gun, const char *message) +{ + setkillmessage(atoi(gun), false, message); +} + +void gibmessage(const char *gun, const char *message) +{ + setkillmessage(atoi(gun), true, message); +} + +COMMAND(fragmessage, ARG_2STR); +COMMAND(gibmessage, ARG_2STR); + +void writekillmsgcfg() +{ + stream *f = openfile(path("config/killmessages.cfg", true), "w"); + if(!f) return; + f->printf("// kill messages for each weapon\n"); + loopi(NUMGUNS) + { + const char *fragmsg = killmessage(i, false); + const char *gibmsg = killmessage(i, true); + f->printf("\nfragmessage %d \"%s\"", i, fragmsg); + f->printf("\ngibmessage %d \"%s\"", i, gibmsg); + } + f->printf("\n"); +} + // damage arriving from the network, monsters, yourself, all ends up here. void dodamage(int damage, playerent *pl, playerent *actor, int gun, bool gib, bool local) @@ -785,37 +832,6 @@ void dodamage(int damage, playerent *pl, playerent *actor, int gun, bool gib, bo else audiomgr.playsound(S_PAIN1+rnd(5), pl); } -void setkillmessage(int gun, bool gib, const char *message) -{ - if(!message || !*message) - { - result(killmessage(gun, gib)); - return; - } - - if(gun < 0 || gun >= NUMGUNS) - { - conoutf("invalid gun specified"); - return; - } - - if(gib) copystring(gibmessages[gun], message, sizeof(gibmessages[gun])); - else copystring(fragmessages[gun], message, sizeof(fragmessages[gun])); -} - -void fragmessage(const char *gun, const char *message) -{ - setkillmessage(atoi(gun), false, message); -} - -void gibmessage(const char *gun, const char *message) -{ - setkillmessage(atoi(gun), true, message); -} - -COMMAND(fragmessage, ARG_2STR); -COMMAND(gibmessage, ARG_2STR); - void dokill(playerent *pl, playerent *act, bool gib, int gun) { if(pl->state!=CS_ALIVE || intermission) return; diff --git a/source/src/main.cpp b/source/src/main.cpp index 4dea43e8..277fc5b3 100644 --- a/source/src/main.cpp +++ b/source/src/main.cpp @@ -34,6 +34,7 @@ void quit() // normal exit extern void writeinitcfg(); writeinitcfg(); writeservercfg(); + writekillmsgcfg(); if(resetcfg) deletecfg(); else writecfg(); cleanup(NULL); @@ -1107,7 +1108,6 @@ int main(int argc, char **argv) exec("config/scontext.cfg"); exec("config/locale.cfg"); exec("config/keymap.cfg"); - exec("config/killmessages.cfg"); exec("config/menus.cfg"); exec("config/scripts.cfg"); exec("config/prefabs.cfg"); @@ -1115,6 +1115,7 @@ int main(int argc, char **argv) exec("config/securemaps.cfg"); exec("config/admin.cfg"); execfile("config/servers.cfg"); + execfile("config/killmessages.cfg"); persistidents = true; static char resdata[] = { 112, 97, 99, 107, 97, 103, 101, 115, 47, 116, 101, 120, 116, 117, 114, 101, 115, 47, 107, 117, 114, 116, 47, 107, 108, 105, 116, 101, 50, 46, 106, 112, 103, 0 }; diff --git a/source/src/protos.h b/source/src/protos.h index 2354fb35..c267e2b1 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -746,6 +746,7 @@ extern void push(const char *name, const char *action); extern void pop(const char *name); extern void alias(const char *name, const char *action); extern const char *getalias(const char *name); +extern void writekillmsgcfg(); extern void writecfg(); extern void deletecfg(); extern void identnames(vector &names, bool builtinonly); @@ -847,7 +848,6 @@ struct serverconfigfile }; // server commandline parsing - struct servercommandline { int uprate, serverport, syslogfacility, filethres, syslogthres, maxdemos, maxclients, kickthreshold, banthreshold, verbose, incoming_limit, afk_limit, ban_time, demotimelocal; @@ -861,7 +861,7 @@ struct servercommandline maxclients(DEFAULTCLIENTS), kickthreshold(-5), banthreshold(-6), verbose(0), incoming_limit(10), afk_limit(45000), ban_time(20*60*1000), demotimelocal(0), ip(""), master(NULL), logident(""), serverpassword(""), adminpasswd(""), demopath(""), maprot("config/maprot.cfg"), pwdfile("config/serverpwd.cfg"), blfile("config/serverblacklist.cfg"), nbfile("config/nicknameblacklist.cfg"), - infopath("config/serverinfo"), motdpath("config/motd"), forbidden("config/forbidden.cfg"), killmessages("config/killmessages.cfg"), + infopath("config/serverinfo"), motdpath("config/motd"), forbidden("config/forbidden.cfg"), killmessages("config/serverkillmessages.cfg"), logtimestamp(false), demo_interm(false), clfilenesting(0) { diff --git a/source/vcpp/cubeprj.sln b/source/vcpp/cubeprj.sln deleted file mode 100644 index 85f2264b..00000000 --- a/source/vcpp/cubeprj.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cube", "cube.vcxproj", "{1FAF5BB4-C49A-4124-9F23-188528BAE7C8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Profile|Win32 = Profile|Win32 - Release|Win32 = Release|Win32 - Standalone Debug|Win32 = Standalone Debug|Win32 - Standalone|Win32 = Standalone|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Debug|Win32.ActiveCfg = Debug|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Debug|Win32.Build.0 = Debug|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Profile|Win32.ActiveCfg = Profile|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Profile|Win32.Build.0 = Profile|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Release|Win32.ActiveCfg = Release|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Release|Win32.Build.0 = Release|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Standalone Debug|Win32.ActiveCfg = Standalone Debug|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Standalone Debug|Win32.Build.0 = Standalone Debug|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Standalone|Win32.ActiveCfg = Standalone|Win32 - {1FAF5BB4-C49A-4124-9F23-188528BAE7C8}.Standalone|Win32.Build.0 = Standalone|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal