The Oolite Extended Project - Fork, no oxp

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: winston, another_commander

User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

Perhaps some people are interested in this.

Katharsis & me are working on a program that can automatically expand one ship type into a whole class of ships. To do that, it reads in some variables and info from the complete shipdata and shipyard plists of one ship, it needs a player version and at least one (can also be more) NPC versions of that ship.

From that data and the roles contained in the NPC version, a new template for that ship is generated, and then diverse player and NPC versions - the ship is expanded into a whole class.

Also a lot of features are included as standard via that process. If you want to know what they are, have a look at the very first post in this thread under "special ship classes".

When the program has worked in helping to produce finished OSE, we will probably make it available as a feature for shop oxp creators.

Here comes the ship template and the player versions for the shipdata template:

Code: Select all

<key>"playernamekey"-template</key>
<dict>


 // ...

 // Alle Einträge die in shipdata.plist möglich sind werden angesehen und hier hinein ge - copy & paste - d (stehen in der how-to shipdata.plist Liste)

 // <key>roles>/key> etc. wird NICHT ge - copy & paste - d
 // <key>escorts</key> etc. wird NICHT ge - copy & paste - d
 // <key>escort-role</key> etc. wird NICHT ge - copy & paste - d
 // <key>escort-ship</key> etc. wird NICHT ge - copy & paste - d

 // Mit folgenden Ausnahmen, die wie folgt ausgegeben werden:

 // ...


<key>max_energy</key>
<real>„Aplayer“</real>

<key>energy_recharge_rate</key>
<real>„Bplayer“</real>

<key>max_cargo</key>
<integer>„D“</integer>

<key>extra_cargo</key>
<integer>„E“</integer>

<key>fuel</key>
<integer>„L“ * 60</integer>

<key>max_flight_pitch</key> 
<real>„G“</real>
            
<key>max_flight_roll</key> 
<real>„H“</real>
            
<key>max_flight_speed</key> 
<real>„I“</real>

<key>hyperspace_motor_spin_time</key>
<integer>„J“</integer>

<key>thrust</key>
<real>„SP“ * 100</real>

<key>density</key>
<real>„C“ / 35</real>

<key>likely_cargo</key>
<integer>„F“</integer>

<key>max_missiles</key>
<integer>„L“</integer>

<key>missiles</key>
<integer>„L“</integer>

<key>cloak_passive</key>
<true/>

<key>is_template</key>
<true/>

 // Falls "custom_views" schon in shipdata.plist vorhanden sind werden die hier hinein ge - copy & paste - d, falls nicht die unten stehenden eingefügt

                <key>custom_views</key>
                <array>
                        <dict>
                                <key>view_description</key>
                                <string>Rear View</string>
                                <key>view_position</key>
                                <string>0.0 -50.0 -500.0</string>
                                <key>view_orientation</key>
                                <string>1.0 0.0 0.0 0.0</string>
                                <key>weapon_facing</key>
                                <string>AFT</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Rear Right View</string>
                                <key>view_position</key>
                                <string>235 -33.3 -235</string>
                                <key>view_orientation</key>
                                <string>0.9239 0.0 0.3829 0.0</string>
                                <key>weapon_facing</key>
                                <string>AFT</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Right View</string>
                                <key>view_position</key>
                                <string>400.0 -40.0 0.0</string>
                                <key>view_orientation</key>
                                <string>0.7071 0.0 0.7071 0.0</string>
                                <key>weapon_facing</key>
                                <string>STARBOARD</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Front Right View</string>
                                <key>view_position</key>
                                <string>280 -40.0 280</string>
                                <key>view_orientation</key>
                                <string>0.3829 0.0 0.9239 0.0</string>
                                <key>weapon_facing</key>
                                <string>STARBOARD</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Front View</string>
                                <key>view_position</key>
                                <string>0.0 -50.0 500.0</string>
                                <key>view_orientation</key>
                                <string>0.0 0.0 1.0 0.0</string>
                                <key>weapon_facing</key>
                                <string>FORWARD</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Front Left View</string>
                                <key>view_position</key>
                                <string>-280 -40.0 280</string>
                                <key>view_orientation</key>
                                <string>0.3829 0.0 -0.9239 0.0</string>
                                <key>weapon_facing</key>
                                <string>PORT</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Left View</string>
                                <key>view_position</key>
                                <string>-400.0 -40.0 0.0</string>
                                <key>view_orientation</key>
                                <string>0.7071 0.0 -0.7071 0.0</string>
                                <key>weapon_facing</key>
                                <string>PORT</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Rear Left View</string>
                                <key>view_position</key>
                                <string>-235 -33.3 -235</string>
                                <key>view_orientation</key>
                                <string>0.9239 0.0 -0.3829 0.0</string>
                                <key>weapon_facing</key>
                                <string>AFT</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Top View</string>
                                <key>view_position</key>
                                <string>0.0 650 -33.3</string>
                                <key>view_orientation</key>
                                <string>-0.7071 0.7071 0.0 0.0</string>
                                <key>weapon_facing</key>
                                <string>FORWARD</string>
                        </dict>
                        <dict>
                                <key>view_description</key>
                                <string>Bottom View</string>
                                <key>view_position</key>
                                <string>0.0 -650 -33.3</string>
                                <key>view_orientation</key>
                                <string>0.0 0.0 0.7071 0.7071</string>
                                <key>weapon_facing</key>
                                <string>AFT</string>
                        </dict>
                </array>

        <key>death_actions</key>
                <array>
                   <string>spawn: "playernamekey"-dredgerhulk 1</string>
                </array>
        </dict>




<key>"playernamekey"-dredgerhulk</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-template</string>

<key>ai_type</key>
<string>nullAI.plist</string>

<key>cargo_type</key>
<string>CARGO_NOT_CARGO</string>

<key>escorts</key>
<integer>0</integer>

<key>is_hulk</key>
<string>1.0</string>

<key>roles</key>
<string>dredgerDerelict</string>

<key>scanClass</key>
<string>CLASS_CARGO</string>

<key>name</key>
<string>"Name" (derelict)</string>

</dict>




<key>"playernamekey"</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-template</string>

<key>max_energy</key>
<real>„Aplayer“</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" (Mk X)</string>

</dict>






 // Template: Entries for all Player Ship Variants of the "Name" class


 // Insert next if class1 = 1


<key>"playernamekey"-rustyplayer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_cargo</key>
<integer>„Drusty“</integer>

<key>extra_cargo</key>
<integer>„Erusty“</integer>

<key>likely_cargo</key>
<integer>„Frusty“</integer>

<key>energy_recharge_rate</key>
<real>„Bplayerrusty“</real>

<key>max_energy</key>
<real>„Aplayerrusty“</real>

<key>hyperspace_motor_spin_time</key>
<integer>„Jrusty“</integer>

<key>max_flight_pitch</key>
<real>„Grusty“</real>

<key>max_flight_roll</key>
<real>„Hrusty“</real>

<key>max_flight_speed</key>
<real>„Irusty“</real>

<key>max_missiles</key>
<integer>„Lrusty“</integer>

<key>missiles</key>
<integer>„Lrusty“</integer>

<key>thrust</key>
<real>„SPrusty“ * 100</real>

<key>density</key>
<real>„Crusty“ / 35</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>Rusty "Name"</string>

</dict>


 // Insert next if class2 = 1


<key>"playernamekey"-playerhauler</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Hauler (Mk X+1)</string>

