TUTORIAL: ADD NEW items (SHIPS) + INFOCARD DLL without removing the old.
PART A by HFH_MACK (completed 7-21-2003), Revision 2 (9-22-03)
I would like to thank Pu_Raydo, Hans Olo, Dixi and Zen who have posted to the Lancers Reactor with much knowledge. Also to UNSETH who provided the basic formula for locating resources in the DLL and the Lancers Reactor... for sharing all this on the net.
*** This presumes you have reviewed most of the tutorials and have an ADVANCED understanding of modding and the dangers of modding ***
*** Send all flames to : yourself@youraddress_for_Not_Heeding_The_Warning ***
*** you take full responsibility for using any of these suggestions ***
*** I suggest creating a new mod folder using FLMM 1.2 and putting all the files that you plan on altering there so that the mod can be activated and deactivated ***
In order to use this Tutorial please obtain the programs:
FLMM1.2, ResHack, FLEd-ids or the flini referrer (flidref.exe), notepad, wordpad, and a Dec <----> Hex converter.
EDIT: links active at the time of writing below for the downloads may no longer exist. The downloads can be located here:
http://lancersreactor.com/t/download/do ... asp?id=563
(I will keep the original links posted for historical purposes)
This is a huge tutorial that delves into many areas. It is not a simple step by step guide to do only one thing... so be patient as you go through it. YOU MUST READ THE ENTIRE TUTORIAL (PART A) PRIOR TO PERFORMING IT...
***I have found that cutting and pasting from this screen (forum screen) MIGHT introduce buggy code... It is Probably better to always cut and paste from the original files... just to make sure. When I have done it the easy way... bugs creep in***
PURPOSE: Our purpose here is to use multiple methods to show how to Literally add new items to FreeLancer and thus to a DLL. This is NOT a COPY and ALTER MOD... this is a COPY and ADD Mod. We will NOT be altering ANY Original Equipment, ships or names of those items...
EDIT: (Except for those that use the Manhatten shortcut later in the tutorial which sells the Rhino II instead of the original Rhino)
We will USE original items to make the new stuff. Again... ALL the ORIGINAL stuff will be in the game UNCHANGED (except for those that opt for the shortcut).
To do that we will take the original Rhino template and make modifications to our template to make the Rhino II. In this mod we are not simply altering an existing ship. Rather we are keeping the original and adding a new ship... with a NEW ID and NEW INFOCARDS.
WHY Mess with the DLL?
Reason: This allows for addons without removing any of the original components.
and because FreeLancer uses them to store certain descriptions of things... such as ships, equipment etc... and without altering these DLLs we cannot "add" new ships with correct descriptions.
EDIT: There is a new program called FreeLancer IDS Generator that may be able to do this without altering the DLL here:
http://www.lancersreactor.com/t/downloa ... asp?id=551.
I have not tested this...
__________________________________________________________________
OK so make text versions of the .ini files using bini.exe or whatever...
then MAKE YOUR BACK UP OF THE FREELANCER DIRECTORY NOW!
Once that's done we can start:
EDIT: PLEASE NOTE THAT FLMM 1.2 is VERY FINICKY with its mod files...
YOU HAVE TO WORK WITH INACTIVATED MODS... Here's why you NEED a BACKUP:
1. If something is corrupted you can simply copy the lost files from the backup folder back to the original.
2. FLMM has a nasty habit... IT WILL DELETE MULTIPLE ORIGINAL FILES IF you DELETE a file from within a MOD... somtimes this can be repaired with restore.
WHEN you DELETE a FILE in a MOD in either the active or inactive state it will tell you that there is an error... regardless of whether or not the file is needed... one way around this is to copy the mod to another folder then choose Delete MOD in the FLMM then recopy the MOD back to the FLMM folder... This will allow the mod to work even though you have removed part of it. FLMM does not seem to care if you add or change files if they are inactive but you cannot DELETE a file unless you remove the mod completely... then close FLMM, restore the MOD and reload FLMM to bring it back... I guess this releases the file list that FLMM stores...
MOSTLY all of The Files will be placed in the mod folder:
USE FLMM 1.2 TOOLs and open your Mod Folder... In that create a folder called ADD_RhinoII.
ADD_RhinoII will eventually contain: DATA folder and EXE folder
DATA folder contains: EQUIPMENT folder, SHIPS folder, constants.ini
EQUIPMENT folder contains: goods.ini, market_ships.ini
SHIPS folder contains: shiparch.ini
EXE folder contains: freelancer.ini, infocards_new.dll, and nameresources.dll
GO ahead and make the above folders in your FLMM 1.2 mod folder and copy over the text version of all the .ini files and nameresources.dll to thier respective locations. DO NOT COPY THE INFOCARDS.DLL YET.
The only file above that cannot be copied over right now is the infocards_new.dll file. We will create/MODIFY that below.
Placing it in the directory now may result in failure.
*** WARNING: Do not make the mistake of modifying the original files... all of the changes I mention below should be done on the files within the ADD_RhinoII mod of FLMM. I cannot tell you how many hours will be wasted debugging... only to discover that you edited the original in its original folder hahaha (yea it happens)...
_______________________________________________________________________
DLL files contain the descriptions of the ships, equipment etc that appear in FreeLancer... When we make mods without editing these we cannot see our mods as they truly have been done. There are many DLL's. These are internally referenced by FL using a number for each DLL.
The freelancer.ini file usually at
C:\Program Files\Microsoft Games\Freelancer\EXE\freelancer.ini
references the DLLs.
Open the freelancer.ini and FIND the part that says
[Resources
DLL = InfoCards.dll ; Contains all infocard text resources
DLL = MiscText.dll ; Contains other bulk text resource: rumor, offer, and mission text
DLL = NameResources.dll ; Contains names of things, primarily
DLL = EquipResources.dll ;Contains names of equipment (in string table) and infocards for equipment (in HTML resources)
DLL = OfferBribeResources.dll ; Contains random mission offers and bribes
DLL = MiscTextInfo2.dll ;Contains MP UI elements as well as other misc. textDLL Numbers
Pu_Raydo points out that [Resources DLLs are iterated numerically as follows:
1 InfoCards.dll
2 MiscText.dll
3 NameResources.dll
4 EquipResources.dll
5 OfferBribeResources.dll
6 MiscTextInfo2.dll
***Meaning FreeLancer uses the #1 to reference InfoCards.dll and the #6 to reference MiscTextInfo2.dll***
(later we will add 7th DLL called infocards_new.dll but not right now)
UNSETH notes that changing the order of the original resources in this file will "mess" up FL.
Apparently... It is possible in the freelancer.ini to put your own resource DLLs in
the file to get a better overview. The DLL numbers will become logically
7,8, 9 etc.
Interestingly enough... FreeLancer HIDES its info in a formula.
(It appears this is native to the DLL itself)
So, I pause to digress about this...
If one looks here:
C:\Program Files\Microsoft Games\Freelancer\DATA\SHIPS\shiparch.ini
The shiparch.ini file contains a section labeled as follows:
[Ship
ids_name = 237035
...
***don't forget We cannot print the closing Bracket for [Ship }<----- should be here... but cannot due to the forum engine... please remember to close all brackets...***
USE your editor's "find" and locate 237035
This ids_name (237035) refers to a ship called "Rhino".
This can be determined several different ways.
One method is to use a previously known list of ship IDs. This method will only work if U have not changed any names. (and it won't really help us later on)
A BETTER method is a program by Dixi called FLEd-ids.exe.
To obtain a copy look here
http://hosted.nihilogic.dk/freelancer/fled-ids.zip
or try E-Mail
[email protected]. (or as discussed earlier in downloads)
AND FINALLY the ever missing:
www.eyers.net/bryan/flidref.zip (flini referrer)
Since flini referrer has been unavailable for so long I chose to make this tutorial using Dixi's FLEd-ids prog. But I believe either one will do.
ALSO, one can MANUALLY determine this info without Dixi's program... it just requires much more work. Unfortunately I did not have dixi's program when I figured out this manual conversion. So GO GET IT. If U cannot get it... then make believe you are using it... to follow along, eventually U will get to the part where I explain how to manually do it.
To do this you will need a Decimal to Hexadecimal converter later in the tutorial...
I like HexBindc by live bat programming located at:
http://www.ticalc.org/archives/files/fi ... /7595.html
UNSETH has described a method on how the DLL resources are accessed here
http://www.ejoop.com/pcgames/fled/id_formula.asp
I use both methods (with modifications) herein.
To get it working: 1st you need to make a copy of the DLL file you will be modifying (NameResources.dll) and save it for back up. If U don't... then fry in your own mistakes or mine ( I will not be responsible).
OK... run the FLEd-ids.exe program...
Now in the box called game path put the exact path and directory to the game MOD. This is usually:
C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII
(note sometimes when you 1st start the program it APPEARS to have the correct working directory but it does not... simply browse for the proper directory...
Next go to the SEARCH box.
YOU MUST Choose NameResources.dll from the dropdown list.
Just below that is an empty box... here U can type anything that you want to locate that might be in the NameResources.dll.
for example type:
anubis
click ids_name and this Will result in the following:
In the box labled ids_name / ids_info -----------------> 237041.
Since we started with the Rhino lets type:
Rhino
into the Search Box and click ids_name.
Now U will see 237035.
OK so... if U remember we already knew the ids_name for Rhino because we found it in the shiparch.ini file. What I am trying to demonstrate however is that given a specific name ,or even part of a name, this program can locate ids_names in a particular dll.
*** note that ids_name given here is really not the "NAME" but actually a NUMBER.***
*** Think of it as a reference to the ship name ***
Next... Look for the BOX called Resource extractor/editor. It has two fields ids_name and ids_info. It also has two click boxes next to each empty field labeled Get ids_name and Save ids_name and Get ids_info and save ids_info.
Take that number (237035) and put it in the ids_name field.
Click the Get ids_name box.
At the bottom of the program's window (in my version of the prog) you will see the following:
DLL #3 - NameResources.dll - Table 2527 - ResID 40427
THIS MEANS that NameResources.dll is the 3rd DLL listed in the [Resources section
and the information to be located is in Table 2527 at ResID 40427 of the DLL.
(of course we already knew NameResources.dll was DLL 3... but its nice to confirm this...)
How did the FLEd-ids do that calculation? Its a little complex...
It takes ids_name and it converts to HEX... as follows: 237035 ---> in HEX is 39DEB
Now if U do this U will see the Hex digits: H1,H2,H3,H4,H5 (see next line)
3 9 D E B
H1 H2 H3 H4 H5
where H1=3 ie the left most digit of the HEX conversion.
Ok... TAKE H2,H3,H4 ie 9DE and convert them BACK to Decimal...and add 1 ---> 2526+1
Therefore the TABLE is 2527... thus DEC(H2H3H4)+1 = Table # 2527
and Lastly... H2H3H4H5 and convert back to decimal ---> 40427
Thus ResID = 40427.
My advice is do the calculation once(or more) to understand it and then let FLEd-ids do the work for you....!
Therefore... The FLEd-ids program can convert the ids_name into the location in the DLL
Ok... so Now how do U go about SEEING this information in the actual DLL?
The first thing is you need a program that opens DLL files.
There are several out there... I found Resource Hacker (ResHack)...located here (slow but original site)
http://www.users.on.net/johnson/resourcehacker/
or
http://www.devhood.com/tools/tool_detai ... ool_id=420
There is a help file you should download as well.
Remember !!! Messing with DLL files can RUIN your system so be careful. BACK them up 1st.
Now that U have the program, go to:
C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII\EXE\NameResources.dll
ok so COPY IT to another folder now for backup! (not in the MOD folder as it will mess up the mod)
ok now open the dll with Resource Hacker.
open the StringTable folder then scroll down and open the last numbered folder (should be 4075 for an unaltered dll) and then open the 1033 folder
You should see:
STRINGTABLE
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
65184, "Unknown Planet"
65185, "Alien Jump Gate"
65186, "The Hispania"
}
to add a new one just increase by the number by one and add the following line:
65187, "Rhino II"
so now it looks like this:
{
65184, "Unknown Planet"
65185, "Alien Jump Gate"
65186, "The Hispania"
65187, "Rhino II"
}
press the Compile Script button
then Save.
OK now MOVE the BACKUP that ResHack makes automatically out of the folder to somewhere where FLMM 1.2 can't see it... perhaps your desktop... or wherever...
You should now have a modified C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII\EXE\NameResources.dll
*** I am not sure about this but I believe the MAX # of entries allowed for a given FOLDER is 16. Perhaps someone can help out here...(then I can edit the new info in here) Anyway... if U have more than 16 then I believe U need to make a new folder 4076 etc... and a new 1033 folder and put a new template... alas lets do that tutorial another time. Ok but at least we can add 12 more new items before that happens ***
Now go into
C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII\DATA\SHIPS\Shiparch.ini
Look for 237035. This is the Original Rhino.
Here's what it looks like...
[Ship
ids_name = 237035
ids_info = 66573
ids_info1 = 66574
ids_info2 = 66608
ids_info3 = 66575
ship_class = 2
nickname = li_freighter
LODranges = 0, 80, 120, 200, 300, 1200
msg_id_prefix = gcs_refer_shiparch_Libf
mission_property = can_use_berths
type = FREIGHTER
DA_archetype = ships\liberty\li_freighter\li_freighter.cmp
material_library = ships\liberty\li_playerships.mat
material_library = fx\envmapbasic.mat
envmap_material = envmapbasic
cockpit = cockpits\liberty\l_freighter.ini
pilot_mesh = generic_pilot
nanobot_limit = 12
shield_battery_limit = 12
mass = 300.000000
linear_drag = 1.000000
hold_size = 80
fuse = intermed_damage_smallship01, 0.000000, 400
fuse = intermed_damage_smallship02, 0.000000, 200
fuse = intermed_damage_smallship03, 0.000000, 100
max_bank_angle = 15
camera_offset = 8, 45
camera_angular_acceleration = 0.035000
camera_horizontal_turn_angle = 20
camera_vertical_turn_up_angle = 5
camera_vertical_turn_down_angle = 20
camera_turn_look_ahead_slerp_amount = 1.000000
hit_pts = 1600
explosion_arch = explosion_li_freighter
surface_hit_effects = 0, small_hull_hit_light01, small_hull_hit_light02, small_hull_hit_light03
surface_hit_effects = 150, small_hull_hit_medium01, small_hull_hit_medium02, small_hull_hit_medium03
surface_hit_effects = 300, small_hull_hit_heavy01, small_hull_hit_heavy02, small_hull_hit_heavy03
nudge_force = 30000.000000
strafe_force = 20000
strafe_power_usage = 2
bay_door_anim = Sc_open baydoor
bay_doors_open_snd = cargo_doors_open
bay_doors_close_snd = cargo_doors_close
HP_bay_surface = HpBayDoor01
HP_bay_external = HpBayDoor02
HP_tractor_source = HpTractor_Source
num_exhaust_nozzles = 2
shield_link = l_freighter_shield01, HpMount, HpShield01
hp_type = hp_gun_special_3, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_freighter_shield_special_3, HpShield01
hp_type = hp_freighter_shield_special_2, HpShield01
hp_type = hp_freighter_shield_special_1, HpShield01
hp_type = hp_thruster, HpThruster01
hp_type = hp_mine_dropper, HpMine01
hp_type = hp_countermeasure_dropper, HpCM01
hp_type = hp_turret_special_3, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
steering_torque = 54000.000000, 54000.000000, 104000.000000
angular_drag = 60000.000000, 60000.000000, 60000.000000
rotation_inertia = 16800.000000, 16800.000000, 16800.000000
[CollisionGroup
obj = li_starboard_sidepanel_lod1
separable = parent_impulse = 240.000000
child_impulse = 7.000000
debris_type = debris_small_ship
dmg_hp = DpStarboardsidepanel
dmg_obj = li_freighter_dmg_starboard_sidepanel_cap
separation_explosion = explosion_small_ship_breakoff
mass = 5.000000
type = Starboard_Side_Panel
hit_pts = 267
root_health_proxy = true
[CollisionGroup
obj = li_port_sidepanel_lod1
separable = parent_impulse = 240.000000
child_impulse = 7.000000
debris_type = debris_small_ship
dmg_hp = DpPortsidepanel
dmg_obj = li_freighter_dmg_port_sidepanel_cap
separation_explosion = explosion_small_ship_breakoff
mass = 5.000000
type = Port_Side_Panel
hit_pts = 267
root_health_proxy = true
[Simple
nickname = li_freighter_dmg_starboard_sidepanel_cap
DA_archetype = ships\liberty\li_freighter\li_freighter_dmg_starboard_sidepanel.3db
material_library = ships\liberty\li_playerships.mat
mass = 5.000000
LODranges = 0, 100, 1200
[Simple
nickname = li_freighter_dmg_port_sidepanel_cap
DA_archetype = ships\liberty\li_freighter\li_freighter_dmg_port_sidepanel.3db
material_library = ships\liberty\li_playerships.mat
mass = 5.000000
LODranges = 0, 100, 1200
OK SO COPY ALL OF THAT...(without cutting) and then paste it at the bottom of the SAME file.
So, for this Rhino II we want to make it better than the original Rhino in some fashion...
First go to the newly pasted section and change the ID from 237035 to 261795.
Ok Now how did we calculate that?
Specifically we take the new ResourceID 65187 and convert it to HEX. (use the converter).
This will give FEA3.
Now simply prefix that with the DLL number for the NamedResources which we know is 3.
----> 3FEA3. Convert 3FEA3 to Decimal.... -----> 261795.
(Yes, figuring that out was Soooooo much fun).
Another way to look at this conversion is The DLL # * 65536 + ResID in Decimal = 261795.
But In actuality we just use the FLEd-ids which will do the calculation for us...
Goto the box called ResID to ids_name/ids_info...
Choose NameResources.dll in the drop down menu and then type 65187 into the field...
Then click CONVERT... Bingo....261795.
OK BACK to Shiparch.ini and go to the bottom where we copied the rhino stuff...
Now we will modify some of Rhino II's stats...
look for these lines (Do not alter the original Rhino info, use your pasted copy)
[Ship
ids_name = 237035
nickname = li_freighter
and change it to:
[Ship
ids_name = 261795
nickname = li_freighter_II
and these lines (not all contiguous btw):
nanobot_limit = 12
shield_battery_limit = 12
mass = 300.000000
hold_size = 80
hit_pts = 1600
and change to:
nanobot_limit = 30
shield_battery_limit = 30
mass = 350.000000
hold_size = 120
hit_pts = 2000
and finally just after this line:
shield_link = l_freighter_shield01, HpMount, HpShield01
edit the section to look like this:
hp_type = hp_gun_special_5, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_4, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_3, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_freighter_shield_special_3, HpShield01
hp_type = hp_freighter_shield_special_2, HpShield01
hp_type = hp_freighter_shield_special_1, HpShield01
hp_type = hp_thruster, HpThruster01
hp_type = hp_mine_dropper, HpMine01
hp_type = hp_countermeasure_dropper, HpCM01
hp_type = hp_turret_special_5, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_4, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_3, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
steering_torque = 54000.000000, 54000.000000, 104000.000000
angular_drag = 60000.000000, 60000.000000, 60000.000000
rotation_inertia = 16800.000000, 16800.000000, 16800.000000
OK SAVE IT.
We added:
hp_type = hp_gun_special_5, HpWeapon01, HpWeapon02, HpWeapon03
hp_type = hp_gun_special_4, HpWeapon01, HpWeapon02, HpWeapon03
which gives access to level 4 and level 5 gun weapons to Hardpoints 1,2,3.
and
hp_type = hp_turret_special_5, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
hp_type = hp_turret_special_4, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
which gives access to level 4 and level 5 turret weapons to Turret Hardpoints 1,2,3,4,5.
Also we are adding tonnage, and Hull strength... its only natural... since we are adding significant enhancements... its gonna fly a little slower...
(You of course can mod it ad nauseum... later)
But the ORIGINAL RHINO stuff remains as well.
Per Zen's Tutorial... Now that your ship is in the shiparch.ini we must add the relevant hull and engine for it
goto
C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII\DATA\EQUIPMENT\goods.ini
The goods.ini folder holds information about the cost of items and references each item by a nickname. For Ships it also has a field called ship.
Look for the original Rhino nickname of li_freighter.
You should see:
[Good
nickname = lfr_hull
category = shiphull
ship = li_freighter
price = 7900
ids_name = 12002
item_icon = Equipment\models\commodities\nn_icons\li_freighter.3db
COPY THIS (without cutting)and PASTE to the end of the file with the follwing changes:
[Good
nickname = lfr_hull_II
category = shiphull
ship = li_freighter_II
price = 2900
ids_name = 12002
item_icon = Equipment\models\commodities\nn_icons\li_freighter.3db
We are making this item rediculously cheap so that when we get to Pittsburgh we can afford it... I recommend later that you make it roughly 1500-2000 more than the original rhino for balance...)
We have added a new nickname and ship but we are keeping the ids_Name = 12002 (Liberty Freighter Hull)
(I really don't know how this will affect our ship by keeping this hull... and since the new ship works fine with it I will leave it as is... perhaps I will edit this section later if I get more info)
OK... now search the goods.ini file for lfr_hull.
until you find
[Good
nickname = lfr_package
category = ship
hull = lfr_hull
addon = ge_lfr_engine_01, internal, 1
addon = li_freighter_power01, internal, 1
addon = ge_s_scanner_01, internal, 1
addon = ge_s_tractor_01, internal, 1
addon = shield01_mark01_fr, HpShield01, 1
addon = LargeWhiteSpecial, HpHeadlight, 1
addon = SlowSmallBlue, HpRunningLight01, 1
addon = SlowSmallBlue, HpRunningLight02, 1
addon = SlowSmallBlue, HpRunningLight03, 1
addon = SlowSmallBlue, HpRunningLight04, 1
addon = SlowSmallBlue, HpRunningLight05, 1
addon = SlowSmallBlue, HpRunningLight06, 1
addon = SlowSmallBlue, HpRunningLight07, 1
addon = contrail01, HpContrail01, 1
addon = contrail01, HpContrail02, 1
addon = DockingLightRedSmall, HpDockLight01, 1
addon = DockingLightRedSmall, HpDockLight02, 1
and copy (without cutting)and paste to the bottom of the same file the following:
[Good
nickname = lfr_package_II
category = ship
hull = lfr_hull_II
addon = ge_lfr_engine_01, internal, 1
addon = li_elite_power01, internal, 1
addon = ge_s_scanner_01, internal, 1
addon = ge_s_tractor_01, internal, 1
addon = shield01_mark01_fr, HpShield01, 1
addon = LargeWhiteSpecial, HpHeadlight, 1
addon = SlowSmallBlue, HpRunningLight01, 1
addon = SlowSmallBlue, HpRunningLight02, 1
addon = SlowSmallBlue, HpRunningLight03, 1
addon = SlowSmallBlue, HpRunningLight04, 1
addon = SlowSmallBlue, HpRunningLight05, 1
addon = SlowSmallBlue, HpRunningLight06, 1
addon = SlowSmallBlue, HpRunningLight07, 1
addon = contrail01, HpContrail01, 1
addon = contrail01, HpContrail02, 1
addon = DockingLightRedSmall, HpDockLight01, 1
addon = DockingLightRedSmall, HpDockLight02, 1
This step allows for the two ships to be treated differently with respect to the GEAR it starts out with...the only major change from our original:
nickname = lfr_package
...
hull = lfr_hull
and
addon = li_freighter_power01, internal, 1
was changed to:
nickname = lfr_package_II
...
hull = lfr_hull_II
and
addon = li_elite_power01, internal, 1
This basically allows the Rhino II to use the Liberty Elite Fighter Power Source... a nice upgrade... and needed because... we will be allowing the freighter to carry a higher class of weapons later in the tutorial.
Ok now (virtually) straight from Zen's Tutorial... we must add this NEW RHINO II to a place where we can PURCHASE it... as follows:
Per Zen... Most people add stuff to Manhatten, i prefer pitsburg as it only sells 1 ship be default.
*** There is a MAX of 3 ships allowed to be for sale at any 1 location... if U have more than 3... some will be lost ***
_________________________________________________________________
Ok so, Goto
C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII\DATA\EQUIPMENT\Market_Ships.ini
Open Market_ships.ini and look for this :
For Manhatten : base = Li01_01_base
For Pittsburg : base = Li01_02_Base
when you find Li01_02_Base you will see the following :
code:
[BaseGood
base = Li01_02_base
marketgood = gf1_package, 0, -1, 0, 0, 1, 1, 1
marketgood = gf2_package, 4, -1, 0, 0, 1, 1, 1
marketgood = gf4_package, 13, -1, 0, 0, 1, 1, 1
marketgood = gf5_package, 24, -1, 0, 0, 1, 1, 1
marketgood = gf6_package, 30, -1, 0, 0, 1, 1, 1
marketgood = bwf_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bwe_package, 20, -1, 0, 0, 1, 1, 1
marketgood = bwe2_package, 30, -1, 0, 0, 1, 1, 1
marketgood = bwfr_package, 10, -1, 0, 0, 1, 1, 1
marketgood = cof_package, 8, -1, 0, 0, 1, 1, 1
marketgood = coe_package, 28, -1, 0, 0, 1, 1, 1
marketgood = coe2_package, 32, -1, 0, 0, 1, 1, 1
marketgood = lf_package, 1, -1, 0, 0, 1, 1, 1
marketgood = le_package, 2, -1, 0, 0, 1, 1, 1
marketgood = lfr_package, 1, -1, 1, 1, 0, 1, 1
marketgood = bf_package, 6, -1, 0, 0, 1, 1, 1
marketgood = be_package, 8, -1, 0, 0, 1, 1, 1
marketgood = bfr_package, 4, -1, 0, 0, 1, 1, 1
marketgood = kf_package, 10, -1, 0, 0, 1, 1, 1
marketgood = ke_package, 13, -1, 0, 0, 1, 1, 1
marketgood = kfr_package, 10, -1, 0, 0, 1, 1, 1
marketgood = rf_package, 20, -1, 0, 0, 1, 1, 1
marketgood = re_package, 22, -1, 0, 0, 1, 1, 1
marketgood = rfr_package, 20, -1, 0, 0, 1, 1, 1
marketgood = pf_package, 2, -1, 0, 0, 1, 1, 1
marketgood = pe_package, 13, -1, 0, 0, 1, 1, 1
marketgood = pfr_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bhf_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bhe_package, 13, -1, 0, 0, 1, 1, 1
marketgood = bhe2_package, 26, -1, 0, 0, 1, 1, 1
marketgood = oe_package, 16, -1, 0, 0, 1, 1, 1
We need to add a line that will allow our ship to be sold... note that there is a specific format to this... (and unfortunately I don't know the exact format... if anyone knows more please post this...)
The format is:
marketgood = XXX_package, X1, X2, X3, X4, X5, X6, X7
where X1 = level required to buy ship (from 0 to whatever)
X2 = -1 (has to do with friendliness)
X3 = 0 or 1 (where 0 means NOT available and 1 means IS available)
X4 = 0 or 1 (don't know)
X5 = 0 or 1 (don't know)
X6 = 0 or 1 (don't know)
Ok so for all that we DO know... if we put
marketgood = lfr_package_II, 0, -1, 1, 1, 0, 1, 1
at the end of that section... we see
...
marketgood = bhe2_package, 26, -1, 0, 0, 1, 1, 1
marketgood = oe_package, 16, -1, 0, 0, 1, 1, 1
marketgood = lfr_package_II, 0, -1, 1, 1, 0, 1, 1
EDIT: changed above to allow purchase at level zero.
____________________________________________________________________
SHORTCUT EDIT: I have noticed that it takes an ENORMOUS AMOUNT OF TIME to GET TO PITTSBURGH... So...FOR THOSE WHO WANT TO FORGO THAT HUGE TRIP I HAVE ADDED THIS SHORTCUT
Goto C:\Program Files\Freelancer Mod Manager\mods\ADD_RhinoII\DATA\EQUIPMENT\Market_Ships.ini
Open Market_ships.ini and look for Manhatten (base = Li01_01_base)
remove the Original :
[BaseGood
base = Li01_01_base
marketgood = gf1_package, 0, -1, 0, 0, 1, 1, 1
marketgood = gf2_package, 4, -1, 1, 1, 0, 1, 1
marketgood = gf4_package, 13, -1, 0, 0, 1, 1, 1
marketgood = gf5_package, 24, -1, 0, 0, 1, 1, 1
marketgood = gf6_package, 30, -1, 0, 0, 1, 1, 1
marketgood = bwf_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bwe_package, 20, -1, 0, 0, 1, 1, 1
marketgood = bwe2_package, 30, -1, 0, 0, 1, 1, 1
marketgood = bwfr_package, 10, -1, 0, 0, 1, 1, 1
marketgood = cof_package, 8, -1, 0, 0, 1, 1, 1
marketgood = coe_package, 28, -1, 0, 0, 1, 1, 1
marketgood = coe2_package, 32, -1, 0, 0, 1, 1, 1
marketgood = lf_package, 1, -1, 1, 1, 0, 1, 1
marketgood = le_package, 2, -1, 0, 0, 1, 1, 1
marketgood = lfr_package, 1, -1, 1, 1, 0, 1, 1
marketgood = bf_package, 6, -1, 0, 0, 1, 1, 1
marketgood = be_package, 8, -1, 0, 0, 1, 1, 1
marketgood = bfr_package, 4, -1, 0, 0, 1, 1, 1
marketgood = kf_package, 10, -1, 0, 0, 1, 1, 1
marketgood = ke_package, 13, -1, 0, 0, 1, 1, 1
marketgood = kfr_package, 10, -1, 0, 0, 1, 1, 1
marketgood = rf_package, 20, -1, 0, 0, 1, 1, 1
marketgood = re_package, 22, -1, 0, 0, 1, 1, 1
marketgood = rfr_package, 20, -1, 0, 0, 1, 1, 1
marketgood = pf_package, 2, -1, 0, 0, 1, 1, 1
marketgood = pe_package, 13, -1, 0, 0, 1, 1, 1
marketgood = pfr_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bhf_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bhe_package, 13, -1, 0, 0, 1, 1, 1
marketgood = bhe2_package, 26, -1, 0, 0, 1, 1, 1
marketgood = oe_package, 16, -1, 0, 0, 1, 1, 1
and replace it with:
[BaseGood
base = Li01_01_base
marketgood = gf1_package, 3, -1, 0, 0, 1, 1, 1
marketgood = gf2_package, 4, -1, 1, 1, 0, 1, 1
marketgood = gf4_package, 13, -1, 0, 0, 1, 1, 1
marketgood = gf5_package, 24, -1, 0, 0, 1, 1, 1
marketgood = gf6_package, 30, -1, 0, 0, 1, 1, 1
marketgood = bwf_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bwe_package, 20, -1, 0, 0, 1, 1, 1
marketgood = bwe2_package, 30, -1, 0, 0, 1, 1, 1
marketgood = bwfr_package, 10, -1, 0, 0, 1, 1, 1
marketgood = cof_package, 8, -1, 0, 0, 1, 1, 1
marketgood = coe_package, 28, -1, 0, 0, 1, 1, 1
marketgood = coe2_package, 32, -1, 0, 0, 1, 1, 1
marketgood = lf_package, 1, -1, 1, 1, 0, 1, 1
marketgood = le_package, 2, -1, 0, 0, 1, 1, 1
marketgood = bf_package, 6, -1, 0, 0, 1, 1, 1
marketgood = be_package, 8, -1, 0, 0, 1, 1, 1
marketgood = bfr_package, 4, -1, 0, 0, 1, 1, 1
marketgood = kf_package, 10, -1, 0, 0, 1, 1, 1
marketgood = ke_package, 13, -1, 0, 0, 1, 1, 1
marketgood = kfr_package, 10, -1, 0, 0, 1, 1, 1
marketgood = rf_package, 20, -1, 0, 0, 1, 1, 1
marketgood = re_package, 22, -1, 0, 0, 1, 1, 1
marketgood = rfr_package, 20, -1, 0, 0, 1, 1, 1
marketgood = pf_package, 2, -1, 0, 0, 1, 1, 1
marketgood = pe_package, 13, -1, 0, 0, 1, 1, 1
marketgood = pfr_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bhf_package, 4, -1, 0, 0, 1, 1, 1
marketgood = bhe_package, 13, -1, 0, 0, 1, 1, 1
marketgood = bhe2_package, 26, -1, 0, 0, 1, 1, 1
marketgood = oe_package, 16, -1, 0, 0, 1, 1, 1
marketgood = lfr_package_II, 0, -1, 1, 1, 0, 1, 1
Save it.
ok all we did was remove the original rhino from Manhattan:
marketgood = lfr_package, 1, -1, 1, 1, 0, 1, 1
and add
marketgood = lfr_package_II, 0, -1, 1, 1, 0, 1, 1
to manhattan solely for the purpose of showing you that Rhino_II exists...
(This is only for those who don't desire to wade thru the 15 minute clips EVERY time they need to redo some of the code during debugging... To Restore the Original Rhino back to Manhattan simply remove the Manahattan changes and re-paste the original manhattan code...)
__________________________________________________________________
We should see the Rhino II for sale in pittsburgh as well. (even without the shortcut)
Apparently... You can take the same SHIP and reference it to another package with say... different starting equipment... and offer it for sale elsewhere... or even in the same location.
_________________________________________________________________________________
OK So now goto FLMM 1.2 and open your mod folder... make sure all the folders are properly placed in any subfolders etc... For example... there should be a DATA and EXE folder inside. and these folders should contain those items (that were previously altered) in thier respective subfolders... Check to make sure the modifications are correct.
And now launch FreeLancer... If you are lucky you have a saved game somewhere at pittsburgh otherwise start fresh... and after like 15 mins of game play (hahaha) hopefully you can find PITTSBURGH... and U should see the Rhino II for Sale for dirt cheap... (or if you used the shortcut you can see it in Manhattan)
DON't BUY IT YET...
SAVE the GAME... Ok now Buy it.
Remember... we have not altered the Rhino II's infocards yet... so it APPEARS to have 80 cargo... and 12/12 bots/shields... but If you have the money... U can see that you can purchase 120 cargo items and 30/30 bot/shields and also your weapons last a few seconds longer if continuously fired.
Ok If this works for you ... Great. If not... then I am sorry... but do not send a bunch of posts about how it messed your system up... I cannot debug your system. If there are suggestions, typos, add-ons, or other things that would HELP the community plz let me know.
Ps... I don't do this professionally... this is a hobby. Lets Keep It fun.
NEXT: Tutorial PART B how to Make the Ship Have INFOCARDS that WORK!
Edited by - HFH_MACK on 22-09-2003 21:31:07