Index  •  FAQ  •  Search   •   Register | Login  

It is currently Sat Nov 27, 2021 5:35 pm


Last visit was: style=

Post new topic Reply to topic  [ 8 posts ] 
 I converted Pikkas 37 to use CoupleStar! 
Author Message
 Post subject: I converted Pikkas 37 to use CoupleStar!
PostPosted: Wed Oct 06, 2021 2:42 pm 
Milepost 7
User avatar

Joined: Mon Jul 09, 2018 5:42 pm
Posts: 83
Trainz Version: T:ANE
Trainz Build: 4
Author KUID: 628458
Warning before you go any further: This is going to be a very long post cause of all the lines of script and I unfortunately can't find an option to make it collapsible. Note to self: Maybe put all this into a .txt file then put it as an attachment. :roll:

I've been learning a little scripting and have managed to alter the script on Pikkabird 37s to utilise the CoupleStar library as opposed to the legacy BlueStar code due to the fact that legacy Bluestar can't read couplestar configs that almost every other piece of rolling stock uses because the legacy bluestar config tags become errors as "obsolete" after a specific trainz build. Hence since that build number most if not all vehicles only work on Couplestar or ACS because they put tags inside the "extensions" container. The script that I'm going to show you is set up for reskins where the number is painted onto the loco so I also removed the auto numbering portion of the script. Plus it contains some parts on the init in order to change textures because it works with the newer method of aliasing, where the mesh table uses "mesh-asset" tags to specify what asset to get meshes from. Speaking of meshes all attachment points in the 37 are the same. I simply renamed the mesh-table and kuid-table entries to correspond with the CoupleStar standard. It uses the same coupler, hose and cable assets as before. Edit: As far as I know this script should work for the centre headcode "petroleum" model as well as the smoothnose variant. I haven't tested yet if it works without alterations on the split headcode version.

Without further ado then here is the revised br_37_reskin1

Code:
include "locomotive.gs"
include "library.gs"
include "MeshObject.gs"

class br_37_reskin1 isclass Locomotive
{
   thread void DirectionMonitor();
   thread void VehicleMonitor();
   int IsEndCar();
                 
                 void CouplingHandler(Message msg);

                 Library couplestar;

   void SetLights(int cartype, bool direction);

   public define int CAR_DERAILED = -1;
   public define int CAR_CENTER = 0;
   public define int CAR_FRONT = 1;
   public define int CAR_BACK = 2;
   public define int CAR_SINGLE = 3;

   Asset asCrew;
   Asset asRedMarker;
   Asset asHboxDisc;
                  Asset asPlough;



        int MyCoupleInt;
        string MyPlough;
        bool Plough = false;
   bool bCrewFront = false;
   bool bCrewRear = false;
   bool bHeadFront = false;
   bool bHeadRear = false;
   bool bTailFront = false;
   bool bTailRear = false;

   int status;
   bool runDM = true;
   bool bInit = false;
        bool bCFront = false;
   bool bCRear = false;

   // Wiper support
   void DoWeatherCheck(bool bDirection);
   void SetWipersOn(bool bDirection);         // Turns them on or off
   bool bWipersOnFront = false;            // Front wipers are on and running
   bool bWipersOnRear = false;               // Rear wipers are on and running
   bool bTurnWipersOff = true;
   
   //The Init function is called when the object is created
   public void Init(void)
   {
      // call the parent
      inherited();

                                   // apply reskinned textures to alias. Edit to correspond with your texture replacement entries in mesh-table of config
              SetFXTextureReplacementTexture("reskin1", "trs37main.texture");
              SetFXTextureReplacementTexture("reskin2", "trs372.texture");
              SetFXTextureReplacementTexture("reskin3", "horncover-horncover.texture");
              SetFXTextureReplacementTexture("reskin4", "fancover-fancover.texture");
      // Get the crew asset to attach later on
      asCrew = GetAsset().FindAsset("crew");
      asRedMarker = GetAsset().FindAsset("corona_red");
      asHboxDisc = GetAsset().FindAsset("hboxdisc");
      asPlough = GetAsset().FindAsset("plough");
      
couplestar = World.GetLibrary(GetAsset().LookupKUIDTable("CoupleStar_library"));
        if (couplestar) {
            GSObject[] objectParam = new GSObject[1];
            objectParam[0] = me;
            // Set up the initial couplers and hoses...
            couplestar.LibraryCall("SetInitialCouplers", null, objectParam);
        }

        AddHandler(me, "Vehicle", null, "CouplingHandler");

      // set up message sniffing
      Train mytrain = me.GetMyTrain();
      Sniff(mytrain, "Train", "", true);
   
        MyPlough = "1";
        Plough = Str.ToInt(MyPlough);

               if(Plough) {
                          me.SetFXAttachment("plough", asPlough);
                          }

      //Start the Couple Monitor
      VehicleMonitor();
     
   }
   