</dict>


 // Insert next if class3 = 1


<key>"playernamekey"-overtunedplayer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>Overtuned "Name" (Mk X+1)</string>

</dict>


 // Insert next if class4 = 1


<key>"playernamekey"-playercourier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Courier (Mk X+1)</string>

</dict>


 // Insert next if class5 = 1


<key>"playernamekey"-playergunship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Gunship (Mk X+1)</string>

</dict>


 // Insert next if class6 = 1


<key>"playernamekey"-heavyfreighterplayer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>Heavy Freighter "Name" (Mk X+2)</string>

</dict>


 // Insert next if class7 = 1


<key>"playernamekey"-playertransporter</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Transporter (Mk X+2)</string>

</dict>


 // Insert next if class8 = 1


<key>"playernamekey"-yakuzaplayer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>Yakuza "Name" (Mk X+2)</string>

</dict>


 // Insert next if class9 = 1


<key>"playernamekey"-playerexplorer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Explorer (Mk X+2)</string>

</dict>


 // Insert next if class10 = 1


<key>"playernamekey"-playercruiser</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Cruiser (Mk X+2)</string>

</dict>


 // Insert next if class11 = 1


<key>"playernamekey"-playercorvette</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Corvette (Mk X+2)</string>

</dict>


 // Insert next if class12 = 1


<key>"playernamekey"-beyonderplayer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>Beyonder "Name" (Mk X+3)</string>

</dict>


 // Insert next if class13 = 1


<key>"playernamekey"-playercarrier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Carrier (Mk X+3)</string>

</dict>


 // Insert next if class14 = 1


<key>"playernamekey"-playercapitalship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Capital Ship (Mk X+3)</string>

</dict>


 // Insert next if class15 = 1


<key>"playernamekey"-playerdestroyer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>"Name" Destroyer (Mk X+3)</string>

</dict>


 // Insert next if class16 = 1


<key>"playernamekey"-superplayer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>max_cargo</key>
<integer>„Chauler“</integer>

<key>likely_cargo</key>
<integer>„Fhauler“</integer>

<key>extra_cargo</key>
<integer>„Ehauler“</integer>

<key>density</key>
<real>„Chauler“ / 35</real>

<key>energy_recharge_rate</key>
<real>„Bplayerovertuned“</real>

<key>max_energy</key>
<real>„Aplayerovertuned“</real>

<key>hyperspace_motor_spin_time</key>
<integer>„Jcourier“</integer>

<key>max_flight_pitch</key>
<real>„Gcourier“</real>

<key>max_flight_roll</key>
<real>„Hcourier“</real>

<key>max_flight_speed</key>
<real>„Icourier“</real>

<key>thrust</key>
<real>„SPcourier“ * 100</real>

<key>max_missiles</key>
<integer>„Lgunship“</integer>

<key>missiles</key>
<integer>„Lgunship“</integer>

<key>roles</key>
<string>player</string>

<key>name</key>
<string>Super "Name"</string>

</dict>
And the shipyard template:

Code: Select all



 // Template: Entries for all Player Ship Variants of the "Name" class



        <key>"playernamekey"</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL1" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 1) Copy & paste from original entry
                        // 2) Remove any of the following entries: <string>EQ_COMBAT_COMP</string>, <string>EQ_MISSILE_ANALYSER</string>,                                                                                        <string>EQ_FRAME_BOUNTY_SCANNER</string>, <string>EQ_CHAIN_LAUNCHER</string>,
                                                                   <string>EQ_HYPERDRIVE_2</string>, <string>EQ_MILITARY_JAMMER</string>,
                                                                   <string>EQ_GALACTIC_HYPERDRIVE_2</string>, <string>EQ_NAVAL_ENERGY_UNIT</string>,
                                                                   <string>EQ_MILITARY_SCANNER_FILTER</string>, <string>EQ_CLOAKING_DEVICE</string>,
                                                                   <string>EQ_WEAPON_TWIN_PLASMA_CANNON</string>
                        // 3) Reuse the basic optional equipment list derived from 1) and 2) for this entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O1 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O1 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O1 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O1 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O1 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O1 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O1“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL1" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class1 = 1


        <key>"playernamekey"-rustyplayer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL0" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O0 >    500.000 & "Crusty" > 500
                                                                      EQ_HYPERDRIVE_2            -> O0 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O0 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O0 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O0 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O0 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O0“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL0" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfrusty“</integer>
        </dict>


 // Insert next if class2 = 1


        <key>"playernamekey"-playerhauler</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL2" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O2 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O2 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O2 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O2 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O2 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O2 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O2“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL2" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class3 = 1


        <key>"playernamekey"-overtunedplayer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL2" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O2 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O2 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O2 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O2 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O2 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O2 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O2“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL2" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class4 = 1


        <key>"playernamekey"-playercourier</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL2" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O2 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O2 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O2 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O2 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O2 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O2 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O2“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL2" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class5 = 1


        <key>"playernamekey"-playergunship</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL2" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O2 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O2 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O2 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O2 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O2 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O2 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O2“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL2" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class6 = 1


        <key>"playernamekey"-heavyfreighterplayer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL3" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O3 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O3 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O3 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O3 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O3 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O3 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O3“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL3" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class7 = 1


        <key>"playernamekey"-playertransporter</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL3" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O3 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O3 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O3 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O3 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O3 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O3 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O3“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL3" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class8 = 1


        <key>"playernamekey"-yakuzaplayer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL3" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O3 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O3 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O3 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O3 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O3 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O3 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O3“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL3" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class9 = 1


        <key>"playernamekey"-playerexplorer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL3" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O3 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O3 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O3 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O3 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O3 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O3 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O3“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL3" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class10 = 1


        <key>"playernamekey"-playercruiser</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL3" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O3 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O3 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O3 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O3 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O3 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O3 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O3“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL3" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class11 = 1


        <key>"playernamekey"-playercorvette</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL3" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O3 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O3 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O3 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O3 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O3 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O3 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O3“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL3" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class12 = 1


        <key>"playernamekey"-beyonderplayer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL4" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O4 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O4 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O4 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O4 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O4 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O4 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O4“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL4" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwf“</integer>
        </dict>


 // Insert next if class13 = 1


        <key>"playernamekey"-playercarrier</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL4" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O4 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O4 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O4 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O4 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O4 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O4 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O4“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL4" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class14 = 1


        <key>"playernamekey"-playercapitalship</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL4" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O4 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O4 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O4 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O4 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O4 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O4 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O4“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL4" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class15 = 1


        <key>"playernamekey"-playerdestroyer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL4" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O4 >    500.000 & "C" > 500
                                                                      EQ_HYPERDRIVE_2            -> O4 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O4 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O4 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O4 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O4 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O4“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL4" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>


 // Insert next if class16 = 1


        <key>"playernamekey"-superplayer</key>
        <dict>
                <key>chance</key>
                <real>0.75</real>

                <key>conditions</key>
                <array>
                <string>dockedTechLevel_number lessthan ("TL5" + 4)</string>
                </array>

                <key>optional_equipment</key>
                <array>

                        // 3) Reuse the basic optional equipment list derived from 1) and 2) of the standard ship entry but modify with entry 4) accordingly
                        // 4) Insert any of the following entries if: EQ_CHAIN_LAUNCHER          -> O5 >    500.000 & "Chauler" > 500
                                                                      EQ_HYPERDRIVE_2            -> O5 >  1.000.000
                                                                      EQ_MILITARY_JAMMER         -> O5 >  2.000.000
                                                                      EQ_NAVAL_ENERGY_UNIT       -> O5 >  5.000.000
                                                                      EQ_MILITARY_SCANNER_FILTER -> O5 > 10.000.000
                                                                      EQ_CLOAKING_DEVICE         -> O5 > 25.000.000

                </array>

                <key>price</key>
                <integer>„O5“</integer>
                
                <key>standard_equipment</key>
                <dict>

                        // Simply copy & paste from original entry

                </dict>
                
                <key>techlevel</key>
                <integer>"TL5" - 1</integer>
                <key>weapon_facings</key>
                <integer>„Kwfgunship“</integer>
        </dict>
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

