Posts by aa2953b4

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.

    I would like to request the addition of a very useful option. When copying frames from one mfa file to another and the frames from the first file use global values such as A, B, C, and the frames from the second file also use them but with different names, the program could ask whether to copy the values in the frames unchanged, or if the user chooses, create values with matching values under different names in the next available slots and correct them in the code. This would prevent conflicts when moving code and using the same global values without the need for manual correction of the entire code.

    I'm trying to connect to my FTP server using the FTP object. I couldn't establish a connection, so I decided to use the example from the samples folder, but unfortunately, the example is also not working and error handling does not provide any information. Does anyone know what might be wrong? I should mention that there are no issues when connecting using Total Commander or a C++ connection.

    You may have misunderstood me, this is what I mean and it seems to work perfectly fine (and it's not a workaround, the pick object with maximum\minimum expresison conditions actually make this very easy already):

    Please login to see this attachment.

    Code
    * Repeat while left mouse-key is pressed
    + Only one action when event loops
    + Mouse pointer is over Active
    + Pick "Active" objects with maximum value of lyrGetLevel( "Layer object", Fixed( "Active" ) )
    	Active : Destroy

    Yes, it will work in your simple example, but unfortunately, as I mentioned, this won't work in the case of my code because I need to select not only the Maximum but, at some point, also all objects positioned above the selected one or sometimes choose a couple of objects from the middle as well. It would be simple if we had it in the active object, just like the fixed value. Choosing Maximum and Minimum is not enough. I can do it personally, but it requires to create own Z-order system and control it during sorting. Workarounds that you have to craft for seemingly simple things. Such creations already require a certain level of knowledge, and CF has always been aimed at simple and fast creation.

    For Clickteam, it's just adding a single return with the index position of the object in the oList and object scoping based on that value. For us, it's generating a significant amount of code, which will probably run slower.

    Unfortunately, you are mistaken, and it cannot be done using the layer object. I have already tried, and I will have to use spread value, which spreads according to the Z order of objects in the frame.

    However, if I am mistaken, you can try to modify my code to work with the layer object, although I believe that using spread value(which spreads according to the Z order of objects in the frame) will work fine. However, such workarounds are cumbersome, so I kindly request considering the addition of such an option for objects.


    Unfortunately, the spread value does not sort by Z order as I thought earlier.

    I've noticed that it's very challenging to select and highlight the top object in a stack of objects (with the same qualifier or of the same type and all objects can be on the same layer or on multiple layers, for example, 20 on the first layer and 5 on the second layer) based on their order using the 'mouse pointer over an object' condition when the X and Y positions are the same (meaning the objects overlap). Initially, I was able to select objects higher up by using the principle that they have a higher fixed value. However, when objects are sorted, the fixed value remains the same, rendering the method useless. Is there any chance of adding an option to retrieve the Z position in the stack of objects (sorting order)?

    Run application from current frame doesn't work if we use the Run option -> command line option. It probably overwrites or deletes the /J{Frame number} command. However, it works if we add a '/' before our own command, but I wouldn't want CF to require the use of '/' for my own commands to work correctly. By the way, could you please add a combo box with the option to choose the frame to run during the editing of global events? Switching between global events and the tested frame when there are many frames is cumbersome. I suggest that the combo box automatically sets to the frame from which we entered the global event editor or the one we were last in. Similarly, when we are in global events and click on the event editor or event list editor, it should navigate to the selected frame.

    Consider options for previewing the view of the previous frame of the animation in the graphics editor or even a selected number of them in the editor's settings. This would help in setting action points, hotspots, or creating animations.

    is that necessary? just drop and active object, and make it global to the application.


    Yes, that's right. In that case, we can also remove global values and text because we can add an object and make it global... I somehow don't intend to create a new object in each of the 300 frames of the game just to have one global flag.

    I was copying the code quickly to show an example, which is why there's this small error. Fixing this line doesn't change anything. I remember having the same issue in another project as well.

    * Start of Frame
    + Group.0: Visible is on
    Group.0 : Set alpha-blending coefficient to 0

    * Start of Frame
    + Group.0: Visible is off
    Group.0 : Set alpha-blending coefficient to 255

    // Show obj

    * On loop "@Obj_Show"
    + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    Group.0 : Set IN_TRANSITION to 1
    Group.0 : Set Visible on

    * Group.0: Visible is on
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) > 0
    Group.0 : Set alpha-blending coefficient to AlphaCoef( "Group.0" ) - TRANSITION_SPEED( "Group.0" )

    * Group.0: Visible is on
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) = 0
    Group.0 : Set IN_TRANSITION to 0
    Special : Start loop ON_APPEARING_ENDS( "Group.0" ) 1 times

    // Hide Obj

    * On loop "@Obj_Hide"
    + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    Group.0 : Set IN_TRANSITION to 1
    Group.0 : Set Visible off

    * Group.0: Visible is off
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) < 255
    Group.0 : Set alpha-blending coefficient to AlphaCoef( "Group.0" ) + TRANSITION_SPEED( "Group.0" )

    * Group.0: Visible is off
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) >= 255
    Group.0 : Set IN_TRANSITION to 0
    Special : Start loop ON_DISAPPEARING_ENDS( "Group.0" ) 1 times

    Fix:

    // * Start of Frame
    // + Group.0: Visible is on
    // Group.0 : Set BLEND_CONF to 0
    // Group.0 : Set alpha-blending coefficient to 0

    // * Start of Frame
    // + Group.0: Visible is off
    // Group.0 : Set BLEND_CONF to 255
    // Group.0 : Set alpha-blending coefficient to 255

    // // Show obj

    // * On loop "@Obj_Show"
    // + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    // + BLEND_CONF of Group.0 > 0
    // Group.0 : Set IN_TRANSITION to 1
    // Group.0 : Set Visible on

    // * Group.0: Visible is on
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 > 0
    // Group.0 : Sub TRANSITION_SPEED( "Group.0" ) from BLEND_CONF
    // Group.0 : Set alpha-blending coefficient to BLEND_CONF( "Group.0" )

    // * Group.0: Visible is on
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 <= 0
    // Group.0 : Set IN_TRANSITION to 0
    // Special : Start loop ON_APPEARING_ENDS( "Group.0" ) 1 times

    // // Hide Obj

    // * On loop "@Obj_Hide"
    // + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    // + BLEND_CONF of Group.0 < 255
    // Group.0 : Set IN_TRANSITION to 1
    // Group.0 : Set Visible off

    // * Group.0: Visible is off
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 < 255
    // Group.0 : Add TRANSITION_SPEED( "Group.0" ) to BLEND_CONF
    // Group.0 : Set alpha-blending coefficient to BLEND_CONF( "Group.0" )

    // * Group.0: Visible is off
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 >= 255
    // Group.0 : Set IN_TRANSITION to 0
    // Special : Start loop ON_DISAPPEARING_ENDS( "Group.0" ) 1 times

    Maybe tomorrow I'll record a video with an example, but it did work for the new project. However, in the previous project, I used this in global events. I haven't tested whether it has any connection or something else with the error, but nothing else should affect the game code.

    Please login to see this link.

    As you can see, I'm using 'compare an expression to a value' in this case, there are no other objects on the board using group zero and there are no more events calling to group zero or those objects. I use group zero only to mark through this code for objects that are supposed to disappear or reappear. I've deleted all instances of setting the 'visible' flag to 'off/on' throughout the entire code, and the issue remains the same.

    I'm confident that if you post your MFA"
    I can't really do that; I have a signed confidentiality agreement for the code.

    I don't want to argue, but your example doesn't use scoping with an alpha coefficient; it uses a 'pick one object' approach. You should select the object using the alpha coefficient value, not with 'pick one object.' That way, I would consider it functional. You're just setting the alpha in action.

    For now, I will settle for a solution with a variable. I only want to point out that something with 'Compare Expression to a value' doesn't work in some cases.

    Your first example has nothing to do with what mine should do. Unfortunately, 'compare an expression to a value' doesn't perform object selection in this case(I've tried this before.), and the exact same problem arises. In my case, the objects are supposed to disappear at the same time, but they start to disappear at different times, and when one disappears, the rest stop vanishing, and you can still see them, but they become somewhat transparent. They should vanish completely. It seems that if one object reaches a value of 255, the action for others that haven't reached AlphaCoef = 255 is considered achieved. And it doesn't matter whether I use 'compare expression to a value' here. Unfortunately, the effect is the same. Only using an object variable for object selection helps fix the issue.

    Let's say I have 200 items in a frame with a qualifier called 'Item.' When I click, I want it to disappear from view. If I click a few rapidly before the previous one disappears, an error occurs, and the items clicked later will only partially disappear.

    Add a function to activate/deactivate event groups via expressions(comparing expressions and group names).


    But why?


    Yves In the past, loops didn't disrupt the order of actions; now, they are executed at the end, which breaks the compatibility of my old game code. Please add options for advanced users to choose whether loops should disrupt the order or not. I know they disrupt the selection, but I prefer to have disrupted selection over the order of action execution. The best solution would be to remember the selection and restore it after returning from the loop. This way, the loop wouldn't disrupt the selection or the order of events. Something like a stack for variables in programming language functions, they have a variable stack. Here, a stack for object selection would be useful.

    Another issue is the lack of the ability to select using AlphaCoef. Please add a condition to compare with AlphaCoef. Currently, with many objects of the same type, it's necessary to assign it to a variable for selection to work.

    Example(It only works for a single object; it breaks without selection for multiple objects.):
    * Map_Tile: Visible is on
    + AlphaCoef( "Map_Tile" ) > 0
    Map_Tile : Set alpha-blending coefficient to AlphaCoef( "Map_Tile" ) - TRANSP_SPEED( "Map_Tile" )

    * Map_Tile: Visible is off
    + AlphaCoef( "Map_Tile" ) < 255
    Map_Tile : Set alpha-blending coefficient to AlphaCoef( "Map_Tile" ) + TRANSP_SPEED( "Map_Tile" )


    Example fixed by using val TRANS_VALUE:
    * Map_Tile: Visible is on
    + TRANS_VALUE of Map_Tile > 0
    Map_Tile : Sub TRANSP_SPEED( "Map_Tile" ) from TRANS_VALUE
    Map_Tile : Set alpha-blending coefficient to TRANS_VALUE( "Map_Tile" )

    * Map_Tile: Visible is off
    + TRANS_VALUE of Map_Tile < 255
    Map_Tile : Add TRANSP_SPEED( "Map_Tile" ) to TRANS_VALUE
    Map_Tile : Set alpha-blending coefficient to TRANS_VALUE( "Map_Tile" )

    How to program a custom action for the game's close button in the menu bar? Currently, I only see the 'disable close button in the menu bar' option in the settings, but I remember doing this years ago in CF, where there was an option to deactivate the game's close action and plan your own action using 'end of application.' I want to check if the game has been saved. If not, and someone clicks the close button, it should take us to the game closure confirmation menu and optionally allow saving.

    Please login to see this link.