1. Dismiss Notice
  2. GOG.com logo

    Thanks to YOUR votes, GOG.com now sells:
    - Sea Dogs - Sea Dogs: Caribbean Tales
    - Sea Dogs: City of Abandoned Ships

    Vote now to add Pirates of the Caribbean to the list!

    Dismiss Notice
  3. Under the Crossbones Podcast

    A Pirate Podcast with Interviews
    Music, Comedy and all things Pirate!

    - Episode Guide - About - Subscribe -
    - Twitter - Facebook - iTunes - Android -
    - Youtube - Fill the Coffers -

    Dismiss Notice
  4. New Horizons logo

    Quick links for PotC: New Horizons
    - Download latest version
    - Wiki - FAQ - Report bugs here
    - ModDB profile

  5. GOF logo

    Quick links for AoP2: Gentlemen of Fortune 2
    - Downloads and info
    - Historical Immersion Supermod
    - ModDB Profile

Dismiss Notice
New to the forum?
Please take a moment to read our Welcome Message and Forum Rules.

Solved Different colored sails for each nation

Discussion in 'Sea Dogs: City of Abandoned Ships' started by jean, Jun 13, 2015.

  1. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Hi,

    I modified Battle_interface.c to get different sails and it's works. But the problem is I can't anymore change
    the color of my own ship at shipyart, and when I buy a ship the sails are the same color the nation I am.

    Code:
    switch(sti(Characters[chrIdx].nation))  // Íå ðàáîòàåò ýòî :(
         {
      trace("voiles couleur")
           case ENGLAND:   
              BI_objRetValue.sailscolor = argb(255, 255, 255, 153);//Yellow 
           break;
           case FRANCE:   
            BI_objRetValue.sailscolor = argb(255, 0, 0, 255);
           break;
           case SPAIN:     
             BI_objRetValue.sailscolor = argb(255, 3, 91, 80);
           break;
           case PIRATE:
             BI_objRetValue.sailscolor = argb(255, 60, 60, 60)//Black
           break;
           case HOLLAND:   
             BI_objRetValue.sailscolor = argb(255, 128, 128, 128);//Gray
           break;
           case MORVIS:   
             BI_objRetValue.sailscolor = argb(255, 255, 15, 15);//Red
           break;
      case PORTU:     
             BI_objRetValue.sailscolor = argb(255, 153, 255, 153);//Green 
           break;
         }
    
    It seems that the "BI_objRetValue" can't be removed. Has somebody an idea to change that?
     
  2. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    DeleteAttribute(BI_objRetValue, "sailscolor"); perhaps?
     
  3. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Thanks for your answer, Pieter, it doesn't work. It seems "Battle_Interface" says you've to keep the colors
    of your sails, and shipyarder says I only can change your emblems...:oops:
     
  4. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    How are your own personal sail colours defined?
    Perhaps a CheckAttribute around that whole switch statement might help?
     
  5. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Well, my personal sail colours aren't defined. There's a "int chrIdx = GetEventData();" which include encounters and player.
    I tried that (but it didn't work):

    if(CheckAttribute(PChar,"ship.sails.color"))
    {
    DeleteAttribute(&BI_objRetValue,"sailscolor");
    }

    So I tried :

    chrIdx.ship.sails.color = argb(255, 255, 153, 153);

    It's a little much better, I can change the colours of my sails (I see it ashore) but as soon as I go at sea colours change again...:(
     
  6. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Maybe:
    Code:
    if(!CheckAttribute(PChar,"ship.sails.color"))
    {
       switch(sti(Characters[chrIdx].nation))  // Íå ðàáîòàåò ýòî :(
       {
         trace("voiles couleur")
         case ENGLAND:   
           BI_objRetValue.sailscolor = argb(255, 255, 255, 153);//Yellow
         break;
         case FRANCE:   
           BI_objRetValue.sailscolor = argb(255, 0, 0, 255);
         break;
         case SPAIN:   
           BI_objRetValue.sailscolor = argb(255, 3, 91, 80);
         break;
         case PIRATE:
           BI_objRetValue.sailscolor = argb(255, 60, 60, 60)//Black
         break;
         case HOLLAND:   
           BI_objRetValue.sailscolor = argb(255, 128, 128, 128);//Gray
         break;
         case MORVIS:   
           BI_objRetValue.sailscolor = argb(255, 255, 15, 15);//Red
         break;
         case PORTU:   
           BI_objRetValue.sailscolor = argb(255, 153, 255, 153);//Green
         break;
       }
    }
     
  7. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    It doesn't work. Right now I don't know what to do else, I'll see tomorrow...:wp
     
  8. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    I am in progress, now I can change the color of my sails...but whole ships have "my" color. I don't know if I must laugh or cry. :rofl
     
  9. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    That's OK, it's works. :fiddler

    Code:
    ref procGetSailTextureData()
    {
        int st,i,sq;
            int ms;
        ref shref;
        aref arEmbl,arSail;
        string attrName;
    
            int PChar = nMainCharacterIndex;
        int chrIdx = GetEventData();
    
        //DeleteAttribute(&BI_objRetValue,"");
    
        string sUpgrade = "common";
    
        ref    refBaseShip = GetRealShip(GetCharacterShipType(&characters[chrIdx])); // boal
    
        int iUpgrade = sti(refBaseShip.ship.upgrades.sails);  // boal
        switch(iUpgrade)
        {
            case 1:
                sUpgrade = "common";
            break;
            case 2:
                sUpgrade = "pat";
            break;
            case 3:
                sUpgrade = "silk";
            break;
        }
        //BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
        ///âûñòàâëåíèå ãåðáà (ïåðåíåñòè íèæå â êàýéç íàöèé. âñå ÷òî â ýòîì êåéçå óáðàòü
        //BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
        //BI_objRetValue.sailscolor = argb(255,255,255,255);
    
        //BI_objRetValue.geraldTexPointer = 0; // (IDirect3DTexture8*)
    
        string nationFileName = "ships\parus_" + sUpgrade + ".tga";
        string tmpStr;
    
            if(chrIdx==nMainCharacterIndex)    chrIdx = -1;
        if (chrIdx>=0)
        {
             BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
         BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
         BI_objRetValue.sailscolor = argb(255,255,255,255);
                    if (CheckAttribute(&characters[chrIdx], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[chrIdx].ship.sails.color);
            }
            if( CheckAttribute(&characters[chrIdx],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[chrIdx].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
           
            switch(sti(Characters[chrIdx].nation))  // Íå ðàáîòàåò ýòî :(
            {                        
                                      trace("voiles couleur")
    
                case ENGLAND:   
                     BI_objRetValue.sailscolor = argb(255, 255, 255, 153);//Yellow
                break;
                case FRANCE:   
                                    BI_objRetValue.sailscolor = argb(255, 0, 0, 255);// deep blue
                break;
                case SPAIN:       
                    BI_objRetValue.sailscolor = argb(255, 3, 91, 80);//Lilo
                break;
                case PIRATE:
                    BI_objRetValue.sailscolor = argb(255, 60, 60, 60)//Black
                break;
                case HOLLAND:   
                    BI_objRetValue.sailscolor = argb(255, 128, 128, 128);//Gray
                break;
                case MORVIS:   
                    BI_objRetValue.sailscolor = argb(255, 255, 15, 15);//Red
                break;
                            case PORTU:       
                    BI_objRetValue.sailscolor = argb(255, 153, 255, 153);//Green
                break;
            }
    
                   st = GetCharacterShipType(GetCharacter(chrIdx))
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                    {
                    BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                    nationFileName           = shref.EmblemedSails.normalTex;
                    }
                if( CheckAttribute(&Characters[chrIdx],"Features.GeraldSails") && sti(Characters[chrIdx].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
                /*if (CheckAttribute(shref, "GeraldSails"))
                   {
                    makearef(arEmbl, shref.GeraldSails);  */
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            //BI_objRetValue.(attrName).Gerald = nationFileName; 
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                        //BI_objRetValue.(attrName).Gerald = "ships\chuckskull.tga"; // òåêñòóðà ãåðáà (åñëè íå óêàçàíà, òî áåðåòñÿ BI_objRetValue.geraldTex èëè BI_objRetValue.geraldTexPointer)
                        //BI_objRetValue.(attrName).hscale = 0.5; // ìàñøòàá â ðàçìåðå ïàðóñà (0.5 - ãåðá çàíèìàåò ïîëîâèíó ïàðóñà)
                        //BI_objRetValue.(attrName).vscale = 0.5; // åñëè íåò vscale, òî èñïîëüçóåòñÿ = scale
                    }
            }
               return &BI_objRetValue;
        }
    
           if (nMainCharacterIndex == 1)
        {
              BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
          BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
          BI_objRetValue.sailscolor = argb(255,255,255,255);
                    if (CheckAttribute(&characters[nMainCharacterIndex], "ship.sails.color"))//"ship.sailscolor"
            {
                BI_objRetValue.sailscolor = sti(characters[nMainCharacterIndex].ship.sails.color);//sti(characters[chrIdx].ship.sailscolor);
            }
            if( CheckAttribute(&characters[nMainCharacterIndex],"Ship.Sails.gerald_name") )//"ShipSails.gerald_name" // íå íàñëåäóåòñÿ ïðè îáìåíå êîðàáëåé, ïîòîìó íå â  ship.
            {
                BI_objRetValue.geraldTex = characters[nMainCharacterIndex].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
                            trace("couleur de mon navire")
                 
                   ms = GetCharacterShipType(GetCharacter(nMainCharacterIndex))
            if(ms!=SHIP_NOTUSED)
            {
                shref = GetRealShip(ms);
                BI_objRetValue.maxSP = shref.sp;
                    }
              return &BI_objRetValue;
             }
       
    }
    Now I've to see for differents geraldsails :monkeydance
     
  10. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
  11. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Thanks a lot Pieter :doff
     
  12. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Hi,

    I try to give differents sails color to my officers, but it does'nt work. Could somebody have a look and teel me what could be wrong?
    Code:
    Trace officier mais pas changement de voiles
    
    ref procGetSailTextureData()
    {
        int st,i,sq;
            int ms, os;
        ref shref;
        aref arEmbl,arSail;
        string attrName;
    
            int PChar = GetMainCharacterIndex();
        int chrIdx = GetEventData();
    
             int cn, e;
             int offref;
    
               for (e=0; e<COMPANION_MAX; e++)
        {
            cn = GetCompanionIndex(GetMainCharacter(), e);
            if (cn>=0)
            {
                offref = GetCharacter(cn);
                    }
            }
    
        //DeleteAttribute(&BI_objRetValue,"");
    
        string sUpgrade = "common";
    
        ref    refBaseShip = GetRealShip(GetCharacterShipType(&characters[chrIdx])); // boal
    
            int iclass = sti(refBaseShip.Class);
    
        int iUpgrade = sti(refBaseShip.ship.upgrades.sails);  // boal
        switch(iUpgrade)
        {
            case 1:
                sUpgrade = "common";
            break;
            case 2:
                sUpgrade = "pat";
            break;
            case 3:
                sUpgrade = "silk";
            break;
        }
        BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
        ///âûñòàâëåíèå ãåðáà (ïåðåíåñòè íèæå â êàýéç íàöèé. âñå ÷òî â ýòîì êåéçå óáðàòü
        BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
        BI_objRetValue.sailscolor = argb(255,255,255,255);
    
        //BI_objRetValue.geraldTexPointer = 0; // (IDirect3DTexture8*)
    
        string nationFileName = "ships\parus_" + sUpgrade + ".tga";
        string tmpStr;
    
            if(chrIdx==PChar)    chrIdx = -1;
    
            if(chrIdx==offref)    chrIdx = -1;
    
             if (chrIdx>=0)
             {                                        
             BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
         BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
         BI_objRetValue.sailscolor = argb(255,255,255,255);
                    if (CheckAttribute(&characters[chrIdx], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[chrIdx].ship.sails.color);
            }
            if( CheckAttribute(&characters[chrIdx],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[chrIdx].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
                            
            switch(sti(Characters[chrIdx].nation))  // Íå ðàáîòàåò ýòî :(
            {  
                case ENGLAND:
                                if(iClass < 4){   
                     BI_objRetValue.sailscolor = argb(255, 219, 199, 71);//Yellow
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 255, 255, 153);//argb(255, 209, 145, 49);// yellow
                                     BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
                case FRANCE:
                                if(iClass < 4){   
                                    BI_objRetValue.sailscolor = argb(255, 0, 0, 255);// deep blue
                                    BI_objRetValue.geraldTex = "ships\gerald\fra_3.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 105, 180, 230);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\fra_5.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 153, 204, 255);//Blue
                                    BI_objRetValue.geraldTex = "ships\gerald\fra_6.tga";trace("petite classe")}
                break;
                case SPAIN:
                                if(iClass < 4){       
                    BI_objRetValue.sailscolor = argb(255, 3, 91, 80);//green
                                    BI_objRetValue.geraldTex = "ships\gerald\spa_4.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 153, 255, 153);// yellow
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
                case PIRATE:
                                if(iClass < 4){
                    BI_objRetValue.sailscolor = argb(255, 60, 60, 60)//Black
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\pir6.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 128, 128, 128);// Grey
                                    BI_objRetValue.geraldTex = "ships\gerald\pir1.tga";trace("petite classe")}
                break;
                case HOLLAND:   
                                if(iClass < 4){
                    BI_objRetValue.sailscolor = argb(255, 128, 128, 128);//Gray
                                    BI_objRetValue.geraldTex = "ships\gerald\hol_4.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255,60,60,60);// Black
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
                case MORVIS:
                                if(iClass < 4){   
                    BI_objRetValue.sailscolor = argb(255, 255, 15, 15);//Red
                                    BI_objRetValue.geraldTex = "ships\gerald\pir_6.tga";
                                    BI_objRetValue.normalTex = "ships\parus_common_torn.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\pir_1.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255,255,110,90);// yellow
                                    BI_objRetValue.geraldTex = "ships\gerald\pir_3.tga";trace("petite classe")}
                break;
                            case PORTU:
                                if(iClass < 4){       
                    BI_objRetValue.sailscolor = argb(255, 153, 255, 153);//pas Green
                                    BI_objRetValue.geraldTex = "ships\gerald\spa_3.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255,255,255,255);// yellow
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
    
                                     trace("voiles couleur nations")
            }
              
                   st = GetCharacterShipType(GetCharacter(chrIdx))
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                    {
                    BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                    nationFileName           = shref.EmblemedSails.normalTex;
                    }
                if( CheckAttribute(&Characters[chrIdx],"Features.GeraldSails") && sti(Characters[chrIdx].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            //BI_objRetValue.(attrName).Gerald = nationFileName; 
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
            }
               return &BI_objRetValue;
        }
    
           if (PChar == 1)
        {
                    if (CheckAttribute(&characters[PChar], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[PChar].ship.sails.color);
            }
            if( CheckAttribute(&characters[PChar],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[PChar].Ship.Sails.gerald_name;
            }
                            trace("couleur de mon navire")
                 
                   ms = GetCharacterShipType(GetCharacter(PChar))
            if(ms!=SHIP_NOTUSED)
            {
                shref = GetRealShip(ms);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                       {
                      BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                      nationFileName           = shref.EmblemedSails.normalTex;
                       }
                if( CheckAttribute(&Characters[PChar],"Features.GeraldSails") && sti(Characters[PChar].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
               
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
                    }
             }
           
                 if (offref >= 0)
              {
              trace("l officier est present 1")
          
                    if (CheckAttribute(&characters[offref], "ship.sails.color"))
            {
                            trace("couleur de son navire")
                BI_objRetValue.sailscolor = sti(characters[offref].ship.sails.color);
            }
            if( CheckAttribute(&characters[offref],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[offref].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
                       os = GetCharacterShipType(GetCharacter(offref))
            if(os!=SHIP_NOTUSED)
            {
                shref = GetRealShip(os);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                       {
                      BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                      nationFileName           = shref.EmblemedSails.normalTex;
                       }
                if( CheckAttribute(&Characters[offref],"Features.GeraldSails") && sti(Characters[offref].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
               
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
                    }
             }
        return &BI_objRetValue;
    }
    Thanks.
     
  13. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    I don't see where that offref is used further down in the code.
    What do you intend to use that for? To check if the character is a player companion so he'll have matching sails to you?
     
  14. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Yes Pieter, and I'd like to be able to change companions color sails. It's strange cause with the code :

    if (offref >= 0)
    {
    trace("l officier est present 1")

    if (CheckAttribute(&characters[offref], "ship.sails.color"))
    {
    trace("couleur de son navire")
    BI_objRetValue.sailscolor = sti(characters[offref].ship.sails.color);
    }

    traces are in my compile.log but nothing happen.

    By the way, I took your lines for "differents ships for differents nations", works fine. :dance
     
  15. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    I'm not familiar enough with the CoAS code to tell you why it doesn't work.
    What I can do though is to attach the PotC Build Mod version of that function.
    That one was rewritten quite a bit my me and it finally does what we want it to do.

    Of course the ability to change sail colour purely through code is a CoAS feature that PotC never had.
    Maybe this can at least point you a bit in the right direction.
     

    Attached Files:

    Trent likes this.
  16. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Thanks a lot Pieter, I gonna try it.
     
  17. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    You're great, Pieter, it works ! Three lines were missing :
    Code:
     
          char = GetCharacter(chrIdx);
           st = GetCharacterShipType(char);
          shref = GetShipByType(st);
    So, the code is :
    Code:
    ref procGetSailTextureData()
    {
        int st,i,sq;
        ref shref, char;
        aref arEmbl,arSail;
        string attrName;
    
        int PChar = GetMainCharacterIndex();
        int chrIdx = GetEventData();
    
        char = GetCharacter(chrIdx);
        st = GetCharacterShipType(char);
        shref = GetShipByType(st);
    
        string sUpgrade = "common";
    
        ref    refBaseShip = GetRealShip(GetCharacterShipType(&characters[chrIdx])); // boal
    
        int iclass = sti(refBaseShip.Class);
    
        int iUpgrade = sti(refBaseShip.ship.upgrades.sails);  // boal
        switch(iUpgrade)
        {
            case 1:
                sUpgrade = "common";
            break;
            case 2:
                sUpgrade = "pat";
            break;
            case 3:
                sUpgrade = "silk";
            break;
        }
        BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
        ///âûñòàâëåíèå ãåðáà (ïåðåíåñòè íèæå â êàýéç íàöèé. âñå ÷òî â ýòîì êåéçå óáðàòü
        BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
        BI_objRetValue.sailscolor = argb(255,255,255,255);
    
        //BI_objRetValue.geraldTexPointer = 0; // (IDirect3DTexture8*)
    
        string nationFileName = "ships\parus_" + sUpgrade + ".tga";
        string tmpStr;
    
            if(chrIdx==PChar)    chrIdx = -1;
    
             if (chrIdx>=0)
             { 
           
                                           
                BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
                BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
                BI_objRetValue.sailscolor = argb(255,255,255,255);
                    if (CheckAttribute(&characters[chrIdx], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[chrIdx].ship.sails.color);
            }
            if( CheckAttribute(&characters[chrIdx],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[chrIdx].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
                 
                 switch(sti(Characters[chrIdx].nation))  // Íå ðàáîòàåò ýòî :(
              {  
    
               if(IsCompanion(char))
                   {
                          trace("l officier est present 1")
          
             if (CheckAttribute(&characters[char], "ship.sails.color"))
            {
                            trace("couleur de son navire")
                BI_objRetValue.sailscolor = sti(characters[char].ship.sails.color);
            }
            if( CheckAttribute(&characters[char],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[char].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                    }
                   }
                else
                   {
             case ENGLAND:
                                if(iClass < 4){   
                     BI_objRetValue.sailscolor = argb(255, 219, 199, 71);//Yellow
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 255, 255, 153);//argb(255, 209, 145, 49);// yellow
                                     BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
                case FRANCE:
                                if(iClass < 4){   
                                    BI_objRetValue.sailscolor = argb(255, 0, 0, 255);// deep blue
                                    BI_objRetValue.geraldTex = "ships\gerald\fra_3.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 105, 180, 230);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\fra_5.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 153, 204, 255);//Blue
                                    BI_objRetValue.geraldTex = "ships\gerald\fra_6.tga";trace("petite classe")}
                break;
                case SPAIN:
                                if(iClass < 4){       
                    BI_objRetValue.sailscolor = argb(255, 3, 91, 80);//green
                                    BI_objRetValue.geraldTex = "ships\gerald\spa_4.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 153, 255, 153);// yellow
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
                case PIRATE:
                                if(iClass < 4){
                    BI_objRetValue.sailscolor = argb(255, 60, 60, 60)//Black
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\pir6.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255, 128, 128, 128);// Grey
                                    BI_objRetValue.geraldTex = "ships\gerald\pir1.tga";trace("petite classe")}
                break;
                case HOLLAND:   
                                if(iClass < 4){
                    BI_objRetValue.sailscolor = argb(255, 128, 128, 128);//Gray
                                    BI_objRetValue.geraldTex = "ships\gerald\hol_4.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255,60,60,60);// Black
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
                case MORVIS:
                                if(iClass < 4){   
                    BI_objRetValue.sailscolor = argb(255, 255, 15, 15);//Red
                                    BI_objRetValue.geraldTex = "ships\gerald\pir_6.tga";
                                    BI_objRetValue.normalTex = "ships\parus_common_torn.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\pir_1.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255,255,110,90);// yellow
                                    BI_objRetValue.geraldTex = "ships\gerald\pir_3.tga";trace("petite classe")}
                break;
                case PORTU:
                                if(iClass < 4){       
                    BI_objRetValue.sailscolor = argb(255, 153, 255, 153);//pas Green
                                    BI_objRetValue.geraldTex = "ships\gerald\spa_3.tga";}
                                if((iClass == 4) || (iClass == 5)){   
                     BI_objRetValue.sailscolor = argb(255, 255, 153, 153);//Red
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(255,255,255,255);// yellow
                                    BI_objRetValue.geraldTex = "ships\gerald\pir3.tga";trace("petite classe")}
                break;
    
                                     trace("voiles couleur nations")
            }
                }
              
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                    {
                    BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                    nationFileName           = shref.EmblemedSails.normalTex;
                    }
                if( CheckAttribute(&Characters[chrIdx],"Features.GeraldSails") && sti(Characters[chrIdx].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            //BI_objRetValue.(attrName).Gerald = nationFileName; 
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
            }
               return &BI_objRetValue;
        }
    
           if (PChar == 1)
        {
             if (CheckAttribute(&characters[PChar], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[PChar].ship.sails.color);
            }
            if( CheckAttribute(&characters[PChar],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[PChar].Ship.Sails.gerald_name;
            }
                            trace("couleur de mon navire")
                 
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                       {
                      BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                      nationFileName           = shref.EmblemedSails.normalTex;
                       }
                if( CheckAttribute(&Characters[PChar],"Features.GeraldSails") && sti(Characters[PChar].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
               
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
                    }
             }
        return &BI_objRetValue;
    }
    :doff :cheers
     
    Trent and Pieter Boelen like this.
  18. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,623
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Congratulations! :cheers
     
  19. jean

    jean Master Mariner Storm Modder

    Joined:
    May 22, 2008
    Messages:
    217
    Gender:
    Male
    Location:
    France
    Hi,

    you've just to open Program\Battle_interface\Battleinterface.c, look for the code :

    Code:
    ref procGetSailTextureData()
    {
        int st,i,sq;
        ref shref;
        aref arEmbl,arSail;
        string attrName;
    
    ..........................................................
    ..........................................................
    
    //BI_objRetValue.(attrName).Gerald = "ships\chuckskull.tga"; // òåêñòóðà ãåðáà (åñëè íå óêàçàíà, òî áåðåòñÿ BI_objRetValue.geraldTex èëè BI_objRetValue.geraldTexPointer)
                        //BI_objRetValue.(attrName).hscale = 0.5; // ìàñøòàá â ðàçìåðå ïàðóñà (0.5 - ãåðá çàíèìàåò ïîëîâèíó ïàðóñà)
                        //BI_objRetValue.(attrName).vscale = 0.5; // åñëè íåò vscale, òî èñïîëüçóåòñÿ = scale
                    }
                //}
            }
        }
    
        return &BI_objRetValue;
    }
    and change it with this one :

    Code:
    ref procGetSailTextureData()
    {
        int st,i,sq;
        ref shref, char;
        aref arEmbl,arSail;
        string attrName;
    
            int PChar = GetMainCharacterIndex();
        int chrIdx = GetEventData();
    
            char = GetCharacter(chrIdx);
            st = GetCharacterShipType(char);
        shref = GetShipByType(st);
    
        string sUpgrade = "common";
    
        ref    refBaseShip = GetRealShip(GetCharacterShipType(&characters[chrIdx])); // boal
    
            int iclass = sti(refBaseShip.Class);
    
        int iUpgrade = sti(refBaseShip.ship.upgrades.sails);  // boal
        switch(iUpgrade)
        {
            case 1:
                sUpgrade = "common";
            break;
            case 2:
                sUpgrade = "pat";
            break;
            case 3:
                sUpgrade = "silk";
            break;
        }
        BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
        ///âûñòàâëåíèå ãåðáà (ïåðåíåñòè íèæå â êàýéç íàöèé. âñå ÷òî â ýòîì êåéçå óáðàòü
        BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
        BI_objRetValue.sailscolor = argb(255,255,255,255);
    
        //BI_objRetValue.geraldTexPointer = 0; // (IDirect3DTexture8*)
    
        string nationFileName = "ships\parus_" + sUpgrade + ".tga";
        string tmpStr;
    
            if(chrIdx==PChar)    chrIdx = -1;
    
             if (chrIdx>=0)
             {
          
                                          
                    BI_objRetValue.normalTex = "ships\parus_" + sUpgrade + ".tga";
                BI_objRetValue.geraldTex = "";//"ships\gerald\chuckskull.tga";
                BI_objRetValue.sailscolor = argb(255,255,255,255);
                    if (CheckAttribute(&characters[chrIdx], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[chrIdx].ship.sails.color);
            }
            if( CheckAttribute(&characters[chrIdx],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[chrIdx].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
                
                 switch(sti(Characters[chrIdx].nation))  // Íå ðàáîòàåò ýòî :(
              { 
    
               if(IsCompanion(char))
                   {
                          trace("l officier est present 1")
         
                    if (CheckAttribute(&characters[char], "ship.sails.color"))
            {
                            trace("couleur de son navire")
                BI_objRetValue.sailscolor = sti(characters[char].ship.sails.color);
            }
            if( CheckAttribute(&characters[char],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[char].Ship.Sails.gerald_name;//ShipSails.gerald_name;
            }
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                    }
                   }
                else
                   {
                case ENGLAND:
                                if(iClass < 4){      
                    BI_objRetValue.sailscolor = argb(5, 149, 74, 17);
                                    BI_objRetValue.geraldTex = "ships\gerald\eng_3.tga";}
                                if((iClass == 4) || (iClass == 5)){  
                     BI_objRetValue.sailscolor = argb(5, 168, 88, 27);
                                     BI_objRetValue.geraldTex = "ships\gerald\eng_4.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(5,125,83,51);
                                    BI_objRetValue.geraldTex = "ships\gerald\eng_5.tga";trace("petite classe")}
                break;
                case FRANCE:
                                if(iClass < 4){  
                                    BI_objRetValue.sailscolor = argb(5, 0, 0, 255);// deep blue
                                    BI_objRetValue.geraldTex = "ships\gerald\fra_3.tga";}
                                if((iClass == 4) || (iClass == 5)){  
                     BI_objRetValue.sailscolor = argb(5, 36, 120, 217);
                                     BI_objRetValue.geraldTex = "ships\gerald\fra_5.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(5, 0, 95, 203);//Blue
                                    BI_objRetValue.geraldTex = "ships\gerald\fra_6.tga";trace("petite classe")}
                break;
                case SPAIN:
                                if(iClass < 4){      
                    BI_objRetValue.sailscolor = argb(5, 3, 91, 80);
                                    BI_objRetValue.geraldTex = "ships\gerald\spa_4.tga";}
                                if((iClass == 4) || (iClass == 5)){  
                     BI_objRetValue.sailscolor = argb(5, 64, 164, 151);
                                     BI_objRetValue.geraldTex = "ships\gerald\spa_1.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(5, 0, 158, 137);
                                    BI_objRetValue.geraldTex = "ships\gerald\spa_2.tga";trace("petite classe")}
                break;
                case PIRATE:
                                if(iClass < 4){
                    BI_objRetValue.sailscolor = argb(5, 60, 60, 60)//Black
                                    BI_objRetValue.geraldTex = "ships\gerald\pir4.tga";}
                                if((iClass == 4) || (iClass == 5)){  
                     BI_objRetValue.sailscolor = argb(5, 15, 22, 29);
                                     BI_objRetValue.geraldTex = "ships\gerald\pir6.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(5, 55, 59, 63);
                                    BI_objRetValue.geraldTex = "ships\gerald\pir5.tga";trace("petite classe")}
                break;
                case HOLLAND:  
                                if(iClass < 4){
                    BI_objRetValue.sailscolor = argb(5, 255, 15, 15);
                                    BI_objRetValue.geraldTex = "ships\gerald\hol_4.tga";}
                                if((iClass == 4) || (iClass == 5)){  
                     BI_objRetValue.sailscolor = argb(5, 233, 0, 47);
                                     BI_objRetValue.geraldTex = "ships\gerald\hol_2.tga";}
                                if(iClass > 5){BI_objRetValue.sailscolor = argb(5,233,72,104);
                                    BI_objRetValue.geraldTex = "ships\gerald\hol_1.tga";trace("petite classe")}
                break;
                                     trace("voiles couleur nations")
            }
                }
             
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                    {
                    BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                    nationFileName           = shref.EmblemedSails.normalTex;
                    }
                if( CheckAttribute(&Characters[chrIdx],"Features.GeraldSails") && sti(Characters[chrIdx].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            //BI_objRetValue.(attrName).Gerald = nationFileName;
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
            }
               return &BI_objRetValue;
        }
    
           if (PChar == 1)
        {
                    if (CheckAttribute(&characters[PChar], "ship.sails.color"))
            {
                BI_objRetValue.sailscolor = sti(characters[PChar].ship.sails.color);
            }
            if( CheckAttribute(&characters[PChar],"Ship.Sails.gerald_name") )
            {
                BI_objRetValue.geraldTex = characters[PChar].Ship.Sails.gerald_name;
            }
                            trace("couleur de mon navire")
                
            if(st!=SHIP_NOTUSED)
            {
                shref = GetRealShip(st);
                BI_objRetValue.maxSP = shref.sp;
                // boal -->
                if (CheckAttribute(shref, "EmblemedSails.normalTex")) // çàäíàííûé â òèïå ïàðóñ
                       {
                      BI_objRetValue.normalTex = shref.EmblemedSails.normalTex;
                      nationFileName           = shref.EmblemedSails.normalTex;
                       }
                if( CheckAttribute(&Characters[PChar],"Features.GeraldSails") && sti(Characters[PChar].Features.GeraldSails)==true)
                {
                    makearef(arEmbl,shref.GeraldSails);
                } else {
                    makearef(arEmbl,shref.EmblemedSails);
                }
              
                    // boal <--
                    sq = GetAttributesNum(arEmbl);
                    for(i=0; i<sq; i++)
                    {
                        arSail = GetAttributeN(arEmbl,i);
                        attrName = GetAttributeName(arSail);
                        tmpStr = GetAttributeValue(arSail);
                        if( CheckAttribute(arSail,"hscale") ) {
                            BI_objRetValue.(attrName).hscale = arSail.hscale;
                        }
                        if( CheckAttribute(arSail,"vscale") ) {
                            BI_objRetValue.(attrName).vscale = arSail.vscale;
                        }
                        if(tmpStr=="1") {
                            BI_objRetValue.(attrName) = nationFileName;
                        } else {
                            BI_objRetValue.(attrName).Gerald = tmpStr;
                        }
                    }
                    }
             }
        return &BI_objRetValue;
    }
    You also can choose another color for a nation, just go here :

    http://www.code-couleur.com/

    and then change argb in the code.

    :cheers
     
    Trent likes this.
  20. Hylie Pistof

    Hylie Pistof Curmudgeon Staff Member QA Tester Storm Modder

    Joined:
    Jan 15, 2010
    Messages:
    13,768
    Gender:
    Male
    I tried the changes in your last post and it seems to work. I was afraid it would not as some of the things are written in French. It seems to work in this English version so far.

    I have not seen a dialog to change my sails yet, but others seem to change ok. That French blue is too blue IMHO.

    start 2015-07-15 13-15-55-53.jpg start 2015-07-15 13-26-56-59.jpg start 2015-07-15 14-24-33-02.jpg start 2015-07-15 14-24-45-84.jpg start 2015-07-15 14-24-59-87.jpg
     

Share This Page