Next, the shipdata template for NPC traders, miners & shuttles:

Code: Select all

<key>"playernamekey"-traderminer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>1</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.7</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>accuracy</key>
<integer>4</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle traderminer"Name"</string>

</dict>




<key>"playernamekey"-rustytraderminer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-rustyplayer</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>1</integer>

<key>max_energy</key>
<real>„Anpcrusty“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcrusty“</real>

<key>has_fuel_injection</key>
<real>0.4</real>

<key>has_cloaking_device</key>
<real>0.0005</real>

<key>has_ecm</key>
<real>0.4</real>

<key>has_energy_bomb</key>
<real>0.005</real>

<key>has_escape_pod</key>
<real>0.4</real>

<key>has_military_jammer</key>
<real>0.005</real>

<key>has_military_scanner_filter</key>
<real>0.005</real>

<key>has_shield_booster</key>
<real>0.2</real>

<key>has_shield_enhancer</key>
<real>0.1</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_HOMEMADE_MISSILE</string>

<key>accuracy</key>
<integer>3</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle rustytraderminer"Name"</string>

</dict>




<key>"playernamekey"-traderminerhauler</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerhauler</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.7</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.9</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_HARDENED_MISSILE</string>

<key>accuracy</key>
<integer>4</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle traderminerhauler"Name"</string>

</dict>




<key>"playernamekey"-traderminercourier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercourier</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.9</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.8</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.6</real>

<key>has_shield_enhancer</key>
<real>0.3</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_TRACKER_MISSILE</string>

<key>accuracy</key>
<integer>5</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle traderminercourier"Name"</string>

</dict>




<key>"playernamekey"-heavyfreightertraderminer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-heavyfreighterplayer</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>4</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>0.8</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.9</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.7</real>

<key>has_shield_enhancer</key>
<real>0.35</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>5</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle heavyfreightertraderminer"Name"</string>

</dict>




<key>"playernamekey"-traderminertransporter</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playertransporter</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>4</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.8</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.8</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.5</real>

<key>has_shield_enhancer</key>
<real>0.25</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_BLOODHOUND_MISSILE</string>

<key>accuracy</key>
<integer>5</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle traderminertransporter"Name"</string>

</dict>




<key>"playernamekey"-beyondertraderminer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-beyonderplayer</string>

<key>ai_type</key>
<string>route1traderAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.003</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.5</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>EQ_WEAPON_MINING_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>trader sunskim-trader miner shuttle beyondertraderminer"Name"</string>

</dict>
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

Shipdata template for NPC escorts, scavengers, hermits & hunters:

Code: Select all

<key>"playernamekey"-escortscavengerhermit</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.7</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_MISSILE</string>

<key>accuracy</key>
<integer>6</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermit"Name"</string>

</dict>




<key>"playernamekey"-rustyescortscavengerhermit</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-rustyplayer</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpcrusty“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcrusty“</real>

<key>has_fuel_injection</key>
<real>0.4</real>

<key>has_cloaking_device</key>
<real>0.0005</real>

<key>has_ecm</key>
<real>0.4</real>

<key>has_energy_bomb</key>
<real>0.005</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.005</real>

<key>has_military_scanner_filter</key>
<real>0.005</real>

<key>has_shield_booster</key>
<real>0.2</real>

<key>has_shield_enhancer</key>
<real>0.1</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_HOMEMADE_MISSILE</string>

<key>accuracy</key>
<integer>5</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter rustyescortscavengerhermit"Name"</string>

</dict>




<key>"playernamekey"-overtunedescortscavengerhermit</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-overtunedplayer</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>0.9</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.5</real>

<key>has_shield_enhancer</key>
<real>0.3</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_TRACKER_MISSILE</string>

<key>accuracy</key>
<integer>6</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter overtunedescortscavengerhermit"Name"</string>

</dict>




<key>"playernamekey"-escortscavengerhermitcourier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercourier</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_TRACKER_MISSILE</string>

<key>accuracy</key>
<integer>6</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermitcourier"Name"</string>

</dict>




<key>"playernamekey"-escortscavengerhermitgunship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playergunship</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.85</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.9</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.6</real>

<key>has_shield_enhancer</key>
<real>0.3</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermitgunship"Name"</string>

</dict>




<key>"playernamekey"-escortscavengerhermitexplorer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerexplorer</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0015</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermitexplorer"Name"</string>

</dict>




<key>"playernamekey"-escortscavengerhermitcruiser</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercruiser</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>0.8</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.97</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>0.95</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.7</real>

<key>has_shield_enhancer</key>
<real>0.4</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>6</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermitcruiser"Name"</string>

</dict>




<key>"playernamekey"-escortscavengerhermitcorvette</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercorvette</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.99</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.8</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.6</real>

<key>has_shield_enhancer</key>
<real>0.4</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_INTERCEPT_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermitcorvette"Name"</string>

</dict>




<key>"playernamekey"-beyonderescortscavengerhermit</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-beyonderplayer</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.003</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.5</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter beyonderescortscavengerhermit"Name"</string>

</dict>




<key>"playernamekey"-escortscavengerhermitdestroyer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerdestroyer</string>

<key>ai_type</key>
<string>scavengerAI.plist</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0025</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>0.8</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.015</real>

<key>has_shield_booster</key>
<real>0.9</real>

<key>has_shield_enhancer</key>
<real>0.6</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

<key>roles</key>
<string>escort scavenger hermit-ship hunter escortscavengerhermitdestroyer"Name"</string>

</dict>
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

NPC pirate template:

Code: Select all

<key>"playernamekey"-pirate</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>bounty</key>
<string>„O1“ / 10000</string>

<key>has_fuel_injection</key>
<real>0.7</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_MISSILE</string>

<key>accuracy</key>
<integer>5</integer>

// If O1 < 1.000.001

<key>roles</key>
<string>pirate pirate"Name"</string>

// If O1 > 1.000.000

<key>roles</key>
<string>hardpirate pirate"Name"</string>

</dict>




<key>"playernamekey"-rustypirate</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-rustyplayer</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>max_energy</key>
<real>„Anpcrusty“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcrusty“</real>

<key>bounty</key>
<string>„O0“ / 10000</string>

<key>has_fuel_injection</key>
<real>0.4</real>

<key>has_cloaking_device</key>
<real>0.0005</real>

<key>has_ecm</key>
<real>0.4</real>

<key>has_energy_bomb</key>
<real>0.005</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.005</real>

<key>has_military_scanner_filter</key>
<real>0.005</real>

<key>has_shield_booster</key>
<real>0.2</real>

<key>has_shield_enhancer</key>
<real>0.1</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_PULSE_LASER</string>

