Is there anybody still here?

Just downloaded Vega Strike and need help? Have a question but don't know where to start? Ask here.
Post Reply
shadowmane20
Trader
Trader
Posts: 26
Joined: Sun Feb 10, 2019 11:12 pm

Is there anybody still here?

Post by shadowmane20 »

Where, if anywhere, has the discussion on this game gone? Is this a dead project at this point? I've returned to this game to find it quite useful, yet quite frustrating.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: Is there anybody still here?

Post by loki1950 »

Yeah I still am though I may be the last man standing :lol: have you had a look at the the github activity as that is where we hoped for a bit of a revival.Has you may have noticed the code needs to be updated due to API changes in the supporting libraries.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
shadowmane20
Trader
Trader
Posts: 26
Joined: Sun Feb 10, 2019 11:12 pm

Re: Is there anybody still here?

Post by shadowmane20 »

There's quite a few Vegastrike projects on Github. Which one is the official one? I don't have the tools on this Windows 10 computer to compile the Ogre version of the game, but I would love to work with a more up to date version than 1.5.1r1. I've been toying around with the campaign code (since it's simple enough for a non-programmer like me). I downloaded the campaign editor, but can't get it to actually do anything. I've downloaded the map viewer, which is a handy tool to have when you're trying to work out a campaign.

I've also been struggling with building a solar system that can be used as an alternate to Cephid 17. It seems you either have to put fixers on a planet, or manually enter a base for them to be on in a solar system. Why does the xml file only show the system and planets, but no bases? That's frustrating.

Finally, how do I point the game back to the original save directory in the game's folder instead of the ./vegastrike directory in the user folder?
TBeholder
Elite Venturer
Elite Venturer
Posts: 753
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Re: Is there anybody still here?

Post by TBeholder »

shadowmane20 wrote:There's quite a few Vegastrike projects on Github. Which one is the official one?
Maybe at this point it's "whichever updates".
I've been toying around with the campaign code (since it's simple enough for a non-programmer like me). I downloaded the campaign editor, but can't get it to actually do anything. I've downloaded the map viewer, which is a handy tool to have when you're trying to work out a campaign.

I've also been struggling with building a solar system that can be used as an alternate to Cephid 17. It seems you either have to put fixers on a planet, or manually enter a base for them to be on in a solar system. Why does the xml file only show the system and planets, but no bases? That's frustrating.
Where do you look? There are bases right in sectors/Crucible/Cephid_17.system:

Code: Select all

<Planet name="Cephid_17 A" [ . . . ]
	<Planet name="Atlantis" [ . . . ]
	<Unit name="Ataraxia" file="Fighter_Barracks" [ . . . ] faction="klkk"  >
	</Unit>
	</Planet>
    <Planet name="JumpToOldziey" file="jump.texture [ . . . ]
		<Unit name="Plainfield" file="Relay" [ . . . ] faction="klkk">
		</Unit>
	</Planet>
[ . . . ]
    <Planet name="Cephid_17 B" [ . . . ]
		<Planet name="Wiley" [ . . . ]
			<Unit name="Serenity" file="MiningBase" [ . . . ] faction="klkk"  >
		</Unit>
		</Planet>
[ . . . ]
	</Planet>
