[MOD] Star Trek Continuum | General progress and discussion thread


(Nathanius) #142

Did some pretty pictures, if anyone was interested :wink:

(Just in case that link doesn’t work, click here)


(Nathanius) #143

October patch is now up!

New Music

  • MrPras has created a TOS playlist for the mod! All Federation, Klingon and Romulan music for the TOS era is now using this playlist

New Ships

kng_TOS_d7 (Complete overhaul by Major Stress)

  • kng_TOS_flagship (Complete overhaul by Major Stress)
rom_TOS_d7 (Complete overhaul by Major Stress)

Bug Fixes

  • Stripe error on fed_TOS_dreadnought

New Weapons

Klingon TOS style heavy pulse


I have also succeeded in creating a Borg assimilation script, will be trying to work on FX to show assimilation next but we’re close to switching the Borg race on :slight_smile:


(Nathanius) #144

Who can tell me what I’ve done here? :smiley:

Proof of concept


(Siber) #145

Unique name and registry number for each built instance of a ship class? If so, I would dearly like to know how.


(Nathanius) #146

I just used an FX :slight_smile:

The image is purely a proof of concept that the FX can look just as good as the straight-in-texture rego.

The scripting behind assigning an FX to a ship and dismissing it from a “queue” of fx shouldn’t be too bad with the help of the custom code functionality but remains to be written :sweat_smile:


(Taiidan Republic Mod) #147

Nice one! That’s an easy piece of custom code, and then you are away :slight_smile:


(Eville Jedi) #148

Nice, still want to at some point figure out the crazy that bitvenom was talking about with using shaders to spell (understand it theoretically but WTF on actually doing it)

Is it a mesh with transparency> It looks like it wraps around the saucer bump


(Nathanius) #149

I just cut the parts of the hull out that had the text, so it fitted well to the model. Then raised/lowered/etc the part so it would be 0.5m to 1m over the hull.

The texture is fully black, I’ve used the alpha channel to do the text :slight_smile:

BitVenom’s got lots of things to still detail to us, hope we’re not left hanging forever :stuck_out_tongue:


(Gregorymthompso1) #150

very clever!


(Nathanius) #151

Ok guys, now I need a bit of help :sweat_smile:

I have written a script which hits all the marks when it comes to the log, and there’s no errors in anything anymore, from what I can tell it’s perfect. However the FX specified doesn’t play :confused:

To be sure, using the madstate to play the FX “on normal” allows the fx to play (as you saw before in my proof of concept) and I’ve not gotten anything to play using FX_PlayEffect at all.

Can I trouble all you geniuses to look this over and see where I went wrong? It’s called from the “create” function in the Custom Code and the desired effect is that each FX is only used once by any player until the whole game is shut off and started again.

stc_rego.lua
SOB_regoTable = {}
shipCount = {}

function RegoCheck(CustomGroup, playerIndex, shipID)

	if ( shipCount[CustomGroup] == nil ) then
	
		shipCount[CustomGroup] = 1
		
	else
		
		shipCount[CustomGroup] = shipCount[CustomGroup] + 1
	
	end

	if ( SOB_regoTable[shipID] == nil ) then
	
		SOB_regoTable[shipID] = SOB_CreateShipSpecificRegoTable(CustomGroup, playerIndex, shipID)
		tinsert(SOB_regoTable, shipID)
		
	end	
	
    -- print(">> REGO >> | Player "..playerIndex.." has built "..SOB_regoTable[shipID].ishipClass.." number "..SOB_regoTable[shipID].ishipCount)
	
    -- Assign a rego, first in best dressed
    if ( SOB_regoTable[shipID].ishipCount > 0 ) then
	
      fx = nil
	  
      local fxName	= "rego_"..SOB_regoTable[shipID].ishipClass.."_"..SOB_regoTable[shipID].ishipCount
	  local fxPath		= "data:art/fx/"..fxName..".lua"
	  
	  dofilepath(fxPath)
	  
	  -- print(">> REGO >> | Path to check = "..fxPath)
	  
      if ( fx ) then
		
          local rEffect = fx.properties["property_00"].value		  
		  
          if ( rEffect ~= "" ) then
		  
			-- print(">> REGO >> | FX to play : "..fxName..", for: "..SOB_regoTable[shipID].sob)
			
            FX_PlayEffect( fxName, SOB_regoTable[shipID].sob, 1)  --<<<<<  THIS DOESN'T WORK... THE FX DON'T PLAY AND THERE'S NO ERRORS
						
          end
		  
      end
	  
     fx = nil
	  
    end
	
end


function SOB_CreateShipSpecificRegoTable(CustomGroup, playerIndex, shipID)

  sob = "SOB_regoGroup"..shipID
  SobGroup_Create(sob)
  SobGroup_Clear(sob)
  SobGroup_SobGroupAdd(sob, CustomGroup)
  
  -- create default ship specific table
  local rShip = {}
  rShip.sob			= sob
  rShip.iplayerIndex	= playerIndex
  rShip.iShipID		= shipID
  rShip.ishipClass	= CustomGroup
  rShip.ishipCount	= shipCount[CustomGroup]
  
  return rShip
  