<key>missile_role</key>
<string>EQ_HOMEMADE_MISSILE</string>

<key>accuracy</key>
<integer>4</integer>

// If O0 < 1.000.001

<key>roles</key>
<string>pirate rustypirate"Name"</string>

// If O0 > 1.000.000

<key>roles</key>
<string>hardpirate rustypirate"Name"</string>

</dict>




<key>"playernamekey"-overtunedpirate</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-overtunedplayer</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>bounty</key>
<string>„O2“ / 10000</string>

<key>has_fuel_injection</key>
<real>0.9</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.5</real>

<key>has_shield_enhancer</key>
<real>0.3</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_INTERCEPT_MISSILE</string>

<key>accuracy</key>
<integer>6</integer>

// If O2 < 1.000.001

<key>roles</key>
<string>pirate overtunedpirate"Name"</string>

// If O2 > 1.000.000

<key>roles</key>
<string>hardpirate overtunedpirate"Name"</string>

</dict>




<key>"playernamekey"-piratecourier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercourier</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>bounty</key>
<string>„O2“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.8</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.7</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.4</real>

<key>has_shield_enhancer</key>
<real>0.2</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_TRACKER_MISSILE</string>

<key>accuracy</key>
<integer>6</integer>

// If O2 < 1.000.001

<key>roles</key>
<string>pirate piratecourier"Name"</string>

// If O2 > 1.000.000

<key>roles</key>
<string>hardpirate piratecourier"Name"</string>

</dict>




<key>"playernamekey"-pirategunship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playergunship</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>bounty</key>
<string>„O2“ / 10000</string>

<key>has_fuel_injection</key>
<real>0.85</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.9</real>

<key>has_military_jammer</key>
<real>0.01</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.65</real>

<key>has_shield_enhancer</key>
<real>0.35</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

// If O2 < 1.000.001

<key>roles</key>
<string>pirate pirategunship"Name"</string>

// If O2 > 1.000.000

<key>roles</key>
<string>hardpirate pirategunship"Name"</string>

</dict>




<key>"playernamekey"-yakuzapirate</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-yakuzaplayer</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>4</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>bounty</key>
<string>„O3“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0015</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.02</real>

<key>has_military_scanner_filter</key>
<real>0.015</real>

<key>has_shield_booster</key>
<real>0.65</real>

<key>has_shield_enhancer</key>
<real>0.4</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O3 < 1.000.001

<key>roles</key>
<string>pirate yakuzapirate"Name"</string>

// If O3 > 1.000.000

<key>roles</key>
<string>hardpirate yakuzapirate"Name"</string>

</dict>




<key>"playernamekey"-piratecruiser</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercruiser</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>bounty</key>
<string>„O3“ / 10000</string>

<key>has_fuel_injection</key>
<real>0.9</real>

<key>has_cloaking_device</key>
<real>0.001</real>

<key>has_ecm</key>
<real>0.97</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>0.95</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.01</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.5</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_TAILCHASER_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O3 < 1.000.001

<key>roles</key>
<string>pirate piratecruiser"Name"</string>

// If O3 > 1.000.000

<key>roles</key>
<string>hardpirate piratecruiser"Name"</string>

</dict>




<key>"playernamekey"-piratecorvette</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercorvette</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>bounty</key>
<string>„O3“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.002</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.025</real>

<key>has_military_scanner_filter</key>
<real>0.019</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.6</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_BLOODHOUND_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O3 < 1.000.001

<key>roles</key>
<string>pirate piratecorvette"Name"</string>

// If O3 > 1.000.000

<key>roles</key>
<string>hardpirate piratecorvette"Name"</string>

</dict>




<key>"playernamekey"-piratecarrier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercarrier</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>4</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>bounty</key>
<string>„O4“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0025</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.97</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.015</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.6</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O4 < 1.000.001

<key>roles</key>
<string>pirate piratecarrier"Name"</string>

// If O4 > 1.000.000

<key>roles</key>
<string>hardpirate piratecarrier"Name"</string>

</dict>




<key>"playernamekey"-piratecapitalship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercapitalship</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>5</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>bounty</key>
<string>„O4“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0025</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.97</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.015</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.75</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O4 < 1.000.001

<key>roles</key>
<string>pirate piratecapitalship"Name"</string>

// If O4 > 1.000.000

<key>roles</key>
<string>hardpirate piratecapitalship"Name"</string>

</dict>




<key>"playernamekey"-piratedestroyer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerdestroyer</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>bounty</key>
<string>„O4“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0025</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.97</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.015</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.75</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>9</integer>

// If O4 < 1.000.001

<key>roles</key>
<string>pirate piratedestroyer"Name"</string>

// If O4 > 1.000.000

<key>roles</key>
<string>hardpirate piratedestroyer"Name"</string>

</dict>




<key>"playernamekey"-superpirate</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-superplayer</string>

<key>ai_type</key>
<string>pirateAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>bounty</key>
<string>„O5“ / 10000</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.003</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.035</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.99</real>

<key>has_shield_enhancer</key>
<real>0.85</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>10</integer>

// If O5 < 1.000.001

<key>roles</key>
<string>pirate superpirate"Name"</string>

// If O5 > 1.000.000

<key>roles</key>
<string>hardpirate superpirate"Name"</string>

</dict>
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

The ship template for NPC police:

Code: Select all

<key>"playernamekey"-police</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>0.95</real>

<key>has_cloaking_device</key>
<real>0.002</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.02</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.6</real>

<key>has_shield_enhancer</key>
<real>0.45</real>

<key>has_scoop</key>
<real>0.5</real>

<key>missile_role</key>
<string>EQ_TRACKER_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>accuracy</key>
<integer>6</integer>

// If O1 < 5.000.001

<key>roles</key>
<string>police wingman police"Name"</string>

// If O1 > 5.000.000

<key>roles</key>
<string>interceptor police"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" (Mk X)</string>

</dict>




<key>"playernamekey"-overtunedpolice</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-overtunedplayer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>0.97</real>

<key>has_cloaking_device</key>
<real>0.002</real>

<key>has_ecm</key>
<real>0.97</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.95</real>

<key>has_military_jammer</key>
<real>0.02</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.6</real>

<key>has_shield_enhancer</key>
<real>0.45</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_INTERCEPT_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

// If O2 < 5.000.001

<key>roles</key>
<string>police wingman overtunedpolice"Name"</string>

// If O2 > 5.000.000

<key>roles</key>
<string>interceptor overtunedpolice"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop Overtuned "Name" (Mk X+1)</string>

</dict>




<key>"playernamekey"-policecourier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercourier</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.002</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>0.99</real>

<key>has_military_jammer</key>
<real>0.02</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.55</real>

<key>has_shield_enhancer</key>
<real>0.45</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

// If O2 < 5.000.001

<key>roles</key>
<string>police wingman policecourier"Name"</string>

// If O2 > 5.000.000

<key>roles</key>
<string>interceptor policecourier"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Courier (Mk X+1)</string>

</dict>




<key>"playernamekey"-policegunship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playergunship</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0025</real>

<key>has_ecm</key>
<real>0.95</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.9</real>

<key>has_military_jammer</key>
<real>0.025</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.75</real>

<key>has_shield_enhancer</key>
<real>0.55</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>7</integer>

// If O2 < 5.000.001

<key>roles</key>
<string>police wingman policegunship"Name"</string>

// If O2 > 5.000.000

