Author
|
Topic: The Wheel - Status (Read 1331 times)
|
|
**DONOTDELETE**
Guest
|
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...
|
|
|
|
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
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...)
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
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...)
|
|
|
|
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
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
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
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!
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
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 »
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
Raj, After looking at the dump file more, I think the Damage Data Pairs may actually be Original and Current REMAINING instead of Current DAMAGED.
Had an idea the last couple of days..... The one thing I never liked about the Dyna was that Base Assaults had to be repeated (Successfully) until the Defense Value was reduced to 0 before removing it from Enemy control. The base always has full strength each battle, while the player has to repair and re-arm.
Obviously, everyone complains and says that once a base is beaten, it should be removed. I might have a method to remove a base when it's beaten the first time.
Consider this.... While there doesn't seem to be any entry for "Base Assault" as a mission type, you can get the battleparticipantID's from "BattleParticipant", and from there cross-reference the type of ships involved for any battle from "BattleParticipantShip". If the shiptype happens to be "SB", "BATS" or "BS", we know it was a base assault.
"BattleParticipantShip" will also indicate the final Damage Value of the Base and whether it was destroyed.
If the base was destroyed, take the BattleID from "BattleParticipant" and cross-ref to "Battles" to get the hex location, then index the hex in "MapHex", and remove the base by updating the BaseType entry to 0.
Use your favorite SQL script interface (php, perl, C++) in a loop run "Backstage" to constantly search for Bases that have been destroyed and issue an Update Statement to alter the MapHex table, removing the Base.
If a base is then built in the same hex, the monitoring process should maintain a log of hex locations and BattleID's where it removed a base so it wouldn't get confused when it sees a base in the hex again.
Was that confusing enough? <grin>
|
|
|
|
|
Logged
|
|
|
|
|
Cleaven
Guest
|
It is already possible to set bases to be destructible or indestructible, with the last server update. What most people seem to want is a base that is only destroyed when the DV is reduced to zero.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
Thanks Intruder, I have some addional damage blob data from the same ships damaged and undamaged that I'll use to check that out.
Having just gotten the shipyards page working, I will finish that off (see above posts) then move on to the supply page where I will need this data to repair ships. I've yet to work out supply and trade-ins too.
When that is done I can then automate the shipyards once I can reconstruct the damage and stores blobs for all the ships in the current shiplist.
My intention is to finish the webpage interface then move on to automated admin scripts using the knowledge gained; such as your base monitoring script idea (interesting possibilites for more than just bases using this strategy).
Cleaven, are the settings you describe the PostBattleMinimumRepair and PostBattleRepairRatio settings under [Base] in the Score.gf?
Also, DarkElf, if you are listening/reading, what kind of a scheme are you using to "clean" the SQL database? I would like to automate this as well...
|
|
|
|
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
Thanks for the info Cleaven, The people I talk to subscribe to the "1 death" rule. They'd like to see a Dyna that worked like Fed and Empire.
But that's just 1 oppinion.
The "Backstage" scripts are definetly the way to add anhancement to the server.
My pet project has been Economics.
I added a table that broke down each hex, adding a random number of planets to serve as a basis for a detailed Economic Model. My Backstage processes operate these planets in a "Supply and Demand" environment. Each planet is rated for capacity of raw materials, which they harvest. When a planet needs a resource it doesn't have, it asks for some from one that does. That planet sends freighters full of that resource to the requesting planet.
This process has the end effect of creating AI freighters that move about with deliberate missions.
My goal is to make Convoy Raids REALLY affect the Economy.
|
|
|
|
|
Logged
|
|
|
|
|
Karnak
Guest
|
I set up a 10 MB InnoDB file and the DB acts pretty efficiently. The configuration for InnoDB can be found in MySQL Manual pages.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
Financial constraints will bring The Wheel to a halt next month.
I have been working on a set of updated scripts for the ISC Invasion website. The webmap and other scripts have been vastly improved in the process.
After a few more finishing touches I will post the scripts for download for anyone who wishes to use them as "The Wheel To Go" if you will...
I will include instructions for easy setup and testing. Hopefully I will still be able to contribute to decoding the database and adding to the D2 by posting on free dial-up accounts (ack!) in the future.
Maybe, if I'm lucky, The Wheel will be back on a bigger and better connection next year.
I hope to have a link to the scripts up by the end of the week.
|
|
|
|
|
Logged
|
|
|
|
|
Karnak
Guest
|
<S> KATrajnsaj, I am very sorry to hear about this rajnsaj. The SQL WebMap and accessories you made are going to make the GFL D2 dyna have the cutting edge in online user interaction with the dyna during campaign play. You have done a great job and deserve all the credit the GFL can give. I will, of course, keep the Wheel's contribution to this dyna and running for the life of the ISC Invasion campaign and for future GFL D2 campaigns. If you need a D2/SQL server then you most certainly can use mine between campaigns when I am online.
|
|
|
|
« Last Edit: February 24, 2003, 10:36:41 pm by Karnak »
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
Thanks Karnak, setting the scripts up on your server helped improve them a lot. Here is a link to a download page for the scripts (should remain up once I go offline...) http://members.fortunecity.co.uk/rajnsaj/Just unzip the package into its own folder (zip password - "rollin"). Edit the "mapcfg.php" file to match your servers settings. (currently has my settings...). Most of the settings should be self explanatory (comments in file...). Upload the all the files to their own folder on your webserver and simply point your browser to that folder. (assumes default index file on server is "index.html" - if not just link directly to the index.html file). Note: there are two asteroid types still missing from the map script but I haven't encountered them on any map yet... If you see a hex on the map that has no terrain type text - that is one of them - please note the number for the terrain type and I can add it to the next revision. Also note that the server status detection is geared to work with the dns2go service from Deerfield.com. It should work on real domains too but I havent properly tested that yet. If there are any troubles or questions just post on this thread - I'll keep an eye on it when I can.
|
|
|
|
« Last Edit: December 31, 1969, 06:00:00 pm by rajnsaj »
|
Logged
|
|
|
|
|
Demandred
Guest
|
You are also welcome to use my server anytime you like rajnsaj, if you need somewhere to host scripts.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
Thanks Demandred, thats very generous.
Feel free to download the zip file and post it on your server too.
I just discovered the nasty popups on that free site. (like gator, funny how they dont show up on the first few viewings...)
I just suspended my account with my ISP for this Sunday. (I might be able to be back up in May... I hope, I hope...)
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
A friend has generously offered to temporarily host The Wheel - it's on a keen ADSL connection I tested at 1250/640 kbps down/up (wow).  Complete with RW base station and webpage up at: The Wheel ... enjoy!  I hope to get on and play a bit on a big server when I get my new place, see you soon!
|
|
|
|
|
Logged
|
|
|
|
|
FPF_TraceyG
Guest
|
Glad to hear the Wheel will be back up Rajnsaj, glad too see you back as well.
|
|
|
|
|
Logged
|
|
|
|
|
**DONOTDELETE**
Guest
|
Thanks Tracy,
I have some changes and upgrades to come for The Wheel this summer. I have some bits of the D2 database left to work out how to decode and access by scripts as well. Communications about the database structure have resulted in the genesis of some very good ideas for the long term too.
I hope to be back online for the ISC invasion or sooner. I might be able to logon to play a bit from my friend's place till then.
|
|
|
|
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
Rajnsaj, You (and everyone else) will see an EaW Server titled "SQL Test" has been up for the past few days. This is mine, and I'm starting to put into operation the ideas we talked about.
I have (4) servers set up, though only the SFC Server is now online. It is running EaW 2036 and MySQL. Since they seemed to have brought OP up to parr with EaW, once I get some consistant operation with SQL, I will be pulling EaW and installing OP 2538.
The other servers will be a Web Server (Apache and PHP), a server strictly for Voice Chat Servers, and a PC that will operate as "Background SQL Ops". I know you understand that term.
None or these servers are "screamers" as far as power goes, 800Mhz - 1 Ghz, 512 RAM , so that's one of the reasons I am using multiple servers.
I won't be running any Campaigns on this server yet. I need to collect data from players running around on it, and develope the background ops processes. I will ask that anybody who has the time, log in to this server and run any type of missions offered, even forfeit a few to provide as wide a selection of data as possible for the research.
During the process, I will gladly post details of what is being developed if anyone is interested. One of the first background tasks I'll be developing is "Wormholes", first between locations on the same server, then, if it works, between locations on different servers. You can figure out the implications yourself. <grin>
|
|
|
|
|
Logged
|
|
|
|
|
Karnak
Guest
|
Cool, welcome back rajnsaj.
|
|
|
|
|
Logged
|
|
|
|
|
UDF_Intruder
Guest
|
For anyone who may be interested.... Tonight turned out to be very productive. I finally got the router settings right and now both the Web Server and the Game Server are online. The Web Site can be reached at http://24.186.124.97:18185. As I said before, the non-standard port is used because many worms target the standard HTTP Port 80. This way it's a bit tougher for scanners. I got that piece of wisdom from an acquaintance (rajnsaj) who is doing the same as I am, but is quite a bit ahead of me in his efforts. I'm re-writing the pages to reflect what is going on now, and will include a section about the progress of the Project as I go along. The Game Server is running SFC2:EaW version 2036 with a MySQL database for records. The Web Server also has an SQL database, and the intent is to cause them to interact. I have a small bit of tinkering yet to do to see if I can run the client from a separate PC on my LAN, allowing the server total control over the PC. Hopefully this will improve the operation. Probably by Weds of next week, I will be able to plug in SFC2:OP and see how that works. Regardless of which game is being used, the Server Name will be "SQL Test" for simplicity. I still have a 3rd server under construction which will be used for other types of servers. Maybe Elite Force or as a Voice Chat Server.
|
|
|
|
|
Logged
|
|
|
|
|
 |