   // Monitoring the couple events. If a couple event happens, we check if we are now
   // or are no longer the last car in the consist
   thread void VehicleMonitor()
   {
      Message msg;
      //Interface.Log("VehicleMonitor start");
      while(status != CAR_DERAILED)
      {
         status = IsEndCar();
         if(status and runDM)
         {
            runDM = false;
            DirectionMonitor();
         }

         //Interface.Log("VehicleMonitor Waiting");
         wait()
         {
            on "Animation-Event", "wipers_rev", msg:
            {
               if (msg.src == me and bWipersOnRear and bTurnWipersOff)
               {
                  StopMeshAnimation("wipers_rev");
                  bWipersOnRear = false;
                  bTurnWipersOff = false;
                  break;
               }
               continue;
            }
   
            on "Animation-Event", "wipers_fwd", msg:
            {
               if (msg.src == me and bWipersOnFront and bTurnWipersOff)
               {
                  StopMeshAnimation("wipers_fwd");
                  bWipersOnFront = false;
                  bTurnWipersOff = false;
                  break;
               }
               continue;
            }

            on "Loading", "Complete":
            {
               runDM = true;
            }
            
              
        
            on "Vehicle", "Derailed", msg:
            {
                   if(msg.src == me)
                   {
                     //Interface.Log("VehicleMonitor: I am derailed");
                     status = CAR_DERAILED;
               }
            }

         }
      }
   }

   // The Direction Monitor checks the direction this vehicle is facing every x seconds
   thread void DirectionMonitor()
   {
      //Interface.Log("Direction Monitor start");
      bool direction;
   
      while(status > CAR_CENTER) // Exit when we are no longer an end car
      {
         //Interface.Log("Direction Monitor loop");
         status = IsEndCar();
         direction = GetFacingRelativeToTrain();
         SetLights(status, direction);
         DoWeatherCheck(direction);
         Sleep(5);
      }

      direction = GetFacingRelativeToTrain();
      SetLights(status, direction);
      DoWeatherCheck(direction);
      runDM = true;
   
      //Interface.Log("Direction Monitor end");
   }

   int IsEndCar()
   {
      Train consist;
      Vehicle[] cars;
      int rval = CAR_CENTER;
   
      consist = me.GetMyTrain();
      cars = consist.GetVehicles();
      if(me == cars[0])
      {
         rval = rval + CAR_FRONT;
      }
      if(me == cars[cars.size() - 1])
      {
         rval = rval + CAR_BACK;
      }
      return rval;
   }

