Jump to content

hikkaru12

Members
  • Content Count

    5
  • Joined

  • Last visited

Posts posted by hikkaru12


  1. On 2/22/2017 at 9:07 PM, Reins said:

    run this script on act editor - credits goes to tokei

    int count = act.GetAllFrames().Count + 1;
    int index = 0;

    TaskManager.DisplayTaskC("Rendering frames...", "Please wait...", () => index, count, new Action<Func<bool>>(isCancelling => {
    try {
    foreach (var action in act) {
    foreach (var frame in action) {
    if (frame.Layers.Count <= 1) {
    index++;
    continue;
    }
    if (isCancelling()) return;

    var image = frame.Render(act);
    var box = ActImaging.Imaging.GenerateFrameBoundingBox(act, frame);
    int relativeIndex = -1;

    for (int i = 0; i < act.Sprite.Images.Count; i++) {
    if (image.Equals(act.Sprite.Images[i])) {
    if (isCancelling()) return;
    relativeIndex = act.Sprite.AbsoluteToRelative(i, act.Sprite.Images[i].GrfImageType == GrfImageType.Indexed8 ? 0 : 1);
    }
    }

    if (relativeIndex < 0) {
    relativeIndex = act.Sprite.InsertAny(image);
    }

    int offsetX = (int) ((int) ((box.Max.X - box.Min.X + 1) / 2) + box.Min.X);
    int offsetY = (int) ((int) ((box.Max.Y - box.Min.Y + 1) / 2) + box.Min.Y);
    var layer = new Layer(relativeIndex, image);

    layer.OffsetX = offsetX;
    layer.OffsetY = offsetY;

    frame.Layers.Clear();
    frame.Layers.Add(layer);
    index++;
    }
    }

    // Removes unused sprites - old way, older versions have a bug
    for (int i = act.Sprite.Images.Count - 1; i >= 0 ; i--) {
    if (act.FindUsageOf(i).Count == 0) {
    var type = act.Sprite.Images[i].GrfImageType;
    var relativeIndex = act.Sprite.AbsoluteToRelative(i, type == GrfImageType.Indexed8 ? 0 : 1);
    act.Sprite.Remove(relativeIndex, type);

    if (type == GrfImageType.Indexed8) {
    act.AllLayers(layer => {
    if ((layer.IsIndexed8() && type == GrfImageType.Indexed8) ||
    (layer.IsBgra32() && type == GrfImageType.Bgra32)) {
    if (layer.SpriteIndex == relativeIndex) {
    layer.SpriteIndex = -1;
    }
    }
    });
    }

    act.Sprite.ShiftIndexesAbove(act, type, -1, relativeIndex);
    }
    }
    }
    finally {
    index = count;
    }
    }));

    Hi...can you teach me how to use this script to combite multilayer sprites?

    I have a problem when trying to run this script as shown below:
    image.png.dcc033193c299effbeaf9f8da711adc2.png

     

    Thanks for your help.
    Cheers


  2. Purchased some of his work with a little recolor:

     

    Quality: 10/10

    Delivery Time: 7/10

    Price: He gave me 10% discount!!

     

    I enjoyed his service, and amazed by his works!

    Well done, Haziel!

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.