Page 1 of 1
[LIB] Library: Find Voice ID
Posted: Fri, 18. Jul 08, 23:42
by Gazz
Put a sector, ware or object in, get the speech ID out.
Have your script speak that number on the proper page (sectors are on page 7, most other things on 17) and you get...
"Argon Prime"
"Nova"
"Asteroid"
"Cargo Life Support System"
"Federal Argon Shipyard"
etc.
Ship names are abbreviated. A Caiman Super Freighter is spoken as "Caiman".
Returns 0 if none could be found.
[ external image ] (ZIP)
Terran Conflict Version
[ external image ] (ZIP)
Reunion Version
Posted: Sat, 19. Jul 08, 02:17
by eladan
That's a nice time saver Gazz.
Posted: Sat, 19. Jul 08, 17:35
by LV
Code: Select all
236 @ $voice = [THIS] -> call script 'lib.gz.find.voice.ID' : Sector=$inv.sec.b Ship or Station=$anull Ware or other object=$anull
237 write to player logbook $voice
238 = speak text: page=17 id=$voice priority=5
log returns the number but the imperial ears hear nothing
Posted: Sat, 19. Jul 08, 19:50
by Gazz
That's because the sector names and speech are not on page 17. Read the first post. =P
Posted: Sat, 19. Jul 08, 20:31
by Cycrow
Gazz wrote:That's because the sector names and speech are not on page 17. Read the first post. =P
Imperial eyes appear to be non functional too
Posted: Sat, 19. Jul 08, 20:51
by LV
LV knocks gazz across the forum with cycrow's lifeless torso
i tried 13 ladies
Posted: Sat, 19. Jul 08, 20:59
by Gazz
The ability to see or hear is insignificant next to the power of the Force.
PS: Seven shall be the number of thy counting and the number of thy counting shall be seven.
Eight shalt thou not count, neither shalt thou count six, excepting that thou then proceedeth to seven. Nine is right out.
Once the number seven, being the number of thy counting, be reached, then speaketh Betty the name of thy sector.
Posted: Sat, 19. Jul 08, 21:13
by Cycrow
7 = sector names
13 = misc voices
17 = object names
Posted: Sat, 19. Jul 08, 21:30
by LV
ok, test passed, you are still ok to advise the peasants of the forum in coding related matters.
Tis was a simple number error i chose to test you both with
Posted: Mon, 21. Jul 08, 18:54
by LV
2 questions
1. If it try's one of my renamed sectors no audio so i assume i need to force it to say something (e.g specify UK sector index)
2. Where are the race sounds so i can get it to say argon titan not just titan
I appear to be turning blonde
Posted: Mon, 21. Jul 08, 19:29
by Gazz
The script searches 440001 for the sector name because for normal ES sectors the text ID and speech ID are identical.
If you want speech for your custom sectors you have to make sure they match.
The script does not check an infinite number range, though.
If your custom sectors do have a matching speech on the same ID, maybe it's outside the loop range of the script.
Posted: Mon, 21. Jul 08, 20:11
by Cycrow
you do know that the sector ids are based on thier coordinates, so you can generate the voice id for sectors without ever needing to read anything from the text files.
my Satalite Early Warning Network does that.
i create a library for it, lib.cycrow.getsound
Code: Select all
001 $x = $sector -> get universe x index
002 $y = $sector -> get universe y index
003 inc $x =
004 inc $y =
005
006 if $x < 10
007 $x = sprintf: fmt='0%s', $x, null, null, null, null
008 else
009 $x = sprintf: fmt='%s', $x, null, null, null, null
010 end
011 if $y < 10
012 $y = sprintf: fmt='0%s', $y, null, null, null, null
013 else
014 $y = sprintf: fmt='%s', $y, null, null, null, null
015 end
016 $sound.num = sprintf: fmt='102%s%s', $y, $x, null, null, null
017 $sound.num = string $sound.num to integer
018 return $sound.num
Posted: Sun, 7. Sep 08, 11:59
by Gazz
Cycrow wrote:you do know that the sector ids are based on thier coordinates, so you can generate the voice id for sectors without ever needing to read anything from the text files.
I only remembered that there was... something I forgot.
Is that system enforced by the engine so it always has to work or could mods arbitrary assign voice IDs to a sector?
Of course it would be far quicker than a string match but with all the mods and freaky workarounds out there I don't automatically trust every modder to do things "the right way". =)
BTW: why "Satalite Early Warning Network"
Is that polish or italian for Satellite?
Version
3 released.
Voice IDs were not reported properly for some factories.
Posted: Sun, 7. Sep 08, 12:59
by Cycrow
Gazz wrote:I only remembered that there was... something I forgot.
Is that system enforced by the engine so it always has to work or could mods arbitrary assign voice IDs to a sector?
the voices are hardcoded to those ids, so modders cant change them around
adding new sectors, means adding the text at the correct id to match that system
Of course it would be far quicker than a string match but with all the mods and freaky workarounds out there I don't automatically trust every modder to do things "the right way". =)
Gazz wrote:
BTW: why "Satalite Early Warning Network"
Is that polish or italian for Satellite?
basically coz im dyslexic and cant spell
Posted: Sun, 7. Sep 08, 17:05
by LV
gaz as this is the only 3rd party script i use would it be ok to rename it to plugin.lv~ when i do for the simple fact that there is a very good chance i will forget to pack it otherwise.
If you'd like to keep the name no probs (i'll leave some credit with the code)
Posted: Sun, 7. Sep 08, 17:59
by Gazz
Go ahead.