   void SetLights(int cartype, bool direction)
   {
       //Interface.Log("SetLights called with cartype: \"" + cartype + "\" and direction: \"" + direction + "\"");
       switch(cartype)
       {
         case CAR_DERAILED:
         case CAR_CENTER:
            //Interface.Log("Switching off all lights - car is center car");
            SetFXAttachment("crew_fwd", null);
            SetFXAttachment("crew_rev", null);
            SetFXCoronaTexture("frontmarker_0", null);
            SetFXCoronaTexture("frontmarker_1", null);
            SetFXCoronaTexture("rearmarker_0", null);
            SetFXCoronaTexture("rearmarker_1", null);
            SetFXCoronaTexture("frontbox_0", null);
            SetFXCoronaTexture("frontbox_1", null);
            SetFXCoronaTexture("rearbox_0", null);
            SetFXCoronaTexture("rearbox_1", null);
            bCrewFront = false;
            bCrewRear = false;
            bHeadFront = false;
            bHeadRear = false;
            bTailFront = false;
            bTailRear = false;

            break;

         case CAR_FRONT:
            if(direction)
            {
               //Interface.Log("Switching on no.2 end marker lights - car is front car headed in opposite direction to train");
               if (!bCrewRear)
               {
                  SetFXAttachment("crew_fwd", null);
                  SetFXAttachment("crew_rev", asCrew);
                  bCrewFront = false;
                  bCrewRear = true;
               }
                       SetFXCoronaTexture("frontmarker_0", null);
                       SetFXCoronaTexture("frontmarker_1", null);
                       SetFXCoronaTexture("rearmarker_0", null);
                       SetFXCoronaTexture("rearmarker_1", null);
                  SetFXCoronaTexture("frontbox_0", null);
                  SetFXCoronaTexture("frontbox_1", null);
                  bHeadFront = false;
                            bTailFront = false;
                            bTailRear = false;

               if (!bHeadRear)
                                        {
                  SetFXCoronaTexture("rearbox_0", asHboxDisc);
                  SetFXCoronaTexture("rearbox_1", asHboxDisc);
                  bHeadRear = true;
               }

              }
              else
              {
               //Interface.Log("Switching on no.1 end marker lights - car is front car headed in same direction as train");
               if (!bCrewFront)
               {
                  SetFXAttachment("crew_fwd", asCrew);
                  SetFXAttachment("crew_rev", null);
                  bCrewFront = true;
                  bCrewRear = false;
               }
                  SetFXCoronaTexture("frontmarker_0", null);
                       SetFXCoronaTexture("frontmarker_1", null);
                       SetFXCoronaTexture("rearmarker_0", null);
                       SetFXCoronaTexture("rearmarker_1", null);
                                                SetFXCoronaTexture("rearbox_0", null);
                  SetFXCoronaTexture("rearbox_1", null);
                  bHeadRear = false;
                            bTailFront = false;
                            bTailRear = false;
                                        if (!bHeadFront)
               {
                  SetFXCoronaTexture("frontbox_0", asHboxDisc);
                  SetFXCoronaTexture("frontbox_1", asHboxDisc);
                  bHeadFront = true;

               }
            }
            break;

         case CAR_BACK:
            if(direction)
            {
               Interface.Log(GetRunningNumber() + "CAR_BACK, direction");
               //Interface.Log("Switching on no.1 end tail lights - car is end car headed in opposite direction to train");
               if (!bCrewRear)
               {
                  SetFXAttachment("crew_fwd", null);
                  SetFXAttachment("crew_rev", asCrew);
                  bCrewFront = false;
                  bCrewRear = true;
               }

                       SetFXCoronaTexture("rearmarker_0", null);
                       SetFXCoronaTexture("rearmarker_1", null);
                  SetFXCoronaTexture("frontbox_0", null);
                  SetFXCoronaTexture("frontbox_1", null);
                  SetFXCoronaTexture("rearbox_0", null);
                  SetFXCoronaTexture("rearbox_1", null);
                       bHeadRear = false;
                            bHeadFront = false;
                            bTailRear = false;
                                        if (!bTailFront)
               {
                  SetFXCoronaTexture("frontmarker_0", asRedMarker);
                       SetFXCoronaTexture("frontmarker_1", asRedMarker);
                  bTailFront = true;

               }

            }
            else
            {
               //Interface.Log("Switching on no.2 end tail lights - car is end car headed in same direction as train");
               Interface.Log(GetRunningNumber() + "CAR_BACK, !direction");
               if (!bCrewFront)
               {
                  SetFXAttachment("crew_fwd", asCrew);
                  SetFXAttachment("crew_rev", null);
                  bCrewFront = true;
                  bCrewRear = false;
               }
                  SetFXCoronaTexture("frontmarker_0", null);
                       SetFXCoronaTexture("frontmarker_1", null);
                       SetFXCoronaTexture("frontbox_0", null);
                  SetFXCoronaTexture("frontbox_1", null);
                  SetFXCoronaTexture("rearbox_0", null);
                  SetFXCoronaTexture("rearbox_1", null);
                       bHeadRear = false;
                            bHeadFront = false;
                            bTailFront = false;
                                        if (!bTailRear)
               {
                  SetFXCoronaTexture("rearmarker_0", asRedMarker);
                       SetFXCoronaTexture("rearmarker_1", asRedMarker);
                  bTailRear = true;

               }
            }
              break;
   
         case CAR_SINGLE:
            if(direction)
            {
               //Interface.Log("Switching on no.2 end marker lights - car is single car headed in opposite direction to train");
               // If I had a no.2 end, I'd be setting the no.2 end marker lights too...
               if (!bCrewRear)
               {
                  SetFXAttachment("crew_fwd", null);
                  SetFXAttachment("crew_rev", asCrew);
                  bCrewFront = false;
                  bCrewRear = true;
                                        }
                       SetFXCoronaTexture("rearmarker_0", null);
                       SetFXCoronaTexture("rearmarker_1", null);
                  SetFXCoronaTexture("frontbox_0", null);
                  SetFXCoronaTexture("frontbox_1", null);
                  bHeadFront = false;
                            bTailRear = false;
                                        if (!bTailFront)
               {
                  SetFXCoronaTexture("frontmarker_0", asRedMarker);
                       SetFXCoronaTexture("frontmarker_1", asRedMarker);
                  bTailFront = true;

               }
               if (!bHeadRear)
               {
                       SetFXCoronaTexture("rearbox_0", asHboxDisc);
                  SetFXCoronaTexture("rearbox_1", asHboxDisc);
                  bHeadRear = true;
               }
            }
            else
            {
               //Interface.Log("Switching on no.1 end marker lights - car is single car headed in same direction to train");
               // If I had a no.2 end, I'd be setting the no.2 end tail lights too...
               if (!bCrewFront)
               {
                  SetFXAttachment("crew_fwd", asCrew);
                  SetFXAttachment("crew_rev", null);
                  bCrewFront = true;
                  bCrewRear = false;
                                        }
                       SetFXCoronaTexture("frontmarker_0", null);
                       SetFXCoronaTexture("frontmarker_1", null);
                       SetFXCoronaTexture("rearbox_0", null);
                  SetFXCoronaTexture("rearbox_1", null);
                  bHeadRear = false;
                            bTailFront = false;
               if (!bTailRear)
               {
                  SetFXCoronaTexture("rearmarker_0", asRedMarker);
                       SetFXCoronaTexture("rearmarker_1", asRedMarker);
                  bTailRear = true;

               }
               if (!bHeadFront)
               {
                       SetFXCoronaTexture("frontbox_0", asHboxDisc);
                  SetFXCoronaTexture("frontbox_1", asHboxDisc);
                  bHeadFront = true;
               }
            }
           break;
   
         default:
            // this can't happen
            //Interface.Log("Broken Code alert, someone called SetLights with a cartype of \"" + cartype + "\" and direction of \"" + direction + "\"");
            break;
      }
   }


