Posts by idnewton

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.

    * Only one action when event loops
    + Is any key pressed down?

    If I hold CTRL and press C, it will only click for CTRL and won't click for C. My goal is for it to click every time I press a button. So, if I don't have "Only one action when event loops", it will continue to make the sound as long as I hold the button (not ideal). However, by limiting the loops, it will only fire when "any key" stops looping, so pressing a key while holding another will trigger no additional sound.

    Thanks for the quick reply :) I tried that, but there's only a "repeat" version. Using "Only one action when event loops", that keeps the event from firing unless no keys are already pressed. So if I have it trigger a keyboard sound, and i want to use CTRL + C, it goes "click" when I press and hold CTRL, but it doesn't click when I press C because i was already "looping" the event. Is there any workaround for this?

    Simple setup. When any key is pressed, make a sound and change the background color of an empty frame. If the window is not active, it will not make the sound and will not change the color of the background (added the background test to make sure it wasn't an audio problem).

    There are joystick objects which don't have this problem, but the default keyboard object as well as Control X do. Does anyone have a solution?

    I got the Google Maps page to load in the Web Control object, but it's giving this error every time it loads: Please login to see this link.

    Is this error coming from Fusion, from the Web Control Object, or from Internet Explorer? And most importantly, how do I keep it from showing up? Since it's not actually preventing the map from loading. I'd like to avoid having to click it every time I load this frame in my application.... especially since there are two maps (and therefore two dialog boxes to click every time).


    Edit: This might be due to the Web Control object forcibly using Compatibility Mode. Is there a way to get around this?

    Edit 2: I don't suppose there's a way to EMBED the map in a Fusion application using the Google Maps embed text that it gives...?

    I've resolved the issue. The problem stems from the Web Control Object's "No History" checkbox in the Settings section of Properties. This pisses Google off, and reverting the settings will not fix it -- you have to go into Internet Explorer and clear the browsing data (I'm not sure what, exactly, I just cleared everything since I never use it anyway).

    Edit: The "Silent Mode" option also causes this to occur.

    Edit 2: "Override script errors", and most of the other options also cause this to occur. The one option in "Use & Security" that I know *DOESN'T* cause it to get mad is "No Page Cache".

    THIS POST'S ISSUE IS FIXED, BUT ANOTHER RELATED ISSUE IS DETAILED IN POST 3


    Hey, I've been trying to set up a frame with some Google Maps (with predetermined start points and destinations).

    I've been able to get the Web Control object to work with other sites, but when I try to use it for Google Maps, it just shows this: Please login to see this link.

    Tried changing the browser type from Auto to IE11, but every time I click off the object it resets that setting (a few other settings on the object work that way too).

    The weird part is, it was working before I started messing with the options and trying to remove the error message it gives. Now, even reverting the options back to their original setting will not fix it.

    Any suggestions?

    I'm trying to use a popup via the Dialog Box in order to allow a user to input text to create a new line (with the name of said text) in a Combo Box object. Unfortunately, when I use the Dialog Box object and put an Edit Box in it, and go to the Event Editor, I don't see any way to actually get the user-inputted text from the Edit Box within the Dialog Box object! What's the point of the Edit Box feature of the Dialog Box object if I can't even read or grab the text from it in any way?

    I hope I'm just missing something here.

    Hey there, I was wondering if there exists an object which would allow me to control non-Fusion applications via a Fusion application. This object would function nearly identical to the "Window Control" Object, but affect other applications. Fusion already allows us to launch external applications via the "File" object, but I want to be able to re-position and re-size that window via my Fusion application. Does such an object exist? Any help would be greatly appreciated.


    PS: Versions owned: MMF2 Dev, Fusion 2.5 Dev

    I did see that just the other day. I assume you are talking about that extension which has a map editor, allows you to place/delete walls, position sprites, etc?

    Well, that's very close to what I want to do, but I'd like to be able to have walls that don't necessarily all make right angles. Also, the main reason I'm really doing this is to make my own 3D from scratch, even if it isn't as good as one which uses that extension. I guess it's not very helpful to have someone who's so... particular about methods. In the past I've used Unreal Engine 3 a lot so I'm not really trying to use Fusion to satisfy my 3D desire, so much as I'm trying to use it simply to see if I can make something in 3D with a 2D engine. Again, I suppose it's a little... narrow-minded. If I could find some kind of object which allows you to make a 4-sided figure by plotting points, I don't think I'd run into any other issues. On second thought, however, maybe it would be a 3-sided shape? After all, 3D models are made up of triangles, not rectangles.

    Still completely stumped by Occlusion, but I'll worry about crossing that bridge if I can ever get to it XD

    Hmm... Still, I'm not 100% sure that will do the trick. Essentially without going into too much detail I'm trying my hand at making a 3D game out of fusion (something along the lines of Doom). Still working through the final bugs with the depth/on-screen position system, but once that's done, it'd be nice to be able to draw a wall by using four points plotted with the same system as the sprites. I'm still trying to figure out in my head just how in the world I'm going to handle Occlusion, but I'll cross that bridge when I get to it. For now I'm simply aiming for a box-like room (four walls, floor, ceiling, no geometry elsewhere).

    Is there any kind of object that can do this? Or a system already built into the application? The line drawing is okay, but it would need to be a texture (like an Active).

    I went to post this thread again, conveniently using the same name, and it showed up in my history of thread titles so I google searched it and found it. Apparently you replied literally THE DAY OF, but I guess I haven't enabled notification on this forum so half a year later when I picked the project back up and ran into the exact same problem and looked in the exact same place... I see your answer. So, thanks for your help :D

    TL:DR - Very delayed THANK YOU :D

    Why does the RTF object's Replace Selection action trigger (and input the text) even if nothing is selected? Because there's no way to test whether or not text is selected, and there's no way to test how many of a single character exists in the RTF object, I don't see any way, for example, to change every "a" in the text to "c".

    Is there a work-around for this, or is it a known bug?

    My focus now is trying to tackle the combat system as a whole, as far as organization goes. This doesn't include the player's ability to choose skill tree talents, nor does it include enemy AI and their abilities quite yet, but it does cover all of the values involved in combat. For instance, the character's stat points (like strength), how those stat points combine (with or without curved equations, depending) into the main 'stats' the player sees (like Bonus Damage, which technically breaks down into two different types).

    Right now my primary problem is data storage. For example, the player needs a set of values that tell the game if each buff/debuff/passive is active or not. Well, since there will be nine skill trees (three for each class, three classes total) as well as many different buffs and debuffs, I can't simply have ten active objects and use all of their alterable values to store information simply regarding buffs/debuffs/passives. After all, I would then need another set of X number of objects to hold that same information about an enemy, and so on for each enemy. Therefore, the best option appears to be the String Parser object. Unfortunately, I don't quite know how to use it yet.

    If I understand this object correctly, it will allow me to use Alterable Strings to hold multiple different values. As an example, let's say one Alterable String of the player deals with an entire skill tree. All of the talents in that skill tree are represented in that same string, and the String Parser is used to retrieve that information, and also write to it.


    If my understanding of the String Parser object is correct, it appears that it will be necessary to use this object to design an efficient combat system. If my understanding of the String Parser object is correct, can you briefly explain how it works, or direct me to a tutorial/guide of some sort? Thanks :)

    Do not use the fastloop object, use the built-in fastloops instead.


    Ah, thanks for the tip, I found it.


    If you need to run the calculation more than once, whilst using the same random number each time, then generate a random number in a separate event, and save it into a temporary variable, such as an alterable value or a global value.


    Also, that's a great idea. It might look something more like this, then:


    Also, in case you didn't see this from an earlier post:

    Legend:
    <> = Fastloop
    --> = "then" (as in, "if then" statement)
    [] = Input (from the player)
    {} = Perform an action
    & = Signifies another condition or action
    Bold Letters = This line represents a GROUP of events
    Normal Letters = This line represents an EVENT
    Italic Letters = This term represents a scripted (or soon to be scripted) part of the code, such as a targeted enemy or a player's critical chance.

    PS: I'm using "smash" as an example for the name of the ability.

    For the final post of the night, I'll be giving an example of how I plan to handle attacks in my game. Thanks to the help I've already received, I'm able to conquer roadblocks that have stopped me in the past. However, one seemingly minor detail still stands in the way: factoring in the chance to critically hit. At first, I thought "of course, that's easy, all I have to do is use an "X chances out of Y" condition such as "<crit chance> chances out of 1" (1 = 1.00 = 100%). Unfortunately it's not quite that easy, because I cannot find a way to perform an action when that chance *FAILS*. It'll be more obvious as I show how I plan to make this work.

    Legend:
    <> = Fastloop
    --> = "then" (as in, "if then" statement)
    [] = Input (from the player)
    {} = Perform an action
    & = Signifies another condition or action
    Bold Letters = This line represents a GROUP of events
    Normal Letters = This line represents an EVENT
    Italic Letters = This term represents a scripted (or soon to be scripted) part of the code, such as a targeted enemy or a player's critical chance.

    PS: I'm using "smash" as an example for the name of the ability.

    This following code represents the original way I planned to handle critical hits, but I will point out the flaw afterwards if you do not spot it yourself.


    As mentioned, interaction with friendly targets (buffs, healing, CONVERSATIONS (bane of my existence!), etc.) will come later. For now I'm primarily concerned just with combat with enemies. Once I have a good base code for abilities including damage, cooldown, procs, and other stuff like that, making new abilities will pretty much be smooth sailing. Just copy and paste, change the names, sounds, values, and it's done.

    Two points I want to make. First, since I haven't used the term 'proc' yet, I just want to make sure the meaning is reasonably clear. Let's say your character has a 30% chance to activate a DoT when using a certain attack. You use the attack, the DoT activates. You have 'procced' the DoT. The chance to activate that DoT is referred to as the 'proc chance'. The DoT itself which has been activated is also sometimes referred to as a 'proc', and (though I haven't used the term yet) people sometimes refer to the random chance involved in that proc as 'RNG', which means "random number generator". It refers to the chance involved in percent-possibilities to proc something. For example, you have an attack which hits three times over the span of three seconds. Each time it hits, it has a 60% chance to proc an effect. You use the ability, go through all three ticks, and don't get the proc. That could be referred to as having "bad RNG".

    The second point I want to make is the fundamental flaw in the above code, the fact that my handling of Critical Chance is wrong. At first glance it might look totally fine, but if you think about it for a second, it goes a little something like this. First, you activate your ability, either by clicking on the icon or by pressing a hotkey. The ability is now activated, and runs the fastloop <Ability>. The fastloop <Ability> activates an animation, and when that animation reaches a certain frame, it activates <Ability_Output>. Okay, up until now, we're totally fine. Now comes the problem. I say that if <Ability_Output> is activated, and if Crit Chance chances out of 1, then activate Flag 0 and run fastloop <Ability_Output_BC>. The problem comes when the ability does not critically hit. This event only fires if <Ability_Output> is activated and the Crit Chance chances out of 1 succeeds. What if it doesn't? Well, obviously, Flag 0 is not turned on. However... since it's the same command, that also means <Ability_Output_BC> is never activated. It only activates if the ability critically hits.

    This comes down to a bigger problem which concerns the "X chances out of Y" condition. This event only tests whether it succeeds. If it succeeds, then do action A B and C. But there's no way to test what happens when it doesn't succeed. If you copy and paste the event, and invert the condition (if that's possible, which it probably is) it's not going to have the same random number selected as the other event. Also, as a side-note, I really don't like the idea of activating a flag if it succeeds at the crit roll, then testing for that flag and using separate events to deal damage depending on whether or not that flag is off or on. I couldn't think of a better way to do it, but this method (obviously) was not a satisfactory solution either.

    I'm curious how I could factor a critical chance into the damage dealt. If it was a simple 50% chance, I could use (Base Damage) + (Random(2) * (Crit Damage)), so it would have a 50% chance to deal the crit damage (and my crit damage will be more complicated than a simple static value). Unfortunately, this is reality, and my crit chance will not be a nice neat 50% chance (nor should it). So with that said, I'm open to any ideas related to a variable percent chance to apply a variable percent bonus to a base damage value.


    PS: Is there an expression in the Special (first "object" in the list) category for this, just like there is for the "X chances out of Y" condition? I could see that solving the problem. I'd have a single command, and run the crit roll right inside of the equation, applying it if it wins, and ignoring it if it loses.