<key>roles</key>
<string>interceptor policegunship"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Gunship (Mk X+1)</string>

</dict>




<key>"playernamekey"-policecruiser</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercruiser</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.003</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.6</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O3 < 5.000.001

<key>roles</key>
<string>police wingman policecruiser"Name"</string>

// If O3 > 5.000.000

<key>roles</key>
<string>interceptor policecruiser"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Cruiser (Mk X+2)</string>

</dict>




<key>"playernamekey"-policecorvette</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercorvette</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.003</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.02</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.6</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>8</integer>

// If O3 < 5.000.001

<key>roles</key>
<string>police wingman policecorvette"Name"</string>

// If O3 > 5.000.000

<key>roles</key>
<string>interceptor policecorvette"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Corvette (Mk X+2)</string>

</dict>




<key>"playernamekey"-beyonderpolice</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-beyonderplayer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.006</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.06</real>

<key>has_military_scanner_filter</key>
<real>0.04</real>

<key>has_shield_booster</key>
<real>0.9</real>

<key>has_shield_enhancer</key>
<real>0.7</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>9</integer>

// If O4 < 5.000.001

<key>roles</key>
<string>police wingman beyonderpolice"Name"</string>

// If O4 > 5.000.000

<key>roles</key>
<string>interceptor beyonderpolice"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop Beyonder "Name" (Mk X+3)</string>

</dict>




<key>"playernamekey"-policecarrier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercarrier</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0025</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.97</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.025</real>

<key>has_shield_booster</key>
<real>0.8</real>

<key>has_shield_enhancer</key>
<real>0.6</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_BEAM_LASER</string>

<key>missile_role</key>
<string>EQ_NUKE_MISSILE</string>

<key>accuracy</key>
<integer>9</integer>

// If O4 < 5.000.001

<key>roles</key>
<string>police wingman policecarrier"Name"</string>

// If O4 > 5.000.000

<key>roles</key>
<string>interceptor policecarrier"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Carrier (Mk X+3)</string>

</dict>




<key>"playernamekey"-policecapitalship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercapitalship</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0035</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.97</real>

<key>has_military_jammer</key>
<real>0.03</real>

<key>has_military_scanner_filter</key>
<real>0.027</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.75</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>accuracy</key>
<integer>9</integer>

// If O4 < 5.000.001

<key>roles</key>
<string>police wingman policecapitalship"Name"</string>

// If O4 > 5.000.000

<key>roles</key>
<string>interceptor policecapitalship"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Capital Ship (Mk X+3)</string>

</dict>




<key>"playernamekey"-policedestroyer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerdestroyer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.0035</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>0.97</real>

<key>has_military_jammer</key>
<real>0.04</real>

<key>has_military_scanner_filter</key>
<real>0.025</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.75</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>9</integer>

// If O4 < 5.000.001

<key>roles</key>
<string>police wingman policedestroyer"Name"</string>

// If O4 > 5.000.000

<key>roles</key>
<string>interceptor policedestroyer"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop "Name" Destroyer (Mk X+3)</string>

</dict>




<key>"playernamekey"-superpolice</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-superplayer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>route1patrolAI.plist</string>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.004</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.02</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.045</real>

<key>has_military_scanner_filter</key>
<real>0.03</real>

<key>has_shield_booster</key>
<real>0.99</real>

<key>has_shield_enhancer</key>
<real>0.85</real>

<key>has_scoop</key>
<real>1.0</real>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>accuracy</key>
<integer>10</integer>

// If O5 < 5.000.001

<key>roles</key>
<string>police wingman superpolice"Name"</string>

// If O5 > 5.000.000

<key>roles</key>
<string>interceptor superpolice"Name"</string>

<key>scanClass</key>
<string>CLASS_POLICE</string>

<key>name</key>
<string>GalCop Super "Name"</string>

</dict>
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

And, finally, the navy, including OSE's Galactic Navy AddOn, that lets GN use OSE's military ships:

Code: Select all

  // IF "MILITARY" AN OPTION -> MAKE PROGRAM ASK FOR THE STRING "Scale": "Medium or Small?" -> Then insert into this part of the shipdata.plist


<key>"playernamekey"-navy</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"</string>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>1</integer>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.005</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.08</real>

<key>has_military_scanner_filter</key>
<real>0.05</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.9</real>

<key>has_scoop</key>
<real>0.6</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>6</integer>

<key>roles</key>
<string>military military"Scale" military"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" (Mk X)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navy-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navy-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navy-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navy-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navy-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navy-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navy-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navy</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>





<key>"playernamekey"-overtunednavy</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-overtunedplayer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.005</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.08</real>

<key>has_military_scanner_filter</key>
<real>0.05</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.9</real>

<key>has_scoop</key>
<real>0.6</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>military military"Scale" overtunedmilitary"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy Overtuned "Name" (Mk X+1)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-overtunednavy-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-overtunednavy-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-overtunednavy-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-overtunednavy-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-overtunednavy-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-overtunednavy-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-overtunednavy-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-overtunednavy</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navycourier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercourier</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.005</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.08</real>

<key>has_military_scanner_filter</key>
<real>0.05</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.9</real>

<key>has_scoop</key>
<real>0.6</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>military military"Scale" militarycourier"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Courier (Mk X+1)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navycourier-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycourier-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycourier-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycourier-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navycourier-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycourier-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycourier-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycourier</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navygunship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playergunship</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.006</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.09</real>

<key>has_military_scanner_filter</key>
<real>0.06</real>

<key>has_shield_booster</key>
<real>0.99</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>0.9</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>7</integer>

<key>roles</key>
<string>military military"Scale" militarygunship"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Gunship (Mk X+1)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navygunship-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navygunship-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navygunship-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navygunship-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navygunship-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navygunship-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navygunship-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navygunship</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navyexplorer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerexplorer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.008</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.017</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.09</real>

<key>has_military_scanner_filter</key>
<real>0.07</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>1.0</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>8</integer>

<key>roles</key>
<string>military military"Scale" militaryexplorer"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Explorer (Mk X+2)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navyexplorer-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navyexplorer-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navyexplorer-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navyexplorer-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navyexplorer-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navyexplorer-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navyexplorer-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navyexplorer</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navycruiser</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercruiser</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.006</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.017</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.08</real>

<key>has_military_scanner_filter</key>
<real>0.05</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>0.65</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>8</integer>

<key>roles</key>
<string>military military"Scale" militarycruiser"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Cruiser (Mk X+2)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navycruiser-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycruiser-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycruiser-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycruiser-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navycruiser-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycruiser-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycruiser-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycruiser</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navycorvette</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercorvette</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>3</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.005</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.1</real>

<key>has_military_scanner_filter</key>
<real>0.07</real>

<key>has_shield_booster</key>
<real>0.98</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>0.8</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>8</integer>

<key>roles</key>
<string>military military"Scale" militarycorvette"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Corvette (Mk X+2)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navycorvette-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycorvette-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycorvette-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycorvette-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navycorvette-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycorvette-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycorvette-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycorvette</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-beyondernavy</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-beyonderplayer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>1</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.011</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.01</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.1</real>

<key>has_military_scanner_filter</key>
<real>0.08</real>

<key>has_shield_booster</key>
<real>0.99</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>1.0</real>

<key>missile_role</key>
<string>EQ_RMB_OVERRIDE_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_THARGOID_LASER</string>