   void SetWipersOn(bool bDirection)
   {
      if (bDirection)
      {
         if (!bWipersOnRear)
         {
            StopMeshAnimation("wipers_fwd");
            SetMeshAnimationSpeed("wipers_rev", 1.0);
            StartMeshAnimationLoop("wipers_rev");
            bWipersOnFront = false;
            bWipersOnRear = true;
         }
      }
      else
      {
         if (!bWipersOnFront)
         {
            StopMeshAnimation("wipers_rev");
            SetMeshAnimationSpeed("wipers_fwd", 1.0);
            StartMeshAnimationLoop("wipers_fwd");
            bWipersOnFront = true;
            bWipersOnRear = false;
         }
      }
   }
   
   void DoWeatherCheck(bool bDirection)
   {
      if (status == CAR_SINGLE or status == CAR_FRONT or status == CAR_BACK)
      {
         // Get the weather type for the automatic wipers
         if (World.GetWeatherType() > World.WEATHER_TYPE_CLOUDY)
         {
            // Was dry, wipers were off, turn them on
            SetWipersOn(bDirection);
         }
         else
         {
            if (bWipersOnFront or bWipersOnRear)
            {
               // Was rainy, wipers were on, turn them off
               bTurnWipersOff = true;
            }
         }
      }
      else
      {
         // In case we've changed
         bTurnWipersOff = true;
      }
   }

void CouplingHandler(Message msg) {
        if (couplestar) {
            GSObject[] objectParam = new GSObject[2];
            objectParam[0] = me;
            objectParam[1] = msg.src;
            string[] stringParam = new string[2];
            stringParam[0] = msg.major;
            stringParam[1] = msg.minor;
            couplestar.LibraryCall("HandleMessage", stringParam, objectParam);
        }
    }
};



