|
|
Rainalcar
Promising
Famous Hero
Heroji su zakon
|
posted April 02, 2009 07:22 PM |
|
|
True. But even the input data would be very useful, especially establishing how they are determined.
____________
|
|
AlexSpl
Responsible
Supreme Hero
|
posted April 04, 2009 10:29 PM |
bonus applied by angelito on 05 Apr 2009. |
Edited by AlexSpl at 08:07, 10 Sep 2009.
|
There are only 255 different skill trees for any hero for PARTICULAR set of allowed skills. A tree number (1 <= N <= 255) is selected in a random way for each hero when a new game is generated or an old one is restarted. Nevertheless, it's possible to change a current skill tree e.g. having visited a Witch's Hut. The new version (3.80) of LMOracle shows a current skill tree number (N).
So, what do you need to know in order to be able to predict which skills will be offered on the next level-up?
The first way.
You can create a database including 156*255 = 39780 different skill trees. Then you may compare your current secondary skill development with skill trees from the database (255 skill trees aren't too many). It's a good way because there is no cheating at all! Though you cannot predict your hero's development from the very beginning because of existence of similar trees.
For example, there is only one skill tree for Crag Hack when he offered Diplomacy at lvl2 (skill tree #112) for the full set of skills. And what? If it happens it's guaranteed your Crag Hack gets Expert Logistics at lvl4: Offense 3, Logistics 1, Logistics 2, Logistics 3 and Expert Tactics at lvl7 provided that all skills are allowed on a map of course.
The big lack of this method is a dependence on a set of the allowed skills.
The second way.
This way supposes you know your hero's skill tree number and also which skills are forbidden on a map. You cannot see a skill tree number unless you use special tools (LMOracle, or WinHex at last ). Also you need the map editor (or something else) to see which skills are restricted on the map from which your game is generated.
I Prologue
Let's assume that all skills are allowed on the map we are playing (at least for a while). Every secondary skill has an internal game number:
0 - Pathfinding
1 - Archery
2 - Logistics
3 - Scouting
4 - Diplomacy
5 - Navigation
6 - Leadership
7 - Wisdom
8 - Mysticism
9 - Luck
10 - Ballisctics
11 - Eagle Eye
12 - Necromancy
13 - Estates
14 - Fire Magic
15 - Air Magic
16 - Water Magic
17 - Earth Magic
18 - Scholar
19 - Tactics
20 - Artillery
21 - Learning
22 - Offense
23 - Armorer
24 - Intellegence
25 - Sorcery
26 - Resistance
27 - First Aid
28 secondary skills in total.
There is an algorithm which allows you to predict skill offer when leveling-up a hero.
II The algorithm. Part I
1. Hero_Level = Hero_Level + 1;
2. Seed = 214013 * Hero_Level + 156823 * N + 154079 (N is a skill tree number);
3. Let's define the procedure _rand that generates randomness:
procedure _rand(ROld: DWORD; var RNew, Q: DWORD);
var R1, R2, R3: DWORD;
begin
R1 := ROld;
asm
mov eax, R1
imul eax, 343FDh
add eax, 269EC3h
mov R2, eax
shr eax, 10h
and eax, 7FFFh
mov R3, eax
end;
RNew := R2;
Q := R3
end;
_rand(Seed, SEC, PRI);
In other words, SEC = 214013 * Seed + 2531011 (Leave only 4 bytes as a result), PRI = SEC div 65536 (Leave only 15 bits as a result, so PRI cannot exceed 32767).
PRI value is used in calculations to determine which PRIMARY skill will be increased.
SEC value is used for secondary skills prediction.
Now let us roll 100-sided dice!
4. Q = PRI mod 100 + 1.
To be continued...
|
|
Rainalcar
Promising
Famous Hero
Heroji su zakon
|
posted April 04, 2009 11:29 PM |
|
|
This is due for QP already. I was afraid and really hoped that there are no fixed trees. I really didn't know this, and I very much doubt anyone did in times of ToH. This is massive, and very bad, for although 255 trees are plenty, they are also few in a way. Perhaps not from hero lvl1, but from 6 perhaps the info becomes probably to revealing. Also, you can guide your skill selection by taking Huts at appropriate times, though I find this not too big of a problem considering you usually don't have time to do this in MP.
Perhaps you could make a file listing all the skill trees for the major main heroes at least?
____________
|
|
dimis
Responsible
Supreme Hero
Digitally signed by FoG
|
posted April 04, 2009 11:39 PM |
|
|
Thank you AlexSpl!
I have comments too. Let's give this guy some air and finish it the way he wants. As of the QP, I don't think there is a doubt he is gonna get it. Patience is a virtue.
Best regards to all
____________
The empty set
|
|
Draco
Promising
Famous Hero
|
posted April 05, 2009 12:18 AM |
|
|
I'm curious if the skill tree is changed if you modify the Hctraits.txt.
|
|
dimis
Responsible
Supreme Hero
Digitally signed by FoG
|
posted April 05, 2009 12:24 AM |
|
Edited by dimis at 18:32, 05 Apr 2009.
|
Yes. It changes. And we already know that. Refer to Xarfax earlier in this (as well as other) thread(s). Another option is Ecoris' description on the two major tests he has in this thread.
Regarding Xarfax's sequence of 3 posts below:
What can I say man? It's a pity you still view things like that 3 years later ...
Quote:
Quote: Why? iMvhO there are NO probabilities at all.
Lets say i made 80 test with a hero classe and in 3 cases i got the same 8 skills. So NO probabilities ...at least iMvhO.
On the other hand you can influence the skilling with the txt. Plus you can influence skilling by taking certain skills.
..this statement is 3 years old. I took many flames for it the other "probility experts".
...
The key sentence to understand what all the tables represent is your sentence:
Plus you can influence skilling by taking certain skills.
In other words, FIX, I repeat FIX, I repeat FIX the way you pick skills. Then out of the 255 possible trees you have certain probabilities in getting each skill; i.e. the number of times you get the skill out of the 255 (by following a fixed way of picking skills). And that's the whole story. That was my answer to this post 3 years back (check page 1 in this thread), and it still is.
As of the rest, I am not even going to comment on them ...
And this is my last post until AlexSpl finishes his job, so that we can discuss on a solid base.
____________
The empty set
|
|
Xarfax111
Bad-mannered
Supreme Hero
The last hero standing
|
posted April 05, 2009 04:55 PM |
|
|
Quote: All what you peeps do with the skill table iMvhO is leading to
...Naddajadahada.
Why? iMvhO there are NO probabilities at all.
Lets say i made 80 test with a hero classe and in 3 cases i got the same 8 skills. So NO probabilities ...at least iMvhO.
On the other hand you can influence the skilling with the txt. Plus you can influence skilling by taking certain skills.
..this statement is 3 years old. I took many flames for it the other "probility experts".
They even got Quality Points over and over again by Angelito by simply given the wrong skill table again and again, and i got many flames cause i told you that they are wrong.
Lets say i was right.
PS: There are some other old posts were i was assuming "the patterns" already.
____________
|
|
Xarfax111
Bad-mannered
Supreme Hero
The last hero standing
|
posted April 05, 2009 05:06 PM |
|
|
Quote: My Theory is that each Hero class has a certain amount of those "stripes" to ensure a heros class skill balancing and to let them level up in the hero class typical way.
In real life those "stripes" are used for "one-armed-machines"(or lottery machines or however they are called). Thats because the law wants to be 100% sure that the chances for a win are on a regular and high enough basis.
Some criminals used this knowledge with computerprogramms. They watched those machines for about 1 hour and could calculate when there will be a win on the stripe.
Against my Theory is the txt-file which was used by the developers to adjust the game. There you can influence the skilling of the
hero to. So in the end it might be a mixture of both. But who will know?
Im a bit out of business, so some numbers might be lacking a bit, but the main things stay right.
Oooh this one is even better!
____________
|
|
Xarfax111
Bad-mannered
Supreme Hero
The last hero standing
|
posted April 05, 2009 05:17 PM |
|
|
Quote: Quick report.
Even quitting homm between tests instead of going to the main menu, I'm getting duplicate skill trees. What's going on? Is this by design, or coincidence?
Binabik, the only one that was with me.
Btw. well deserved QP for Alex. Thanks for sharing!
____________
|
|
Ecoris
Promising
Supreme Hero
|
posted April 05, 2009 07:02 PM |
|
Edited by Ecoris at 19:04, 05 Apr 2009.
|
A bit of history (from page 6 of this thread).
__________
Binabik, August 07, 2006 06:31 PM:
Quick report.
Even quitting homm between tests instead of going to the main menu, I'm getting duplicate skill trees. What's going on? Is this by design, or coincidence?
__________
Xarfax111, August 08, 2006 04:16 AM:
Thats where ny "sequenze theory" came from. It cant be "pure random" as those "sequenzes" repeat far to often within a comparable low data amount. If it would be pure random chances that a sequenze would
repeat would be the same as of lottery numbers do repeat.
__________
Ecoris, August 08, 2006 04:59 AM:
Perhaps the random seed for each hero is stored in a single bit. That would mean that there are only 256 possibilities. Or do you experience long identical sequences in different trees?
__________
That idea was not just taken out of nothing. dimis had already (on the same page) described the "balls in bins" procedure which could lead to an estimate of the total number of skill trees. (Dimis had done this on basis of 200 'ANSAs' and got an answer around 130 or 330 but with a high uncertainty. I later made additional calculations based on the same data with just a single and more steep intersection and got a result around 200 or more. I don't think I ever posted the calculations, but I mention the number on the next page). Also, notice that the term "skill tree" is already established at this point.
The probability experts never claimed that pure randomness was involved. My perception of how the level up algorithm works has not changed for years. What Alex has posted so far only seems to confirm this view. But I don't really think we disagree on how it works.
And finally, I have never flamed you, Xarfax.
Edit: Spelling corrections.
____________
|
|
AlexSpl
Responsible
Supreme Hero
|
posted April 05, 2009 07:35 PM |
|
Edited by AlexSpl at 08:12, 10 Sep 2009.
|
Thanks for replies and QP! But I wanted to say that there are 255 different skill trees for particular hero, not for all. That means that there are 255 skill trees for Crag Hack, 255 skill trees for Tazar, 255 skill trees for Luna and so on. Don't be afraid
Quote: Perhaps the random seed for each hero is stored in a single bit. That would mean that there are only 256 possibilities. Or do you experience long identical sequences in different trees?
That's true. But "random seed" is stored in a single BYTE and cannot be 0.
Let's leave the algorithm for a while...
Actually, there are less than 156*255 = 39780 different skill trees for each particular set of allowed secondary skills. Do you know any difference between possible skill trees of Orrin and Valeska? There are no differences at all because both Orrin and Valeska are Knights and have the same secondary skills at start. From this point of view there are no differences between Tamika and Clavius as well. Thus, 39780 is the upper boundary. So, all heroes from the same class with identical initial skills (or even without skills) have the same set of possible skill trees (255 trees). For example, there are no differences in possible sets of skill trees between all Barbarians with Advanced Offense, or between all Knights without skills, etc.
Back to the algorithm.
Let us recall the chances to increase particular primary skill for each class of heroes.
Class / 2-9 levels / 10+ levels
-----
Knight / 35 45 10 10 / 30 30 20 20
Cleric / 20 15 30 35 / 20 20 30 30
-----
Ranger / 35 45 10 10 / 30 30 20 20
Druid / 10 20 35 35 / 20 20 30 30
-----
Alchemist / 30 30 20 20 / 30 30 20 20
Wizard / 10 10 40 40 / 30 20 20 30 (not a mistake!)
-----
Demoniac / 35 35 15 15 / 30 30 20 20
Heretic / 15 15 35 35 / 20 20 30 30
-----
Death Knight / 30 25 20 25 / 25 25 25 25
Necromancer / 15 15 35 35 / 25 25 25 25
-----
Overlord / 35 35 15 15 / 30 30 20 20
Warlock / 10 10 50 30 / 20 20 30 30
-----
Barbarian / 55 35 5 5 / 30 30 20 20
Battle Mage / 30 20 25 25 / 25 25 25 25
-----
Beastmaster / 30 50 10 10 / 30 30 20 20
Witch / 5 15 40 40 / 20 20 30 30
-----
Planeswalker / 45 25 15 15 / 30 30 20 20
Elementalist / 15 15 35 35 / 25 25 25 25
II The algorithm. Part I. Primary skills advancement
------
1. Hero_Level = Hero_Level + 1;
2. Seed = 214013 * Hero_Level + 156823 * N + 154079 (N is a skill tree number);
or HEX: 2. Seed = 343FDh * Hero_Level + 26497h * N + 259DFh
3. SEC = 214013 * Seed + 2531011 (Leave only 4 bytes as a result),
PRI = SEC div 65536 (Leave only 15 bits as a result, so PRI cannot exceed 32767).
Sorry, of course, SEC shr 10h = SEC div 2^10h = SEC div 2^16 = SEC div 65536 (not SEC div 1024!)
or HEX: 3. SEC = 343FDh * Seed + 269EC3h; PRI = (SEC shr 10h) and 7FFFh = (SEC div 10000h) and 7FFFh
Note: I recommend to use a hexadecimal calculator to obtain PRI and SEC values
4. Q = PRI mod 100 + 1 (1 <= Q <= 100)
a) if Q <= Attack% then Attack is increased else Q := Q - Attack chance;
b) if Q <= Defense% then Defense is increased else Q := Q - Defense chance;
c) if Q <= Spell_Power% then Spell Power is increased else Knowledge is increased.
Example #1
Hero_Level = 1, N = 100 (64h)
Q: PRI? SEC? Q?
1. Hero_Level = 1 + 1 = 2;
2. Seed = 343FDh * 2 + 26497h * 64h + 259DFh = F82CD5h;
3. SEC = 343FDh * F82CD5h + 269EC3h = 6FA5AC44h (4 bytes, OK); PRI = (6FA5AC44h div 10000h) and 7FFFh = 6FA5h (28581);
4. Q = 28581 mod 100 + 1 = 82.
Example #2
Q: Which primary skill will be increased when leveling-up a lvl1 Crag Hack, provided Q = 82?
A: Crag Hack becomes a lvl2 hero.
a) 82 <= 55 - false > Q = 82 - 55 = 27;
b) 27 <= 35 - true > Defense will be increased.
-----
II The algorithm. Part II. Secondary skills advancement
-----
1. Variables
Let Delta_Wisdom = 3 and Delta_Magic = 3 for magic heroes except Elementalists,
Delta_Wisdom = 6 and Delta_Magic = 4 for might heroes including Elementalists.
Let Wisdom_Counter = 0 and Magic_Counter = 0 (for lvl1 heroes)
2. Circle #1 (there are four circles in total)
I Wisdom
if Wisdom_Counter + Delta_Wisdom <= Hero_Level and a hero ALREADY possesses Basic or Advanced Wisdom then Wisdom will be offered in the LEFT slot, Wisdom_Counter := Hero_Level and we go to the next circle (#2).
(In general, the LEFT slot is intended for improvement of already possessed skills while new skills, again in general, appear in the RIGHT slot).
To be continued.
P.S. Tomorrow I'll share LM Oracle 3.80. This version can construct any tree out of 255. You need just enter a skill tree number.
|
|
AlexSpl
Responsible
Supreme Hero
|
posted April 06, 2009 12:57 PM |
|
Edited by AlexSpl at 08:25, 10 Sep 2009.
|
First, the game tries to increase level of one of already got secondary skills (circle #1). That skill is placed to the left slot. If there are no skills to advance the game tries to find new skill that is not known to a hero and places it to the left slot (circle #2).
Then the game places (another) new skill to the right slot (circe #3). If there are no new skills available then level of one of already got skills is increased and the game places it to the right slot (circle #4).
There are five skills (Wisdom and four Magic Schools) which are advanced in an unusual way.
Circle #1 (advancing known skills)
I Wisdom (forced)
-----
if Wisdom_Counter + Delta_Wisdom <= Hero_Level then Wisdom is placed to the left slot and Hero_Level is stored in Wisdom_Counter. The algorithm goes to the circle #3.
II Magic Schools (forced)
-----
if Magic_Counter + Delta_Magic <= Hero_Level then Magic School is placed to the left slot and Hero_Level is stored in Magic_Counter. The algorithm goes to the circle #3.
Which Magic School is chosen exactly?
If a hero knows only one magic school then this school is advanced and placed to the left slot. If there are more than one schools (n = 2, 3 or 4) known to a hero then n-sided dice is rolled:
Seed = SEC;
call _rand(Seed, SEC, Q);
Q = Q mod n + 1.
if a hero already knows two schools - Q = 1 or 2, three - Q = 1, 2 or 3, four - Q = 1, 2, 3 or 4.
Fire (1) -> Air (2) -> Water (3) -> Earth (4)
For example, if Q = 1 and a hero possesses both Earth and Air Magic then Air is chosen (Air > Earth), if Q = 2 then Earth is chosen and so on. Thus, on this step all magic schools are equivalent (no "probabilities" from tables!)
III General skills
-----
if a hero possesses only one secondary skill (including Wisdom and Magic Schools) on Basic or Advanced level then that skill will be placed in the left slot.
Edited
To be continued.
|
|
AlexSpl
Responsible
Supreme Hero
|
posted April 07, 2009 07:18 AM |
|
Edited by AlexSpl at 07:51, 10 Sep 2009.
|
Note: Part III of my previous post was unclear (it was true only for skills with EQUAL weights, sorry if I've confused you). So I'll try to clarify it a little in this post.
It's well known that every class of heroes has its own "probabilities" to gain particular secondary skill at level-up. For example, Barbarians learn Logistics ("probability" = 7) more likely than Eagle Eye ("probability" = 2) and cannot learn Necromancy at all (at least at level-up, "probability" = 0). Let's call those "probabilities" something else. "Weights" is more suitable word. Secondary skills with 0 "probability" has Weight = 1 if the hero already has that 'forbidden' skill, otherwise 0. Let's assume that SEC value has been already obtained (see Part I for more details). In order to be able to predict which skill will be placed in the left slot let's look at the following example (from the particular to the general):
Example #3
Let's assume Barbarian (lvl1) has Basic Logistics (W = 7), Advanced Eagle Eye (W = 2) and Basic Necromancy (W = 1). Don't laugh!
SUM = W(LOG) + W(EAGLE) + W(NECRO) = 10.
Now let's roll SUM-sided dice (In this particular case - 10-sided dice)!
Q = SEC mod SUM + 1 (1 <= Q <= SUM).
Let Q = 8, for example.
Subtract the weights of the skills from this value (Q) one after another until you get 0 or negative result.
8 - W(LOG) = 8 - 7 = 1 > 0
1 - W(EAGLE) = 1 - 2 = -1 < 0 => Expert Eagle Eye will be placed in the left slot.
As you can see,
if Q = 10 then our hero gets Advanced Necromancy (1 case out of 10),
if Q = 8 or 9 then our hero gets Expert Eagle Eye (2 cases out 10),
if Q <= 7 then Advanced Logistics will be offered (7 cases out 10).
Thus, there is a big sense in those weights-"probabilities".
Example #4
Let's assume Barbarian (lvl2) has Advanced Logistics (W = 7) and Basic Archery (W = 7).
Q: Which skill will be placed in the left slot in this case?
SUM = W(LOG) + W(ARCH) = 14.
Q = SEC mod 14 + 1 (1 <= Q <= 14).
Let Q = 7, for example.
7 - W(LOG) = 7 - 7 = 0
A: Expert Logistics will be offered? NO!
Skills with lesser in-game numbers have priority over skills with bigger in-game numbers i.e. you should subtract in this order: Archery (#1), Logistics (#2).
7 - W(ARCH) = 7 - 7 = 0
A: Advanced Archery will be offered.
And what about getting new skills?
Example #5
Q: Which skill will be offered to Crack Hack if he already possesses Expert Offense (only)?
There's nothing more to improve, so new skill will be placed in the left slot.
Candidates: all secondary skills except Offense, Necromancy and Water Magic.
Note: Weights of forbidden skills aren't considered here because a hero cannot obtain them through level-up.
SUM = W(PATH) + ... + W(FIRST_AID) - W(OFFENSE) = 112 - 10 = 102.
Q = SEC mod 102 + 1 (1 <= Q <= 102).
Let Q = 1.
1 - W(PATH) = 1 - 8 < 0.
A: Pathfinding will be offered.
There is one exception (I've already mentioned about it in my previous post): if Advanced or Expert level of "forced" Magic School is offered, weights of all allowed Magic Schools are equal.
Right slot
When skill (new, Advanced or Expert) is to be placed to the right slot, just do not add the weight of the skill in the left slot when calculating SUM.
III Epilogue
There are 26 skill trees for Crag Hack when he is offered Logistics at lvl2 (for the full set of skills).
26 - Ballistics
23 - Tactics
22 - Artillery
17 - Scouting, Resistance, Pathfinding
16 - Armorer
10 - Archery, Leadership
9 - Luck, Earth Magic
8 - Mysticism
7 - Air Magic
6 - Learning
5 - Sorcery
4 - Wisdom, Intelligence
3 - Eagle Eye, Estates, Fire Magic, First Aid, Navigation, Scholar
1 - Diplomacy
So it's obvious that chance to obtain, for example, Earth Magic on lvl2 is 9/255 and so on. I think these values are real probabilities, at least, to get particular skill at particular level for particular set of allowed skills .
The end.
P.S. Now it seems more clearly. And, of course, if you have any questions I'll try to answer.
|
|
dimis
Responsible
Supreme Hero
Digitally signed by FoG
|
posted April 07, 2009 07:27 AM |
|
Edited by dimis at 07:36, 07 Apr 2009.
|
filler in case you want more posts
And once again, thank you for sharing and also for spending all the time needed to get the job done!
____________
The empty set
|
|
AlexSpl
Responsible
Supreme Hero
|
posted April 07, 2009 07:35 AM |
|
Edited by AlexSpl at 07:45, 07 Apr 2009.
|
Thank YOU for starting this thread! I really love your posts.
I think the first way is better than the second one. So your idea about the database is a worth one.
I can write a tree viewer (or you can write yours) which will be able to open the skill trees constructed and saved by LMOracle. Already I have all skill trees for Crag Hack in the database.
|
|
Rainalcar
Promising
Famous Hero
Heroji su zakon
|
posted April 07, 2009 01:38 PM |
|
|
Yes, a database would be great. Thanks for the info Alex.
|
|
angelito
Honorable
Undefeatable Hero
proud father of a princess
|
posted April 07, 2009 06:52 PM |
|
|
Quote: They even got Quality Points over and over again by Angelito by simply given the wrong skill table again and again, and i got many flames cause i told you that they are wrong.
Lets say i was right.
At the time people believed in a geocentrical world order, there were for sure guys who said "WRONG!", but similar to some member(s) here (no names ), they didn't bring up a different solution. They just shouted "WRONG!WRONG!" all the time. And when finally someone discovered the heliocentric order, those guys screamed: "See? I knew it!!".
Newton was a hero with all his theories and was well respected. But Einstein and his theories made some of Newton's work worthless.
Einstein was a hero at his time, but he also was prooven wrong with some of his statements (electrons being the smallest parts of an atom ->> quarks). So was it wrong to hand out all the prizes he got at that time, only because nowadays we know better?
Stop your whining about red stars and contribute something usefull to the library as you have done in former times. Would be the better choice for all of us.
____________
Better judged by 12 than carried by 6.
|
|
Rainalcar
Promising
Famous Hero
Heroji su zakon
|
posted April 07, 2009 07:46 PM |
|
|
Isn't it true that quarks are in the same scale as electrons? Both currently known fundamental particles?
|
|
dimis
Responsible
Supreme Hero
Digitally signed by FoG
|
posted April 08, 2009 01:04 AM |
|
Edited by dimis at 05:19, 08 Apr 2009.
|
Happy man
I was waiting for others to post their comments, but it seems that others are waiting for me to comment, or at least this is how it feels.
Let me start by mentioning the two things that have changed; one is about the model (you can call it algorithm from now on since we are certain), and the other one has to do with the way randomness is generated in this game.
One by one:
Change 1: What changes, is how Magic Schools are offered (among at least 2) for Advanced or Expert level (but not for Basic; otherwise it needs re-writing there by AlexSpl and then I need to revise some of what I say below) when they have to appear (usually on your left) due to the Magic Exception. In this case the weights are discarded and all Magic Schools are considered to be equal.
In all other cases the model was right and the weights were used exactly as it has been described in the two threads (this one and Heroes Stats and Skills Chances - I still suggest reading this to have some perspective when you read the algorithm by AlexSpl above). This further implies that both tables (AR and AL) are ok with respect to what they had to compute (it is also intuitive to see that, since the change affects "upgrades" and not the likelihood to get a particular new skill) assuming randomness with good statistical properties when rolling a die or tossing a coin. This in turn gives rise to the next paragraph.
Change 2: This is not a change actually, rather than a new definition, since we knew something was wrong with the way the game produced randomness. I am referring here to the first 3 equations given by AlexSpl:
Quote: 1. Hero_Level = Hero_Level + 1;
2. Seed = 214013 * Hero_Level + 156823 * N + 154079 (N is a skill tree number);
or HEX: 2. Seed = 343FDh * Hero_Level + 26497h * N + 259DFh
3. SEC = 214013 * Seed + 2531011 (Leave only 4 bytes as a result),
PRI = SEC div 65536 (Leave only 15 bits as a result, so PRI cannot exceed 32767).
or HEX: 3. SEC = 343FDh * Seed + 269EC3h; PRI = (SEC shr 10h) and 7FFFh = (SEC div 10000h) and 7FFFh
Note: I recommend to use a hexadecimal calculator to obtain PRI and SEC values
These are the ones that generate the "random number" that will be used by the algorithm at a specific step (level-up).
So, bottom line, randomness in the game (regarding our topic: skills), depends on hero level, and the skill tree number. And with a personal IM I sent to AlexSpl last night, the skill tree number depends on the address in memory of the hero's name plus some constant (108 in decimal). This looks like a nice idea, but I think it was a very poor programming choice to make N (skill tree number) be represented by a single byte (i.e. an integer between 0 and 255).
Closing, it will be interesting to see how tables change by introducing this kind of "biased" randomness. And then essentially we can judge how good as a choice was for 3DO to allow only 255 skill trees. I think these are all I wanted to say for now.
Finally, as far as the database is concerned, we don't have to get burnt by producing all skills manually through LM Oracle. That idea (origins) was in the pre-algorithm era. Now that everything is defined we can automate the process and generate it on demand. It will be fast and also eliminates the idea of having a torrent "always on" online. We'll figure out the details until the summer, because earlier as I have already said, I can not work on that.
Did I mention good job? Well ...
____________
The empty set
|
|
Xarfax111
Bad-mannered
Supreme Hero
The last hero standing
|
posted April 08, 2009 10:14 AM |
|
|
Quote: At the time people believed in a geocentrical world order, there were for sure guys who said "WRONG!", but similar to some member(s) here (no names ), they didn't bring up a different solution. They just shouted "WRONG!WRONG!" all the time. And when finally someone discovered the heliocentric order, those guys screamed: "See? I knew it!!".
Newton was a hero with all his theories and was well respected. But Einstein and his theories made some of Newton's work worthless.
Einstein was a hero at his time, but he also was prooven wrong with some of his statements (electrons being the smallest parts of an atom ->> quarks). So was it wrong to hand out all the prizes he got at that time, only because nowadays we know better?
Stop your whining about red stars and contribute something usefull to the library as you have done in former times. Would be the better choice for all of us.
Staying in your first analogy, you were the one that were with ones who stated that the earth is flat, cause otherwise we would fall off. You would give the Catholic Church a Quality Point for their "knowledge". I would be the one that stated that it cant be, cause other planets arent flat, but i dont have a proof. Off course, due to your personal dislike, you would try to make fun out of me.
The second analogy is totally ok with me. Lets say Alex is Einstein, an me Newton. Well Newton invented the Gravity Theory, so what an honor for me. Thanks, thats even better then your QPs given for every long post.
____________
|
|
|
|