Posts by GrimFusion

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.

    Hope I'm no necroing here, but in a few of my games I use an active shape object(for the GUI), an active picure object (for the avatar), and character image object (the text). You can change the color and opacity of the active shape object at runtime. The active picture object can swap avatar images at runtime, too. The character image object can be swapped with any bitmap font extension.

    You can use a couple more extensions to basically create a script interpreter that loads an external game script file like this:
    [gametextInts]
    NoOfValues=0
    Base=0
    [gametextStrings]
    NoOfStrings=1024
    Base=0
    0=01Welcome to this game.
    1=01As of right now, there's no title for this game. Odd, since how could one be building an entire engine without having any idea what to make the game about.
    2=02I mean, so far there's no hero. What kind of game is this when there isn't even a hero. Pretty lame, if you ask me.
    3=02No graphics, no enemies, no music. What qualifies this as a game at all?
    4=03Nothing! This simply is not a game. Happy now? You've gone and upset the developer.
    5=01Shame on you.
    6=02Oh, hello there. As you can tell by your surroundings, you've caught me a bit off-guard. I'm afraid I'm not really prepared to prompt you with text.
    7=04I hope you'll understand. I don't mean to be rude, but I'm not even a sign yet. Just a lowly ground tile that triggers a dialog event.
    8=35If you look to your left, you'll see my brother the orange tile. He's kind of inconsiderate and foreboding. All the other event triggers think he's full of himself.
    9=01Don't bother triggering his event dialog unless you want to see seperate event triggers pull text from seperate ini entries in the same file.
    10=02Ini entries? Files? I'm not quite sure what those are, but the programmer asked me to read from this script. He said you'd understand.
    11=01Am I still talking? Probably.
    12=08I'm STILL talking. This should not be happening.

    You can use the global store x extension to load a list of strings from an ini file in the game directory. You can call specific strings right from it. The two numbers at the very beginning of each string can be pulled with Val$ and Left$ string manipulation. They control which avatar loads beside the text - just keep a bunch of images titled 01-99 in a local game directory. You can load the Right$(length of string)-2 into the character image extension once you have a font configured.

    All you need to do at that point is create, reposition, or change visibility to make the dialog system disappear off screen and reappear on-screen, create a group of events that freeze on-screen enemies and players triggered by an object flag; Turn it on and everything freezes, the dialog appears, the string is requested from the global store x object and external INI. The left two characters of the string gets converted into a value and the active picture object loads a file like 05.png from a local folder. The remainder of the string gets loaded into the character image object as text. If the flag is still on while the user pushes a keyboard key, just grab the next string and display it. If the user pushes the same button while the flag is off, have it make all dialog objects invisible (move them, destroy them, whatever).

    I like to add a couple of buttons on the active shape object that control the whole dialogue's positioning on-screen (so it can appear at the top or bottom of the frame. At one point, I had a dialog system that ran just by supplying a beginning line and end line of the script. Once it reached the last line, it would "unpause" the characters and kill the dialog system objects entirely. I was able to allow in-game events change the conversations each of the NPCs had with the main... kinda like a reputation system. Still trying to figure out a convieniant way to build options into this sort of engine.

    Active shape > active object where simple guis are concerned. Opacity at runtime without much resource impact for the win.

    I have MMF2 running a Python IRC bot - so far, initializing the code works - the bot connects to IRC and prints content submitted to the IRC chan back into MMF2, but I notice that when I exit MMF2 or attempt to open a different .py file, the bot code continues running.

    I need MMF2 to be able to end the execution of the IRC python code itself - preferrably without having to exit the MMF2 project or destroying the Python object. Any solutions? I've tried loading a seperate python file with the content:
    import os
    os._exit(0)

    ...but the python object seems to treat it like a completely individual python file instead of applying the command to the currently running IRC.py. Admittedly, I don't know much about Python. It's more my girlfriend's thing - but she wants me to create a GUI for her Py code. -_-

    Before I get into my question, no; I don't want to use LaceWing or the DarkSocket extension (sorry, DarkWire). I'm not trying to switch extensions and start my project all over again because somebody has a preference for some other extension. I've asked the same question on ClickConverse and over at tDC to no avail. The only answer I get is "why are you using IRC?" or "Don't use Moosock, use DarkSocket".

    I've searched google, tDC, CT's forums, and asked around on ClickConverse. Every time I think I've found an example or tutorial, it turns out to be a 404 error or a broken link. I understand that there isn't much interest in supporting IRC connectivity in MMF2 apps which would explain why the tutorials just don't exist anymore, but I'd really rather not depend on someone else's LaceWing server and IRC connectivity just seems to be far more dependable.

    Anyway, I'm not having any issue understanding how MooSock works. I get the methodology. I just don't know what commands I need to send through to the IRC server to create a persistent connection. I keep getting booted on Ident server and PING requests. The PING requests seem pretty straight-forward, but it's rare I get a PING request before the Ident server request and in either regard, I simply get disconnected afterward.

    This is what I've got:

    ::/ Winident.exe is the stand-alone Ident server.
    Start of Frame:
    MooSock -> Select socket at index 0;
    Special Conditions -> Execute external program "apppath$+"bin\ident\winident.exe"

    Connect Button Clicked:
    MooSock -> Connect to "irc.dal.net" on port 6667;

    ::/ Sends server messages to the Rich Text Object so I can see how the server is replying.
    MooSock On Received:
    MooSock -> Accept;
    Rich Text Object -> Set text to GetText$( "Rich Edit Object", 0, GetNChars( "Rich Edit Object" ))+RecvLine$( "MooSock" )+NewLine$;

    ::/ Sends Nick + NickName. Sends USER + NickName + localIP + ClientName + :Real Name.
    MooSock On Connect:
    MooSock -> Send Text Line "NICK " +Edittext$("Username_Editbox");
    MooSock -> Send Text Line "USER "+Edittext$( "Username_Editbox" )+" "+GetLocalIP$( "MooSock" )+" MMFclient"+" :Grim Client";

    ::/ Displays when my app is disconnected from the IRC server.
    MooSock on Disconnect:
    Rich Text Object -> GetText$( "Rich Edit Object", 0, GetNChars( "Rich Edit Object" ))+"Disconnected!"+NewLine$;

    ::/ Replies to PING requests by removing the first four characters and sending the request as PONG + remainder of original PING request.
    Compare two General Values: Left$(RecvLine$( "MooSock" ), 4)="PING":
    MooSock -> Send Text Line "PONG"+Right$(RecvLine$( "MooSock" ), Len(RecvLine$( "MooSock" ))-4);
    Rich Text Object -> GetText$( "Rich Edit Object", 0, GetNChars( "Rich Edit Object" ))+"PONG"+Right$(RecvLine$( "MooSock" ), Len(RecvLine$( "MooSock" ))-4)+NewLine$;

    Disconnect Button Clicked:
    MooSock -> Disconnect.

    Can anybody tell me what I'm doing wrong? I may have the configuration on the Ident server messed up, or I could just be going about this in the entirely wrong fashion. I don't know because I don't get any feedback outside of "Disconnected!". If anybody can help or at least point me to an example or tutorial, I would be really appreciative.

    I'm making a simple RTF editor, but my background color feature doesn't work as expected. I've had it working already, but using a really clunky text-based system that parses RGB values by pulling them as the last 11 characters in a preset string, but now I'm thinking I'd like to create an actual color selector.

    Problem is, the RTF object only accepts color values in two formats. "255, 255, 255" as a string which determines Red, Green, and Blue values respectively and some weird "BLUE*00000 + GREEN*00000 + RED*00000" integer format that I don't quite understand.

    The color picker's I've used don't allow for separate RGB values, and I can't really determine any standard RGB value from them. Usually, they pass some number like 6736193. I could understand that if G=061 and B=093, but Red can't be more than 255 in a standard RGB system.

    I threw out the idea of using the color-picker system and built a mini subapp with three numerical slider controls. Standard values are all 100; max to 255. Problem is, I can't find any kind of object that will handle each of the separate RGB values to display the user-selected color (there's no items that can preview even if I find some way to combine the three numerical slider values).

    So, yeah... I can allow the user to change the separate color values and apply them to the RTF document background, but without any user preview. I can get a preview using the color selector object, but then I can't apply it to the RTF document background.

    I don't think this issue has been addressed, but I've noticed most of the registry objects I've tried (registry 2, Power Registry, Registry++)working with are only 32-bit. When a registry edit is called from MMF2 under a 64-bit version of Windows, registry edits are placed here:
    \Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\System\ ...and don't take effect. Sad.

    Here's a link to accessing the registry under a 64-bit OS:
    Please login to see this link.

    It'd also be nice including some kind of function for testing OS version. It's not a necessity, as the OS Info extension can determine whether a 32-bit or 64-bit OS is installed, but it'd be kinda nice keeping it all in one object, especially since ensuring registry compatibility essentially means doing twice the work.

    I've read through a few different tutorials, but it seems that in each case the user is asking how to include command-line arguments while loading files and applications.

    I'm a computer technician, and I'm trying to figure out a way to send common network diagnosis commands to the command prompt like:
    ipconfig /release
    ipconfig /renew

    ...but without a BAT file that can be easily edited.
    The closest I've come so far is making the MMF2 app create the BAT file and run it, then delete the file before the program exits. While that seems somewhat secure, I really want to make the app as small and minimalistic as possible and I'd really rather interact with the command prompt directly.

    1. I'm not sure about K&P being given away in a magazine. I had to buy my copy back in the day, but I'd imagine if it were included, it'd likely be along the same lines as the K&P for Schools, or functionally limited somehow.

    2. I don't think they made different license types for K&P. I don't think that came around until TGF. I don't think there was a way to stop the "Made with Klik&Play" boot screen.

    3. Jamagic was one of the first 3D game makers, and the first offered by clickteam. The few people I knew who did use it reported it was buggy and hard to work with, and a year or two after Jamagic's release, there were much better 3D game makers on the market, so Jamagic was pretty much passed up.