Page 1 of 2
Sound Crashing Server
Posted: Fri Oct 17, 2003 10:11 am
by CorporalPunishment
I have a bomb plant trigger script that plays a bomb planting sound based on the team that does the planting. It all works fine but after about half an hour it generates and error tha shutsdown the server.
local.player = parm.other // get player
iprintln "A Bomb has been planted!"
if (local.player.dmteam == "axis")
local.player playsound den_objective_o
else
local.player playsound dfr_objective_o
********************
ERROR: SV_FindIndex: overflow max512 create1 name sound/dialogue/Multiplayer/a/AMdfr_o_08j.WAV1
********************
----- Server Shutdown -----
==== ShutdownGame ====
---------------------------
Anyone know how to fix ?
Posted: Fri Oct 17, 2003 2:28 pm
by jv_map
Are you using any kind of ubersound work-around?
Posted: Fri Oct 17, 2003 4:28 pm
by CorporalPunishment
Yeah I have been using your local.master = spawn ScriptMaster method that you came up with for the other sounds that are used.
But I have had no need to alias the dialogue because the ones i'm using are already set for obj in the stock dialogue.scr. There just the standard "the bomb has been planted" audio like what you here on Omaha.
Should I also local.master alias this dialogues as well ?
Any idea what the SV_FindIndex is all about ?
By using the dfr_objective_o it picks a slightly different .wav each time, maybe I should force it to use one particluar .wav that has been aliascached ?
It's such a bum to test cos I have to play the map for 1/2 hour planting bombs like mad.
I can give you a web link to the map if you have the time to take a look I would appreciate it.
The map apart from this fatal error is ready to release, so It's a shame I'm the only one playing it (me and a handfull of beta testers that is).
Posted: Fri Oct 17, 2003 4:32 pm
by jv_map
Actually my guess is that the ubersound work-around code is looped somehow. The SV_FindIndex error happens when too many aliases (> 512) have been defined.
Posted: Fri Oct 17, 2003 4:39 pm
by CorporalPunishment
Interesting, I have about 71 aliases so that would equate to about 7 victories which sounds about right. It doesn't happen at spawn it happend once on the victory and it did it once right when I planetd a bomb.
I read somewhere else in the forum that it was a good idea to remove the
"local.master remove" statement before the "end". Is that right?
I have local.master remove currently in the script.
I'm not sure if this helps but the spawn can be slow on level start. you spawn but frozen then a couple of seconds later your able to move.
Doesn't sound right does it?
Posted: Fri Oct 17, 2003 5:14 pm
by jv_map
Well miss out the 'remove' line, it sure will cause problems sooner or later... as to your (other) problem, maybe you could post some of your script here?
Posted: Sat Oct 18, 2003 7:29 am
by small_sumo
Yeah, I dropped that line for all my maps since doing the new workaround. btw JV mapping for mohaa is a pleasure with the workaround:)
Thanks
Posted: Mon Oct 20, 2003 8:23 am
by CorporalPunishment
Well I dropped the Remove and it still crashes, so I removed all this code and everything is fine (abeit a little quieter)
So it appears that JV's ubersound fix only works for a short time.

Posted: Mon Oct 20, 2003 8:47 am
by jv_map
Hmm
Does the crash also happen during the first round? Or only after a few restarts? Where is the work-around code located? It should be placed at the very top of the script even above level waittill prespawn... or wait... maybe mohaa must be manually forced not to run the work-around code the next round

but then I thought after a restart the code above level waittill spawn isn't executed at all