You'll also need to alter the config.txt for this to function.

In the mesh table you need to rename the coupler and hose things to correspond with CoupleStar standard naming schemes. Like this.
Code:
      coupler_a
      {
        kind                            "attachment"
        att                             "a.forward"
      }
     
      coupler_b
      {
        kind                            "attachment"
        att                             "a.reverse"
      }
     
      vachose_a
      {
        kind                            "attachment"
        att                             "a.forward"
      }
     
      vachose_b
      {
        kind                            "attachment"
        att                             "a.reverse"
      }
     
      airhose_a
      {
        kind                            "attachment"
        att                             "a.forward"
      }
     
      airhose_b
      {
        kind                            "attachment"
        att                             "a.reverse"
      }
     
      cl37_a
      {
        kind                            "attachment"
        att                             "a.forward"
      }
     
      cl37_b
      {
        kind                            "attachment"
        att                             "a.reverse"
      }


And finally in the kuid table replace the existing coupler KUID entries with these:
Code:
  couplestar_library                    <kuid2:75134:99002:12>
  couplestar_airhose_coupled            <kuid2:2512:31:1>
  couplestar_airhose_hanging            <kuid2:2512:30:1>
  couplestar_coupler_coupled            <kuid2:2512:29:1>
  couplestar_coupler_hanging            <kuid2:2512:28:1>
  couplestar_coupler_stowed             <kuid2:2512:58:1>
  couplestar_cl37_coupled               <kuid2:2512:36:1>
  couplestar_cl37_uncoupled             <kuid2:2512:35:1>
  couplestar_vachose_coupled_2lo        <kuid2:2512:33:1>
  couplestar_vachose_coupled_2hi        <kuid2:2512:34:1>
  couplestar_vachose_hanging            <kuid2:2512:32:1>


And don't forget your extensions! In this case I also put in ACS tags so that ACS stock will kind of know what to do if they couple to this. Also put a max permitted speed there too.

Code:
extensions
{
  couplestar-75134
  {
    bluestar_coupler                    "50"
    bluestar_brake                      "5"
    bluestar_extras                     "cl37"
  }
  max_permitted_speed-60850             "80mph"
 
  active-coupling-standard-60850
  {
    version-major                       "2"
    version-minor                       "0"
    brakes                              "dual"
   
    front
    {
      coupler                           "screwlink|hook"
      gangway                           "none"
      airbraketype                      "single"
      airbrakeside                      "right"
      vacbrake                          "left"
      multiple-working                  "blue-star"
      heating-type                      "none"
      rch                               "none"
    }
   
    back
    {
      coupler                           "screwlink|hook"
      gangway                           "none"
      airbraketype                      "single"
      airbrakeside                      "right"
      vacbrake                          "left"
      multiple-working                  "blue-star"
      heating-type                      "none"
      rch                               "none"
    }
  }
}


I hope people will make use of this revised script. Pikka. If you see this then please consider making this script official too it will be to the benefit of many.


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Thu Oct 07, 2021 3:46 pm 
Past 750!
User avatar

Joined: Sun Dec 12, 2010 5:33 pm
Posts: 794
Location: Wigan, Lancashire. WCML
Trainz Version: T:ANE sp4
Trainz Build: 105766
Author KUID: 174088
Not to sound funny but have you asked to change his asset.

You changed one of mine without asking and then said "I hope you appreciate my efforts."

