Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Test Builds => Topic started by: WMCoolmon on April 16, 2005, 03:34:42 am
-
- Armor.tbl
- Enhanced ships.tbl (read: pretty much completely-optional ship entries, beyond "$Name" and "$POF file")
- Fixed the Lab
- Renovated the lab names
http://fs2source.warpcore.org/exes/latest/C20050415.zip
I gave some of the target-picking code a once over, looked fine. So maybe turrets are acquiring targets properly, but determining that they can't fire for some reason. (ie do they track targets?)
Added to the website.//redmenace
-
a dumb question: what is armor.tbl? :)
-
I am wondering that, too. What's its purpose?
-
Does it have Bob's subspace effects?
-
Originally posted by Tolwyn
a dumb question: what is armor.tbl? :)
Look here:
http://www.hard-light.net/forums/index.php/topic,32030.0.html
-
IIRC variable Armour is something people have been asking for for ages. I'm honestly surprised that this build has got as few responses as it has :(
-
In less than 24 hours? People expect things way too quickly. Though a discrete PM to project leaders who have asked for such a feature and perhaps a demo table making use of it may be appropriate.
-
True, but the post spend almost 16 of those hours without a single reply, it just surprised me a bit ;) Still, I'm sure it'll get tested ;)
-
The 'types' of armor are also pretty easily addable (ie to add "exponential base" type armor, I only had to add six lines of code.)
-
Example tables and a little bit more explanation for armor stuff would help me a lot. Maybe an example situation for instance.
-
Hmm. Let's say you have some sort of mirror armor, that almost completely reflects lasers, does alright against projectiles, but is melted by fireballs and completely shattered by missiles.
You also have a hardened armor that melts under lasers, is very resistant to projectiles, but melts under fireballs and is fairly damaged by missiles.
#Armor Type
$Name: Happy Armor factors
$Type: multiplicative
;;This means that all values in the table will be the product of the damage times the number entered
;;Lasers Projectiles Fireballs Missiles
$0: (0.2 1.0 1.3 1.0 ) ;;Mirror armor
$1: (1.2 0.5 1.5 1.0 ) ;;Hardened armor
#End
#Armor Type
$Name: Happy Armor bonuses
$Type: additive
;;This means that all values in the table will be added to the damage entered
;;Lasers Projectiles Fireballs Missiles
$0: (-20.0 0.0 0.0 10.0 ) ;;Mirror armor
$1: (0.0 0.0 0.0 0.0 ) ;;Hardened armor
#End
Weapons.tbl:
$Name: Laser
...
$Armor Damage Index: 0 ;;Use the Lasers column
...
$Name: Projectile
...
$Armor Damage Index: 1
...
$Name: Fireball
...
$Armor Damage Index: 2
...
$Name: Missile
...
$Armor Damage Index: 3
...
$Name: Tood-o-Love
...
$Armor Damage Index: 4 ;;This will mean that damage will be applied directly to any ships who do not have armor that includes this column.
;;Since no ships in my example do, every time the Todd-o-Love hits something it will do exactly the amount specified in the table,
;;aside from any damage scaled by "Huge" flags and such
;;(which can be disabled with the new ships.tbl flag I implemented; that's in this build too)
...
Ships.tbl
$Name: MirrorShip
...
$Armor Type: Happy Armor factors ;;Factor things first
$Armor Type: Happy Armor bonuses ;;Then add the bonuses (so bonuses will not be scaled)
$Armor Index: 0 ;;Use the mirror armor row
$Name: HardenedShip
...
$Armor Type: Happy Armor factors ;;Factor things first
$Armor Type: Happy Armor bonuses ;;Then add the bonuses (so bonuses will not be scaled)
$Armor Index: 1 ;;Use the hardened armor row
I'm open to suggestions on how to make it less convoluted to use multiple damage types - I could allow multiple $Types in an armor, each followed by a table. Or, I could allow you to group armors and specify the groups in ships.tbl. (I like the first better, seems to make more sense to me)
I could also make armor indexes named, so instead of 0 and one you might put:
$Mirror: (table row)
$Hardened: (table row)
$Armor Type: Happy Armor factors
$Armor Type: Happy Armor bonuses
$Armor Index: Mirror
Hmm...
-
my head hurts from all those variables... goood math experience for me. :D
-
If I would do a Battletech/Battlespace mod it could be interesting..well at least at TL3.
-
Fireball is what, now? Explosions? So if I had a ship that was invulnerable to everything but fireballs, and then I blew up Alpha 2 right besides it, it'd do damage?
Edit:
Also:
$0: (-20.0 0.0 0.0 10.0 ) ;;Mirror armor
Does that mean that when you shoot a laser at it, it'll gain 20 hp? :wtf:
-
Your p4 build contains a slight bug involving pilot selection.
Text input is waaay off, and I don't think you implemented the new-pilot code correctly. Any pilots with the "new" code are unselectable. Generally quite FUBURed. :nervous:
On the other hand, your normal C20050415 version works fine, so it seems.
-
No, fireball is some obscure weapon name I cooked up from the back of my head. :p Non-weapon damage will still affect ships normally. If a weapon has an invalid armor damage index, or doesn't have one at all, damage will still be applied normally.
In plain english, the laser damage (to mirror armor) would be, "Take 20% of the laser's damage value, then subtract 20 points of damage from what's left, and damage the ship by that amount."
So if your laser dealt less than 100 damage, then the ship would gain health. If it did exactly 0 points of damage,, then the ship would gain 20 points of health.
In order to properly simulate small damage values having no effect, you'd have to use another type ("effect cap" or something). It's not implemented so I didn't use it in the example.
-
Too complicated for me. :p
-
It's less complex than Bobb's texturing system. :p The ship's armor index is the row in the table, the weapon's index is the column, the intersection point is the value that's applied and the '$Type:' is the operation that's done with the value.
-
Originally posted by WMCoolmon
It's less complex than Bobb's texturing system. :p
That's not saying much. His system makes my eyes bleed.
I'm trying to understand this, but all of these new table entries are making my mind go through a loop.
What is a fireball, then?
-
Ignore the names in the armor comments; they're meaningless when it comes to armor. You can rearrange things any which way, as long as you get the weapons.tbl numbers right. You can assign damage scaling based on type, or you could have a slightly different scale for every weapon. (If you added columns for them all in the table.)
You just have to put the right $Armor Damage Index: value for the weapons.
-
Ahh. I see. And after re-reading it, it makes alot more sense.
-
hmmm...is anyone else thinking repair 'beams'?
This feature gives me a few mission ideas ;7
-
I don't think repair beams will work unless setting a negative damage value for a weapon does it.
You can certainly try, though. It might just require a multiplicative "-1".
-
no, I was quoting your example up above, where you said it would 'heal' that many points to the hull, rather than damage it if the total damage value was less. By simply putting a multiplicative 1.0 and then putting a -10 to the additive, you can have a 'repair' beam if the damage of the weapon, is, say, 5 or so so, where it healed 5 hit points everytime it hit.
Quite useful for creating entirely new mission concepts,if I do say so myself. For once, Alpha 1 can actually fly an effective support ship - if that isn't enough, think of the possibilities for multi. You could have assault missions with one guy flying repair, protecting bombers against whatever damage the other team could through at 'em. It would introduce a true factor of teamwork in a sense.
-
Excellent work on the Lab :yes:
Don't know if this is a bug or not, using:- flags (-spec -glow -pcx32 -jpgtga -d3dmipmap -2d_poof -rlm -orbradar -decals)
- D3D
- 1280x1024*32
The game loads up, but it only uses 1024x768 of the 1280x1024 window, see example (http://home.iprimus.com.au/nexus387/forums/builds/screen1_build20050415_c.jpg). The text and button over states seem to be in their correct position but the graphics are not. It does work fine with the same settings in OGL.
-
That may be because of extra commits I made when adding the armor system/an attempt to fix the skinning problem.
I was curious if it was just me or not. :)
-
hmm... time to make reflective armor. :devil: *downloads*
damn timewarp :hopping:
we should use this with Borg ships. :D
-
Is there any key that allows you to scroll down the whole list of ships in the lab?
-
Now there is variable armor! One thing still is open: Is it going to be possible with this system to not to make 'healing' weapons i.e. non-penetrating hits on armor? (perhaps with weapon flags??).
Long version:
If using 'additive armor' while firing at a capship with index value of -20 with weapon dealing 16 points of damage the weapon does -4 points of damage (heals 4) but could it rather do: 'zero or less than zero = zero' points of damage? Both might have uses though.
Like firing subachs at capship would only generate hit effects while Kayser might actually do something.
-
Yes.
I just need to think up a good name for that method and actually add it in. (culling damage of less than/greater than a certain amounte).
It will probably take me more than six lines of code to do it though. :sigh: ;)
-
Suggestion:
Boolean FLAG_Armor_not_magical_regenerative_armor
or
Boolean Flag_armor_ignores_negative
-
I get one of these with the armor.tbl.
---------------------------
Error!
---------------------------
Error: armor.tbl(5):
Error: Required token = [#End], found [)] .
File:.\parse\parselo.cpp
Line: 508
I can honestly not find the reason it is borking up...
#Armor Type
$Name: Multiplicative armor
$Type: multiplicative
;; lasers0 plasma1 cannons2 missiles3 bombs4 bigass5
$0: (0.5 0.7 0.9 1.0 1.2 2.0 )
#End
#Armor Type
$Name: Additive Armor
$Type: Additive
;; lasers plasma cannons missiles bombs bigass
$0: (0.0 0.0 0.0 0.0 0.0 0.0 ) ;; Fenris armor
$1: (3.0 3.5, 0.3)
#End
EDIT: If I comment out the $0: data, it accepts the table, but won't do anything obviously. It then goes on to complain that the armor stuff in the ships.tbl and weapons.tbl is wrong.
-
Probably something in the parser; I had to haxx0r some stuff in to work using vectors.
You can try removing the ), but I think I forgot to do a parse_advance(1) somewhere. Meaning if it doesn't find the parentheses, it'll give the opposite error.
More for tomorrow's todo list
-
Can the armor system be used to create regenerative armor? I realize that this can be done via SEXPs, but a coded system is always preferable. Regenerative armor is useful for things like Vorlon ships in TBP, or a Borg cube.
-
No, but the $Hull Repair Rate: option can.
-
whoh, the armor table makes my brain hurt.
-
and yet somehow my material system is incomprehensable...
:)
-
i'm starting to get it now... but could you include an easy-to-follow guide to the armor table? :D
-
This is a really good concept, and needed.... It is going to need some playing with in order to understand!
-
http://fs2source.warpcore.org/exes/latest/C20050520.zip
It should:
- Fix the armor.tbl parse problem
- Fix images not resizing in nonstandard res.
Added to the website.//redmenace
-
We're in the 5th month now?
:p
I'll check it out this afternoon. And for the sake of my sanity, I'm changing the name of the executable.
-
Originally posted by WMCoolmon
http://fs2source.warpcore.org/exes/latest/C20050520.zip
It should:
- Fix the armor.tbl parse problem
- Fix images not resizing in nonstandard res.
first off it should be 20050420
secondly, i think i fixed the turret problem, it took me a while though. It went into CVS around midnight with a few other fixes.
-
Scaling in D3D is fixed, scaling in the briefing is still not happening. And from here on out, if this build shows up in Mantis, it's as fs2_open_C20050420.exe :p
-
Meh, typos + copy-paste is never a good thing.
-
I'm going to add that this is by far the best build I've run in a long, long, long time. I got through at least 4 missions before crash, whereas it has been failing on me on the second mission played at absolute best. And that's including Retail.
-
The new build will parse the armor.tbl, but it still gives me error messages on ships.tbl (and presumably weapons.tbl if it kept going).
-
Now.... question:
Are these armour types assignable on a per-subsystem basis? Or is it the entire ship? Or has this already been covered? here's alot of text here, and I hate reading long threads :p
-
it's only 2 pages long. :p
-
Actually only one for Raa. He browses with 50 posts/page.
-
Ah, you're aware of that, eh? ;)
But still, I don't wanna read through all of this nonsense. :p It's easier to wait for a proper response. :D
-
Yeah I'm aware of it :rolleyes: You lambasted me for posting a link to page two of a <50 length thread.
-
:lol:
-
Hey, back on topic, you!
This thread really needs a proper title. Especially since (besides the turret fire rate thing) this is an extremely stable build. Only a handful of errors that I know to look for actually show up.
-
You know what's really wierd? I've never, ever, had Fs2 crash on me. No matter how insanely buggy the build. Never. Ever. I hope this uber-table-introducing build of buggyness doesn't ruin that streak. Here goes.
Hem, right. Anyways, downloaded da' build, works alright. Frame-rates could be better, though.
-
what's your FPS? i get something like 30+.
-
Around 70-80 FPS. Buy a new graphics card, you lumbering dinosaur. :p
Once I tested it via my own (shameless plug alert) campaign WIP, the FPS dropped during a larger battle involving two destroyers, a cruiser, a corvette, and six fighter-wings.
The lowest FPS I got was around 34-ish.
-
heh, my highest is 100+. :D
but that's only when there's nothing but fighters. it's actually 60-90 fps. :nervous:
-
For proper subsystem support it'd require extra code.
-
Originally posted by Blitzerland
Your p4 build contains a slight bug involving pilot selection.
Text input is waaay off, and I don't think you implemented the new-pilot code correctly. Any pilots with the "new" code are unselectable. Generally quite FUBURed. :nervous:
On the other hand, your normal C20050415 version works fine, so it seems.
same here
-
Would it possible to make a new system where armour types can be outfitted to fighters?
So you could select your armour type in a similar way to selectiong your ship or weapons.
Would open the door for an RPG mod. :p Would also add another element to gameplay, where you have to select wisely what armour you should take depending on the tasks you intend to fulfill.
-
Hmm. i had some problems with that c20050520.zip, it loaded all fine and the weapons loadout looked very good but:
- Vasudan vessels used old thruster effects
- Vasudan afterburner trail thingyes didn't start where they should have
- Multipart turrets didn't bother to turn (with Stratcoms Sparta) if turrets even fired at all.
I moved back to old 3.6.5 build and all these problems disappeared.
BTW. How can i stop the reciting in the Tech Room?
-
You mean Microsoft Sam? In the launcher, go to the "voice" tab and deactivate the simulated voice in the techroom.
-
Unfortunately, p4 builds have started to CTD for me, so I can't test it out.
Can you describe unselectable? I haven't touched the pilot screen or code at all in awhile, certainly not in the time between these two builds.
-
At least for me, the "undetectability" meant that my pilot didn't appear at all on the selection screen. It was as though it didn't exist, even though the pilot files were still in the correct folder. This was as of the 4/15 P4 build.
-
You can press enter and it'll let you pass, though if you try to go into the mission simulator there are no missions present. Crashing ensues.
-
I've just been trying to play Fall of Epsilon Pegasi with the 4/20 build, and I receive a CTD whenever the first mission starts loading. I was able to load the second mission, so I restarted the campaign to see if that would resolve things; now I can't even play it. I've also experienced crashes in other missions, both when the mission is loading and upon hitting "Commit" (that one required a Ctrl+Alt+Del). I don't know if it's related to the new mv_music.vp you released or not, although I do know that it seemed to crash at different points depending on whether or not I used the mod folder (the one I was using contained the FS2 cutscenes and Fall of Epsilon Pegasi files; the SCP VPs are in the main FS2 folder).
-
Do debug builds clear anything up?
-
Okay, new build. Originally wasn't going to post it, but since I have the EXEs compiled and spent several hours tonight poking through the code, I figured I'd post it.
Umm:
- Made engine washes dynamically allocated
- Unnoticeably faster engine wash indexing
- Unnoticeably faster image drawing
- Figured out an easy fix for that lab problem people have been complaining about.
- Minor fix to lab window caption code, as well as some changes to make less chance of skinning bugs arising (Mainly forcing all top-level objects to have different names, although I need to add checking at every level)
- Fixed spelling of "mulitplicative" in armor.tbl :rolleyes:
- Minor changes throughout the code to prepare to get rid of the ships.tbl limits
- Disabled parsing of $Player Ship Precedence, since nothing else in the code references it.
- Updated code to latest CVS code, so turrets should be working now (according to phreak)
http://fs2source.warpcore.org/exes/latest/C20050423.zip
Mostly I'm interested in the reliability factor of this build - does it crash more?
Added to the website.//redmenace
-
Got this when trying to run the P4 verion of 4/23 build:
Error: trying to set invalid bitmap as render target
File:.\graphics\grd3dbmpman.cpp
Line: 652
Call stack:
------------------------------------------------------------------
------------------------------------------------------------------
regular version does not give this
-
When/where?
-
when loading the game from the launcher. the screen goes black then i hear a low pitch beep then it crashes with that error.
-
This latest build helped solve a problem that's been bugging me for the last week or so. I loaded up a mission with it, and just like the past few builds have, it crashed around the third loading bar. I had had problems related to not hearing music in-mission in a recent build, with or without the mv_music.vp. When I started using your recent update to this VP, that's when the crashes started. I had tried removing the VP file earlier, but I still experienced crashes; this time, when I got rid of it, the build ran fine, and I could still here the original low-quality music in-mission. Looks like the problem is related to that VP file, not the builds.
I did experience one trivial problem with this build; the cursor is distorted, and a strange orange box appears around it. This only happens in OGL; it still works fine in D3D. Here's a screenshot:
(http://home.comcast.net/~andrewduk/Weird_Cursor.jpg)
Obviously, this isn't a big issue, but it does look weird. :p If it helps, I'm using a Radeon X300 with what I believe are the 4.12 Catalyst drivers.
P.S. Good work on the lab; it's nice to finally be able to see all of the ship classes. :)
-
I have already mantised this, sort of. That's where it goes though, moreso than here anyway.
-
hey, wmc, where's the new table?
-
If you're talking about armor.tbl, look on the first page of this thread, I posted an example there. I still haven't gotten around to completely testing it, although I do know it seems to parse with my current codebase.
-
i thought you updated the table when you updated the build. sorry. :nervous:
-
Originally posted by StratComm
I have already mantised this, sort of. That's where it goes though, moreso than here anyway.
I just Mantised it myself. I figured it was high time to get over my apprehension at using it. :p
-
I dont mean to pry, but artent the armour indexies a tad redundant. Wouldnt
#Armor Type
$Name: Happy Armor factors
$Type: multiplicative
;;This means that all values in the table will be the product of the damage times the number entered
;;Lasers Projectiles Fireballs Missiles
$0: (0.2 1.0 1.3 1.0 ) ;;Mirror armor
$1: (1.2 0.5 1.5 1.0 ) ;;Hardened armor
#End
#Armor Type
$Name: Happy Armor bonuses
$Type: additive
;;This means that all values in the table will be added to the damage entered
;;Lasers Projectiles Fireballs Missiles
$0: (-20.0 0.0 0.0 10.0 ) ;;Mirror armor
$1: (0.0 0.0 0.0 0.0 ) ;;Hardened armor
#End
Ships.tbl
$Name: MirrorShip
...
$Armor Type: Happy Armor factors ;;Factor things first
$Armor Type: Happy Armor bonuses ;;Then add the bonuses (so bonuses will not be scaled)
$Armor Index: 0 ;;Use the mirror armor row
$Name: HardenedShip
...
$Armor Type: Happy Armor factors ;;Factor things first
$Armor Type: Happy Armor bonuses ;;Then add the bonuses (so bonuses will not be scaled)
$Armor Index: 1 ;;Use the hardened armor row
be the same as
#Armor Type
$Name: Happy Armor factors
$Type: multiplicative
;;This means that all values in the table will be the product of the damage times the number entered
;;Lasers Projectiles Fireballs Missiles
$0: (0.2 1.0 1.3 1.0 ) ;;Mirror armor
#End
#Armor Type
$Name: Happy Armor bonuses
$Type: additive
;;This means that all values in the table will be added to the damage entered
;;Lasers Projectiles Fireballs Missiles
$0: (-20.0 0.0 0.0 10.0 ) ;;Mirror armor
#End
#Armor Type
$Name: Happy Armor hardened factors
$Type: multiplicative
;;This means that all values in the table will be the product of the damage times the number entered
;;Lasers Projectiles Fireballs Missiles
$0: (1.2 0.5 1.5 1.0 ) ;;Hardened armor
#End
#Armor Type
$Name: Happy Armor hardened bonuses
$Type: additive
;;This means that all values in the table will be added to the damage entered
;;Lasers Projectiles Fireballs Missiles
$0: (0.0 0.0 0.0 0.0 ) ;;Hardened armor
#End
Ships.tbl
$Name: MirrorShip
...
$Armor Type: Happy Armor factors ;;Factor things first
$Armor Type: Happy Armor bonuses ;;Then add the bonuses (so bonuses will not be scaled)
$Armor Index: 0 ;;Use the mirror armor row
$Name: HardenedShip
...
$Armor Type: Happy Armor hardened factors ;;Factor things first
$Armor Type: Happy Armor hardened bonuses ;;Then add the bonuses (so bonuses will not be scaled)
$Armor Index: 0 ;;Use the hardened armor row
-
Yeah, but if you want the same type of damage for all weapons it's a bit more convenient.
That way may be a bit easier for people to understand though.
-
Hmm, i just had a n idea somthing along the lines of this...
If you cant tell each subarmour acts in the original armour in the order they are listed so youds only need to reference one armour in ships. Usefull for complex armour types.
#Armor Type
$Name: Happy Armor factors
$Subarmour: multiplicative
;;This means that all values in the table will be the product of the damage times the number entered
;;Lasers Projectiles Fireballs Missiles
$0: (0.2 1.0 1.3 1.0 ) ;;Mirror armor
$Subarmour: additive
;;This means that all values in the table will be added to the damage entered
;;Lasers Projectiles Fireballs Missiles
$0: (-20.0 0.0 0.0 10.0 ) ;;Mirror armor
#End
-
Originally posted by FireCrack
Hmm, i just had a n idea somthing along the lines of this...
If you cant tell each subarmour acts in the original armour in the order they are listed so youds only need to reference one armour in ships. Usefull for complex armour types.
#Armor Type
$Name: Happy Armor factors
$Subarmour: multiplicative
;;This means that all values in the table will be the product of the damage times the number entered
;;Lasers Projectiles Fireballs Missiles
$0: (0.2 1.0 1.3 1.0 ) ;;Mirror armor
$Subarmour: additive
;;This means that all values in the table will be added to the damage entered
;;Lasers Projectiles Fireballs Missiles
$0: (-20.0 0.0 0.0 10.0 ) ;;Mirror armor
#End
[/B]
/Cheers, and does the victory dance!
That's exactly the treshold + resistance system that's I've been rooting for years. The same thing is used in Fallout and it can completly circumvent the whole +big, +huge ect. flag madness.
(...and if a ship's invalnurable then just FRED it so for God's sake)
:yes: :thepimp: :yes:
-
See my last post in this thread: http://www.hard-light.net/forums/index.php/topic,32030.0.html
Hooking it into Bobb's equation system would give it a helluva lot more flexibility. (You could change the damage based on the target of the ship, if you felt the need)