<key>accuracy</key>
<integer>9</integer>

<key>roles</key>
<string>military military"Scale" beyondermilitary"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy Beyonder "Name" (Mk X+3)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-beyondernavy-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-beyondernavy-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-beyondernavy-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-beyondernavy-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-beyondernavy-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-beyondernavy-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-beyondernavy-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-beyondernavy</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navycarrier</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercarrier</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>5</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.006</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.015</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.08</real>

<key>has_military_scanner_filter</key>
<real>0.05</real>

<key>has_shield_booster</key>
<real>0.95</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>0.8</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>9</integer>

<key>roles</key>
<string>military military"Scale" militarycarrier"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Carrier (Mk X+3)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navycarrier-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycarrier-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycarrier-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycarrier-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navycarrier-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycarrier-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycarrier-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycarrier</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navycapitalship</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playercapitalship</string>

<key>max_energy</key>
<real>„Anpc“</real>

<key>energy_recharge_rate</key>
<real>„Bnpc“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>5</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.008</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.016</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.09</real>

<key>has_military_scanner_filter</key>
<real>0.07</real>

<key>has_shield_booster</key>
<real>0.99</real>

<key>has_shield_enhancer</key>
<real>0.95</real>

<key>has_scoop</key>
<real>0.6</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>9</integer>

<key>roles</key>
<string>military military"Scale" militarycapitalship"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Capital Ship (Mk X+3)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navycapitalship-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycapitalship-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navycapitalship-reserveship</key>
        <dict>
                <key>ai_type</key>
                <string>reservefighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>reserve-ship</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycapitalship-navyfighter</key>
        <dict>
                <key>ai_type</key>
                <string>navyfighterAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>navy-fighter</string>
        </dict>




 // If "Scale" = small -> INSERT:

        <key>"playernamekey"-navycapitalship-reservewingman</key>
        <dict>
                <key>ai_type</key>
                <string>reservewingmanAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>reserve-wingman</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycapitalship-picketreserve</key>
        <dict>
                <key>ai_type</key>
                <string>picket-reserveAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>picket-reserve</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>

        <key>"playernamekey"-navycapitalship-reservetalker</key>
        <dict>
                <key>ai_type</key>
                <string>reserve-talkerAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navycapitalship</string>
                <key>roles</key>
                <string>reserve-talker</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>




<key>"playernamekey"-navydestroyer</key>
<dict>

<key>like_ship</key>
<string>"playernamekey"-playerdestroyer</string>

<key>max_energy</key>
<real>„Anpcovertuned“</real>

<key>energy_recharge_rate</key>
<real>„Bnpcovertuned“</real>

<key>ai_type</key>
<string>MilitaryAI.plist</string>

<key>escorts</key>
<integer>2</integer>

<key>has_fuel_injection</key>
<real>1.0</real>

<key>has_cloaking_device</key>
<real>0.009</real>

<key>has_ecm</key>
<real>1.0</real>

<key>has_energy_bomb</key>
<real>0.018</real>

<key>has_escape_pod</key>
<real>1.0</real>

<key>has_military_jammer</key>
<real>0.1</real>

<key>has_military_scanner_filter</key>
<real>0.08</real>

<key>has_shield_booster</key>
<real>0.99</real>

<key>has_shield_enhancer</key>
<real>0.99</real>

<key>has_scoop</key>
<real>0.6</real>

<key>missile_role</key>
<string>EQ_MILITARY_MISSILE</string>

<key>forward_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>aft_weapon_type</key>
<string>WEAPON_MILITARY_LASER</string>

<key>accuracy</key>
<integer>10</integer>

<key>roles</key>
<string>military military"Scale" militarydestroyer"Name"</string>

<key>scanClass</key>
<string>CLASS_MILITARY</string>

<key>name</key>
<string>Navy "Name" Destroyer (Mk X+3)</string>

</dict>




 // If "Scale" = medium -> INSERT:

        <key>"playernamekey"-navydestroyer-reservelead</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleadAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navydestroyer</string>
                <key>roles</key>
                <string>reserve-lead</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict> 

        <key>"playernamekey"-navydestroyer-reserveleader</key>
        <dict>
                <key>ai_type</key>
                <string>reserveleaderAI.plist</string>
                <key>like_ship</key>
                <string>"playernamekey"-navydestroyer</string>
                <key>roles</key>
                <string>reserve-leader</string>
                <key>script</key>
                <string>galNavyReserves-Ships.js</string>
        </dict>
Last edited by Lestradae on Tue Aug 25, 2009 7:38 am, edited 1 time in total.
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

The navy template is so long that it doesn't even completely fit into one posting, but you get the idea behind it from what is visible.

People interested in the whole template series have a look at this posting here:

https://bb.oolite.space/viewtopic.ph ... &start=203

... where it starts.

Cheers

L
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

.

Post by Lestradae »

* bump *
overmage
Deadly
Deadly
Posts: 128
Joined: Mon Mar 23, 2009 6:55 pm

Post by overmage »

Hangs when I load it up. Only with 0.67, 0.65 works fine. checked logs. Only one extra line seems to appear:

[startup.exception]: ***** Unhandled exception during startup: NSRangeException (Index 0 is out of range 0 (in 'objectAtIndex:')).

What does this mean?
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

Since short before 1.73 came out, the buying and selling of stations has stopped working as intended, too :?

This code here:

Code: Select all

Etc. etc.
... no longer seems to work as intended. I am looking into the problem ...


Concerning the startup exeption, I hope one of the devs knows what that means. I don't and I have never observed it (yet).

Does anyone else get overmage's error line?

L
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

..

Post by Lestradae »

A Constitution - dwarfed by one of INRA's Battlestars! :shock:

The red-violet blips on the scanner are the INRA ships - only visible because the player ship has the Scanner Jammer Filtering onboard, the INRA ships have Military Scanner Jammers - which shows with a unique colour of its own.

The "small" ship in the background to the left is a Super Juggernaut, one of five similar escorts (!!) of the Battlestar ... :twisted:

Image
User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Post by Kaks »

overmage wrote:
Hangs when I load it up. Only with 0.67, 0.65 works fine. checked logs. Only one extra line seems to appear:

[startup.exception]: ***** Unhandled exception during startup: NSRangeException (Index 0 is out of range 0 (in 'objectAtIndex:')).

What does this mean?
Well, what that seems to say is that there's an array with no elements inside it, and oolite dies when trying to look at the first element. (element number 0 in all C derived languages) That still doesn't tell us much.

Overmage, if you could change the override setting, as per Ahruman's instructions, that should help us a lot:

One general crash testing tip, when there’s no indication of the cause: add a file called “logcontrol.plist” to your AddOns folder, with the following contents:

Code: Select all

{
_override = yes;
}
This will cause every possible log message to be written. Note that this will cause the log file to grow at a rate of several megabytes per minute, and quite likely slow your game down! But if the same message appears at the bottom each time, you might be closer to an actual cause.

Cheers.
Edit: in windows, please use wordpad, or a plain text editor to write inside the file. Notepad is evil, and will add extra characters, which will stop Oolite from reading logcontrol.plist
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
overmage
Deadly
Deadly
Posts: 128
Joined: Mon Mar 23, 2009 6:55 pm

Post by overmage »

Nothing useful here it seems D:

Code: Select all

[dataCache.set.success]: Updated entry player ships in cache "ship registry".
  [dataCache.set.success]: Updated entry ship data in cache "ship registry".
