a870826929 发表于 2019-9-22 16:44

沉船之城改船不要材料怎么修改

求助大佬,修改了百慕大48磅炮以后发现材料需要的实在太多了,开F8到处飞也受不了啊,翻着了个改船的MOD,结果死链了,所以说还有没有会改的大佬,或者谁还有沉船研究第三弹—— 最简单的改船方案,让你随心所欲改船!https://bbs.blacksheepgame.com/thread-770124-1-1.html
(出处: 3DMGAME论坛)
这个帖子发的MOD,跪求,感激不尽


yang69a 发表于 2020-2-14 21:36

https://bbs.blacksheepgame.com/thread-3991528-1-1.html

自由的神 发表于 2021-1-8 18:51

本帖最后由 自由的神 于 2021-1-8 19:05 编辑

去找一个名为Pirates_Shipyard.c的文件,一般在Program/DIALOGS/russian/Shipyard这个文件夹里面

用任意能编辑并且无损保存的软件编辑它

找到类似这样的段落,这是修改舰船HP的:
////////////////////////////////////////// HP ////////////////////////////////////////////////////
                case "ship_tunning_HP":
                        s1 = DLG_TEXT_SHY + shipHP;
                        
                        s1 = s1 + DLG_TEXT_SHY+ HPMatherial1 + DLG_TEXT_SHY+ HPMatherial2+DLG_TEXT_SHY;
                        s1 = s1 + DLG_TEXT_SHY + HPWorkPrice + DLG_TEXT_SHY;
            dialog.Text = s1;
                        Link.l1 = DLG_TEXT_SHY;
                        Link.l1.go = "ship_tunning_HP_start";
                        Link.l2 = DLG_TEXT_SHY;
                        Link.l2.go = "ship_tunning_not_now";
                break;
               
                case "ship_tunning_HP_start":
                  amount = HPWorkPrice;
                  if(makeint(Pchar.money) >= makeint(amount / 2 +0.5))
                        {
                            AddMoneyToCharacter(Pchar, -makeint(amount / 2 +0.5));
                            NPChar.Tuning.Money= makeint(amount - makeint(amount / 2 +0.5));
                            NPChar.Tuning.Matherial1 = HPMatherial1; // GOOD_EBONY
                            NPChar.Tuning.Matherial2 = HPMatherial2; //GOOD_SANDAL
                            NPChar.Tuning.ShipType       = Pchar.Ship.Type;
                            NPChar.Tuning.ShipName       = RealShips.BaseName;
                        
                              NextDiag.TempNode = "ship_tunning_HP_again";
                dialog.text = DLG_TEXT_SHY;
                            link.l1 = DLG_TEXT_SHY;
                            link.l1.go = "Exit";
               
                case "ship_tunning_HP_again":
                  if (sti(NPChar.Tuning.ShipType) == sti(Pchar.Ship.Type) && NPChar.Tuning.ShipName      == RealShips.BaseName)
                  {
                NextDiag.TempNode = "ship_tunning_HP_again";
                            dialog.Text = DLG_TEXT_SHY + sti(NPChar.Tuning.Matherial1) + DLG_TEXT_SHY + sti(NPChar.Tuning.Matherial2) + DLG_TEXT_SHY + sti(NPChar.Tuning.Money) + DLG_TEXT_SHY;
                            Link.l1 = DLG_TEXT_SHY;
                            Link.l1.go = "ship_tunning_HP_again_2";
                            Link.l2 = DLG_TEXT_SHY;
                            Link.l2.go = "Exit";
                        }
                        else
                        {
                            DeleteAttribute(NPChar, "Tuning");
                NextDiag.TempNode = "ship_tunning_again";
                            dialog.Text = DLG_TEXT_SHY;
                            Link.l1 = DLG_TEXT_SHY;
                            Link.l1.go = "Exit";
                           
                            AddQuestRecord("ShipTuning", "Lose");
                            CloseQuestHeader("ShipTuning");
                        }
                break;
               
                case "ship_tunning_HP_again_2":
                  checkMatherial(Pchar, NPChar, GOOD_EBONY, GOOD_SANDAL);
               
                  if(sti(NPChar.Tuning.Matherial2) < 1 && sti(NPChar.Tuning.Matherial1) < 1 && sti(NPChar.Tuning.Money) < 1)
                        {
                              DeleteAttribute(NPChar, "Tuning");
                NextDiag.TempNode = "ship_tunning_again";
                dialog.text = DLG_TEXT_SHY;
                            link.l1 = DLG_TEXT_SHY;
                            link.l1.go = "ship_tunning_HP_complite";
                        }
                        else
                        {
                              NextDiag.TempNode = "ship_tunning_HP_again";
                dialog.Text = DLG_TEXT_SHY + sti(NPChar.Tuning.Matherial1) + DLG_TEXT_SHY + sti(NPChar.Tuning.Matherial2) + DLG_TEXT_SHY + sti(NPChar.Tuning.Money) + DLG_TEXT_SHY;
                              link.l1 = DLG_TEXT_SHY;
                              link.l1.go = "Exit";

                AddQuestRecord("ShipTuning", "t1");
                              AddQuestUserData("ShipTuning", "sText",DLG_TEXT_SHY +sti(NPChar.Tuning.Matherial1)+ DLG_TEXT_SHY+ sti(NPChar.Tuning.Matherial2)+DLG_TEXT_SHY+ sti(NPChar.Tuning.Money) + DLG_TEXT_SHY);
                        }
                break;
               
                case "ship_tunning_HP_complite":
                  AddTimeToCurrent(6, 30);
                  shTo = &RealShips;
                  DeleteAttribute(NPChar, "Tuning");
                  // изменим
                shTo.HP      = sti(shTo.HP) + makeint(sti(shTo.HP)/5);
                shTo.Tuning.HP = true;
                // finish <--
            NextDiag.TempNode = "ship_tunning_again";
                        dialog.Text = DLG_TEXT_SHY;
                        Link.l1 = DLG_TEXT_SHY;
                        Link.l1.go = "Exit";
                        
                        AddQuestRecord("ShipTuning", "End");
                        CloseQuestHeader("ShipTuning");

需要修改的是这一段
case "ship_tunning_HP_start":
                  amount = HPWorkPrice;
                  if(makeint(Pchar.money) >= makeint(amount / 2 +0.5))(这行是订金检查,那个2就是付改造金额的二分之一为订金,如果身上的钱不够这个数不能开始改造,即使你修改了不要钱也一样,把那个2改为1000或者10000就基本等于无效了)
                        {
       AddMoneyToCharacter(Pchar, -makeint(amount / 2 +0.5));(这行往下四行全是材料和金额,在每行前面加//就等于无效化,这几行改完改造就不会花钱和材料,但如果你不改上面那行包里的钱少于订金依然不能改造,哪怕实际上并不会付一分钱)
                            NPChar.Tuning.Money= makeint(amount - makeint(amount / 2 +0.5));
                            NPChar.Tuning.Matherial1 = HPMatherial1; // GOOD_EBONY
                            NPChar.Tuning.Matherial2 = HPMatherial2; //GOOD_SANDAL      (加//的到这行为止)
                            NPChar.Tuning.ShipType       = Pchar.Ship.Type;
                            NPChar.Tuning.ShipName       = RealShips.BaseName;

下面还有一段
            shTo.HP      = sti(shTo.HP) + makeint(sti(shTo.HP)/5);
            shTo.Tuning.HP = true;
                // finish <--
其中
shTo.HP      = sti(shTo.HP) + makeint(sti(shTo.HP)/5);是每次修改的属性,/5就等于每次改造增加现有舰船属性的20%,改为/1就是每次改造增加属性的100%
shTo.Tuning.HP = true;是改造限制,默认只能改一次,在这行前面加上//,改为//shTo.Tuning.HP = true;就可以改造无限多次了

其他属性的修改也一样,找到类似的段落逐个修改就好


页: [1]
查看完整版本: 沉船之城改船不要材料怎么修改