Thread: Modding SW3?
View Single Post
  #4  
Old 03-26-2010, 06:53 AM
Goblin Wizard Goblin Wizard is offline
Approved Member
 
Join Date: Oct 2008
Posts: 508
Default

If you want to see changes on Mastiff (or any other ship) you need to find save before you get it. In this case find save with pirate version mastiff and go to the Elio for aerogrphy quest.
I never tried missile lunchers on mothership so I don't know if they work.
Model files are here ..\Data\OBJECT\*.imd. You need a IMDeditor to change things.

-----------------------------------------------------------------------


I have another problem:

Now buying code looks like below and works ok

Quote:
function _buy_ms(nameMS)
local _tab_MS = {
{"Starhammer_0",1000},
{"Mothership_uel_pl1",2000},
{"Mothership_Lion_pl1",3000}};

local costMS = 0;
for i, sh in _tab_MS do
if (sh[1] == nameMS) then costMS=sh[2];
end;
end;
if (costMS == 0) then return FALSE;
end;

local N=GetPlayerCredits();
if (N>=costMS) then

NewFlight("myGroup_1", "nm", GetShipName(nameMS), "BasePilot", mothership:GetPosition() + Vector3(0, 0, -70), Vector3(0, 0, 1));
mothership_old = mothership;
mothership = SetPlayerMotherShip(ship_nm_1);
PortalTrigger_PORTAL_R:SetObject(mothership);
PortalTrigger_PORTAL_L:SetObject(mothership);
PortalTrigger_PORTAL_U:SetObject(mothership);
PortalTrigger_PORTAL_D:SetObject(mothership);
PortalsActivate_Action();
GetShipName(mothership);
CreateTradeStationDocking(TRADE_STATION,mothership );
CreateRepairStationDocking(STO_Station,mothership, 140,5);
SubPlayerCredits(costMS);

OutputToScreenLog("#UI_MothershipBought",7);
else
OutputToScreenLog("#UI_MothershipBoughtFail",7);
end;
end;
but you can buy only one mothership. If you try to buy second you get CTD. It is caused by group declaration "myGroup_1". Separate group must be attached to each mothership so I changed code slightly (added 3rd column to table) and now looks like this:

Quote:
function _buy_ms(nameMS)
local _tab_MS = {
{"Starhammer_0",1000,"myGroup_1"},
{"Mothership_uel_pl1",2000,"myGroup_2"},
{"Mothership_Lion_pl1",3000,"myGroup_3"}};

local costMS = 0;
for i, sh in _tab_MS do
if (sh[1] == nameMS) then costMS=sh[2];
end;
if (sh[1] == nameMS) then nameG=sh[3];
end;
end;
if (costMS == 0) then return FALSE;
end;

local N=GetPlayerCredits();
if (N>=costMS) then

NewFlight( GetGroupName(nameG), "nm", GetShipName(nameMS), "BasePilot", mothership:GetPosition() + Vector3(0, 0, -70), Vector3(0, 0, 1));
mothership_old = mothership;
mothership = SetPlayerMotherShip(ship_nm_1);
PortalTrigger_PORTAL_R:SetObject(mothership);
PortalTrigger_PORTAL_L:SetObject(mothership);
PortalTrigger_PORTAL_U:SetObject(mothership);
PortalTrigger_PORTAL_D:SetObject(mothership);
PortalsActivate_Action();
GetShipName(mothership);
CreateTradeStationDocking(TRADE_STATION,mothership );
CreateRepairStationDocking(STO_Station,mothership, 140,5);
SubPlayerCredits(costMS);

OutputToScreenLog("#UI_MothershipBought",7);
else
OutputToScreenLog("#UI_MothershipBoughtFail",7);
end;
end;
but unfortunately it doesn't work. No errors and no visible effects. Maybe someone could check the code and find out what's wrong?

Last edited by Goblin Wizard; 03-26-2010 at 08:04 AM.
Reply With Quote