I'm really confused now but I think there's hope your problem will be solved
Maybe try something fancy like this:
Code: Select all
main:
if !($master)
{
iprintln "IMPORTANT: adding new (duplicate) aliases!!"
local.master = spawn ScriptMaster targetname master
// work-around code here, do not remove local.master!
}
level waittill prespawn
end
Posted: Mon Oct 20, 2003 8:53 am
by CorporalPunishment
Ok sounds goods... (pun intended) .. I'll give it a go. Thanks JV
Posted: Mon Oct 20, 2003 11:00 am
by Parts
I have recently been having this problem on our servers caused by something else, nothing to do with the scriptmaster workaround.
We implemented the roc in pain mod. This add extra aliases to the death and pain sounds in uberdialog. This appear to take the server over the 512 limit and causes the server to throw errors.
Does anyone know what the aliases consist of? i.e. easiest way to reduce them. Is it a combination of the aliascache and alias commands the server processes in any one round? or is it just alias commands?
I notice that everything in ubersound uses aliascache whereas everything un uberdialog just uses alias. I can't see any real reason for this.
Posted: Mon Oct 20, 2003 11:51 am
by jv_map
Parts, does the crash happen immediately or after about 30 minutes like in CP's case?
I think alias only defines an alias, whereas aliascache both defines an alias and caches the file... I think most files in uberdialog are streamed instead of loaded, and cacheing a sound for streaming seems a little odd

Posted: Mon Oct 20, 2003 12:05 pm
by Parts
jv_map wrote:Parts, does the crash happen immediately or after about 30 minutes like in CP's case?
I think alias only defines an alias, whereas aliascache both defines an alias and caches the file... I think most files in uberdialog are streamed instead of loaded, and cacheing a sound for streaming seems a little odd

The crash isn't immediate. It's during gameplay when the overflow occurs. As a lot of the sounds are driven by random numbers. I presume it's random when the crash occurs
below are the pain sounds I had on the server previously, I presume the game lloks to se how many alias's are defined and randomly chooses one to play.:
Code: Select all
//alias player_pain01 sound/dialogue/Generic/A/damage/dpl_damage_04j.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain02 sound/dialogue/Generic/A/damage/dpl_damage_02k.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain03 sound/dialogue/Generic/A/damage/dpl_damage_02m.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain04 sound/dialogue/Generic/A/damage/dpl_damage_06m.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain05 sound/dialogue/Generic/A/damage/dpl_damage_09m.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain06 sound/dialogue/Generic/A/damage/dpl_damage_01f.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain07 sound/dialogue/Generic/A/damage/dpl_damage_02l.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain08 sound/dialogue/Generic/A/damage/dpl_damage_05o.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain09 sound/dialogue/Generic/A/damage/dpl_damage_06c.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain10 sound/dialogue/Generic/A/damage/dpl_damage_06j.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain11 sound/dialogue/Generic/G/death/dth_001d13.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain12 sound/dialogue/Generic/G/pain/hit_014g.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain13 sound/dialogue/Generic/G/pain/hit_o_005e.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
//alias player_pain14 sound/dialogue/Generic/G/pain/den_damage_27.wav soundparms 1.0 0.1 0.8 0.2 160 1200 dialog_secondary streamed maps "m1 m2 m3 m4 m5 m6 dm obj"
....
...
What I'm still unclear on is what causes the overflow. As the actual sound file is included in the error and the fact that the error is not immediate I presume it's an error caused by the game trying to add a newly used sound to an array which has a max size of 512. (stating the obvious I know).
What is unclear to me is whether the array is of both cached and uncached sounds, or just the uncached. If it's just uncached then I'm guessing replacing alias with aliascache for some of the common dialog (like multiplayer pain and death sounds) might fix the problem.
Posted: Mon Oct 20, 2003 12:42 pm
by CorporalPunishment
Like Parts it's the array sounds that cause the problem, here was my last:
********************
ERROR: SV_FindIndex: overflow max512 create1 name sound/dialogue/Generic/A/damage/dpl_damage_04i.wav1
********************
----- Server Shutdown -----
==== ShutdownGame ====
---------------------------
I tried your latest suggestion and ran it for about 8 victories, so far so good. I'll will try it in a day or two on the clan Lan with 1/2 dozen players.
Fingers croessed.
It appears to be accumalative, with 6 players planting bombs like there free (oh wait they are) it takes about 5 victories. I had it crash after a team won, just before respawning. Where I would have thought there were no array sounds
I also had it happen mid level, just when planting a bomb and it was that array plant sound that killed it.
Posted: Mon Oct 20, 2003 3:40 pm
by jv_map
Hmm I'm also curious why it adds a '1' after the file name
