Jump to content

uyjulian

Members
  • Posts

    61
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by uyjulian

  1. I already translated the KAG3, TJS2, and Kirikiri Z documentation. It was translated mostly using Google Translate, with some accuracy and grammar corrections by myself.

     

    https://ghpages.uyjulian.pw/kag3-documents/e/contents/index.html

    https://ghpages.uyjulian.pw/krkrz-documents/e/contents/index.html

    https://ghpages.uyjulian.pw/tjs2-documents/e/contents/index.html

    https://ghpages.uyjulian.pw/multi_platform_design/apiref/

     

    As others has mentioned, Kirikiri is poorly documented and has a poor ease of use.

    As such, I don't recommend using it for new projects, instead recommending Ren'Py which has a larger and active Western community. (In fact, I am contributing to Ren'Py myself)

    The codebase may be fast and lean, but it is also heavily fragile and also uses poor programming practices, which can result in security issues (A documented one is CVE-2015-5672, but there are many others that are not documented, such as one in KAGParser (Out of bounds read), another **major** one in Layer (Arbitrary memory read/write), and another one in WaveSoundBuffer (Arbitrary code execution)).

     

  2. My port of Kirikiri is getting to a point where other people can use it to create games on it, and publish it on a web server.

    On this thread on the /news4vip/ board on 5ch, xyx0no646 is requesting assistance with creating a template for my new engine, so I would appreciate it if you took a look.

    https://hebi.5ch.net/test/read.cgi/news4vip/1595505275/l50

  3. 14 hours ago, Mutank said:

    Okay never mind my last post, I just reinstalled the game from scratch to completely remove any possibility of lingering values.

    Without running the game, I modified the Config.tjs parameters from earlier to 0xffffff and recompressed > ran the game.

    The text is still in black, which just leaves me confused. I think I may be missing something here, but I can't imagine what.

    Check the "color" argument of tag "font" in the KAG scenario file.

  4. 30 minutes ago, Mutank said:

    I can find defaultChColor, defaultShadowColor and defaultEdgeColor set to 0x000000 in Config.tjs. I changed all three to 0xffffff just in case, but the message display doesn't seem to change

    once I put the modified scripts into the game. As for Layer.drawText, I can't seem to find it anywhere.

    You need to restart the game from the beginning, as the current text color is saved in the savefile.

     

    "drawText" is a member of "Layer" class. "Layer" class may be extended by other classes.

  5. You need to pay in order to post on 5ch from overseas IP. If you have domestic IP and provider is not blacklisted (that means no VPNs) you can post for free.

    You can find more information about the premium service here: https://premium.5ch.net/

    Make sure to call your bank to ensure that overseas transaction won't be rejected.

     

    Forums, blogs, etc have been dying, in preference to modern social media platforms like Twitter, Facebook... and chat applications like LINE, Discord...

     

  6. It is possible to override a TJS2 class with the same name, but you must follow the following rules:

    1. Use a unique identifier when declaring a class

    Example of this wrong usage:

    global.ClassToOverride_original = global.ClassToOverride;
    class ClassToOverride extends global.ClassToOverride_original
    {
    }
    	

    When instantiating the class, this will cause a segmentation fault.

    2. Do not use an identifier that has been deleted

    Example of this wrong usage:

    global.ClassToOverride_original = global.ClassToOverride;
    delete global.ClassToOverride;
    class ClassToOverride extends global.ClassToOverride_original
    {
    }
    	

    This will cause Member does not exist exception.

    3. Place the original class name as the constructor

    With these three rules, we can override a TJS2 class while keeping the same name.

    global.ClassToOverride_uniqueidentifier_original = ClassToOverride;
    class ClassToOverride_uniqueidentifier_override extends ClassToOverride_uniqueidentifier_original
    {
        function ClassToOverride_uniqueidentifier_override()
        {
            super.ClassToOverride(...);
        }
    	 function ClassToOverride()
        {
            ClassToOverride_uniqueidentifier_override(...);
        }
    }
    global.ClassToOverride = ClassToOverride_uniqueidentifier_override;
    	

    This is a cleaner way of adding features like word wrapping or line breaking to KAG, compared to some code I've seen.

  7. I built Kirikiri Z using Clang 9.0.0.

     

    https://github.com/uyjulian/krkrz/releases/download/v2.0.0.0-portability_fixes/tvpwin_test_clang900.7z

    Source code is in the repository github/uyjulian/krkrz under the tag v2.0.0.0-portability_fixes.

     

    If you want to try this on commercial games, decrypt the XP3 files, take out the encryption plugins, then use the following command line argument:

    -graphicsystem=drawdevice
    


     
×
×
  • Create New...