well to be honest no i don't as I told you in a few messages you sent and I replied that I would do fix it at a later time as I was busy in my private life, this is just a hobby.
If you keep changing things that your not aloud to do, and putting it on your site is not the right thing to do. you will anger people and get yourself banned from some forums.

I know your only thinking your helping but sometimes your doing it the wrong way.


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Fri Oct 08, 2021 11:25 pm 
Milepost 7
User avatar

Joined: Mon Jul 09, 2018 5:42 pm
Posts: 83
Trainz Version: T:ANE
Trainz Build: 4
Author KUID: 628458
You are correct in that I’m trying to do this to help and have no bad intentions. The way I thought it would work with you was this. I make the fix -> Privately show it to the original author. -> original author makes the fix official by uploading fixed asset to DLS. As for the interpretation of all these license statements typically from the trainz communities I started in and learned from typically you’re free to reskin and modify to your hearts content for personal use usually permission is only required for when you publicly release. Unless the license says already that you are 100% free to redistribute. Then come methods like aliasing in order to comply with some authors wishes that no mesh files are included. As for the case of this 37 mod I didn’t explicitly share any “files” because technically all that my post is composed of is plain text laid out in a specific manner. I don’t want any trouble or drama sparked because of this. Not after what happened with the case of BLS. In the thread “Unauthorised reskins on the DLS again”. I always have this huge question floating in my head all the time. Why do railworks modders/reskinners never seem to need any sort of permission from authors when doing what they do, Meanwhile in Trainz we need it?

Keep it civil in here. Goodnight.


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Sat Oct 09, 2021 4:16 pm 
Forum Veteran
User avatar

Joined: Sun Dec 12, 2010 3:02 pm
Posts: 2999
Location: West Midlands
Trainz Version: TRS2019 , TANE SP4
Trainz Build: 111951
Author KUID: 45317
slenderman7676 wrote:
You are correct in that I’m trying to do this to help and have no bad intentions. The way I thought it would work with you was this. I make the fix -> Privately show it to the original author. -> original author makes the fix official by uploading fixed asset to DLS.


Here's an idea : How about showing some common sense by asking the author first so that they can give you permission , and/or tell you that they have already modified it and haven't gotten round to uploading and/or that they've already given permission to somebody else to do the same thing .

You keep putting the cart before the horse , so is it any wonder that content creators are getting agitated !

You did it with me the other month showing off reskins of a Eurostar generator coach based on my Mk3 sleeper mesh , You hadn't had permission and to make things worse I'd already given permission to another reskinner who subsequently gave me an ear full when they thought I'd also said yes to you to do the same thing . So I had to spend my precious spare time putting out fires that you had created . Not only that I'd also been very specific in a previous email I'd sent you telling you to contact me first for permission before reskinning or modifying any of my work ! Instead you pushed the finished item under my nose and tried to get round the license breach by suggesting I release it , Bit late though after posting the screenshots first on the forums a good couple of weeks before you emailed me . Is it any wonder that I showed you the same courtesy by not replying !?

Honestly I think its great that you've got that bug and enthusiasm to be a reskinner and I don't want to stifle that enthusiasm but you really are digging a hole for yourself in how you are going about in respect of using other creators work .

slenderman7676 wrote:
Why do railworks modders/reskinners never seem to need any sort of permission from authors when doing what they do, Meanwhile in Trainz we need it?


That is Railworks and this is Trainz . The only reason that it seems like it's a free for all in Railworks is because DTG and their predecessors have flooded the market with their payware content , Their content their rules . But if you actually had a good look you would find that most third party Railworks providers have licensing rules connected to content that has been produced solely by them . I've seen plenty of spats on Railworks forums where a reskinner has reskinned third party work and has been brought to task over their lack of permission to do so .

Unlike Railworks the vast majority of content available for Trainz has been produced by third party content providers and not N3V or its predecessor(s) .
Our content our rules .

Yes it's a bit of minefield to navigate licensing in Trainz and sadly due to your age your a bit late to the party in respect of contacting some of the older creators but I'm afraid that's how it is . One size fits all does not apply in Trainz .

Show some courtesy and the creators will hopefully show some back .

