Topic: The Wheel - Status  (Read 13976 times)

0 Members and 1 Guest are viewing this topic.

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #20 on: February 05, 2003, 03:42:59 pm »
OK, so much for the simple answer.

Can someone E-Mail me his MetaMap.gf file?
 

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #21 on: February 05, 2003, 04:07:50 pm »
Sure, its on the way... (hex editor too...)
Note that the windows calculator will do some hex->dec conversions too!

I'm just looking at that now too. That repeating pattern you observed
likely has somthing to do with it... I think one of the values we are interested in
is stored in the byte immediately after each "14 AE C7 3E" sequence.

This one is tricky!
 

Arrgh! peerchat.gamesy.com is down again - most annoying,
back to local chat server (has some issues...)
« Last Edit: December 31, 1969, 06:00:00 pm by rajnsaj »

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #22 on: February 05, 2003, 08:43:50 pm »
OK, I just sent you the results. Got it beat!

Even though EaW has 8 playable races, 1 non-player race and monsters, the tension matrix has 17 tables!
Only the first 8 have any data so Orions and Monsters don't seem to have Tension Values.

The remaining tables may have been for expansion.

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #23 on: February 05, 2003, 11:54:39 pm »
To cool, that's great!

I'm dying to make a politics page with the
info, but I have to be up early tomorrow.
I hope to get that done on the weekend.

I'm now collecting Stores blobs in various states
of supply to work out their structure for the
shipyard.  

Cleaven

  • Guest
Re: The Wheel - Status
« Reply #24 on: February 06, 2003, 01:22:37 am »
I wonder just when the two layer OP map was thought up!

Quote:

OK, I just sent you the results. Got it beat!

Even though EaW has 8 playable races, 1 non-player race and monsters, the tension matrix has 17 tables!
Only the first 8 have any data so Orions and Monsters don't seem to have Tension Values.

The remaining tables may have been for expansion.  


 

DarkElf

  • Guest
Re: The Wheel - Status
« Reply #25 on: February 06, 2003, 04:17:01 am »
17 tables you say?

I wonder if there being 17 ways for the political control of a Hex to be under has any coincidence?

Could you email me thre results as well rajinsaj?  This sounds most interesting...

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #26 on: February 06, 2003, 06:57:40 am »
No problem,  I just forwarded the
political tension matrix structure to you.

I'm thinking we should summarize all
this in a file to post somewhere when
we're done so that future D2 projects
will have a handy reference.

It sure would've helped me!  

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #27 on: February 06, 2003, 03:17:32 pm »
Guys,
I have the Ships Damage Blob almost solved.

It's a single table of 25 internal components. Each component has an Original and Destroyed value.
Probably used to figure Damage Percentage.
Power Systems are first, followed by Non-Weapons, and then Weapons.

They pretty much coincide with the shiplist except for 2 values that I can't find, and 2 values from the shiplist that don't seem to have been included. I am using the standard EaW 2036 shiplist.

Further study will be required to identify 100% of the component names  because the ship diagram I used didn't have all possible entries and entries with similar values can't be uniquely ID'd without something to set it apart.

 

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #28 on: February 07, 2003, 04:29:17 pm »
I have decoded the political tension values
from the matrix blob, but I treated each row
of each table as three 4 byte longints.
(instead of 1,5, and 6 Hex digit groups -
should result in the same values)

Intruder, could you take a look at the "Politics" page
and tell me if those are the same kind of numbers
you observed in the copy of the matrix blob you decoded?

I have yet to calculate the actual alliances according to: (?)

AllyRatio=0.25  //This number determines what percentage of races are allies. Calculated vs most hated enemy
NeutralRatio   =0.5 //This number determines what percentage of races are nuetral. Calculated vs most hated enemy

and

DistanceWeight=1.0
TensionWeight=1.5

... and then relate these to the text used in game to describe them ("We are at war with...").

