Topic: Online Campaign Interface (OCI) Feedback  (Read 21149 times)

0 Members and 2 Guests are viewing this topic.

Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Online Campaign Interface (OCI) Feedback
« on: July 27, 2006, 01:26:43 pm »
The Online Campaign Interface (OCI) is now up and replaces the old webmap.  :)

(I'll fill in some details here later...)
« Last Edit: August 02, 2006, 11:10:56 am by Bonk »

Offline GDA-Agave

  • That's MR. Planet Battering Ram to you buddy!!
  • Hot and Spicy
  • Lt.
  • *
  • Posts: 713
  • Gender: Male
  • Fear my tequila breath!!!
Re: Online Campaign Interface (OCI) Feedback
« Reply #1 on: July 27, 2006, 02:09:21 pm »
Hey Bonk, it looks marvelous.   Absolutely marvelous.   :o

Nice job.   :thumbsup: :thumbsup:
One of the few, the proud, THE GORN!!
Gorn Dragon Alliance - Protecting Ghdar and the Bruce Way!

Gorn Dragon Templar
"Protecting the roads to Brucedom for all travelers of faith"



Offline Dizzy

  • Captain
  • *
  • Posts: 6179
Re: Online Campaign Interface (OCI) Feedback
« Reply #2 on: July 27, 2006, 02:23:51 pm »
WOW! NEW TOYS!!!!!!!! OMG! Ok okok... I'm looking and cant stop grinning from ear to ear! I'll edit this post in a min with feedback.

Ok here's the update, just a visual view of some things you can do. Course some are available only to admins or RM's like map editing and ship assignments... Also, sory for the file size, but its worth a look. My viewscreen is 1680*1050, so it will likely look a slight bit different that yours. EDIT: course it would if the pics worked. Have to go there manually I guess.

ftp://www.dynaverse.net/sfc2_op/Tools_and_Utilities/OCIa.jpg


Map editing thoughts... say you dont want to let the enemy use the planet you're about to lose to them... so you nuke it to hell and tell em, 'Here bitches! Have it now!'. Call it scorched earth and now that planet is an asteroid field.
Or say one team solves a riddle and aquires the genesis torpedo. They decide to use it on an asteroid field or neb hex and create a planet for themselves to use. Or more evil, lets say they use it on an existing enemy planet... The hex, immediately changes ownership no matter the DV...
Let's say a space monster has been attacking and now all the planets in the vicinity of xx,yy have been destroyed and more are threatened until it is killed...
What about a star that goes supernova and creates a nebula, or another that collapses in on itself and becomes a black hole... Terrain in space isnt static by any means...

Random events... The character editor allows an admin to place an account of any race wherever in any ship. Lets say a space monster is about to munch a planet. The empire is notified that immediately they must draft this monster on hex xx,yy and destroy it before it reduces their planet to rubble.
An alien force has abducted your ship and crew and flung them to the nether region of the universe. You must now fight your way back home or die trying.
Gonna think up more...
« Last Edit: July 27, 2006, 08:39:06 pm by dizzy »

762_XC

  • Guest
Re: Online Campaign Interface (OCI) Feedback
« Reply #3 on: July 27, 2006, 03:05:01 pm »
Very slick Bonk!  :thumbsup:

RE: the Recent Battles page, is it possible to filter it so it only shows friendlies?

Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Re: Online Campaign Interface (OCI) Feedback
« Reply #4 on: July 27, 2006, 03:54:04 pm »
RE: the Recent Battles page, is it possible to filter it so it only shows friendlies?

Not a bad idea... I'll add that to my list. The Destroyed ships page need more work first though as it is loading the whole 3 month battle log and takes way too long with too much server load. I might just disable it altogether if I cant optimise it. I like the idea of filtering the recent battles though.

Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Re: Online Campaign Interface (OCI) Feedback
« Reply #5 on: July 27, 2006, 04:12:17 pm »
The current checklist/wishlist from the development thread:

Quote
Rough outline of goals for the next few days:

Players
- Shipyard  -DONE
- Transfers options  (allies only,all) -DONE
- PP Transfers -DONE
- Location options ("wormholes", "stargates") -DONE
- Kills Page (new fields, reported-by) -DONE

RM
- ship assignment -DONE (assign ships)

Admin
- Map editor -DONE
- Character editor -DONE
- ship assignment -DONE

Optional for SG6 (if I get to it in time and if my head has not exploded...)
- Configurable minimum, maximum PP transfer, tax and surcharge.  -DONE
- loginban interface
- OCI Config - params in db instead of file thus configurable in the script
- Politics editor (for future)
- Supply docks
- Race specific chat
- OP orders PM system (Crim's suggestion)
- Bulk map edits
- starbase purchasing (will require research and observation of the shipcachevector of native base purchases in action)
- Admin account creation (perhaps an account creation page for players as well)
- help page or in-context help tooltips
- fullscreen map solution (javascript? the horror!)
- filter recent battles by friendlies... (762's suggestion - delay below used instead)
- Add configurable delay to recent battle reports .  -DONE
- implement OoB features based on OP+4 shiplist data

Should be able to get this stuff done if I stick to it for the next few days.  (hopefully to start setting up the SG6 test server / installer by tuesday)
« Last Edit: July 30, 2006, 11:03:01 pm by Bonk »

762_XC

  • Guest
Re: Online Campaign Interface (OCI) Feedback
« Reply #6 on: July 27, 2006, 04:33:33 pm »
By filter I actually meant a mandatory filter that would prevent you from seeing where the enemy is attacking, and who is winging together. As is it shows a little too much info IMHO.

Offline Dizzy

  • Captain
  • *
  • Posts: 6179
Re: Online Campaign Interface (OCI) Feedback
« Reply #7 on: July 27, 2006, 04:44:11 pm »
I agree with tool. I dont want info available to one side that will show where your enemy is.

However, on the Players Online tab, I do want to know if a player is in mission or not, but where they are should only be shown if that player is allied.


Also, Bonk, Transferring pp to players, should only be allowed at a transfer cost equal to a characters starting prestige to avoid misuse. As a suggestion, a players starting pp I figure would default at 1-2k according to most past servers ship costs for CL's... Thats about where u want to put them.
« Last Edit: July 27, 2006, 04:54:20 pm by dizzy »

762_XC

  • Guest
Re: Online Campaign Interface (OCI) Feedback
« Reply #8 on: July 27, 2006, 04:46:36 pm »
P.S. That to-do list looks awesome, if this stuff truly works I'm going to enjoy this campaign.  :)

Offline Lepton

  • Lt. Commander
  • *
  • Posts: 1620
Re: Online Campaign Interface (OCI) Feedback
« Reply #9 on: July 27, 2006, 05:53:32 pm »
Not sure what the future plans are for the kills page, but my suggestion would be merely a set of PvP battles to chose from to implement reporting who won, lost, was destroyed, etc.  That would make reporting easier.  Further, why is it not possible if this information is being reported to the battles page in one form or another, to merely have this information saved, reported, and tallied on the fly?

BTW, it looks awesome.  Great work.


System Specs:

Dell Dimension E521
AMD64x2 5000+
2G DDR2 RAM
ATI Radeon HD 4850 512MB GDDR3
250GB SATA HD

Offline KBF-Crim

  • 1st Deacon ,Church of Taldren
  • Global Moderator
  • Commodore
  • *
  • Posts: 12271
  • Gender: Male
  • Crim,son of Rus'l
Re: Online Campaign Interface (OCI) Feedback
« Reply #10 on: July 27, 2006, 06:24:15 pm »
Awesome is the word of the day....

Now all we need is the ability to launch from the map and track and load previous damage... ;D

Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Re: Online Campaign Interface (OCI) Feedback
« Reply #11 on: July 27, 2006, 06:28:34 pm »
By filter I actually meant a mandatory filter that would prevent you from seeing where the enemy is attacking, and who is winging together. As is it shows a little too much info IMHO.


I understood what you meant. I'll look at moving it to the Player controls and filtering by allies. If its too much of a hassle we can just disable it altogehter.

I agree with tool. I dont want info available to one side that will show where your enemy is.


Everybody always forgets the news, its all visible there to everyone on the server.

However, on the Players Online tab, I do want to know if a player is in mission or notif that player is allied.


No problem, already the case if the player locations display setting is disabled.

but where they are should only be shown if that player is allied.


That would require moving it to the player controls and I'd rather leave it where it is for easy acccess.

Also, Bonk, Transferring pp to players, should only be allowed at a transfer cost equal to a characters starting prestige to avoid misuse. As a suggestion, a players starting pp I figure would default at 1-2k according to most past servers ship costs for CL's... Thats about where u want to put them.


I can set a configurable maximum on player PP transfers, but I don't understand how it could be exploited as it currently is.
Are you suggesting that people would create multiple forums accounts and game server accounts and then transfer their starting PP from these accounts to their main account?  I could get PP faster by just running missions... Setting a maximum would not solve that anyway. Am I misunderstanding your concern here?


Here is the OCI config file for The Forge, it will explain much. Of course the configureation for SG6 will not be the same. (Base, Planet and Player location displays will be disabled, locaions will be set to Stargates mode...):

Code: [Select]
<?php

$serveradmins 
= array();
$serveradmins[0] = "XXXXXX";
$serveradmins[1] = "XXXXXX";

$serverRMs = array();
$serverRMs[0] = "";

$campbaseyear "2263";

$showplanets 1 // set to zero to disable planet display
$showbases 1; // set to zero to disable base display
$showplayerloc 1; // set to zero to disable player location displays on the battles and whos online pages.

$D2dbhostname      "XXXXXX"; // The D2 MySQL db servers hostname OR IP address
$D2dbport "XXXXXX"; // The D2 MySQL db server port number
$D2db "XXXXXX"; // The name of the MySQL D2 database
$D2dbuser      "XXXXXX"; // The MySQL user to connect as
$D2dbpass  "XXXXXX"; // The password for that user
$D2campname "The Forge"; // The D2 campaign name (just for titles)

$cssloc "/oci/oci.css"; // path to css on webserver

$ociroot "/oci";  // root webmap folder
$forumsroot "/forum"// SMF forum root
$useforumslink 1// show a link to the SMF forum

$usekills 1;

$usetransfers 1; // Set to zero to disable player race transfers
if ($usetransfers == 1) {
$transfermode "any"; // Set to "allied" to limit transfers to allied races only, or "any" for any race
}

$usePPtransfers 1; // Set to zero to disable player PP transfers to allied players

$uselocations 1; // Set to zero to disable Wormholes/Stargates
if ($uselocations == 1) {
$locationsmode "Wormholes"; // locations mode "Wormholes" (black holes) or "Stargates" (homeworlds, starbases)
$locationsally "any"; // Set to "allied" to limit locations to allied hexes only, or "any" for any race hexes
$locationsprice 100; // Price in PP per hex moved
$locationsfail 0; // Probability of wormhole/stargate collapse (0-100) - not fully implemented yet - leave at zero.
}

$usejavairc 1;
if (
$usejavairc == 1) {
$d2IRCserver "XXXXXX"; // IRC server in use by D2 server
$d2IRCserverport XXXXXX;
$d2IRCGenChan "#General@TheForge";
}


$usets 1; // Use TS webpost page
if ($usets == 1) {
$TSlink       "http://www.dynaverse.net/tsinfo/"; // TS webpost page address
}

$useOoBadmin 0;

$useshipassign 1;
$useshipyard 1; // Use shipyard pages (fill out forums and D2 server info above)
if ($useshipyard == or $useshipassign == 1) {
$MinimumBidFactor  6; // The multiplier for the minimum bid for a ship (in economy.gf)
$TradeinFactor 6; // Trade-in multiplier (converse of MinimumBid Factor)
$Cost_Difficulty 1.1; // The cost multiplier for the current difficulty setting (in economy.gf)
$MaximumOwnedShips 3; // Max ships owned as set in economy.gf
$classcostmod  = array(); // This is a modifier per <eClassType> for the price of a ship (don't change this line - it just declares the array - edit the lines below according to economy.gf)
$classcostmod[0 1.0; // Shuttle class cost modifier
$classcostmod[1 1.0; // PF class cost modifier
$classcostmod[2 1.0; // Freighter class cost modifier
$classcostmod[3 0.9; // Frigate class cost modifier
$classcostmod[4 1.0; // Destroyer class cost modifier
$classcostmod[5 2.0; // War Destroyer class cost modifier
$classcostmod[6 1.5; // Light Cruiser class cost modifier
$classcostmod[7 2.0; // Heavy Cruiser class cost modifier
$classcostmod[8 2.25; // New Heavy Cruiser class cost modifier
$classcostmod[9 3.0; // Heavy Battlecruiser class cost modifier
$classcostmod[10 4.0; // Carrier class cost modifier
$classcostmod[11 5.0; // Dreadnaught class cost modifier
$classcostmod[12 8.0; // Battleship class cost modifier
$classcostmod[13 1.0; // Listening Post class cost modifier
$classcostmod[14 2.0; // Base Station class cost modifier
$classcostmod[15 3.5; // Battle Station class cost modifier
$classcostmod[16 5.0; // Starbase class cost modifier
$classcostmod[17 1.0; // Monster class cost modifier
$classcostmod[18 1.0; // Planet class cost modifier
$classcostmod[19 1.0; // Special class cost modifier

// Limited availability ship classes:
$limavail  = array();
$limavail['SHUTTLE' "limited"; // Shuttle
$limavail['PF' "limited"; // PF
$limavail['FREIGHTER' "avail"; // Freighter
$limavail['FRIGATE' "avail"; // Frigate
$limavail['DESTROYER' "avail"; // Destroyer
$limavail['WAR_DESTROYER' "avail"; // War Destroyer
$limavail['LIGHT_CRUISER' "avail"; // Light Cruiser
$limavail['HEAVY_CRUISER' "avail"; // Heavy Cruiser
$limavail['NEW_HEAVY_CRUISER' "avail"; // New Heavy Cruiser
$limavail['HEAVY_BATTLECRUISER' "avail"; // Heavy Battlecruiser
$limavail['CARRIER' "avail"; // Carrier
$limavail['DREADNOUGHT' "avail"; // Dreadnaught
$limavail['BATTLESHIP' "avail"; // Battleship
$limavail['LISTENING_POST' "limited"; // Listening Post
$limavail['BASE_STATION' "limited"; // Base Station
$limavail['BATTLE_STATION' "limited"; // Battle Station
$limavail['STARBASE' "limited"; // Starbase
$limavail['MONSTER' "limited"; // Monster
$limavail['PLANET' "limited"; // Planet
$limavail['SPECIAL' "limited"; // Special
// To limit individual ships for this interface add " lim" to the end of the SFB Year Last Available field in the copy of the shiplist placed in this folder for use by the webmap
// "limited"
}
// Empire/Cartel Names
$empstring = array();
$empstring[0] = "United Federation of Planets";
$empstring[1] = "Klingon Empire";
$empstring[2] = "Romulan Star Empire";
$empstring[3] = "Lyran Star Empire";
$empstring[4] = "Hydran Kingdom";
$empstring[5] = "Gorn Confederation";
$empstring[6] = "Interstellar Concordium";
$empstring[7] = "Kzinti Hegemony";
$empstring[8] = "Orion Cartel";
$empstring[9] = "Korgath Cartel";
$empstring[10] = "Prime Cartel";
$empstring[11] = "TigerHeart Cartel";
$empstring[12] = "BeastRaiders Cartel";
$empstring[13] = "Syndicate Cartel";
$empstring[14] = "WyldeFire Cartel";
$empstring[15] = "Camboro Cartel";
$empstring[16] = "Rogue Pirates";
$empstring[17] = "Monsters";
$empstring[18] = "Tholian Holdfast";
$empstring[19] = "Lyran Democratic League";
$empstring[20] = "WYN Star Cluster";
$empstring[21] = "Jindarian";
$empstring[22] = "Andromedans";
$empstring[23] = "Neutral";
$empstring[24] = "Mirror";
$empstring[25] = "All Races";

// Short Empire/Cartel Names
$empstringshort = array();
$empstringshort[0] = "Fed";
$empstringshort[1] = "Kli";
$empstringshort[2] = "Rom";
$empstringshort[3] = "Lyr";
$empstringshort[4] = "Hyd";
$empstringshort[5] = "Gor";
$empstringshort[6] = "ISC";
$empstringshort[7] = "Kzi";
$empstringshort[8] = "Ori";
$empstringshort[9] = "Kor";
$empstringshort[10] = "Pri";
$empstringshort[11] = "Tig";
$empstringshort[12] = "Bea";
$empstringshort[13] = "Syn";
$empstringshort[14] = "Wyl";
$empstringshort[15] = "Cam";
$empstringshort[16] = "Rog";
$empstringshort[17] = "Mon";
$empstringshort[18] = "Tho";
$empstringshort[19] = "LDR";
$empstringshort[20] = "WYN";
$empstringshort[21] = "Jin";
$empstringshort[22] = "And";
$empstringshort[23] = "Neu";
$empstringshort[24] = "Mir";
$empstringshort[25] = "All";

$serverteams = array();
$serverteams[0] = "Alliance";
$serverteams[1] = "Coalition";

$empcolor = array();
$empcolor[0] = "#0000FF";  //Federation
$empcolor[1] = "#FF0000";  //Klingon
$empcolor[2] = "#00FF00";  //Romulan
$empcolor[3] = "#FFCC33";  //Lyran
$empcolor[4] = "#660099";  //Hydran
$empcolor[5] = "#996600";  //Gorn
$empcolor[6] = "#FF66CC";  //ISC
$empcolor[7] = "#00FFFF";  //Mirak
$empcolor[8] = "#0000FF";  //Orion
$empcolor[9] = "#FF0000";  //Orion
$empcolor[10] = "#00FF00";  //Orion
$empcolor[11] = "#FFCC33";  //Orion
$empcolor[12] = "#660099";  //Orion
$empcolor[13] = "#996600";  //Orion
$empcolor[14] = "#FF66CC";  //Orion
$empcolor[15] = "#00FFFF";  //Orion
$empcolor[16] = "#CCCCCC";  //NeutralRace
$empcolor[17] = "#CCCCCC";  //NeutralRace
$empcolor[18] = "#CCCCCC";  //NeutralRace
$empcolor[19] = "#CCCCCC";  //NeutralRace
$empcolor[20] = "#CCCCCC";  //NeutralRace
$empcolor[21] = "#CCCCCC";  //NeutralRace
$empcolor[22] = "#CCCCCC";  //NeutralRace
$empcolor[23] = "#CCCCCC";  //NeutralRace
$empcolor[24] = "#CCCCCC";  //NeutralRace
$empcolor[25] = "#CCCCCC";  //NeutralRace

$rankstring = array();
$rankstring[0] = "Ensign";
$rankstring[1] = "Lieutenant";
$rankstring[2] = "LtCommander";
$rankstring[3] = "Captain";
$rankstring[4] = "Commodore";
$rankstring[5] = "RearAdmiral";
$rankstring[6] = "Admiral";
$rankstring[7] = "FleetAdmiral";


$hexname = array();
$hexregion = array();

/******************************************************************************
* Dynaverse server database connection                                        *
******************************************************************************/

$D2db_link mysql_pconnect($D2dbhostname .":" .$D2dbport$D2dbuser$D2dbpass);
if (!
$D2db_link) {
   die(
'Could not connect to Dynaverse server database, please try again later.');
}
mysql_select_db($D2db);


$query "SELECT Width,Height FROM mapdescription";
$result mysql_query($query);
$line mysql_fetch_array($resultMYSQL_ASSOC);
$mapdimx $line['Width'];
$mapdimy $line['Height'];
mysql_free_result($result);
$db_count++;

for (
$mdx 0$mdx <= $mapdimx-1$mdx++) {
for (
$mdy 0$mdy <= $mapdimy-1$mdy++) {
$hexname[$mdx][$mdy] = "";
$hexregion[$mdx][$mdy] = "";
}
}

// planet names


//$hexname[5][7] = "Earth";
//$hexname[19][3] = "Lyra";

// region names

//$hexregion[5][7] = "Federation Core";

?>


Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Re: Online Campaign Interface (OCI) Feedback
« Reply #12 on: July 27, 2006, 06:40:16 pm »
BTW, it looks awesome.  Great work.

Thanks!  :)

Not sure what the future plans are for the kills page, but my suggestion would be merely a set of PvP battles to chose from to implement reporting who won, lost, was destroyed, etc.  That would make reporting easier.  Further, why is it not possible if this information is being reported to the battles page in one form or another, to merely have this information saved, reported, and tallied on the fly?

I took this approach before, and it doesn't work out. While I have the logic to detect PvP kills, crashed/split missions will create duplicate/multiple battle log entries in the game server database, thus they cannot be automatically tallied.

I had a version of the Destroyed Ships page which used a "Confirm Kill" button to address this but as you may see, the problem is that the battle log for a 4 month server is too huge to process reasonably quickly, also the situation is complaicated by the recently added race transfers.

I appreciate the suggestions however and know that I am thinking about possible solutions for this for the future. Here is the current Destroyed Ships code to give you an idea of the complexity of the situation (note the two really long queries):

Code: [Select]
<?php
/******************************************************************************
* Destroyed Ships                                                             *
******************************************************************************/

function destroyed() {

global 
$db_count$empcolor$rankstring;

$MyservcharacterID = array();
$CharacterName = array();
$CharacterRace = array();
$CharacterRank = array();
$CharacterPoliticalControl = array();

$MybattlesID  = array();
$MissionName  = array();
$EndTime  = array();
$X = array();
$Y = array();
$HostID = array();
$NumParticipants = array();
$HexBeforeDV = array();
$HexBeforeRace = array();
$HexAfterDV = array();
$HexAfterRace = array();
$HexCarBeforeDV = array();
$HexCarBeforeRace = array();
$HexCarAfterDV = array();
$HexCarAfterRace = array();

$MybattleparticipantID  = array();
$BattleID  = array();
$CharacterID  = array();
$MissionSlot  = array();
$VictoryLevel  = array();
$RegularPrestige  = array();
$BonusPrestige  = array();
$Medal  = array();
$CampaignEvent  = array();
$IsAI  = array();

$VictLevText = array();
$VictLevText[0] = "Astounding Victory";
$VictLevText[1] = "Victory";
$VictLevText[2] = "Draw";
$VictLevText[3] = "Defeat";
$VictLevText[4] = "Devastating Defeat";
$VictLevText[-1] = "Devastating Defeat";
    
$query "SELECT BattleID, charactername, characterrace, Destroyed, battleparticipant.ID, Shipclassname, BPV, DamagePercentAtEnd FROM battleparticipantships, battleparticipant, servcharacter WHERE isai = 0 and Destroyed = 1 and battleparticipantid = battleparticipant.id and CharacterID = servcharacter.id ORDER BY BattleID DESC";
$result mysql_query($query);
$d=0;
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
$mqBattleID[$d] = $line['BattleID'];
$mqcharactername[$d] = $line['charactername'];
$mqcharacterrace[$d] = $line['characterrace'];
$mqDestroyed[$d] = $line['Destroyed'];
$mqShipclassname[$d] = $line['Shipclassname'];
$mqBPV[$d] = $line['BPV'];
$mqDamagePercentAtEnd[$d] = $line['DamagePercentAtEnd'];
$d=$d+1;
}
mysql_free_result($result);
$db_count++;

$query "SELECT BattleID, charactername, characterrace, Destroyed, battleparticipant.ID, Shipclassname, BPV, DamagePercentAtEnd FROM battleparticipantships, battleparticipant, servcharacter WHERE isai = 0 and Destroyed = 0 and battleparticipantid = battleparticipant.id and CharacterID = servcharacter.id ORDER BY BattleID DESC";
$result mysql_query($query);
$e=0;
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
$mqsBattleID[$e] = $line['BattleID'];
$mqscharactername[$e] = $line['charactername'];
$mqscharacterrace[$e] = $line['characterrace'];
$mqsDestroyed[$e] = $line['Destroyed'];
$mqsShipclassname[$e] = $line['Shipclassname'];
$mqsBPV[$e] = $line['BPV'];
$mqsDamagePercentAtEnd[$e] = $line['DamagePercentAtEnd'];
$e=$e+1;
}
mysql_free_result($result);
$db_count++;

$idstosel "ID =";
for (
$i 0$i <= $d-1$i++) {
$idstosel .= "$mqBattleID[$i] OR ID=";
}
$idstosel substr("$idstosel"0,  strlen($idstosel)-7);

$query "SELECT ID,EndTime,X,Y,HostID,NumParticipants,HexBeforeEmpireDV,HexBeforeEmpireRace,HexAfterEmpireDV,HexAfterEmpireRace,HexBeforeCartelDV, HexBeforeCartelRace, HexAfterCartelDV, HexAfterCartelRace FROM battles WHERE $idstosel ORDER BY ID DESC";
$result mysql_query($query);
$a=0;
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
$MybattlesID[$a] = $line['ID'];
$EndTime[$a] = $line['EndTime'];
$X[$a] = $line['X'];
$Y[$a] = $line['Y'];
$HostID[$a] = $line['HostID'];
$NumParticipants[$a] = $line['NumParticipants'];
$HexBeforeDV[$a] = $line['HexBeforeEmpireDV'];
$HexBeforeRace[$a] = $line['HexBeforeEmpireRace'];
$HexAfterDV[$a] = $line['HexAfterEmpireDV'];
$HexAfterRace[$a] = $line['HexAfterEmpireRace'];
$HexCarBeforeDV[$a] = $line['HexBeforeCartelDV'];
$HexCarBeforeRace[$a] = $line['HexBeforeCartelRace'];
$HexCarAfterDV[$a] = $line['HexAfterCartelDV'];
$HexCarAfterRace[$a] = $line['HexAfterCartelRace'];
$a=$a+1;
}
mysql_free_result($result);
$db_count++;

$query "SELECT ID,CharacterName,CharacterPoliticalControl FROM servcharacter ORDER BY ID";
$result mysql_query($query);
$b=0;
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
$MyservcharacterID[$b] = $line['ID'];
$CharacterName[$b] = $line['CharacterName'];
$CharacterPoliticalControl[$b] = $line['CharacterPoliticalControl'];
$b=$b+1;
}
mysql_free_result($result);
$db_count++;

$mybattidstosel str_replace("ID""BattleID"$idstosel);
$query "SELECT ID,BattleID,CharacterID,MissionSlot,VictoryLevel,RegularPrestige,BonusPrestige,Medal,CampaignEvent,IsAI FROM battleparticipant WHERE $mybattidstosel ORDER BY IsAI";
$result mysql_query($query);
$c=0;
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
$MybattleparticipantID[$c] = $line['ID'];
$BattleID[$c] = $line['BattleID'];
$CharacterID[$c] = $line['CharacterID'];
$MissionSlot[$c] = $line['MissionSlot'];
$VictoryLevel[$c] = $line['VictoryLevel'];
$RegularPrestige[$c] = $line['RegularPrestige'];
$BonusPrestige[$c] = $line['BonusPrestige'];
$Medal[$c] = $line['Medal'];
$CampaignEvent[$c] = $line['CampaignEvent'];
$IsAI[$c] = $line['IsAI'];
$c=$c+1;
}
mysql_free_result($result);
$db_count++;

$destroyed_html '
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" class="tborder">
<tr class="windowbg2">
<td valign="middle" align="center">
<div style="height: 480px; width: 100%; overflow: auto;">
<hr width=75% align=center>
'
;
for ($i 0$i <= $a-1$i++) {
$destroyed_html .= '<b>Destroyed:</b><br>
'
;
for ($n 0$n <= $d-1$n++) {
if($MybattlesID[$i] == $mqBattleID[$n]) {
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$mqcharacterrace[$n]];
$destroyed_html .= '"><b>';
$destroyed_html .= $mqcharactername[$n];
$destroyed_html .= '&#39;s</font> ';
$destroyed_html .= $mqShipclassname[$n];
$destroyed_html .= '</b>  BPV:';
$destroyed_html .= $mqBPV[$n];
$destroyed_html .= ' Dmg:';
$destroyed_html .= $mqDamagePercentAtEnd[$n];
$destroyed_html .= '%<br>
'
;
}
}
$destroyed_html .= '<br>
'
;

$destroyed_html .= '<b>Survived:</b><br>
'
;
for ($o 0$o <= $e-1$o++) {
if($MybattlesID[$i] == $mqsBattleID[$o]) {
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$mqscharacterrace[$o]];
$destroyed_html .= '"><b>';
$destroyed_html .= $mqscharactername[$o];
$destroyed_html .= '&#39;s</font> ';
$destroyed_html .= $mqsShipclassname[$o];
$destroyed_html .= '</b>  BPV:';
$destroyed_html .= $mqsBPV[$o];
$destroyed_html .= ' Dmg:';
$destroyed_html .= $mqsDamagePercentAtEnd[$o];
$destroyed_html .= '<br>
'
;
}
}
$destroyed_html .= '<br>
'
;

$destroyed_html .= 'Battle location: <b>'$X[$i]. ','$Y[$i]. '</b><br>
'
;

$destroyed_html .= 'Battle Participants:<br>
'
;
for ($k 0$k <= $c-1$k++) {
if($BattleID[$k] == $MybattlesID[$i]) {
$hu=0;
for ($l=$b;$l--;) {
if($MyservcharacterID[$l] == $CharacterID[$k]) {
$destroyed_html .= '<b>';
if($MyservcharacterID[$l] == $HostID[$i]) {
$destroyed_html .= 'Host: ';
}
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$CharacterPoliticalControl[$l]];
$destroyed_html .= '">';
$destroyed_html .= $CharacterName[$l];
$destroyed_html .= '</font></b>  ';
$hu=1;

}
if($hu != 1) {
$destroyed_html .= 'AI<br>
'
;
} else {
$destroyed_html .= 'Victory level: ';
$DummyVictVar $VictoryLevel[$k];
$destroyed_html .= $VictLevText[$VictoryLevel[$k]];
$destroyed_html .= '<br>
'
;
$destroyed_html .= 'Regular prestige: ';
$destroyed_html .= $RegularPrestige[$k];
$destroyed_html .= ' Bonus prestige: ';
$destroyed_html .= $BonusPrestige[$k];
$destroyed_html .= '<br>
'
;
}
}
}
$destroyed_html .= 'Empire Defence value shift: <b>';
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$HexBeforeRace[$i]];
$destroyed_html .= '">';
$destroyed_html .= $HexBeforeDV[$i];
$destroyed_html .= '</font></b>--><b>';
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$HexAfterRace[$i]];
$destroyed_html .= '">';
$destroyed_html .= $HexAfterDV[$i];
$destroyed_html .= '</font></b><br>
'
;

$destroyed_html .= 'Cartel Defence value shift: <b>';
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$HexCarBeforeRace[$i]];
$destroyed_html .= '">';
$destroyed_html .= $HexCarBeforeDV[$i];
$destroyed_html .= '</font></b>--><b>';
$destroyed_html .= '<font color="';
$destroyed_html .= $empcolor[$HexCarAfterRace[$i]];
$destroyed_html .= '">';
$destroyed_html .= $HexCarAfterDV[$i];
$destroyed_html .= '</font></b><br>
Battle finished at: '
;
$destroyed_html .= $EndTime[$i];
$destroyed_html .= '<br>
'
;
$destroyed_html .= '<hr width=75% align=center>
'
;
}
$destroyed_html .= '<br>
</div>
</td>
</tr>
</table>'
;
return 
$destroyed_html;
}
?>


 


Offline Dizzy

  • Captain
  • *
  • Posts: 6179
Re: Online Campaign Interface (OCI) Feedback
« Reply #13 on: July 27, 2006, 06:42:50 pm »
Ya, good ideas, Lepton. We are ALL about automation here, bro. Less work = more fun. But we have been all over this issue like flies on sh*t. But check out the kills page and tell us how the format looks. We just threw up a concept job to do what we need it to do. Suggestions on that?

Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Re: Online Campaign Interface (OCI) Feedback
« Reply #14 on: July 27, 2006, 06:49:32 pm »
Awesome is the word of the day....


Overall, I'm pretty pleased with it too, though it still has a few rough spots.

Biggest improvement is the shipyards, I no longer submit the purchases as bids but edit the players shipcachevector directly and create the ship as before.

Now all we need is the ability to launch from the map and track and load previous damage... ;D


Unfortunately that will never be possible without the client source. (Launching OP to connect directly to a Dynaverse server)

SFCDirect is as close as we're going to get. But is has considerable potential, if used with a map and multiplayer scripts that report results back to a central database.  ;) Which would acheive what you are describing, I believe.

Offline KBFLordKrueg

  • Commander
  • *
  • Posts: 3733
  • KBF CO
Re: Online Campaign Interface (OCI) Feedback
« Reply #15 on: July 27, 2006, 07:39:05 pm »
I do like all the options and the layout.
I see what you mean about the destroyed ships thing, tho.
And WTF is with those kill reports...? :P
Where's that "no way!" option on the confirm section...?  :P

And I especially like some of the new features...
total hexes held, total missions, etc. Very nice!

A bit concerned about the PP tarnsfer thing. A bit to open to abuse.
Perhaps a claus in the rules regarding such...
Lord Krueg
KBF CO
We are the Dead

Offline Skaren

  • http://www.evensong.us/images/avatars/ban.jpg
  • Lt. Junior Grade
  • *
  • Posts: 451
  • Gender: Male
  • Resistance is Futile
    • SFC Campaign System
Re: Online Campaign Interface (OCI) Feedback
« Reply #16 on: July 27, 2006, 07:40:30 pm »
Man,..   I have watched the campaigns that we run, evolve over the years,..

I haven't been around Dyna that long, but I already see it changing,.. for the better.

I wonder where it will be years from now ?  Nice work,.. and neat code  :)

All Hail the Bonk !

S
SFC:OPCS

StarFleet Command: Orion Pirates Campaign System

http://sfbuaw.com/intro.php

Offline Dizzy

  • Captain
  • *
  • Posts: 6179
Re: Online Campaign Interface (OCI) Feedback
« Reply #17 on: July 27, 2006, 07:45:14 pm »
And I especially like some of the new features...
total hexes held, total missions, etc. Very nice!

Yeah, it keeps track of how many shipping lane hexes you have... That could be interesting for map makers wanting to seed the map with VC's.


Quote
A bit concerned about the PP tarnsfer thing. A bit to open to abuse.
Perhaps a claus in the rules regarding such...

How so? I suggested to bonk the pp transfer cost be equal to that of a new players starting pp. So if a new players starting pp was set to 2k and you had 50k u were transfering to another player, he'd only get 48k. That'd prevent players from creating new accounts and transferring their pp to their main account.

Offline Bonk

  • Commodore
  • *
  • Posts: 13298
  • You don't have to live like a refugee.
Re: Online Campaign Interface (OCI) Feedback
« Reply #18 on: July 27, 2006, 08:07:46 pm »
I still don't get how the PP transfers could be abused. Perhaps I am just too spaced out from the late nights all week I spent coding this. Can someone spell it out for me?

Offline Lepton

  • Lt. Commander
  • *
  • Posts: 1620
Re: Online Campaign Interface (OCI) Feedback
« Reply #19 on: July 27, 2006, 08:23:48 pm »
Bonk,

I am curious if you can create temporary tables within the MySQL DB that supports the dyna in which events might be logged such as PvP battles. As the battles are logged in this table, they can be confiirmed at the players leisure without having to hit a number of tables with a complex query.  PvP battles once reported could potentially be deleted from the table if the tally were only important detail which might be held in a separate table or even in some global variable.


System Specs:

Dell Dimension E521
AMD64x2 5000+
2G DDR2 RAM
ATI Radeon HD 4850 512MB GDDR3
250GB SATA HD