NPC Missions

  • I was wondering, unless there's a tutorial hiding somewhere, if someone could tell me how to place friendly npc gunboats into missions. Into the missions you find at bases. Like, for instance in a "Destroy Battle Station" mission, after so many kills, along with the friendly wing comes a gunboat or two. Thx in advance. This has been bugging me for a bit.

    Don't tell Locke what he can't do.
    And remember always to regenerate!

  • EDIT: You didn't mean storyline missions, did you?


    If you did...
    Add an npcship entry in npcships.ini in the MISSIONS directory.


    [NPCShipArch]
    nickname = MSN_Gunboat
    loadout = rh_gunboat
    level = d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d19
    ship_archetype = rh_gunboat
    pilot = gunboat_default
    state_graph = GUNBOAT
    npc_class = lawful, class_fighter


    This is NOT perfect and may not even work, and also it will spawn along with fighters when you're not doing random missions.


    Next, add a line to the end of the faction you want in factionprops.ini in the MISSIONS directory:


    npc_ship = MSN_Gunboat


    I thought this out from the back of my head, so like I said, it's NOT perfect.


    If you DID mean storyline missions, then here's my LONG reply that I am not willing to delete:
    Hi, storyline missions are my favorite part of modding, so i'll give you some code...


    In npcships.ini, put in:


    [NPCShipArch]
    nickname = MSN_Gunboat
    loadout = rh_gunboat
    level = d12
    ship_archetype = rh_gunboat
    pilot = gunboat_default
    state_graph = GUNBOAT
    npc_class = lawful, class_gunboat


    You can see that i'm using the Rheinland gunboat as a template. You can change this to whatever you like (br_gunboat being Bretonia Gunboat, ku_gunboat being Kusari Gunboat)


    If you want a Cruiser:


    [NPCShipArch]
    nickname = MSN_Cruiser
    loadout = li_n_li_cruiser
    level = d18
    ship_archetype = li_cruiser
    pilot = cruiser_default
    state_graph = CRUISER
    npc_class = lawful, CRUISER


    Change li_cruiser to whichever cruiser is appropriate (rh_cruiser, ku_destroyer, br_destroyer)


    And finally a battleship:


    [NPCShipArch]
    nickname = MSN_Battleship
    loadout = li_n_li_dreadnought
    level = d22
    ship_archetype = li_dreadnought
    pilot = cruiser_default
    state_graph = CRUISER
    npc_class = lawful, battleship


    Again, change li_dreadnought to whatever you like (rh_battleship, ku_battleship, br_battleship)


    (Put only what ships you need in npcships.ini)


    Now for the main mission code.
    I'll give you a template Obj List, NPCs, formation, and ships:


    [NPC]
    nickname = m_gunboat
    affiliation = rh_n_grp
    npc_ship_arch = MSN_Gunboat
    individual_name = 216511
    voice = pilot_f_mil_m02
    space_costume = rh_captain_head, rh_male_elite_body, prop_neuralnet_D


    [NPC]
    nickname = m_cruiser
    affiliation = li_n_grp
    npc_ship_arch = MSN_Cruiser
    individual_name = 216303
    voice = pilot_f_mil_m02
    space_costume = li_captain_head, li_male_elite_body, prop_neuralnet_D


    [NPC]
    nickname = m_battleship
    affiliation = li_n_grp
    npc_ship_arch = MSN_Battleship
    individual_name = 216300
    voice = pilot_f_mil_m02
    space_costume = li_captain_head, li_male_elite_body, prop_neuralnet_D


    Theres the NPCs declared... now onto the msnship declarations.


    [MsnShip]
    nickname = gunboat_1
    NPC = m_gunboat
    position = 10000, 5, 20000 ;If you plan on using a formation, delete this line.
    ;orientation = 1, 0, 1, 0 ;Uncomment this line if you want to use orientations
    label = capships


    [MsnShip]
    nickname = cruiser_1
    NPC = m_cruiser
    position = 10100, 5, 20000 ;If you plan on using a formation, delete this line.
    ;orientation = 1, 0, 1, 0 ;Uncomment this line if you want to use orientations
    label = capships


    [MsnShip]
    nickname = battleship_1
    NPC = m_battleship
    position = 10300, 5, 20000 ;If you plan on using a formation, delete this line.
    ;orientation = 1, 0, 1, 0 ;Uncomment this line if you want to use orientations
    label = capships


    Here is a template formation (don't use this if you're only using one or so ship):


    [MsnFormation]
    nickname = capship_formation
    position = 10100, 5, 20000
    orientation = 1, 0, 1, 0
    formation = cruiser_wall ;If you're using gunboats only use gunboat_rh_n, gunboat_ku_n, or gunboat_br_n depending on the gunboat used
    ship = battleship_1
    ship = cruiser_1
    ship = gunboat_1
    ;ship = escort1
    ;ship = escort2 ;Use these if you have other ships in the formation
    ;ship = escort3


    Now an objlist:


    [ObjList]
    nickname = fly_to_p1
    GotoShip = goto, Player, 800, true ;Swap out 'Player' for the ship or solar you want the formation or ships to fly to.


    Now some template triggers I too kindly cooked up for you, simply fire off 'spawn_capships' to spawn the formation. And feel free to change any labels where needed, or delete any lines where needed.


    [Trigger]
    nickname = spawn_capships
    system = Li01 ;This line assumes you are in the New York system. For all other triggers with this line, simply change Li01 to the system you are in.
    Cnd_Destroyed = badboys, 4, ALL_IGNORE_LANDING
    Act_SpawnFormation = capship_formation ; Or SpawnShip = (ship)
    Act_GiveObjList = battleship_1, fly_to_p1
    Act_SetVibeLblToShip = capships, Player, REP_FRIEND_THRESHOLD
    Act_SetVibeShipToLbl = Player, capships, REP_FRIEND_THRESHOLD
    Act_ActTrig = nearing_p1


    [Trigger]
    nickname = nearing_p1
    system = Li01
    Cnd_DistShip = inside, battleship_1, Player, 1200
    Act_SetVibeLbl = capships, badboys, REP_HOSTILE_MAXIMUM
    Act_SetVibeLbl = badboys, capships, REP_HOSTILE_MAXIMUM
    Act_SendComm = battleship_1, Player, rms_friendlyarrival_01- ; Change the number to 02 or 03 for different results.
    Act_ActTrig = rms_comm_done


    [Trigger]
    nickname = rms_comm_done
    system = Li01
    Cnd_CommComplete = rms_friendlyarrival_01- ; this needs to be the same as the comm you fired off in the last trigger.
    ...etc


    This code may not apply to the mission you're cooking up, so i'm sure you'll need to change it to what you had in mind.