I am looking at implementing SSL for the shipyards and supply pages
to allow for secure logins to purchase, repair or supply ships.
It will take a little work and I'm not really sure I can yet...

Great work on the Damage blob, we've almost got what we need!
« Last Edit: December 31, 1969, 06:00:00 pm by rajnsaj »

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #29 on: February 07, 2003, 11:04:20 pm »
Your politics page is confusing.

In the first table (Fed), only the Romulan and Lyran Current figures are correct.
The Original Values for all 8 Races are right, but the others not mentioned above have values way off.

In the Fed Table, the ISC actually have a current value of 63, but the listed value is huge.

I can't guess yet why the values above could get as large as they are.
Since other values seem to be more "normal", I don't think it's your code.

As far as interpreting the numbers, you'll probably have to do observations to determine trigger values for the different
text descriptions.
Since it's obvious that 0 means "close friends",  go from there. Print a matrix, then click hexes and compare the values to
the descriptions.
As values increase, changes will give away the triggers.

How does that sound?

 
« Last Edit: December 31, 1969, 06:00:00 pm by UDF_Intruder »

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #30 on: February 07, 2003, 11:45:03 pm »
Thanks, that's what I thought.

I'm decoding the current value the same way as the initial
value, but maybe I shouldn't. I'll double check the calculation.

I figured I'd have to check the alliances on the campaign map
and compare with the matrix to determine the trigger values.

I'll take another look...  

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #31 on: February 08, 2003, 12:00:34 am »
The 2 values are read the same way. That's not it.
All the Original Values came out right.
2 Current ones were right, 6 were wrong.

Go figure.


I just sent you the Damage Blob Breakdown.
 

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #32 on: February 08, 2003, 12:24:40 am »
Just looking at the current value for the ISC:
00 00 00 3F as little-endian 4 byte longint: 1056964608
00 00 00 3F as big-endian 4 byte longint: 63

This would lead me to believe that the
current value is stored in big-endian byte order,
except if I calculate the Mirak tensions for the Feds
I get:
5C 8F 42 3E as little-endian 4 byte longint: 1044549468
5C 8F 42 3E as big-endian 4 byte longint: 1552892478
...neither of which makes much sense.

I gather the tension is increased by the amount specified
under PoliticalTensionInc in the MetaMap.gf file every time
a battle is fought. I wondered if these current numbers
might be correct. But these current values do not seem
to have changed in the past few days even though battles
have been fought.

I'll check for the damage blob, thanks. Hopefully I'll figure
out the rest of the political tension matrix soon, shipyards
and supply should be a little more interesting.  

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #33 on: February 08, 2003, 08:56:22 am »
Big E is definetly the way to go.
From looking at the rest of the tables, they also seem to have huge numbers.

The unused rows also have a huge number, and they're alike.

Might I suggest making a simple UPDATE query and change every current value to 0 and then observe
the progress.
On second thought, update current values so you maintain hostilities with the proper races or you might not get
missions.

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #34 on: February 08, 2003, 11:07:46 am »
Good idea to try and reset the current values to the initial,
and then observe the progress... I'll give that a try!

I'll back up the current blob first though, in case that is
not how it works. These huge numbers do not seem to
be changing which leads me to believe they are a pointer
to a value in memory... I will try a reset to initial values and
if that does not seem correct I will try the strategies below:


I started digging in the serverplatform.exe with a
hex editor for the answer to the current political tesion
values.

I found all the corresponding string pieces but have not yet found
the formula used to determine which string is presented.

I did notice the following relevant funtion names (among many others)
called from ImportExportTable.dll  however:

GetIETString
GetIETQWORD
GetIETLongDouble
GetIETInt64
GetIETFloat
GetIETDouble
GetIETLong
GetIETWORD
GetIETShort
GetIETChar
(full list below)

as well as the internal(?) functions:
MultiByteToWideChar
WideCharToMultiByte

