<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "Loopholes in the "L" stats menu"]]></title>
		<link>http://www.disastrousconsequences.com/dcforum/posts/list/1.page</link>
		<description><![CDATA[Latest messages posted in the topic "Loopholes in the "L" stats menu"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ We are trying out a new "L" stats menu, that paves the way for subclasses. In the past, each ability has had its limit built in, so it was almost impossible to buy something that was not permissible.

With the subclasses, each ability has to be a lot more open, and it relies on the subclass stats menu to restrict who can buy what.

So, if you get the old stats menu, and it does give you options to buy things, please do not exploit the bug by purchasing skills you are not supposed to have. Instead, please report to me how you managed to get the wrong stats menu up so I can fix it.

Two points to note:
<li> If you have purchased an ability that you are not supposed to have, next time you reconnect it will remove it, and credit you back with the points
<li> It also logs that you have had this incorrect skill. What Druid will decide to do to frequent offenders is at his discretion.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41563</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41563</link>
				<pubDate><![CDATA[Mon, 23 Nov 2009 01:44:03]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ When you reset a character all the options appear to become available that you meet stat requirements for. At first I figured with the new subclass system coming in that maybe if you don't choose a class at all you could buy a large variety of abilities from all the classes but limited to low levels. But after seeing this thread it appears to have been a bug.

Details:
Name: Rorschach
I made a new character, bought medic class and loaded medic, then put the rest of the points into stats. Then decided to reset. Upon doing so I found that many options were now available that I hadn't noticed before. It looked more or less like everything could be bought. So I bought loaded weapons, loaded medic, and loaded artifacts. The medic weapon maker wouldn't work on <i>any</i> gun, saying something to the effect of "You cannot convert this type of weapon." I had a critical error at some point around this time, but didn't think anything of it since it happens to from time to time normally. Upon reconnecting someone else that was playing at the time also had the same issue of not being able to use the medic weapon maker (I'm not sure if this was related to what I was doing). The map then ended. Next map I clicked reset again. (I didn't notice or look to see if the bugged abilities had been reset automatically beforehand like you said they should.) Then bought loaded weapons, loaded medic, then eng. class. Then leveled and bought loaded engineer and shield healing(w/e the abil. is to get inf. eng. link?). Upon leveling, the options would lock again and I could only buy what I was supposed to.

I spawned with one of each weapon as expected and the eng. link and constructions worked fine too. This time I could also make medic weapons, however the medic weapon I made wouldn't heal at all no matter how low on health a person was. So it was essentially a vanilla inf. weapon. After the second map I changed characters.

After reading this thread I logged back on. His abilities have not been reset. He still is an eng. class with loaded weapons and loaded medic. I won't play him like this now that I know it's a bug. But I'll leave him as is for now if it's useful as a coding reference or whatnot.

Hopefully this was helpful.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41568</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41568</link>
				<pubDate><![CDATA[Mon, 23 Nov 2009 13:46:50]]> GMT</pubDate>
				<author><![CDATA[ synchronyze]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Thanks synchronyze. I will investigate.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41572</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41572</link>
				<pubDate><![CDATA[Mon, 23 Nov 2009 17:00:25]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Szlat, back with druids200,  it was possible to edit the stats file and add abilities.  It would make the log entry, but nothing would be removed automatically.  Was something added since then to remove the abilities?]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41575</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41575</link>
				<pubDate><![CDATA[Mon, 23 Nov 2009 21:23:26]]> GMT</pubDate>
				<author><![CDATA[ greg11]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>greg11 wrote:</cite><br>
		<blockquote>Szlat, back with druids200,  it was possible to edit the stats file and add abilities.  It would make the log entry, but nothing would be removed automatically.  Was something added since then to remove the abilities?&nbsp;
		</blockquote>Yes. The SubClass configuration is allowed to be dynamic, where server admins can change the configuration in the ini file. So, if an admin decides that this subclass shouldn't have this ability, or should have it to a lower level, then when the player joins, it checks, and fixes it. 
Obviously the reset bypasses that somehow, but I will sort that out.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41580</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41580</link>
				<pubDate><![CDATA[Mon, 23 Nov 2009 23:33:12]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Ok. I have now got a fix for the reset stats problem. UT2004RPG wasn't re-initialising everything correctly, and so the correct list of abilities was not getting limited.

Also put in more checks to sort out invalid data, including checking for multiple classes.

Should be in the next build - whenever that is.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41589</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41589</link>
				<pubDate><![CDATA[Tue, 24 Nov 2009 13:24:24]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ I was looking at my L stats and noticed that I had countershove and retaliation that were at level 0.
I thought that it was some kind of bug so I shrugged and re-maxed them seeing as I have a ton of points to burn. 

The changes stayed upon reconnecting.
If I should not have that level of cs and retal, please knock me back down. 

Thanks,

-Crib


EDIT:
Ok, so I don't keep up on all the threads like I should. I just saw the thread dealing with this. I wonder if I could then make one request - that the countershove on my account be reset to 0. I hate it.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41604</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41604</link>
				<pubDate><![CDATA[Wed, 25 Nov 2009 21:03:13]]> GMT</pubDate>
				<author><![CDATA[ cribbage]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ After using all my lifes in in an "assult" game, all items were avail. for purchase.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41662</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41662</link>
				<pubDate><![CDATA[Sat, 28 Nov 2009 06:07:24]]> GMT</pubDate>
				<author><![CDATA[ Ratar_Killer]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ While at the end of a map, waiting during voting...I went into my stats and found Hording available to me....but at the beginning of the next map, it was gone.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41663</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41663</link>
				<pubDate><![CDATA[Sat, 28 Nov 2009 08:57:25]]> GMT</pubDate>
				<author><![CDATA[ Flak Monkey]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ That could be a bug. I've seen hoarding on other servers and they allow you to gather items-much like a lucky weapon in this server the ability could've been removed-and it  may come back once in a whiel as a temporary bug]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41743</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41743</link>
				<pubDate><![CDATA[Thu, 3 Dec 2009 15:09:02]]> GMT</pubDate>
				<author><![CDATA[ Clone-Engineer]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Szlat, after taking a quick look at 2.21, and the 600+ lines of abilityconfigs in SubClass.  Does the list of abilities need to be removed from the ut2004RPG config file?
Would that at least prevent users from buying abilities they shouldn't have?]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41745</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41745</link>
				<pubDate><![CDATA[Thu, 3 Dec 2009 17:18:55]]> GMT</pubDate>
				<author><![CDATA[ greg11]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>greg11 wrote:</cite><br>
		<blockquote>Szlat, after taking a quick look at 2.21, and the 600+ lines of abilityconfigs in SubClass.  Does the list of abilities need to be removed from the ut2004RPG config file?
Would that at least prevent users from buying abilities they shouldn't have?&nbsp;
		</blockquote>I don't think I can. The UT2004RPG code still needs to read it into the RPGStatsInv and do its own checks. I haven't checked recently, so it might not be needed anymore in the main list.
A lot of the subclass code is getting the config to replicate to the client. It takes too long to replicate everything, so it just replicates what it thinks it needs.

EDIT: It looks like the list of abilties is just used by the StatsMenu. I thought it was used by the code checking what skills a person had already bought - I didn't want the check to not find the ability and hence give the person the points to spend. But as you say, it looks like the list isn't used by core UT2004RPG code.

However, at the moment to keep the size of the SubClass configuration down, I am not configuring all abilities into the SubClass code. The idea is you can buy any ability to its maximum, unless the SubClass code limits it. So abilities like Iron Legs are just left as defaults. Having to put all the abilities into the subclass configuration would up it by about ten more entries per subclass. So the list is still used by the new SubClass configuration code.

Perhaps I should turn the configuration on its head, and say you can't buy anything unless it is configured in the SubClass config. Have a new section of the config which lists all the abilities and what their global availability is - so I wouldn't have to repeat Iron Legs for each subclass.
Then I wouldn't need anything in the UT2004RPG available abilities list.

(I would also need to change the Class purchasing part of the code. Again that still uses the UT2004RPG list of abilities)]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41748</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41748</link>
				<pubDate><![CDATA[Thu, 3 Dec 2009 23:31:41]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Grimelark MD, somehow I got into the L screen after I died.  I was the highest level on at the time and it was on the 2nd of Dec.  When I got into that screen it had hoarding as well as several other things I don't think my medic shoudl have been able to use.

Also didn't  exp healing use to have 10 levels?]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41800</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41800</link>
				<pubDate><![CDATA[Tue, 8 Dec 2009 07:44:46]]> GMT</pubDate>
				<author><![CDATA[ Grimelark]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>Grimelark wrote:</cite><br>
		<blockquote>Also didn't  exp healing use to have 10 levels?&nbsp;
		</blockquote>9]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41803</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41803</link>
				<pubDate><![CDATA[Tue, 8 Dec 2009 09:13:45]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>Szlat wrote:</cite><br>
		<blockquote>
However, at the moment to keep the size of the SubClass configuration down, I am not configuring all abilities into the SubClass code. The idea is you can buy any ability to its maximum, unless the SubClass code limits it. So abilities like Iron Legs are just left as defaults. Having to put all the abilities into the subclass configuration would up it by about ten more entries per subclass. So the list is still used by the new SubClass configuration code.
&nbsp;
		</blockquote>
I keep seeing the configuration, and I keep thinking that there must be a better way.
At +76k, the subclass code is about 10% of all of the code.  Although it should compress well.
Can a string be used as an array:
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
     AbilityConfigs&#40;0&#41;=&#40;AvailableSubClasses="0,3,6,12",AvailableAbility=Class'DruidsRPG221.DruidSomeAbility',MaxLevel="5,15,15,10"&#41;
</pre>
		</div>
"0,3,6,12" are the indexes for the subclasses array with the corresponding maxlevels.

I just don't know if parsing strings like this would be possible.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41848</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41848</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 00:18:44]]> GMT</pubDate>
				<author><![CDATA[ greg11]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>greg11 wrote:</cite><br>
		<blockquote>I keep seeing the configuration, and I keep thinking that there must be a better way.
At +76k, the subclass code is about 10% of all of the code.  Although it should compress well.&nbsp;
		</blockquote>I know what you mean. It is quite cumbersome, and quite easy to make mistakes in :(  Fortunately it doesn't have to be modified very frequently. However, if you add an ability in and want to keep it grouped by subclass, there are a whole lot of index numbers to change.

I agree - there must be a better way. I thought about configuring it per ability, by giving a list of subclasses each ability could be used by, and storing it in the ability config - but then the subclass config is distributed all over the place, and would be more difficult for others to modify in the ini file.

<p></p>

		<cite>greg11 wrote:</cite><br>
		<blockquote>Can a string be used as an array:
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
     AbilityConfigs&#40;0&#41;=&#40;AvailableSubClasses="0,3,6,12",AvailableAbility=Class'DruidsRPG221.DruidSomeAbility',MaxLevel="5,15,15,10"&#41;
</pre>
		</div>
"0,3,6,12" are the indexes for the subclasses array with the corresponding maxlevels.

I just don't know if parsing strings like this would be possible.&nbsp;
		</blockquote>It is possible to parse strings - you have a number of functions including the good old left function.
But then you have to keep remembering the subclass numbers. You could even slice it the other way, and have
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
SubClass&#40;0&#41;=&#40;SubClass="AM/WM Hybrid",ClassesAvailable="1,2,4",MinClassLevel="80,80,80",AbilitiesAvailable="1,2,7,9,15,26,29",MaxAbilityLevel="5,15,15,10,1,5,3"&#41;
// numbers and abilities I just made up - it doesn't match the real configuration
</pre>
		</div>and so configure the whole subclass in one line. But I am not sure how maintainable it would be since you use numbers for the classes and abilities.

EDIT: Perhaps it might be best to go for a very compact configuration like this, but then have a program or excel spreadsheet that would generate the config?]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41849</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41849</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 01:15:13]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ I can work on a script to convert a human readable config to this format.

No matter which format it is in, I don't see a server admin having an easy time making their own configuration unless there is a program/script to assist.

What I can do is have it convert the human readable form to all three ways. (and convert it from the current format too)

I think I can make the human readable format something like:
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
Class: DruidsRPG221.ClassAdrenalineMaster
  Available Subclasses:
    AM/WM hybrid,  80
    AM/MM hybrid,  80
    AM/Eng hybrid, 80
    Extreme AM,    100
  Available Abilities:
    DruidsRPG221.DruidArtifactLoaded,         4
    DruidsRPG221.AbilityEnhancedReduction
    

Class: DruidsRPG221.ClassWeaponsMaster
  Available Subclasses:
    AM/WM hybrid,  80
    WM/MM hybrid,  80
    WM/Eng hybrid, 80
    Extreme WM,    100
  Available Abilities:
    DruidsRPG221.DruidRegen,                  5
    DruidsRPG221.DruidVampire,                10


SubClass:  AM/WM hybrid
  Available Abilities:
    DruidsRPG221.DruidAmmoRegen,              4
    DruidsRPG221.DruidAwareness,              2
    DruidsRPG221.DruidNoWeaponDrop


SubClass:  AM/MM hybrid
  Available Abilities:
    DruidsRPG221.DruidArtifactLoaded
    DruidsRPG221.DruidArtifactLoadedHybrid
    DruidsRPG221.DruidAdrenalineSurge
    DruidsRPG221.DruidEnergyVampire
    DruidsRPG221.AbilityEnergyShield
#    DruidsRPG221.DruidLoaded
#    DruidsRPG221.DruidVampire
#    DruidsRPG221.AbilityEnhancedDamage
#    DruidsRPG221.AbilityLoadedEngineer
#    DruidsRPG221.DruidShieldRegen
#    DruidsRPG221.AbilityShieldHealing
#    DruidsRPG221.DruidArmorRegen
#    DruidsRPG221.DruidArmorVampire
#    DruidsRPG221.AbilityConstructionHealthBonus
#    DruidsRPG221.AbilityEngineerAwareness
#    DruidsRPG221.AbilityRapidBuild
#    DruidsRPG221.AbilityLoadedHealing
    DruidsRPG221.AbilityExpHealing
    DruidsRPG221.AbilityMedicAwareness
    DruidsRPG221.AbilityLoadedMonsters,       5
    DruidsRPG221.AbilityMonsterHealthBonus,   4
    DruidsRPG221.AbilityMonsterPoints,        5
    DruidsRPG221.AbilityMonsterSkill,         3
    DruidsRPG221.AbilityMonsterDamage
    DruidsRPG221.AbilityEnhancedReduction
    DruidsRPG221.DruidAmmoRegen
    DruidsRPG221.DruidAwareness
    DruidsRPG221.DruidNoWeaponDrop
#    DruidsRPG221.DruidRegen
    DruidsRPG221.DruidAdrenalineRegen
    DruidsRPG221.AbilityVehicleEject
#    DruidsRPG221.AbilityWheeledVehicleStunts
#    DruidsRPG221.AbilityBerserkerDamage
</pre>
		</div>
The last ability list shows how abilities could be commented out to show what abilities are removed.
]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41850</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41850</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 03:35:19]]> GMT</pubDate>
				<author><![CDATA[ greg11]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Looks good.
I wouldn't do all 3 ways though. 
There may be two options required - one for us to type the stuff into the subclass.uc file. The second for server admins to put in their UT2004RPG.ini. (I wonder if we should use a different config file for the subclass stuff?)

Although the two should be basically the same, one has index numbers in, which are a pain to maintain.

Only problem with using python is that it means every server admin will need a copy. I know its free, but it is one extra hassle.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41851</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41851</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 04:09:12]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>Szlat wrote:</cite><br>
		<blockquote>
Only problem with using python is that it means every server admin will need a copy. I know its free, but it is one extra hassle.&nbsp;
		</blockquote>

If the server is running linux, it shouldn't be a problem.

There is also a way to compile python programs into windows executables so python is not needed.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41854</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41854</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 08:25:57]]> GMT</pubDate>
				<author><![CDATA[ greg11]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>greg11 wrote:</cite><br>
		<blockquote>Can a string be used as an array:
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
     AbilityConfigs&#40;0&#41;=&#40;AvailableSubClasses="0,3,6,12",AvailableAbility=Class'DruidsRPG221.DruidSomeAbility',MaxLevel="5,15,15,10"&#41;
</pre>
		</div>
"0,3,6,12" are the indexes for the subclasses array with the corresponding maxlevels.

I just don't know if parsing strings like this would be possible.&nbsp;
		</blockquote>I think I'll knock up a test this way, and see if it looks better. For the short term, I'll just use it to populate existing data structures since I don't want to recode the replication.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41855</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41855</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 09:28:39]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>Szlat wrote:</cite><br>
		<blockquote>......I think I'll knock up a test this way, and see if it looks better. For the short term, I'll just use it to populate existing data structures since I don't want to recode the replication.&nbsp;
		</blockquote>Actually, it is a bit easier than that. If I create the structure
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
struct AbilityConfig
{
	var class&lt;RPGAbility&gt; AvailableAbility;
	var Array&lt;int&gt; AvailableSubClasses;	
	var Array&lt;int&gt; MaxLevels;	
};
var config Array&lt;AbilityConfig&gt; AbilityConfigs;
</pre>
		</div>

then I can configure as
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
AbilityConfigs&#40;0&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidRegen',AvailableSubClasses=&#40;0,3,6,12&#41;,MaxLevels=&#40;5,15,15,10&#41;&#41;
</pre>
		</div>]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41856</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41856</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 09:59:39]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Actualyy, I am wondering if we shouldn't just list the maxlevl for every subclass, rather than specifying the subclass and maxlevel as a pair. So something more like

AbilityConfigs(0)=(AvailableAbility=Class'DruidsRPGcvs.DruidRegen',MaxLevels=(5,0,0,15,0,0,15,10,0,0,0,4,0))

Might be a lot easier to understand, and easier to generate with scripts.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41859</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41859</link>
				<pubDate><![CDATA[Fri, 11 Dec 2009 12:00:19]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ So, with the one big list of levels, I can configure the whole thing as:
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
//                                                                                                   N, AW,AM,AE,WM,WE,ME, XA,XW,XM,XP,XE, B,  A, W, M, E, G
AbilityConfigs&#40; 0&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidArtifactLoaded',            MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  5, 0, 0, 0, 0, 0,  4, 0, 0, 0, 0&#41;&#41;
AbilityConfigs&#40; 1&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidArtifactLoadedHybrid',      MaxLevels=&#40; 0,  2, 2, 2, 0, 0, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 1&#41;&#41;
AbilityConfigs&#40; 2&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidAdrenalineSurge',           MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  3, 0, 0, 0, 0, 2,  2, 0, 0, 0, 0&#41;&#41;
AbilityConfigs&#40; 3&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidEnergyVampire',             MaxLevels=&#40; 0,  5, 0, 0, 0, 0, 0,  2, 0, 0, 0, 0, 0,  5, 0, 0, 0, 3&#41;&#41;
AbilityConfigs&#40; 4&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityEnergyShield',            MaxLevels=&#40; 0,  0, 1, 2, 0, 0, 0,  3, 0, 0, 0, 0, 0,  2, 0, 0, 0, 0&#41;&#41;
AbilityConfigs&#40; 5&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidLoaded',                    MaxLevels=&#40; 0,  2, 0, 0, 2, 2, 0,  0, 6, 0, 0, 0, 5,  0, 5, 0, 0, 1&#41;&#41;
AbilityConfigs&#40; 6&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidVampire',                   MaxLevels=&#40; 0,  3, 0, 0, 0, 3, 0,  0,15, 0, 0, 0,10,  0,10, 0, 0, 2&#41;&#41;
AbilityConfigs&#40; 7&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityEnhancedDamage',          MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0,10, 0, 0, 0, 0,  0,10, 0, 0, 2&#41;&#41;
AbilityConfigs&#40; 8&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityBerserkerDamage',         MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,20,  0, 0, 0, 0, 0&#41;&#41;
AbilityConfigs&#40; 9&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityLoadedHealing',           MaxLevels=&#40; 0,  0, 2, 0, 2, 0, 2,  0, 0, 4, 2, 0, 0,  0, 0, 3, 0, 2&#41;&#41;
AbilityConfigs&#40;10&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityExpHealing',              MaxLevels=&#40; 0,  0, 2, 0, 2, 0, 2,  0, 0,15, 0, 0, 0,  0, 0, 9, 0, 0&#41;&#41;
AbilityConfigs&#40;11&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityMedicAwareness',          MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 2, 1, 0, 0,  0, 0, 2, 0, 0&#41;&#41;
AbilityConfigs&#40;12&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityLoadedMonsters',          MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0,20, 0, 0,  0, 0,15, 0, 0&#41;&#41;
AbilityConfigs&#40;13&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityMonsterHealthBonus',      MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0,10, 0, 0,  0, 0,10, 0, 0&#41;&#41;
AbilityConfigs&#40;14&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityMonsterPoints',           MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0,30, 0, 0,  0, 0,20, 0, 0&#41;&#41;
AbilityConfigs&#40;15&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityMonsterSkill',            MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 7, 0, 0,  0, 0, 7, 0, 0&#41;&#41;
AbilityConfigs&#40;16&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityMonsterDamage',           MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0,20, 0, 0,  0, 0, 0, 0, 0&#41;&#41;
AbilityConfigs&#40;17&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityEnhancedReduction',       MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 5,  0, 0,10,10, 0, 0,  0, 0,10, 0, 2&#41;&#41;
AbilityConfigs&#40;18&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityLoadedEngineer',          MaxLevels=&#40; 0,  0, 0, 8, 0, 8, 8,  0, 0, 0, 0,20, 0,  0, 0, 0,15, 5&#41;&#41;
AbilityConfigs&#40;19&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidShieldRegen',               MaxLevels=&#40; 0,  0, 0, 0, 0,10, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0,15, 0&#41;&#41;
AbilityConfigs&#40;20&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityShieldHealing',           MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 3,  0, 0, 0, 0, 0, 0,  0, 0, 0, 3, 0&#41;&#41;
AbilityConfigs&#40;21&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidArmorRegen',                MaxLevels=&#40; 0,  0, 0, 0, 0, 2, 2,  0, 0, 0, 0, 5, 0,  0, 0, 0, 5, 0&#41;&#41;
AbilityConfigs&#40;22&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidArmorVampire',              MaxLevels=&#40; 0,  0, 0, 0, 0, 5, 0,  0, 0, 0, 0,15, 0,  0, 0, 0,10, 0&#41;&#41;
AbilityConfigs&#40;23&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityConstructionHealthBonus', MaxLevels=&#40; 0,  0, 0, 6, 0, 6, 6,  0, 0, 0, 0,10, 0,  0, 0, 0,10, 3&#41;&#41;
AbilityConfigs&#40;24&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityEngineerAwareness',       MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 1, 0&#41;&#41;
AbilityConfigs&#40;25&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityRapidBuild',              MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0,10, 0,  0, 0, 0, 5, 0&#41;&#41;
AbilityConfigs&#40;26&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidAmmoRegen',                 MaxLevels=&#40; 0,  4, 2, 2, 2, 2, 0,  1, 4, 0, 0, 0, 4,  4, 4, 0, 0, 2&#41;&#41;
AbilityConfigs&#40;27&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidAwareness',                 MaxLevels=&#40; 0,  2, 0, 0, 0, 0, 0,  2, 2, 0, 0, 0, 2,  2, 2, 0, 0, 2&#41;&#41;
AbilityConfigs&#40;28&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidNoWeaponDrop',              MaxLevels=&#40; 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,  3, 2, 0, 0, 0&#41;&#41;
AbilityConfigs&#40;29&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidRegen',                     MaxLevels=&#40; 0,  3, 3, 0, 5, 3, 3,  0, 0, 5, 5, 0, 0,  0, 5, 5, 0, 3&#41;&#41;
AbilityConfigs&#40;30&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidAdrenalineRegen',           MaxLevels=&#40; 0,  0, 3, 3, 1, 0, 1,  4, 0, 2, 2, 0, 0,  3, 0, 3, 0, 3&#41;&#41;
AbilityConfigs&#40;31&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityVehicleEject',            MaxLevels=&#40; 0,  1, 1, 1, 1, 1, 1,  0, 0, 0, 0, 4, 0,  1, 1, 1, 4, 1&#41;&#41;
AbilityConfigs&#40;32&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.AbilityWheeledVehicleStunts',    MaxLevels=&#40; 0,  1, 1, 1, 1, 1, 1,  0, 0, 0, 0, 3, 0,  1, 1, 1, 3, 1&#41;&#41;
AbilityConfigs&#40;33&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidGhost',                     MaxLevels=&#40; 3,  3, 3, 3, 3, 3, 3,  2, 3, 3, 3, 2, 3,  3, 3, 3, 3, 3&#41;&#41;
AbilityConfigs&#40;34&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidUltima',                    MaxLevels=&#40; 2,  2, 2, 2, 2, 2, 2,  2, 2, 2, 2, 2, 2,  2, 2, 2, 2, 2&#41;&#41;
AbilityConfigs&#40;35&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidCounterShove',              MaxLevels=&#40; 5,  5, 5, 5, 5, 5, 5,  5, 5, 5, 5, 5, 5,  5, 5, 5, 5, 5&#41;&#41;
AbilityConfigs&#40;36&#41;=&#40;AvailableAbility=Class'DruidsRPGcvs.DruidRetaliate',                 MaxLevels=&#40;10, 10,10,10,10,10,10, 10,10,10,10,10,10, 10,10,10,10,10&#41;&#41;
AbilityConfigs&#40;37&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilityJumpZ',                      MaxLevels=&#40; 3,  3, 3, 3, 3, 3, 3,  3, 3, 3, 3, 3, 3,  3, 3, 3, 3, 3&#41;&#41;
AbilityConfigs&#40;38&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilityReduceFallDamage',           MaxLevels=&#40; 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4&#41;&#41;
AbilityConfigs&#40;39&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilitySpeed',                      MaxLevels=&#40; 5,  5, 5, 5, 5, 5, 5,  5, 5, 5, 5, 5, 5,  5, 5, 5, 5, 5&#41;&#41;
AbilityConfigs&#40;40&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilityShieldStrength',             MaxLevels=&#40; 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4&#41;&#41;
AbilityConfigs&#40;41&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilityReduceSelfDamage',           MaxLevels=&#40; 5,  5, 5, 5, 5, 5, 5,  5, 5, 5, 5, 5, 5,  5, 5, 5, 5, 5&#41;&#41;
AbilityConfigs&#40;42&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilitySmartHealing',               MaxLevels=&#40; 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4&#41;&#41;
AbilityConfigs&#40;43&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilityAirControl',                 MaxLevels=&#40; 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4, 4,  4, 4, 4, 4, 4&#41;&#41;
AbilityConfigs&#40;44&#41;=&#40;AvailableAbility=Class'UT2004RPG.AbilityFastWeaponSwitch',           MaxLevels=&#40; 2,  2, 2, 2, 2, 2, 2,  0, 2, 2, 2, 1, 2,  2, 2, 2, 2, 2&#41;&#41;

</pre>
		</div>
which is a lot smaller, and is easy to read

EDIT: Except of course you can't have spaces in the config. Grrr]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41866</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41866</link>
				<pubDate><![CDATA[Sat, 12 Dec 2009 02:40:31]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ It's beautiful.

Requiring all MaxLevels to be set could be good for error checking.  If an ability doesn't have the correct length output it to the log.

The spaces issue should be minor since a find&replace could be used to remove all the spaces.  Just keep a text file with the spaces.  This should be even easier to export from a spreadsheet too.

I am assuming the order still depends on the index of the subclasses array.
]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41869</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41869</link>
				<pubDate><![CDATA[Sat, 12 Dec 2009 09:03:32]]> GMT</pubDate>
				<author><![CDATA[ greg11]]></author>
			</item>
			<item>
				<title>Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>greg11 wrote:</cite><br>
		<blockquote>I am assuming the order still depends on the index of the subclasses array.&nbsp;
		</blockquote>Agreed]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41872</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#41872</link>
				<pubDate><![CDATA[Sat, 12 Dec 2009 13:07:19]]> GMT</pubDate>
				<author><![CDATA[ Szlat]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ I'm seeing Counter Shove and Retaliation listed twice on the menu. (Medic subclasses) ]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42856</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42856</link>
				<pubDate><![CDATA[Tue, 16 Feb 2010 08:11:56]]> GMT</pubDate>
				<author><![CDATA[ TON80]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ <p></p>

		<cite>TON80 wrote:</cite><br>
		<blockquote>I'm seeing Counter Shove and Retaliation listed twice on the menu. (Medic subclasses) &nbsp;
		</blockquote>


this occurs with all sub-classes I believe the second set is the newer versions]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42857</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42857</link>
				<pubDate><![CDATA[Tue, 16 Feb 2010 09:49:42]]> GMT</pubDate>
				<author><![CDATA[ RoadKill v3.4]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ And I am very happy that I learned my lesson about countershove and shun them like the plague.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42858</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42858</link>
				<pubDate><![CDATA[Tue, 16 Feb 2010 09:58:06]]> GMT</pubDate>
				<author><![CDATA[ cribbage]]></author>
			</item>
			<item>
				<title>Re:Loopholes in the &quot;L&quot; stats menu</title>
				<description><![CDATA[ Counter shove has it's place: romramoonstation, spacenoxx, megawoot, otherwise it's a pain.]]></description>
				<guid isPermaLink="true">http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42859</guid>
				<link>http://www.disastrousconsequences.com/dcforum/posts/list/4592.page#42859</link>
				<pubDate><![CDATA[Tue, 16 Feb 2010 17:14:03]]> GMT</pubDate>
				<author><![CDATA[ HighwratH]]></author>
			</item>
	</channel>
</rss>