</Planet>
Just search for "<Unit ", or use a XML editor where they are immediately obvious on the tree.
I used to locally rewrite a system (there's sectors/Special/Modelview.system and "mission/modelview.mission" starting in Modelview system,launch vegastrike with mission as the last argument) to look at certain vessels/stations and fix things inconvenient for flying around.
shadowmane20 wrote:Finally, how do I point the game back to the original save directory in the game's folder instead of the ./vegastrike directory in the user folder?
You can specify data directory in command line. But why increase the mess? It dumps generated data (the whole dynamic universe) and temporary files ("generatedbsp") there. This way you can at least purge it easily.
Or if you only to have saves somewhere else, symlink those .../save and .../serialized_xml in it to some other place, of course.
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: Is there anybody still here?

Post by loki1950 »

Thx for the back up TB was starting to feel abandoned :lol:

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
shadowmane20
Trader
Trader
Posts: 26
Joined: Sun Feb 10, 2019 11:12 pm

Re: Is there anybody still here?

Post by shadowmane20 »

Geez. I completely forgot about symlinking. I use symlinks with Open Rails. It just never occurred to me to do it with the ./vegastrike folder.
Just search for "<Unit ", or use a XML editor where they are immediately obvious on the tree.
I used to locally rewrite a system (there's sectors/Special/Modelview.system and "mission/modelview.mission" starting in Modelview system,launch vegastrike with mission as the last argument) to look at certain vessels/stations and fix things inconvenient for flying around.
I have searched. I use EditPad Lite 7, which has a pretty good search feature. Let me show you what I'm talking about.

Here is Stirling. It has a few bases when I go through there in-game. But if you look at this code, there are no units there whatsoever. If I were going to put a fixer there, I would have to put it on a planet.

Code: Select all

<system name="Stirling" background="backgrounds/purple">
	<Light>
		<ambient red="0.000000" green="0.000000" blue="0.000000"/>
		<diffuse red="1.000000" green="0.953818" blue="0.716635"/>
		<specular red="1.000000" green="0.909769" blue="0.513566"/>
	</Light>
	<Planet name="Stirling A" file="stars/white_star.texture" ri="0.000000" rj="0.000000" rk="0.000000" si="0.000000" sj="0.000000" sk="0.000000" radius="830000000.000000" x="0" y="0" z="0"  Red="1.000000" Green="0.909769" Blue="0.513566" ReflectNoLight="true" light="0">
<fog>
	<FogElement file="atmXatm.bfxm" ScaleAtmosphereHeight=".900" red="1.000000" blue="0.909769" green="0.513566" alpha="1.0" dired="1.000000" diblue="0.909769" digreen="0.513566" dialpha="1" concavity=".3" focus=".6" minalpha=".7" maxalpha="1"/>
	<FogElement file="atmXhalo.bfxm" ScaleAtmosphereHeight=".9000" red="1.000000" blue="0.909769" green="0.513566" alpha="1.0" dired="1.000000" diblue="0.909769" digreen="0.513566" dialpha="1" concavity=".3" focus=".6" minalpha=".7" maxalpha="1"/>
</fog>
		<Nebula name="" file="nebula" nebfile="red-nebula.xml" ri="9392578560.000000" rj="5495922176.000000" rk="25600159744.000000" si="33137776640.000000" sj="-32576423936.000000" sk="-5164486144.000000" x="-43369111552.000000" y="-13749433344.000000" z="17076135936.000000" year= "3664453304320.000000" />
		<Planet name="Ernest" file="planets/Lava.texture" unit="Lava" ri="24195379200.000000" rj="-26514247680.000000" rk="-35838050304.000000" si="-16908849152.000000" sj="-16983586816.000000" sk="1149365632.000000" radius="6655715.500000" x="-6825659904.000000" y="37727903744.000000" z="-49411579904.000000" year= "76319318016.000000" day="305.056580" >
			<Jump name="Jump_To_Cardell" file="jump.texture" ri="35704548.000000" rj="-8208998.500000" rk="-27550836.000000" si="29615482.000000" sj="26050832.000000" sk="30618172.000000" radius="202.726471" x="530244288.000000" y="261139456.000000" z="-464269536.000000" year= "98537048.000000" day="513.525757" alpha="ONE ONE" destination="Crucible/Cardell" faction="shmrn" />
			<Jump name="Jump_To_17-ar" file="jump.texture" ri="-6953407.500000" rj="-12547220.000000" rk="-20323332.000000" si="-7256056.500000" sj="441389440.000000" sk="-270022496.000000" radius="357.559814" x="-343732256.000000" y="320547712.000000" z="-82444576.000000" year= "749514240.000000" day="766.839050" alpha="ONE ONE" destination="Crucible/17-ar" faction="shmrn" />
		</Planet>
		<Planet name="Berman" file="planets/Lava.texture" unit="Lava" ri="-34388238336.000000" rj="-13889742848.000000" rk="29061531648.000000" si="-2263054336.000000" sj="-17773023232.000000" sk="-11172334592.000000" radius="5218629.500000" x="29768269824.000000" y="-9381296128.000000" z="38046552064.000000" year= "128079880192.000000" day="577.448364" >
			<Jump name="Jump_To_Exile" file="jump.texture" ri="32499538.000000" rj="-109090760.000000" rk="142919824.000000" si="-40184860.000000" sj="-63521424.000000" sk="-39348016.000000" radius="314.051758" x="245713152.000000" y="31484226.000000" z="99321896.000000" year= "201330880.000000" day="122.836655" alpha="ONE ONE" destination="Crucible/Exile" faction="shmrn" />
			<Jump name="Jump_To_Bernards_star" file="jump.texture" ri="-94047456.000000" rj="129967248.000000" rk="129627888.000000" si="14394733.000000" sj="53979120.000000" sk="-43676792.000000" radius="288.272430" x="104510464.000000" y="188420112.000000" z="388192448.000000" year= "164926400.000000" day="116.506714" alpha="ONE ONE" destination="Redemption/Bernards_star" faction="shmrn" />
			<Jump name="Jump_To_Maat" file="jump.texture" ri="9379054.000000" rj="86875352.000000" rk="13773636.000000" si="219905984.000000" sj="-36447112.000000" sk="80141928.000000" radius="258.881775" x="14992445.000000" y="-225457008.000000" z="222436784.000000" year= "328971456.000000" day="328.903778" alpha="ONE ONE" destination="Crucible/Maat" faction="shmrn" />
		</Planet>
		<Planet name="Rembrandt" file="planets/gas_midget.texture|black.png|planets/gas_midget.texture" unit="gas_midget" technique="gas_giants" Red="0" Green="0" Blue="0" DRed="0.87" DGreen="0.87" DBlue="0.87" SRed="0.85" SGreen="0.85" SBlue="0.85" ri="3184084224.000000" rj="-1622888704.000000" rk="22263601152.000000" si="-3951235840.000000" sj="-12502534144.000000" sk="-346267200.000000" radius="4675544.000000" x="42791776256.000000" y="21076279296.000000" z="12793356288.000000" year= "180335656960.000000" day="193.285492" >
			<Ring file="rings/planet_ring6.texture" ri="0.472307" rj="0.528661" rk="-0.705297" si="0.689570" sj="0.276784" sk="0.669241" innerradius="9834519.913268" outerradius="20019320.917016" wrapx="1" wrapy="1" />
			<Planet name="Sikkimese" file="planets/rock1.texture" unit="rock" ri="-55315904.000000" rj="-95789912.000000" rk="-12384541.000000" si="23933602.000000" sj="-15946585.000000" sk="16440915.000000" radius="1176500.000000" x="135609392.000000" y="-118338352.000000" z="162329456.000000" year= "136341792.000000" day="222.576355" >
			</Planet>
			<Jump name="Jump_To_Enyo" file="jump.texture" ri="-82313464.000000" rj="-144302880.000000" rk="-187625936.000000" si="4025808.500000" sj="-143172912.000000" sk="108347960.000000" radius="220.372650" x="346268224.000000" y="-282842784.000000" z="225285808.000000" year= "487764992.000000" day="400.719177" alpha="ONE ONE" destination="Crucible/Enyo" faction="shmrn" />
			<Jump name="Jump_To_Agea" file="jump.texture" ri="45260556.000000" rj="209645136.000000" rk="233990288.000000" si="-106626624.000000" sj="64274352.000000" sk="-36962320.000000" radius="310.873749" x="37924272.000000" y="172813664.000000" z="116257752.000000" year= "643159936.000000" day="389.388062" alpha="ONE ONE" destination="Crucible/Agea" faction="shmrn" />
			<Jump name="Jump_To_Cephid_17" file="jump.texture" ri="112044616.000000" rj="-28423540.000000" rk="25515834.000000" si="79783504.000000" sj="176773680.000000" sk="-153425504.000000" radius="236.883789" x="208503744.000000" y="361093184.000000" z="-32609314.000000" year= "341499104.000000" day="814.913818" alpha="ONE ONE" destination="Crucible/Cephid_17" faction="shmrn" />
			<Jump name="Jump_To_Everett" file="jump.texture" ri="-6502675.000000" rj="273045024.000000" rk="-4228248.500000" si="145944272.000000" sj="822553.750000" sk="-171331968.000000" radius="226.099152" x="-199041216.000000" y="226813552.000000" z="-52835436.000000" year= "43962400768.000000" day="189.710495" alpha="ONE ONE" destination="Crucible/Everett" faction="shmrn" />
		</Planet>
	</Planet>
</system>
I'm not as good with the command line in Windows as I used to be in bash. I haven't actually fired up a Linux distro in anger in over a year. Ubuntu has been my flavor of choice for years, but I bought a Chromebook and left the realm of the power user for a while.
Maybe at this point it's "whichever updates".
That's just it. None of them have updated in 2 years. Some of the data hasn't changed in approaching 10 years. I'm seriously considering just modding my way through with my own factions, reassigning the ships that are in-system to my own factions. That way I'll learn some python along the way.

I have worked up a little campaign, though. But I don't have access to the infamous "bible" you guys have floating around somewhere. Here's what I've accomplished so far. I don't even know if it will work yet, as I haven't tried it. I did take some liberties with ole Deucalion, though. I should probably just change the main character.

Code: Select all

import universe
import campaign_intelsec
import campaign_lib
from campaign_lib import *

campaignsloaders = [lambda:LoadIntelSecCampaign(),lambda:LoadISOCampaign()]
campaigns=[]

_loaded=False

def loadAll(cockpit):
    global _loaded
    _loaded=True
    for x in campaignsloaders:
        ret=x()
        if ret:
            campaigns.append(ret)

def getCampaigns():
    if not _loaded:
        # Loading happens in generate_dyn_universe.py
        # But sometimes, e.g. multiplayer, this is not loaded.
        loadAll(VS.getCurrentPlayer())
    return campaigns

### Confederation IntelSec Campaign

intel_sec_offer={"intro":[("Merrick", "Have a seat.  The name's Lucius Merrick.  I have a proposition for you."),
		    "Deucalion glares at the stranger as he sits down.",
		    ("Merrick", "You are Wing Commander Harold Deucalion, Andolian Defense Force Fighter Corp, retired?  Or do I have the wrong man?"),
		    "Deucalion narrows his gaze and leans back, crossing his arm.",
                    ("Deucalion", "I'm not in the mood for games today."),
                    ("Merrick", "Then I'll get straight to the point.  I need someone to deliver a special cargo for me, and I hear you're a pretty good pilot."),
                    ("Deucalion", "Yeah, well who'd you hear that from?"),
                    ("Merrick", "Does the name Pender ring a bell?"),
		    "Deucalion's hair stood up on the back of his neck.  He hadn't heard that name since his... retirement... from the Andolian Defense Force.",
                    ("Deucalion", "I think you've said just about enough.  If you're mixed up with Pender, I don't want nothing to do with it."),
		    "Deucalion starts to get up, but the man reaches out and grabs his wrist.",
                    ("Merrick", "Be that as it may, we know you have done some... shall we say... sensitive work for the Andolian government.  We would like you to carry our shipment.  What say you?"),
		    "Deucalion breaks free of the man's grip and shoots him and ice-cold stare.",
                    ("Deucalion", "I don't work for free.  A man has to make a living."),
		    "The man smiles, then shrugs.", 
                   ("Merrick", "I can arrange payment.  My associates pay well.),
		    "He flashes an IntelSec badge as he awaits Deucalion's answer."],
            "reject1":[("Merrick", "So you're going to let your bitterness overrule your need to make a living?  How pathetic.  Come see me when you get serious."),
			("Deucalion", "You want serious?  I'll give you serious."),
			"Deucalion points at the badge.",
			("Deucalion","You people frame a man for something he didn't do, then come find him and beg him to do a job for you.  And you think I'm being pathetic.  Go to hell."),
			"Deucalion storms off."],
            "reconsider":[("Merrick", "I figured you'd be back.  Nowhere else to turn, hey?"),
			("Deucalion", "I have plenty of options.  And if I accept this job, it doesn't change anything.  I don't trust you or your associates.  At least doing jobs for you I can keep an eye out for when you're going to screw me again."),
			("Merrick", "We're not out to get you, Commander.")],
            "reject2":[("Deucalion", "Let someone else do your dirty work."),
                        ("Merrick", "Come see me when you grow up, Deucalion.  We need good men.  We're fighting a war, you know."),
			"Deucalion points an accusing finger at Merrick.
			("Deucalion", "You should have thought of that before you framed people for things they didn't do.],
            "failure":[("Merrick", "How'd it go?"),
                        ("Deucalion", "I got jumped.  The cargo didn't make it."),
                        ("Merrick", "Nothing's ever easy.  I smell a rat, and we need to set the bait.  I'll be in touch.  There may be more going on than meets the eye.")],
            "reminder":[("Merrick", "Time is of the essence.  That cargo is very inportant.")],
            "accept":[("Merrick", "Your ship will be loaded tonight when there's not too much action going on around here.  Your flight plan will be sent via encrypted message to your flight computer.  Just follow it and deliver the cargo.  Easy as pie.")]}

vip_run={"intro":[("Pender", "Well, well, well!  Look what the cat dragged in."),
                    ("Deucalion", "Pender."),
		    "Deucalion spat the name in revulsion.",
                    ("Pender", "Wing Commander Harold Deucalion, callsign Duke, hero of the Four Worlds Campaign.  Suffering from forced retirement for something he didn't do."),
                    ("Deucalion", "What do you want, Pender?"),
                    ("Pender", "How would you like to help me catch the traitor that ruined both our military careers?"),
		    "Deucalion's eyebrowns shot into his hairline."
                    ("Deucalion", "Tell me who it was, Pender."),
                    "Pender shook his head.",
                    ("Pender", "I don't have a name.  Just a lead.  But more importantly, I have another mission for you.")],
		    "Deucalion rolled his eyes, then sat down.",
		    ("Deucalion" "Okay.  Tell me the mission.  We'll finish our little chat later.
		    ("Pender" "We'll be moving a VIP.  The less questions asked, the better.  But let's just say, if we get our man in place, the Aera will begin to crumble.")
		    "Deucalion smiles a wry smile."
		    ("Deucalion", "Let's talk money, Pender.  I don't work for free."),
		    ("Pender" "See Merrick when you get back.  He'll make sure you're well endowed for this one.  It's that important."]
            "reject1":[("Deucalion", "Not on your life.  I don't run a passenger service."),
			("Pender" "I hope you'll reconsider.  The military really needs a victory right about now.],
            "reconsider":[("Pender", "I knew you'd be back.  Are you ready to run a passenger service, now?")],
            "reject2":[("Deucalion", "Go to hell, Pender.")],
            "reminder":[("Pender", "Get moving.  Time is of the essence.")],
            "accept":[("Deucalion" "Okay.  What's the details?")
		    ("Pender" "I'll have it all sent to your flight computer.")]}

catch_a_spy={"intro":[("Merrick","Good job on delivering the cargo.  And thanks for bringing the VIP.  I've added a little padding to your financial account to the tune of about 200000 credits."),
                        ("Deucalion","Whoa!  That's... a lot!"),
                        ("Merrick","Quality pay for a job well done."),
            		"Deucalion is a little surprised at the amount, but wonders to himself what strings come attached.",
			("Merrick", "We have another opportunity for you if you're game."),
			"Deucalion thought to himself, "/Here comes the strings."/,
			("Merrick", "We've uncovered an Aeran Spy who's been shooting the Aerans information on our movements for the last 6 months.  We need him taken out.  The mission comes with a reward."),
			("Deucalion", "What kind of reward?  I'm not in the war anymore.  I'm retired."),
			("Merrick", "It's quite substantial.  Please consider it, but don't take too long.  We may have to more quickly.")],
            "reject1":[("Deucalion","I'll have to think this one over."),
                        ("Merrick","Again, please don't take too long.  We may have to move quickly.")],
            "reconsider":[("Merrick","Have you made your decision yet?"),
                        ("Deucalion","Maybe."),
                        ("Patron","I really need to know now.  Our target is on the move and could make a run for it any time.")],
            "reject2":[("Deucalion", "I'm sorry, I'm not fighting this war anymore.  You guys made your own bed.  Now lie in it."),
                        ("Merrick","Suit yourself.  I had hoped you could get over your bitterness, but I see you still have some healing to do.")],
            "failure":[("Merrick", "The information that spy got to the Aera will damage the war effort for months."),
                        ("Deucalion","I tried my best."),
                        ("Merrick","Setbacks always happen in war.  We'll recover, but we'll have to launch a full investigation into who this guy was getting his information from and who he was sending it to.  We may come to see you again, but I doubt it.  If you want to try to clear your name, see Pender on Jacobs in the Bernard's Star system.")],
            "reminder":[("Merrick", "The target is on the move.  If he leaves the system before you get to him, sensitive information will get into Aeran hands.")],
            "accept":[("Deucalion", "I'll do it.  But only because you don't have anyone else."),
                        ("Merrick","We could alert the military, but they would just screw things up."),
                        ("Deucalion","So how do I find this spy?"),
                        ("Merrick","The spy has a ship that we've been watching.  It's been feuled up in the last few hours.  We think he's ..."),
                        "Merrick's communicator beeps.  He answers it quickly.",
                        ("Merrick","He's making his break for it.  Get going now, before he gets away.  Take that ship out at all cost, Deucalion."),
			("Deucalion", "I'm on it.")
			"As Deucalion gets up to leave, Merrick pulls out his communicator and begins speaking into it."]}

agent1reward=[("Merrick","You did it!  You've single-handedly stopped sensitive information on our fleet movements from getting into Aeran hands.  This in combination with the delivery of the VIP will turn the tides of this war for us.  As a reward, I've been authorized to deposit 1000000 credits in your account."),
	    "Deucalion spits his drink out as he sits up.",
            ("Deucalion","Did you say a million credits?"),
            ("Merrick","Yes.  That was the bounty on this guy."),
            ("Merrick","You've done a real service to the Confederation today.  We could use a man like you."),
            ("Deucalion","I feel like I was roped into this."),
            ("Merrick","You were.  But I am now authorized to reinstate your commission with a promotion.  Instead of Group Captain, you're being transferred to IntelSec and will have the rank if Colonel.  You'll be attached to Homeland Security from now on."),
            ("Deucalion","Reinstated?  With a promotion?  How'd you swing that one."),
            ("Merrick","Pender told you he had a lead.  He's currently following it.  I convinced command that you were better used as an asset of IntelSec than running around the galaxy trying to scrape by to make ends meet.  I also convinced them that you would be better served with us than under the command of that blowhard Vice Admiral Tolliver."),
	    ("Deucalion" "Yeah.  I'm not likely to serve under that jerk again.  Not willingly anyway."),
	    ("Merrick", "On the books, you'll still be shown as retired from the Andolian Defense Force.  Your permanent cover is as a privateer."),
	    ("Deucalion", "That suits me fine.  I've still got a bad taste in my mouth when it comes to the military."),
	    ("Merrick", "Enjoy some down time.  You've earned it.  We'll track you down when we have something else for you.   At any rate... if you're interested in helping Pender, he's on Jacobs in the Bernard's Star system.  I'm sure he could use the help.  
            "Merrick finishes his drink, then stands up and walks off.  Deucalion thinks long and hard about his next move."]}

introduction="Shakeup in Andolian Defense Force threatens Confederation Fleet Cohesion in Crucible Sector:\\\\Vice Admiral Maximillian Tolliver held courts-martial today wherein several subbordinate officers of the Andolian Defence Force elements of the Confederation 12th Expeditionary Force were found guilty of charges leading to their dismissal from the service.  The names of the officer have been withheld due to security concerns.\\\\Charges of insubbordination, deserting post, and aiding and abetting the enemy were among the charges brought on the officers.  We can confirm that only one of the officers was a highly decorated war hero.  Of the officers sentenced, one was sentenced to death, while three others were dismissed the service.  Evidence that one of the officers was an active Lightbearer was brought forth, but dismissed as circumstantial.  One has to wonder what the Klkk think about this.////GNN -- Providing news for the galaxy."

assassination="Confederation Admiral Assassinated in Bernard's Star:\\\\Confederation Naval Command was shocked yesterday by the loss of revered Admiral Bjorn Rolfson.  Admiral Rolfson had been in the Bernard's Star on a secret planning mission for an upcoming fleet exercise." \ "He had commanded the 12th Expeditionary Force since he won the Confederation Medal of Valor.  He will be succeeded as commander of the 12th Expeditionary Force by Admiral Maximillian Tolliver.\\\\GNN -- Providing news for the galaxy."

confedwin="IntelSEC Investigation Completed:\\\\IntelSEC has today completed the preliminary investigation into a spy rings operating out of the system Cephid 17 in Crucible Sector.  This spy ring had been delivering sensitive information to the Aera for months right under the noses of the military.\\\\In other news, Admiral Bjorn Rolfson called this operation a real coup for IntelSec, and congratulated them on a job well done.  Admiral Rolfson will turn over command of the 12th Expeditionary Force based in the Crucible Sector to his adjutant, Vice Admiral Maximillian Tolliver until a new commander is appointed.  He has been promoted to Grand Admiral and will assume command as Commander In Chief of the Aeran Theatre.   Shares in the Klkk stockmarkets have seen a major uptick, and the Merchant's Union has already made plans to reopen disbanded trade routes.\\\\'The Aera war effort has taken a major hit, with several systems coming under direct fire from the fleets under command of Grand Admiral Rolfson.'\\\\GNN -- Local news, for a galactic audience."

aerawin="IntelSEC Thwarted:\\\\IntelSEC has today has verified that an operative for the Aera has been working out of the Cephid 17 system.  Before he got away, he was able to obtain and pass on sensitive information on the movements and makeup of the Confederation Fleet.  \"Such an outcome will only serve to strengthen the Aerans, who are gaining ground on the Confederation forces.\"\\\\Shares in Klkk Markets are down, as well as shares throughout the Confederation as the economy hunkers down for fiercer fighting in the coming months.\\\\GNN -- Local news, for a galactic audience."

def IntelSecCampaign():
    
    CampaignIntro = CampaignNode()
    AGENT1_SPRITE = ("campaign/investigator.spr","Talk_To_The_Agent") #sprite file for the fixer
    AGENT_LOCATION = ("Crucible/Cephid_17","Ataraxia")
    Agent1Mission1 = CampaignClickNode() # Initialize each node
    Agent1Mission2 = CampaignClickNode()
    
    AGENT2_SPRITE = ("campaign/gangster1.spr","Talk_To_The_Agent")
    AGENT2_LOCATION = ("Crucible/Agea","Shipyard_1")
    Agent2Mission1 = CampaignClickNode() # Initialize each node
    
    Agent1Consequence = CampaignNode()
    Agent1Reward = CampaignClickNode()
    
    Agent1Reject = CampaignClickNode()
    Agent2Reject = CampaignClickNode()
    
    WrapUpConfed = CampaignNode()
    WrapUpAera = CampaignNode()
    WrapUpAssassin = CampainNode()
        
    intel=Campaign("intelsec_campaign") # Name of the save game variable for the entire campaign. Can't contain spaces
    intel.Init(CampaignIntro) # the first node.

    CampaignIntro.Init(intel,
        [],
        [],
        None,
        PushNews(introduction),
	None,
	None,
	AgentMission1,
	CampaignIntro)

    description = "Marrick:_Deliver_First_Cargo"
    MakeCargoMission(intel, # Creates a cargo mission
        AGENT1_SPRITE, # Campaign, sprite
        [InSystemCondition(AGENT1_LOCATION[0],AGENT1_LOCATION[1])], # Where fixer meets you to start the mission
        [InSystemCondition(AGENT2_LOCATION[0],AGENT2_LOCATION[1])], # Where the mission ends. Usually the same as starting point for next fixer.
        None, # Script to be run as you click on the fixer. A common use is to AddCredits() for the previous mission.
        LoadMission(description,"directions_mission",(vs.name+"_mission",['Crucible/Stirling','Crucible/Agea'], 'Shipyard_1')),#Script to be run to start the mission (usually None if you don't have a script, but ambush is also common.)
        ("Classified",12,False), # Mission arguments.
        vs.name+"_mission", # Script to be set on completion. -1=Failure, 0=Not Accepted, 1=Succeed, 2=In progress
        intel_sec_offer, # Dictionary containing what the fixer says.
        None, # If you reject the mission twice. "None" means that he continues asking you forever until you accept
        Agent1Mission2, # If you lose the mission
        Agent2Mission1, # If you win the mission. Usually points to the next mission
        Agent1Mission1) # The current mission node.
    
    description = "Pender:_Deliver_Second_Cargo"
    MakeCargoMission(intel, # Creates a cargo mission
        AGENT2_SPRITE, # Campaign, sprite
        [InSystemCondition(AGENT2_LOCATION[0],AGENT2_LOCATION[1])], # Where fixer meets you to start the mission
        [InSystemCondition(AGENT1_LOCATION[0],AGENT1_LOCATION[1])], # Where the mission ends. Usually the same as starting point for next fixer.
        ClearFactionRecord('merchant',0.7,PushRelation('merchant')), # Script to be run as you click on the fixer. A common use is to AddCredits() for the previous mission.
        LoadMission(description,"directions_mission",(vs.name+"_mission",[], AGENT1_LOCATION[1])), # Script to be run to start the mission (usually None if you don't have a script, but ambush is also common.) (having no destination will call significant unit.. oakham should be the only dockable significant in that system
        ("Passengers",5,False), #FIXME: varied cargo, and lots of it! Mission arguments.
        vs.name+"_mission", # Script to be set on completion. -1=Failure, 0=Not Accepted, 1=Succeed, 2=In progress
        vip_run, # Dictionary containing what the fixer says.
        Agent2Reject, # If you reject the mission twice. "None" means that he continues asking you forever until you accept
        Agent1Consequence, # If you lose the mission
        Agent1Reward1, # If you win the mission. Usually points to the next mission
        Agent2Mission1) # The current mission node.
    
    description = Merrick: Catch A Spy
    MakeMission(intel, # Creates any type of mission
        AGENT1_SPRITE, # Campaign, sprite
        [InSystemCondition(AGENT1_LOCATION[0],AGENT1_LOCATION[1])], # Where fixer meets you to start the mission
        [], # Where the mission ends. Usually the same as starting point for next fixer.
        AdjustRelation('privateer','confed',0.2,AdjustRelation('aera',-0.1,PushNews(hitsuccess))),
        None, # Script to be run to start the mission (usually None if you don't have a script. Do NOT load an ambush mission here.)
        'bounty',(0,0,0,False,0,'spy',(),vs.name+"_mission",'','',True,[]), #Mission arguments.
        vs.name+"_mission", # Script to be set on completion. -1=Failure, 0=Not Accepted, 1=Succeed, 2=In progress
        catch_a_spy, # Dictionary containing what the fixer says.
        Agent1Reject, # If you reject the mission twice. "None" means that he continues asking you forever until you accept
        WrapUpAera, # If you lose the mission
        Agent1Reward2, # If you win the mission. Usually points to the next mission
        Agent1Mission2)

    Agent1Reward1.Init(intel,
        [InSystemCondition(AGENT1_LOCATION[0],AGENT1_LOCATION[1])],
        catch_a_spy,
        AGENT_SPRITE,
        GoToSubnode(0,AddCredits(200000,AdjustRelation('homeland-security',0.5))),
        None,
        [Agent1Mission2])

    Agent1Reward2.Init(intel,
        [InSystemCondition(AGENT1_LOCATION[0],AGENT1_LOCATION[1])],
        agent1reward,
        AGENT_SPRITE,
        GoToSubnode(0,AddCredits(1000000,ClearFactionRecord('homeland-security',1.0))),
        None,
        [WrapUpConfed])

    Agent1Consequence.Init(intel,[],None,None,TrueSubnode(),Agent1Consequence,[Agent1Mission2])

    Agent2Consequence.Init(intel,[],None,None,TrueSubnode(),Agent1Consequence,[WrapUpAera])
    
    Agent1Reject.Init(intel,
        [InSystemCondition(AGENT1_LOCATION[0],AGENT1_LOCATION[1])],
        agent1mission1,
        AGENT1_SPRITE,
        GoToSubnode(0,AdjustRelation('homeland-security',-0.05,AdjustRelation('privateer','confed',-0.1,PopRelation('homeland-security')))),
        None,
        [WrapUpAera])

    Agent2Reject.Init(intel,
        [InSystemCondition(AGENT2_LOCATION[0],AGENT2_LOCATION[1])],
        agent2mission1,
        AGENT1_SPRITE,
        GoToSubnode(0,AdjustRelation('homeland-security',-0.05,AdjustRelation('privateer','confed',-0.1,PopRelation('homeland-security')))),
        None,
        [Agent2Consequence])
    
    WrapUpAssassin.Init(intel,
        [],
        [],
        None,
        PushNews(assassination),
        GoToSubnode(0,AdjustRelation('confed',-1.0,AdjustRelation('privateer',-0.1,PopRelation('confed')))),
        None,
        [CampaignEndNode(intel)])

    WrapUpConfed.Init(intel,
        [],
        [],
        None,
        GoToSubnode(0,(PushNews(confedwin))),
        None,
        [CampaignEndNode(intel)])
    
    WrapUpAera.Init(intel, # savegame variable
        [], #start location
        [], #dialog
        None, # fixer sprite
        GoToSubnode(0,(PushNews(aerawin))), # subnode script
        None, # completion script
        [CampaignEndNode(intel)]) # continue with next mission
    
    return intel

def ISOCampaign():

	PENDER_SPRITE = ("campaign/gangster1.spr","Talk_To_The_Pender")
	PENDER_LOCATION = ("Redemption/Bernards_star", "Jacobs")
	PenderUndercover=CampaignClickNode()
pender1={"intro":[	("Pender", "Hello again, Deucalion. It's such a small galaxy."),
			("Deucalion", "Too small, Pender.  Merrick told me to look you up, so here I am.  Now let's talk about that lead you have."),
			"Pender smiles and motions for Deucalion to sit down.  Deucalion grabs the chair, turns it around and straddles it as he sits down.",
			("Pender", "I've tracked our man down to a small ISO cell.  I haven't been able to gain access to them, though.  They're too flighty."
			("Deucalion", "Maybe someone in their organization knows who you are.  Have you thought about putting another agent in there?  Someone they don't know?"),
			("Pender", "I have.  The only time I tried, they sniffed him out immediately.  I haven't had luck, but maybe you can.  I've tracked down Smiley, the flight deck hand that fixed your shot up ships for you."),
			("Deucalion", "You found Smiley?  That court martial was rough on him.  He left the service because of what happened to me.  It's the only part of the whole mess I actually feel bad about."),
			("Pender", "Smiley has become quite the privateer.  He does runs for the ISO quite frequently.  If I track him down, you're going to have to be the one to infiltrate the ISO.  Are you up to it?"),
			("Deucalion", "What's the actual mission once we find Smiley?
			("Pender", "You'll infiltrate the ISO.  You're looking for a member of their organization with only a code name... Decker.  If you find Decker,  you find who caused our court martial.  Your cover is that you're delivering a shipment of medical supplies to refugees of the war.  Hell, it might just draw the ISO out for your cargo."),
		"accept":(Deucalion", "If you can track him down, I'll go talk to him and see if we can get access to the ISO.  I'll find Decker and clear our names.  Publicly."),
		"accept2":("Deucalion", "I've thought it over.  I'll contact Smiley and see if we can infiltrate the ISO."),
		"reject1":(Deucalion", "No.  We have to find another way.  I don't want to drag Smiley back into my orbit.  It seems to be bad luck for him."),
			("Pender", "I'll send the information to your nav computer."),
			("Pender", "He's our only lead, Deucalion.  It's either track down Smiley, or keep our bad reputations forever."),
		"reconsider":("Pender", "Have you come to your senses yet?  You know this is the only way to clear our names."),
		"reject2":("Deucalion", "We're just going to have to find another way in.  I'm not going to drag Smiley into this.),
			("Pender", "There is no other way in.  Smiley is our only hope of gaining access to the ISO.),
		"reminder":("Pender", "Deliver the cargo and meet with Smiley.  He's our only lead."),
		"failure":("Pender", "What happened?")
			("Deucalion", "The ISO jumped me.  I never made it with the cargo.  I had to ditch it.  I barely made it back with the hair on my head.),
			("Pender", "We'll have to catch up with Smiley somewhere else.  I might have an idea, but you're going to have to give me a little time.  Meet me at the Plainfield Relay Station in the Cephid 17 system.  There may be one chance to salvage this.]}

	NATALYA_SPRITE = ("bases/fixers/iso.spr", "Talk_To_Natalya")
	NATALYA_LOCATION = ()
	ISOMission1=CampaignClickNode()
	ISOMission2=CampaignClickNode()
	ISOMission3=CampaignClickNode()
	ISOMission4=CampaignClickNode()

	iso=Campaign("iso_campaign")
	iso.Init(PenderMission1)
Again, I've not tested it. I just wrote it as a little project to learn some of the scripting language.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: Is there anybody still here?

Post by loki1950 »

I use notepad++ on the Windows side good syntax highlighting for a wide range of languages both Python and XML included.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
TBeholder
Elite Venturer
Elite Venturer
Posts: 753
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Re: Is there anybody still here?

Post by TBeholder »

shadowmane20 wrote: Here is Stirling. It has a few bases when I go through there in-game. But if you look at this code, there are no units there whatsoever. If I were going to put a fixer there, I would have to put it on a planet.

Code: Select all

<system name="Stirling" background="backgrounds/purple">
Ah. You have more than one directory with systems.
In the pre-built game data (repository/package) full Stirling system data does not exist. There are only Crucible/ Cephid_17; Redemption/ Bernards_star; Sol/ Alpha_Centauri, Iris Regallis Sol; Special/ Empty, Modelview, Network.
In the game VS data Stirling exists as little more than randseed for re-creating it, specifically 13 lines of data/universe/milky_way.xml:

Code: Select all

		<system name="Stirling"><var name="planets" value=""/>
			<var name="data" value="1594333106"/>
			<var name="faction" value="shmrn"/>
			<var name="luminosity" value="0"/>
			<var name="num_gas_giants" value="2"/>
			<var name="num_moons" value="2"/>
			<var name="num_natural_phenomena" value="1"/>
			<var name="num_planets" value="3"/>
			<var name="planetlist" value=""/>
			<var name="sun_radius" value="16600.000000"/>
			<var name="xyz" value="357.924957 -270.584913 256.511509"/>
			<var name="jumps" value="Crucible/Enyo Crucible/Exile Crucible/Cardell Crucible/Cephid_17 Crucible/Everett Crucible/Agea Crucible/Maat Redemption/Bernards_star Crucible/17-ar"/>
		</system>
So even planets are generated, they are just generated in a repeatable way (affected by variables in vegastrike.config).
IIRC it works like this.
  1. When the PC ship visits a system, celestial objects, stations and other units are generated.
  2. Then it all exists and units are simulated (attack the enemies, etc) while this system is within last physics/NumRunningSystems (confvar that defaults to 4) visited.
  3. Then it's not simulated any more, but XML is retained in user data (.vegastrike/<sector name>),
  4. Then if general/deleteoldsystems is true, when there are more than general/numoldsystems (default 6) systems, garbage collector deletes all older ones.
Thus as far as the user can see, it's consistent. If e.g. you see capships duke it out at a jump point, then PC ship jumps out and then jumps back in, they are still there, and stations are still there too, so a PC ship can follow a jumping ship, can't easily dodge a danger by jumping out of a system and returning, and can go back and forth within 1 jump and trade between these stations.
But after you visit a handful of other systems, the least-fresh ones stop being simulated. After a few more, old ones will be erased (to be generated from scratch using milky_way.xml entry if needed again). So the next time you return, planets will be there, but generated stations and other units probably will be all different. The only exception are systems explicitly saved in game data/sectors/ like Crucible/Cephid_17, because they will be generated from system XML in game data, which includes fixed units, and since Atlantis is pre-placed there, HAULER_LOCATION = ("Crucible/Cephid_17","Atlantis") is going to actually make sense. :)
So you got to look at a .system XML in the user data when you saved in that system or in the next one - if it's still simulated, it will have some generated units it's supposed to have.
To have more generated orbits, set general/deleteoldsystems to "false" to see what piles up after a while and pick from there and pick from there. Also perhaps increase physics/NumRunningSystems (if your computer allows).

Of course, you may want to get "cleaner" data and on demand, rather than from arbitrary time and by flying there. The simplest way is to start with "-j <system>", but if you want things to be easily controllable, edit a copy of main_menu.mission for a given system (make sure physics/simulate_while_docked in config is not set to true and physics/planet_collision_docks is). Start the new game game docked, save. If that's not enough, move the starting coordinates in mission to a planet, undock and dock. System XML with stations will be generated. If you don't like it, just erase XML and restart again.
Now that you have desired XML line, save the file from user data into permanent data. Or you could create the unit there via mission XMLs or python code, but you'll probably have to change coordinates to some place other than where an auto-generated station appeared.
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
shadowmane20
Trader
Trader
Posts: 26
Joined: Sun Feb 10, 2019 11:12 pm

Re: Is there anybody still here?

Post by shadowmane20 »

I looked at what you were talking about in the vegastrike.config file. You said to set the general/deleteoldsystems to "false". However, this is what I'm looking at.

Code: Select all

<!-- #cva displaylist vbo -->
			<var name="deleteoldsystems" value="true"/>
<!-- #end -->
<!-- #varray
			<var name="deleteoldsystems" value="false"/>
#end -->
Which one will I be changing? Or am I looking at the wrong line? Also, the physics/NumRunningSystems is set up by the size of the system.

Code: Select all

<!-- #1000MHz -->
			<var name="simulation_atom" value="0.05"/>
			<var name="numoldsystems" value="2"/>
<!-- #end -->
<!-- #2000MHz
			<var name="simulation_atom" value="0.04"/>
			<var name="numoldsystems" value="4"/>
#end -->
<!-- #3000MHz
			<var name="simulation_atom" value="0.03"/>
			<var name="numoldsystems" value="4"/>
#end -->
<!-- #4000MHz
			<var name="simulation_atom" value="0.02"/>
			<var name="numoldsystems" value="5"/>
#end -->
<!-- #4000MHzPlus -->
			<var name="simulation_atom" value="0.01"/>
			<var name="numoldsystems" value="8"/>
I believe, with the system I have, I'm running the 1000MHz. I could probably push to 2000MHz, but it would tax my system. I'm only using an internal GPU right now.

I think the way to go if you're going to write a little campaign is to just break down and learn to create a system from scratch. That way, you have the places you want the fixer to be without having to rely on the dynamic universe.

I've looked at a few other threads in the forums. I think I like the idea of writing out the campaign in movie/play script first, then moving from there to scripting in python. The only issue I see for me is that the developers seem to have all fallen off the map, and development on the game seems to have ended 2 months ago. Not that I can get a newer version of the game going past logging in as a dumbfire missile with a black background. I just don't have this system set up to pull from the source and compile the game.

It would be nice if somebody would move the game to the next version (for Windows, I'm sure I can get the Linux version working after fiddling a while on my Ubuntu box) adding the work that's been done since the last release almost 10 years ago.

Edit: Additionally, which is better, to use the bin folder, or to put the contents of the bin folder in the main data folder? I'm trying to get a more up to date game going on my computer. Also, what actually happens if you put the Win64 dlls in the bin folder?
wirser
Bounty Hunter
Bounty Hunter
Posts: 201
Joined: Wed Dec 01, 2004 8:06 pm
Location: not where i want to be

Re: Is there anybody still here?

Post by wirser »

I just recentlu returned to see alot of nothing at the moment so I started to see what I could save.
still working on it but making progress
cmake/ccmake was a bit tempormental on linux , my advice look for harcoding of paths that causes not finding pkgs like ffmpeg and others
migrating to python 3.5 is work in progress, first with toase tree then trying to reclaim other mods to working python tree

When I think back to when I got involved with Vegastrike, it was in a lul like this :?
if current_situation=fact and if current_situation=faith
then current_forcast = excitement
Post Reply