I wonder if the value for the current tension is
a pointer to a value stored in memory? (AVtBuffer@nDataStore)?
Since these current values in the matrix blob do not seem to change
perhaps that is the case?
There is some code that comes before the tension strings
that would lead me to believe so. But then how is the tension
remembered if the server is restarted? (Doesn't really make sense)
Unless it is recalculated from the battles table info
and the gf settings each time the server is started?

Aha, perhaps I can manually calculate the current tension
according to the battles, map and character tables and the gf info myself...
then I just need to relate these values to the tension strings.


Full import table from ImportExportTable.dll for ServerPlatform.exe:
Ordinal   Function Name   
0280   ?GetIETShort@CImportExportTable@@UAEPAFPBD@Z
009c   ??1CIETStringPtrArray@@UAE@XZ
009b   ??1CIETString@@QAE@XZ
02c8   ?GetSourceAttributeSetInfo@CImportExportTable@@SI_NAAVCSourceAttributeSetInfo@@@Z
034c   ?ReleaseBuffer@CIETString@@QAEXH@Z
0226   ?GetBuffer@CIETString@@QAEPADH@Z
009a   ??1CIETData@@QAE@XZ
0198   ?Copy@CIETData@@QAEHPBXK@Z
0046   ??0CIETData@@QAE@XZ
00de   ??4CIETString@@QAEABV0@PBD@Z
004d   ??0CIETStringPtrArray@@QAE@XZ
02a6   ?GetNetInterface@CImportExportTable@@SIPAVCNetInterface@@XZ
004b   ??0CIETString@@QAE@XZ
02f2   ?GlobalInitCybernetRTI@CImportExportTable@@SI_NPAVCIETCallbacks@@@Z
00b3   ??3CIETString@@SIXPAX@Z
02f3   ?GlobalResetCybernetRTI@CImportExportTable@@SIXXZ
0049   ??0CIETString@@QAE@ABV0@@Z
0389   ?SetSize@CIETData@@QAEHK@Z
03b6   ?UpdateAttributeSets@CImportExportTable@@QAEXPAV1@@Z
0051   ??0CImportExportTable@@QAE@XZ
009e   ??1CImportExportTable@@UAE@XZ
0274   ?GetIETChar@CImportExportTable@@UAEPADPBD@Z
027d   ?GetIETLong@CImportExportTable@@UAEPAJPBD@Z
0279   ?GetIETDouble@CImportExportTable@@UAEPANPBD@Z
01a0   ?CreateAttributeSets@CImportExportTable@@QAE_NXZ
01b4   ?DestroyAttributeSets@CImportExportTable@@QAEXXZ
031a   ?NetRegisterAttributeSets@CImportExportTable@@QAE_NXZ
031c   ?NetReregistrationCallbackProc@CImportExportTable@@UAEXXZ
031b   ?NetRegistrationCallbackProc@CImportExportTable@@UAEXXZ
031d   ?NetUnregisterAttributeSets@CImportExportTable@@QAEXXZ
00b1   ??2CIETString@@SIPAXI@Z
0152   ?Add@CIETStringPtrArray@@QAEHPAVCIETString@@@Z
0282   ?GetIETWORD@CImportExportTable@@UAEPAGPBD@Z
027f   ?GetIETQWORD@CImportExportTable@@UAEPA_KPBD@Z
0281   ?GetIETString@CImportExportTable@@UAEPAVCIETString@@PBD@Z
027a   ?GetIETFloat@CImportExportTable@@UAEPAMPBD@Z
027c   ?GetIETInt64@CImportExportTable@@UAEPA_JPBD@Z
027e   ?GetIETLongDouble@CImportExportTable@@UAEPAOPBD@Z


Full export table from ServerPlatform.exe:
Ordinal   Entry Point   Name
0000   00189ba0   ?CreateIET@CIETCallbacks@@SIPAVCImportExportTable@@ABVCIETID@@@Z
0001   00189c20   ?DestroyIET@CIETCallbacks@@SIXPAVCImportExportTable@@@Z
0002   001cccc0   ?FindIET@CIETCallbacks@@SIPAVCImportExportTable@@ABVCIETID@@@Z
0003   00189b90   ?GetAppName@CIETCallbacks@@SIPBDXZ
0004   001cccc0   ?SetupIETForExtOwner@CIETCallbacks@@SIHPAVCImportExportTable@@@Z
0005   00189c90   ?UpdateStatus@CIETCallbacks@@SIHPBDH@Z


The export table for ImportExportTable.dll is HUGE (too much to post here)...
ImportExportTable.dll code would tell me if Big-E or Little-E byte order is used.

I guess I will try and grab the values from memory (if there, and if possible in php),
otherwise I will try to recalculate the values myself. I have decoded the current tension
values every way I can think of, it must be some kind of pointer.

Phew, repair and supply has got to be easier than this!


NB: This might be viewed as reverse engineering, but I could not find a
license agreement in my serverkit. Neither does the client license agreement
mention the server component. So I assume it is OK. (I'm certainly
not making any money off it, and it's only to help add to the game...)  

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #35 on: February 08, 2003, 06:37:54 pm »
I edited the political matrix blob to set all current tensions equal to
the initial tensions (while the server was running) and it reported
the same tensions as before. Ater a mission completed however,
all empires became "a long term partner" and no battles could be fought.
So I put the original blob back and it returned to normal. I forgot
to check the blob before restoring it though, I'll have to repeat the
experiment.

The result I did observe suggests that the current value portions
of the blob are indeed pointers, however I'm still not sure. I will
repeat... (sorry to be so dry, but hopefully this will get exciting soon...)  

UDF_Intruder

  • Guest
Re: The Wheel - Status
« Reply #36 on: February 11, 2003, 09:18:12 pm »
Sorry to be away,
I had a death in the family and was not able to come online.

After I get back my senses, I'll begin working again.

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #37 on: February 11, 2003, 11:46:51 pm »
My deepest sympathy for your loss.

You and your loved ones will be in my prayers.

Take all the time you need, you've been a big help already.

Sincerely,
rajnsaj  

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #38 on: February 12, 2003, 12:51:57 am »
I have managed to create a login for the shipyards
page that uses my forum's users table.

You should soon be able to buy a ship securely
by logging into the shipyard page using your
Gamespy ID e-mail address (WONLogon)
and the password for your Wheel Forums
account (must use the same e-mail address).

So, register on the forums, then create a character
by logging on to the D2 server, using the same e-mail
address that you used to register on the forums.

When you login to the shipyards you should be able to
see an empire specific list of ships in order of class.
And hopefully by tomorrow you will be able to purchase
them there. The supplies page will be done similarly soon.

I also have a good bead on the automated population
of the shipyards according to admin settings.

I decided to take a break from trying to figure out the
current political tesnion values, I'll get back to those
after the shipyards (more important)

Note, the first tests of the java servlet will be underway
soon too!
 

**DONOTDELETE**

  • Guest
Re: The Wheel - Status
« Reply #39 on: February 14, 2003, 11:08:30 pm »
Yipee! I just bought a ship from the shipyards page!
(now functional...)

I forgot to subtract the PP from the character table
though, Doh! (Free ships - get em while they're hot!)

Also have to add a function to enumerate the number
of ships a player currently has, and prevent exceeding
the three ship limit. (So don't bid on more than you are
allowed for now,  god knows what would happen...)

I'm not exactly sure how it will handle multiple bids
on the same ship though. (Haven't seen this in action
on the server yet, I think I may have it set up properly,
but I'll work that out in time...)

This soundly lays the foundation for a script that will
automate the population of the shipyards exactly
according to admin specifications!   I have it pretty
much worked out in my head, but need to finish
fully decoding the Damage and Stores blobs in
the ship table. (Alternatively I could empty the shipyards
and make ships only available on the webpage,
from a separate database.)
« Last Edit: December 31, 1969, 06:00:00 pm by rajnsaj »