[shipData.load.done]: Ship data loaded.
[dataCache.retrieve.failed]: Failed to retrieve "ship registry" cache object demo ships -- no such entry.
[dataCache.retrieve.failed]: Failed to retreive"arrays" cache object Config/demoships.plist merge:yes -- no such cache.
[dataCache.set.success]: Updated entry Config/demoships.plist merge:yes in cache "arrays".
[dataCache.set.success]: Updated entry demo ships in cache "ship registry".
[dataCache.retrieve.failed]: Failed to retrieve "ship registry" cache object role weights -- no such entry.
[dataCache.set.success]: Updated entry role weights in cache "ship registry".
[dataCache.retrieve.failed]: Failed to retrieve "dictionaries" cache object Config/commodities.plist merge:basic -- no such entry.
[dataCache.set.success]: Updated entry Config/commodities.plist merge:basic in cache "dictionaries".
[dataCache.retrieve.failed]: Failed to retrieve "dictionaries" cache object Config/illegal_goods.plist merge:basic -- no such entry.
[dataCache.set.success]: Updated entry Config/illegal_goods.plist merge:basic in cache "dictionaries".
[dataCache.retrieve.failed]: Failed to retrieve "dictionaries" cache object Config/characters.plist merge:basic -- no such entry.
[dataCache.set.success]: Updated entry Config/characters.plist merge:basic in cache "dictionaries".
[dataCache.retrieve.failed]: Failed to retrieve "dictionaries" cache object Config/customsounds.plist merge:basic -- no such entry.
[dataCache.set.success]: Updated entry Config/customsounds.plist merge:basic in cache "dictionaries".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mass_lock.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/mass_lock.ogg at ../AddOns/custsounds.oxp/Sounds/mass_lock.ogg
[dataCache.set.success]: Updated entry Sounds/mass_lock.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/mass_lock.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/laserhits.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/laserhits.ogg at Resources/Sounds/laserhits.ogg
[dataCache.set.success]: Updated entry Sounds/laserhits.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/laserhits.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/ecm.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/ecm.ogg at ../AddOns/custsounds.oxp/Sounds/ecm.ogg
[dataCache.set.success]: Updated entry Sounds/ecm.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/ecm.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mis_launch.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/mis_launch.ogg at ../AddOns/custsounds.oxp/Sounds/mis_launch.ogg
[dataCache.set.success]: Updated entry Sounds/mis_launch.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/mis_launch.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/guiclick.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/guiclick.ogg at Resources/Sounds/guiclick.ogg
[dataCache.set.success]: Updated entry Sounds/guiclick.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/guiclick.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/nosystem.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/nosystem.ogg at ../AddOns/custsounds.oxp/Sounds/nosystem.ogg
[dataCache.set.success]: Updated entry Sounds/nosystem.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/nosystem.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mine-armed.ogg -- no such entry.
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/ECM.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/ECM.ogg at ../AddOns/custsounds.oxp/Sounds/ECM.ogg
[dataCache.set.success]: Updated entry Sounds/ECM.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/ECM.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/beep.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/beep.ogg at Resources/Sounds/beep.ogg
[dataCache.set.success]: Updated entry Sounds/beep.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/beep.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/gh_cdown.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/gh_cdown.ogg at ../AddOns/custsounds.oxp/Sounds/gh_cdown.ogg
[dataCache.set.success]: Updated entry Sounds/gh_cdown.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/gh_cdown.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/tar_lost.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/tar_lost.ogg at ../AddOns/custsounds.oxp/Sounds/tar_lost.ogg
[dataCache.set.success]: Updated entry Sounds/tar_lost.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/tar_lost.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/trumble.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/trumble.ogg at Resources/Sounds/trumble.ogg
[dataCache.set.success]: Updated entry Sounds/trumble.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/trumble.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/ws_malf.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/ws_malf.ogg at ../AddOns/custsounds.oxp/Sounds/ws_malf.ogg
[dataCache.set.success]: Updated entry Sounds/ws_malf.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/ws_malf.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/warning.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/warning.ogg at ../AddOns/AsteroidStorm 3.5.oxp/Sounds/warning.ogg
[dataCache.set.success]: Updated entry Sounds/warning.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/AsteroidStorm 3.5.oxp/Sounds/warning.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/hit.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/hit.ogg at Resources/Sounds/hit.ogg
[dataCache.set.success]: Updated entry Sounds/hit.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/hit.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/energylow.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/energylow.ogg at ../AddOns/custsounds.oxp/Sounds/energylow.ogg
[dataCache.set.success]: Updated entry Sounds/energylow.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/energylow.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/weap_heat.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/weap_heat.ogg at ../AddOns/custsounds.oxp/Sounds/weap_heat.ogg
[dataCache.set.success]: Updated entry Sounds/weap_heat.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/weap_heat.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/cargo_jet.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/cargo_jet.ogg at ../AddOns/custsounds.oxp/Sounds/cargo_jet.ogg
[dataCache.set.success]: Updated entry Sounds/cargo_jet.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/cargo_jet.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/pod_scoop.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/pod_scoop.ogg at ../AddOns/custsounds.oxp/Sounds/pod_scoop.ogg
[dataCache.set.success]: Updated entry Sounds/pod_scoop.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/pod_scoop.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/no_memtar.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/no_memtar.ogg at ../AddOns/custsounds.oxp/Sounds/no_memtar.ogg
[dataCache.set.success]: Updated entry Sounds/no_memtar.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/no_memtar.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/hs_cdown.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/hs_cdown.ogg at ../AddOns/custsounds.oxp/Sounds/hs_cdown.ogg
[dataCache.set.success]: Updated entry Sounds/hs_cdown.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/hs_cdown.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/id_lock.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/id_lock.ogg at ../AddOns/custsounds.oxp/Sounds/id_lock.ogg
[dataCache.set.success]: Updated entry Sounds/id_lock.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/id_lock.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mis_lock.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/mis_lock.ogg at ../AddOns/custsounds.oxp/Sounds/mis_lock.ogg
[dataCache.set.success]: Updated entry Sounds/mis_lock.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/mis_lock.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/boop.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/boop.ogg at Resources/Sounds/boop.ogg
[dataCache.set.success]: Updated entry Sounds/boop.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/boop.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mis_armed.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/mis_armed.ogg at ../AddOns/custsounds.oxp/Sounds/mis_armed.ogg
[dataCache.set.success]: Updated entry Sounds/mis_armed.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/mis_armed.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mis_safe.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/mis_safe.ogg at ../AddOns/custsounds.oxp/Sounds/mis_safe.ogg
[dataCache.set.success]: Updated entry Sounds/mis_safe.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/mis_safe.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/cloak_on.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/cloak_on.ogg at ../AddOns/custsounds.oxp/Sounds/cloak_on.ogg
[dataCache.set.success]: Updated entry Sounds/cloak_on.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/cloak_on.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/aegis_planet.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/aegis_planet.ogg at ../AddOns/custsounds.oxp/Sounds/aegis_planet.ogg
[dataCache.set.success]: Updated entry Sounds/aegis_planet.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/aegis_planet.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/hullbang.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/hullbang.ogg at Resources/Sounds/hullbang.ogg
[dataCache.set.success]: Updated entry Sounds/hullbang.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/hullbang.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/witch_fail_fuel.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/witch_fail_fuel.ogg at ../AddOns/custsounds.oxp/Sounds/witch_fail_fuel.ogg
[dataCache.set.success]: Updated entry Sounds/witch_fail_fuel.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/witch_fail_fuel.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/w_hole.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/w_hole.ogg at ../AddOns/custsounds.oxp/Sounds/w_hole.ogg
[dataCache.set.success]: Updated entry Sounds/w_hole.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/w_hole.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/laser.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/laser.ogg at Resources/Sounds/laser.ogg
[dataCache.set.success]: Updated entry Sounds/laser.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/laser.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/buy.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/buy.ogg at ../AddOns/custsounds.oxp/Sounds/buy.ogg
[dataCache.set.success]: Updated entry Sounds/buy.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/buy.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/auto_off.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/auto_off.ogg at ../AddOns/custsounds.oxp/Sounds/auto_off.ogg
[dataCache.set.success]: Updated entry Sounds/auto_off.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/auto_off.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/breakpattern.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/breakpattern.ogg at Resources/Sounds/breakpattern.ogg
[dataCache.set.success]: Updated entry Sounds/breakpattern.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/breakpattern.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/hyp_abort.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/hyp_abort.ogg at ../AddOns/custsounds.oxp/Sounds/hyp_abort.ogg
[dataCache.set.success]: Updated entry Sounds/hyp_abort.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/hyp_abort.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/mine_L.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/mine_L.ogg at ../AddOns/custsounds.oxp/Sounds/mine_L.ogg
[dataCache.set.success]: Updated entry Sounds/mine_L.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/mine_L.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/bigbang.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/bigbang.ogg at Resources/Sounds/bigbang.ogg
[dataCache.set.success]: Updated entry Sounds/bigbang.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/bigbang.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/hold_full.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/hold_full.ogg at ../AddOns/custsounds.oxp/Sounds/hold_full.ogg
[dataCache.set.success]: Updated entry Sounds/hold_full.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/hold_full.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/auto_on.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/auto_on.ogg at ../AddOns/custsounds.oxp/Sounds/auto_on.ogg
[dataCache.set.success]: Updated entry Sounds/auto_on.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/auto_on.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/witch_fail.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/witch_fail.ogg at ../AddOns/custsounds.oxp/Sounds/witch_fail.ogg
[dataCache.set.success]: Updated entry Sounds/witch_fail.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/witch_fail.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/In-missile.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/In-missile.ogg at ../AddOns/custsounds.oxp/Sounds/In-missile.ogg
[dataCache.set.success]: Updated entry Sounds/In-missile.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/In-missile.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/cloak_off.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/cloak_off.ogg at ../AddOns/custsounds.oxp/Sounds/cloak_off.ogg
[dataCache.set.success]: Updated entry Sounds/cloak_off.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/cloak_off.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/auto_deny.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/auto_deny.ogg at ../AddOns/custsounds.oxp/Sounds/auto_deny.ogg
[dataCache.set.success]: Updated entry Sounds/auto_deny.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/auto_deny.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/witchabort.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/witchabort.ogg at Resources/Sounds/witchabort.ogg
[dataCache.set.success]: Updated entry Sounds/witchabort.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/witchabort.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/aegis_station.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/aegis_station.ogg at ../AddOns/custsounds.oxp/Sounds/aegis_station.ogg
[dataCache.set.success]: Updated entry Sounds/aegis_station.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/aegis_station.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/trumblesqueal.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/trumblesqueal.ogg at Resources/Sounds/trumblesqueal.ogg
[dataCache.set.success]: Updated entry Sounds/trumblesqueal.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "Resources/Sounds/trumblesqueal.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/id_off.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/id_off.ogg at ../AddOns/custsounds.oxp/Sounds/id_off.ogg
[dataCache.set.success]: Updated entry Sounds/id_off.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/id_off.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/sell.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/sell.ogg at ../AddOns/custsounds.oxp/Sounds/sell.ogg
[dataCache.set.success]: Updated entry Sounds/sell.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/sell.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/auto_fail.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/auto_fail.ogg at ../AddOns/custsounds.oxp/Sounds/auto_fail.ogg
[dataCache.set.success]: Updated entry Sounds/auto_fail.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/auto_fail.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/fuel-leak.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/fuel-leak.ogg at ../AddOns/custsounds.oxp/Sounds/fuel-leak.ogg
[dataCache.set.success]: Updated entry Sounds/fuel-leak.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/fuel-leak.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/auto_norange.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/auto_norange.ogg at ../AddOns/custsounds.oxp/Sounds/auto_norange.ogg
[dataCache.set.success]: Updated entry Sounds/auto_norange.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/auto_norange.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/game_over.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/game_over.ogg at ../AddOns/custsounds.oxp/Sounds/game_over.ogg
[dataCache.set.success]: Updated entry Sounds/game_over.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/game_over.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/id_on.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/id_on.ogg at ../AddOns/custsounds.oxp/Sounds/id_on.ogg
[dataCache.set.success]: Updated entry Sounds/id_on.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/id_on.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "resolved paths" cache object Sounds/scoop.ogg -- no such entry.
[resourceManager.foundFile]: Found Sounds/scoop.ogg at ../AddOns/custsounds.oxp/Sounds/scoop.ogg
[dataCache.set.success]: Updated entry Sounds/scoop.ogg in cache "resolved paths".
[sound.load.success]: Loaded a sound from "../AddOns/custsounds.oxp/Sounds/scoop.ogg".
[dataCache.retrieve.failed]: Failed to retrieve "dictionaries" cache object Config/planetinfo.plist merge:smart -- no such entry.
[dataCache.set.success]: Updated entry Config/planetinfo.plist merge:smart in cache "dictionaries".
[dataCache.retrieve.failed]: Failed to retrieve "arrays" cache object Config/pirate-victim-roles.plist merge:yes -- no such entry.
[dataCache.set.success]: Updated entry Config/pirate-victim-roles.plist merge:yes in cache "arrays".
[dataCache.retrieve.failed]: Failed to retrieve "dictionaries" cache object Config/autoAImap.plist merge:basic -- no such entry.
[dataCache.set.success]: Updated entry Config/autoAImap.plist merge:basic in cache "dictionaries".
[dataCache.retrieve.failed]: Failed to retrieve "arrays" cache object Config/equipment.plist merge:yes -- no such entry.
[startup.exception]: ***** Unhandled exception during startup: NSRangeException (Index 0 is out of range 0 (in 'objectAtIndex:')).

Closing log at 2009-09-04 00:01:35 +0800.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

overmage wrote:
Nothing useful here it seems D:

Code: Select all

…
[dataCache.retrieve.failed]: Failed to retrieve "arrays" cache object Config/equipment.plist merge:yes -- no such entry.
[startup.exception]: ***** Unhandled exception during startup: NSRangeException (Index 0 is out of range 0 (in 'objectAtIndex:')).

Closing log at 2009-09-04 00:01:35 +0800.
On the contrary: this tells us that the exception happened after trying to read equipment.plist from the cache, and before writing it to the cache. This means the problem is occurring somewhere in +[ResourceManager arrayFromFilesNamed:inFolder:andMerge:], somewhere between lines 563 and 622 – quite probably in the special handling of equipment.plist. For a project with over three hundred thousand lines of code (not including comments and blank lines), that’s quite precise. :-)
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

I’ve identified four possible causes of the exception, but none of them is triggered by my copy of OSE 0.67. It would be helpful if you could send me the equipment.plist from your copy.
Post Reply