ec- / baseq3a Goto Github PK
View Code? Open in Web Editor NEWUnofficial Quake III Arena gamecode patch
Unofficial Quake III Arena gamecode patch
When setting cg_drawweaponselect to 3 or -3, eventually the weapon bar will grow so long that it will extend into the area where pickup messages (for ammo, armor etc) at the bottom left are shown, preventing them from being displayed.
I am not classifying this as a bug since you can use other cvar values to prevent this, but I am wondering if there was a way to solve it anyway, e.g. by shrinking the weapon bar on demand or possibly moving it higher when it's growing too much in size.
ED_vsprintf and Q_sscanf crash on map load / client start up on GNU/Linux x86_64. Ran with Quake3e git master. The game works after replacing the functions with system vsprintf and sscanf though.
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff191e5a1 in Q_strlen (s=0x3000000008 <error: Cannot access memory at address 0x3000000008>) at ../../code/game/bg_misc.c:2099
2099 while ( *s != '\0' )
(gdb) bt
#0 0x00007ffff191e5a1 in Q_strlen (s=0x3000000008 <error: Cannot access memory at address 0x3000000008>) at ../../code/game/bg_misc.c:2099
#1 0x00007ffff191e9fc in AddString (buf_p=0x7fffffffb1b8, string=0x3000000008 <error: Cannot access memory at address 0x3000000008>, width=0, prec=-1) at ../../code/game/bg_misc.c:2279
#2 0x00007ffff191ec98 in ED_vsprintf (buffer=0x7fffffffb200 "gamename: me Initialization -------\n", fmt=0x7ffff1950669 "\n", argptr=0x7fffffffd200) at ../../code/game/bg_misc.c:2403
#3 0x00007ffff18f2d25 in G_Printf (fmt=0x7ffff195065d "gamename: %s\n") at ../../code/game/g_main.c:230
#4 0x00007ffff18f360f in G_InitGame (levelTime=0, randomSeed=12894, restart=0) at ../../code/game/g_main.c:489
#5 0x00007ffff18f2bc4 in vmMain (command=0, arg0=0, arg1=12894, arg2=0) at ../../code/game/g_main.c:189
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff191f04b in Q_sscanf (buffer=0x7ffff1cd8910 <level+4048> "", fmt=0x7ffff1956940 "") at ../../code/game/bg_misc.c:2652
2652 *(float *)*arg = _atof( &buffer );
(gdb) bt
#0 0x00007ffff191f04b in Q_sscanf (buffer=0x7ffff1cd8910 <level+4048> "", fmt=0x7ffff1956940 "") at ../../code/game/bg_misc.c:2652
#1 0x00007ffff193dab5 in G_ParseField (key=0x7ffff1cd88fc <level+4028> "origin", value=0x7ffff1cd8903 <level+4035> "", ent=0x7ffff1be01f8 <g_entities+69496>) at ../../code/game/g_spawn.c:351
#2 0x00007ffff193dc3b in G_SpawnGEntityFromSpawnVars () at ../../code/game/g_spawn.c:398
#3 0x00007ffff193e3a1 in G_SpawnEntitiesFromString () at ../../code/game/g_spawn.c:627
#4 0x00007ffff18f3873 in G_InitGame (levelTime=0, randomSeed=5487, restart=0) at ../../code/game/g_main.c:566
#5 0x00007ffff18f2ba4 in vmMain (command=0, arg0=0, arg1=5487, arg2=0) at ../../code/game/g_main.c:189
Since this mod adds some essential features to base Q3, I suggest adding new cvars to remove these annoyances.
OSP has cg_damageDraw, cg_damageKick, and cg_fallKick. CPMA has cg_damageDraw and cg_viewAdjustments.
I guess it wouldn’t be too hard to port these cvars from Edawn?
Would be absolutely incredible to have these for Q3 purists.
Player animations are often change to a random frame number after death because there is no free body queue spot. Additionally corpses sometimes will start to rotate, this happens also due to the too small body queue size. This is a long standing vQ3 bug. I highly recommend to increase the body queue size to 128 or even more (although 128 seems enough to get rid of this issue assuming 64 clients/bots is the maximum of connected clients).
The fix for this bug is simple, just increase BODY_QUEUE_SIZE in g_local.h from 8 to 128.
In case you never experienced this issue, here is the test scenario:
zturtleman used my fix here as well: zturtleman/mint-arena@3faafa1#diff-8f5ec7e7dd41d8912016c09df1d25db2 though he just increased the body queue size to 64 (I don't remember why he only uses 64, maybe we thought it will count to maximum clients or so, but this is NOT the case). Unfortunately my old google code project (ioid3) he is referring to is gone.
if a player's name is maximum length (32) and they use say_team command at a location on map where target_location is >= 20 chars it will crash the game with "Com_Sprintf: Overflow of 64 (or more) in 64"
this happens in various locations on various maps but one example go to quad in center of q3ctf3 and use say_team (Middle Battlegrounds). it doesn't matter the message length, it crashes because the name[64] buffer used it too small to hold the name and location plus other formatting in string.
the solution is to just increase "name" buffer size in G_Say (g_cmds.c)
When playing matches without warmup (g_warmup time 0) powerups spawn immediatly after the map is loaded. This is changing gameplay very much because the player who spawns next to the powerup has a strong benefit compared to other players. By default there was a delayed spawn time to prevent such unfair situations.
NOTE: I talk about un-modded baseq3, not Defrag or any other mod! That is why I opend this ticket here because I don't know if this new powerup behaviour was intended or not.
Feel free to close this issue if the new powerup spawn rules are intended.
Hello, when building this neat piece of code on Linux, there's some small annoying warnings which may be quickly fixed. Here is a short diff I just made to remove some of them.
baseq3a-fixwarns.diff.txt
Any chances to see similar changes for Team Arena? Especially the ammo display is really cool and ZTM's Flexible HUD doesn't have it.
Simple question:
How do bigchars.cfg and numbers.cfg (in gfx/2d) work? What needs to be done in the config if you want to add a 2048x2048 character sheet, for example?
I have rotation.txt
in .q3a/baseq3a/rotation.txt
which has:
$fraglimit = 10;
$timelimit = 60;
$g_gameType = 0;
q3dm6
q3dm7
q3dm13
q3dm17 /* { $timelimit = 7; $fraglimit = 50; } */
q3tourney2
here's my command line
/opt/quake3/quake3e.ded.aarch64 +set fs_game baseq3a +exec server.cfg +map q3dm7
g_rotation
is set to rotation.txt
.
I'm on aarch64 archlinuxarm. I compiled baseq3a
from the linux
dir.
Maps aren't cycling.
I also have tried +map q3tourney2
-- it still doesn't cycle after callvote nextmap
Everything else works.
When using an external file for map rotation (e.g. "rotation.txt"), warmup is not applied even though it is set to 1 by default.
In q3config.cfg:
seta g_rotation "rotation.txt"
seta g_doWarmup "1"
seta g_warmup "20"
Rotation.txt:
$bot_minPlayers = 6;
$g_gameType = 0;
$g_spSkill = 3;
$fragLimit = 30;
$timeLimit = 15;
13black_se
13dawn
13dream
[...]
With an existing map rotation in rotation.txt, it is currently not possible to resume where you left off if you end the game during the rotation and later jump back to the last map. It would load the first map in rotation.txt next instead of following the list and choose the map following the one you skipped to.
E.g. you have in rotation.txt:
map1
map2
map3
...
After going to /map map2 and finishing that, it would load map1 next instead of map3.
Related to that, the +map mapname startup parameter seems to be ignored. While you are required to add it if you want to launch the game and enter the rotation cycle directly, it would always load the first entry of the list instead of the map you stated in the parameter.
I was wondering if it would be possible to add the following server features:
Thanks for your consideration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.