end

(Trebic) #152

I’m pretty sure the sobgroup CustomGroup is empty in the create function. At least in the past when I have used it, it has always been empty. You might need to move it to the update function, and allow RegoCheck to be called only once.


(Taiidan Republic Mod) #153

I agree with that diagnosis. You can check by printing the size of the group, which I have always found to be 0 at creation.


(Nathanius) #154

That would explain the results… How can I prevent regoCheck from being called more than once in the update step?

Also, it feels useless that the create function doesn’t contain the ship? :thinking:


(Trebic) #155
hasRego = {}

function Update_ (CustomGroup, playerIndex, shipID)
  if (hasRego[shipID]== nil) then
    RegoCheck(CustomGroup, playerIndex, shipID
    hasRego[shipID]= 1
  end

  --
end

function Delete_ (CustomGroup, playerIndex, shipID)
  hasRego[shipID]= nil   -- This is here incase another ship is built with the same ship id
                        -- This could be added to the Create function for the same result.
end

[Edit]
The create function can be used to setup variables where the sobgroup is not needed (apart from the name of the sobgroup being used eg, how you used it for shipCount)


(Nathanius) #156

That’s very helpful thank you! I got most of that by copying something Stargazer had previously written without taking potential duplicate ship IDs into account. I’ll add that in…

I got it working with one hitch, the FX is not locked to the ship… the rego gets left behind when the ship moves :expressionless:

//EDIT
It looks like FX_StartEvent(<sobGroup>,<eventName>) might be the way to go… pity we’ll need to do more than just have the fx files :thinking:

//EDIT
Complete success! Thanks everyone! You’ll see this in STC at some point :stuck_out_tongue:
Feel free to reuse the tequnique with credit to STC, blanket permission with that caveat :slight_smile:


(Nathanius) #157

November patch is up!

New Ships

grn_TMP_bomber (by Aad Moerman)

Updated Ships

rom_TOS_birdofprey (by Major Stress)

Updated FX

  • TOS shuttles in the Kepler class station and the McQuarrie class starship’s hanger bay are now randomised

Updated SFX

  • New idle music for the Cardassians and Borg

New Scripting

  • RegoFX (Framework only, no Regos created yet)
  • Assimilation (Special ability “Drones” for some larger Borg ships)
  • AssimilationFX (Framework only, no actual Borg chunks yet)

(Nathanius) #158

Thanks to all the help guys! Here’s a little something to drum up some hype for our 01/12/17 update :slight_smile:

Here’s the ModDB article:

And I would like to make it known that it was @dark_sentinel and @evillejedi who provided the missing pieces which made the Borg possible. Shader solutions for changing hull colours were Dark’s idea and the knowledge of how to figure out if a ship was disabled came straight from the master of the Star Wars mod himself :sunglasses:

In addition to the difficult work completed by Dark and the pivotal tip-off by EvilleJedi to make the Borg a reality we had to:

  • Create a capture mechanic that didn’t involve latching anything to another ship
  • Dynamically show “chunks” of Borg mechanics on the hulls of assimilated ships
  • Correct issues with ownership changes in other scripts that were illuminated by assimilation
  • Have assimilated ships explode green instead of their normal fx
  • Adjust 50 million other things that I can’t remember

The MVAM script is still not adapted to assimilation yet, and unless I can fix it this week the Galaxy and Prometheus class ships will not be Borg capturable. But otherwise it all seems to work!


(Sastrei) #159

This looks absolutely fantastic. And I’d guess that this means a Beast mod is now possible, isn’t it?

How does the assimilation work as a weapon in gameplay? Do Borg vessels of a certain class autofire the assimilation weapon every few seconds/minutes?


(Nathanius) #160

Thanks Sastrei!

The Borg have a special attack (re-purposed the “drones” attack), it is a disabling beam which allows for both multiple attackers to “help” with the assimilation and for the player to get a progress bar :stuck_out_tongue:

The capture part of it is entirely separate, a script checks if a ship can’t “steer”, which is the tell-tale for being disabled and the all important crux of the existence of the Borg as a viable faction. When a ship can’t steer the attackers are checked and if they’re Borg then ownership is transferred to the attacking player.

It’s all a horrible ruse, and there’s desync opportunities there with more than one Borg player in a game but it’s seemingly solid so far and the Invasion game mode against the Borg is much more interesting :stuck_out_tongue:

As for the Beast mod, if you ask @dark_sentinel really nicely he might make some modifications to the shader he did so an extra texture with beast goop on it is faded in with the right parameter being passed through to the shader :wink:


(Lynne) #161

Beast is much easier with new GLSL shaders, though you totally want a proper special shader for that, not the eldritch monstrocity I cobbled together for STCR. It works indeed, but there were reasons for it to be this way.