_________________
High visibility pixels must be worn when on or about the line !!


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Sat Oct 09, 2021 4:43 pm 
Milepost 7
User avatar

Joined: Mon Jul 09, 2018 5:42 pm
Posts: 83
Trainz Version: T:ANE
Trainz Build: 4
Author KUID: 628458
I'm sorry Nexus. It's just that ever since I began reskinning all the guides I had read mainly simply stated to put it in my words and TLDR "No perms needed for private, personal use reskins. Perms are needed if you want to publicly release." I can remember you letting me release the first reskins I did of your Mk3a's into the classic Virgin livery. Which I am grateful for. As for the EPS generator coach then I've stopped using the one that was a reskin of your model because I actually got to work and made my own from scratch that features the right end details. I'm scared of replying to this topic now because I'm afraid that what I say will just add fuel to the flames. I'm just an 18 year old Autistic kid who enjoys train sims and has an obsession with Chunnel stuff. I formally appologise for the mess that I unknowingly made and hope that we can put this behind ourselves. The thing about permission before reskin is that if I wanted to reskin something and successfully get permission granted. But then I find that I am actually unable to make the reskin due to its complexity, etc then since I got the permission then it is unlikely that the author will give anyone else permission because they think I'm working on it. Until I get back in touch and say "Sorry but I can't do it."
I'm just used to reskinning then asking for release permissions after I've done it because in the past I had no troubles. I'd reskin something then contact the authors with a few pics and a cdp then they usually would simply just go "OK. Release away!"
You are right in that license statements can be a minefield at times. Especially on the fact that some could interpret it as something whilst others may interpret it as something else. Hence why I asked for a public oppinion on the license interpretation when I was busy making my Class 373 revamp pack here: viewtopic.php?f=12&t=4287


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Sat Oct 09, 2021 5:36 pm 
Past 750!
User avatar

Joined: Sun Dec 12, 2010 5:33 pm
Posts: 794
Location: Wigan, Lancashire. WCML
Trainz Version: T:ANE sp4
Trainz Build: 105766
Author KUID: 174088
Don't be afraid of asking or even asking if the person is still in trainz.

We want people that love the game to stay in the game but, we also want people to understand what we as content creators want too.

I have people who help me with reskining and things like that, we call them beta testers.

We then fix or modify things, that need it sorting i do have a few things that get past us.

Have a bit of Patience, and watch posts that have problems and help then or start a post about a problem and them ask if they need help.

As for the interpretation of all these license statements, don't interpret if it says no reskins or don't reskin or don't change anything without permissions. always ask it's safer than upsetting the creator and getting yourself a bad name.

same with autistic people they maybe differant at learning at differant rates, but My nephews are autistic but one does computer stuff great and the other does not get it and likes drawing. maybe tell some one mark or one of the other who run site that your having problems with some thing.

I have learning problems, ask Paul hobbs I used to bother him all the time when I was learning in 2006 to use Gmax, now I learn others how to use it.


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Sat Oct 09, 2021 6:51 pm 
Forum Veteran
User avatar

Joined: Sun Dec 12, 2010 3:02 pm
Posts: 2999
Location: West Midlands
Trainz Version: TRS2019 , TANE SP4
Trainz Build: 111951
Author KUID: 45317
@Slenderman : Thank you for your apology and for letting us know the reasons why , I can understand better now why things have happened as they have and it puts us all on here in a more knowledgeable position so that we can be more understanding when interacting with you in the future .

_________________
High visibility pixels must be worn when on or about the line !!


Offline
 Profile  
 
 Post subject: Re: I converted Pikkas 37 to use CoupleStar!
PostPosted: Wed Oct 13, 2021 4:39 pm 
Milepost 7
User avatar

Joined: Mon Jul 09, 2018 5:42 pm
Posts: 83
Trainz Version: T:ANE
Trainz Build: 4
Author KUID: 628458
Thanks Nexus. By the way you've got an Email for a reskin I want to do. Just waiting for a response. Since I'm doing things the right way now in accordance with your reskin policy.


Offline
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 


 Who is online 

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron

 
Index  |  FAQ  |  Search

phpBB skin developed by: John Olson
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group