Jump to content

CTI player IF

  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

32 Excellent


About CTI player IF

  • Rank

Recent Profile Visitors

1636 profile views
  1. CTI player IF

    Unable to create server

    And use game engine to "new" in MP game it'll display "creating client" for a while then fail too
  2. CTI player IF

    Unable to create server

    On starting dedicated server, the message "Dedicated server created" appears but "Server identity created" does not. How to solve this problem?
  3. Hello everyone, in this video, I will introduce the RTS style interaction design in my TZK CTI mission, version Old TZK players may recall that TZK enhanced the CRCTI commanding system by extending setting items and introducing a "concurrent order design" that could send orders to a specific unit or type to interrupt their group order and execute concurrent orders. However, this design was non-intuitive and inconvenient. To address this issue, we have referred to the interaction design of RTS games, where units can be selected easily by their position, type, or "group," defined by the player manually and activated by a hotkey. OFP uses a group to manage units, and AI units with a dead leader won't react to any script command until the leader respawns. Traditional CTI applies this as a natural classification of units. It would be useful if the commander could select units by their type or position, but concurrent order could only act on those units belonging to one group. In other words, group, type, and position should be at the same level, but in concurrent order design, the group concept takes priority. The current RTS style interaction design solves this problem by imitating real RTS games. If a unit is ordered by the RTS system, it will obtain a "RTS status" and ignore the group order and execute the RTS order. A unit with "RTS status" will never react to group orders. He'll stop if the order is finished and waiting for the next RTS order, unless the commander explicitly cancels his RTS status. This is similar in RTS games. If a grouped unit is selected by a hotkey and then ordered, he will follow the group unit, but the player can still select the unit and give him new orders. Since traditional OFP uses group order system for commanding, TZK allows units to return to group order if the RTS status is cleared. In the video, we see that clicking on the map twice can determine a rectangle. OFP does not support dragging operations in the map, but we can use clicking. This rectangle is for selection. On the rectangle determined, all units in this rectangle will be marked as "selected." To select units, we press Alt to switch to this clicking mode and click twice. If we select some units, press Alt and Shift, and click on the map, the clicked position will be marked by a flashing marker, and a dialog will appear. This dialog is the core interface in TZK RTS interaction. On the left are "RTS order" buttons. The "Move" button will order units to move to the marker, which is the simplest and most important function in RTS. The "Board" button will order units to move to the marker first, then search for transports and board. When clicked, a submenu will appear for the commander to select the transport type. This submenu is a multiple-choice and sorted descending by priority. Artillery can be much easier to command by RTS order now. There are two buttons: "shoot area" and "move and shoot." The former will ask units to fire in place, and the latter will order units to move to the marker first, then shoot. When clicked, a submenu will appear. The first column determines the types reacting to the order, the second column determines the types using the big angle, and the third column determines the initial speed. With these two orders, it will be very convenient to control artillery. For example, let's define a server art area. Now let's select some art units and order them. As we can see, the selected units are executing art orders now. Howitzers are assigned using a big angle while other types aren't. On the bottom are "RTS trigger" buttons. These buttons will activate immediate behaviors while orders will last long. By now, there are disband, eject, disenmark, and switch transport status. In the future, other immediate behaviors will be added here as well, such as switch tank sabot/heat and turn on/off plane afterburner. On the bottom-left are "type" buttons. These buttons allow you to select specific types in selected units. This area's buttons will refresh if you selected a type or clicked on "return." On the bottom-right are "dialog" buttons. These buttons allow you to switch to other dialogs. There are many new dialogs in the current RTS style interactions: RTS, Area, Point, WayPoint. Different dialogs will appear by default in different cases. If we select some units, the default dialog is RTS. If we draw an area without any selected units, the default dialog is Area. In other cases, the default dialog is Waypoint by now. The commander can switch to other dialogs via these buttons. If we select some units, the RTS dialog is available. If we draw an area, the Area dialog is available. Point and Waypoint dialog is always available since the dialog is activated by map click, and the clicked position thus always exists. So, that was a simple introduction to the RTS dialog. Let's take a closer look at how the Area dialog works. The easiest way to call the Area dialog is to draw an area without selecting any units. In such cases, pressing Alt and Shift and clicking on the map will bring up the Area dialog. The direction of the drawn area can be adjusted using the slider, and you can input the direction value directly as well. This area can be assigned as a server or player art area. Furthermore, two points can uniquely determine a segment, and in the current design, this diagonal is managed in the Area dialog. We can use this segment to order an engineer vehicle, including MHQ, to build obstructions. For instance, let's buy an engineer vehicle and draw a line on the map. Now, call the Area dialog and click on the obstruction button, select the tank trap type, and confirm. The scripts will travel the segment, check whether the current position is close enough to any engineer vehicle, and build the obstruction if all conditions are met. If no engineer vehicles are nearby, the script will skip the current position and continue traveling. The Waypoint dialog is the same as the old one. As for the Point dialog, it can quickly wall off the MHQ, build base defense MGs, and build structures. This dialog is quite simple and does not have any unique features compared to the Waypoint dialog. Perhaps combining these two dialogs into one would be a better choice. This RTS interaction design only requires the 2.01 Arma Resistance engine. The critical script commands used are publicExec, NetworkID, and UnitById. One of the [4RTech] developers once said that these commands are unstable, but practice has proved their stability. With these commands, each client can broadcast locally selected units to the server. In the Cold War Assault engine, we don't have a good method to broadcast many units in a short time. Broadcasting position information may be an alternative. In summary, the RTS style interaction design in TZK CTI mission version improves upon the non-intuitive and inconvenient concurrent order design by introducing the concept of RTS status and imitating the interaction design of RTS games. The core interface includes "RTS order," "RTS trigger," "type," and "dialog" buttons, enabling the commander to easily select and command units in various situations. The selection can be done by position, type, or group, and the RTS order allows for movement, boarding, and artillery commands. The RTS trigger allows for immediate behaviors, and the type and dialog buttons provide additional customization options. Overall, this design enhances the gameplay experience and makes commanding units in TZK CTI mission more efficient and intuitive. That's all for the introduction. I will continue to develop the RTS interaction and the entire TZK project. Players can expect more in the future.
  4. I'm not sure whether Azimut in mission editor really uses a slider but it looks like it does. So how to realize such effect?
  5. CTI player IF

    Unofficial patch ArmA Resistance 2.01

    About NetworkID In Command Reference.rtf it says this command's return value can be applied in publicExec directly. However this is incompleted. The NetworkID returns an array: [string, number]. The second element is a number which is monotonically increasing. If the server hosts many games this value will become large, and a large number can't be formatted directly by format command (large number will be formatted in form of scientific notation like "1.23e+10"). Script designer shall separate the number into 2 parts, format them and join the string. Besides, since number in OFP is single precision floating-point number, it can express integer precisely only when the interge no more than 2^24 = 16777216. If server hosts long and NetworkID reach this limit the publicExec and NetWorkID will be invalid on some objects. Server hoster shall restart the server in this case. Above is a video displaying new RTS style commanding in my TZK-CTI. This design applies NetWorkID and publicExec script commands to inform server those units selected in my local client. Take care: OFP can't handle too long string. If use one string to generate the publicExec 's parameter when selecting so many units in video the game will crash immediately. Please separate your string and apply publicExec in many times. In the video object's networkID is displayed in left-upper corner. If this value get close to the limit, one should inform the server hoster to restart the server. Below is an introduction of that RTS style interaction:
  6. CTI player IF

    What does super AI do?

    Make all AI units' skill using 1 but not the value defined in mission.sqm
  7. CTI player IF

    Unofficial patch ArmA Resistance 2.01

    Hi thanks. I obtained a document file which lists these commands.
  8. CTI player IF

    Unofficial patch ArmA Resistance 2.01

    How to use those "VBS_" commands in 2.01? I haven't seen any documents about them.
  9. CTI player IF

    Fwatch Request List

    So I still hope if there can be some trick to make OFP load 2 bytes as what CHN agend had done many years ago in version no later than 1.75 using buffer...
  10. CTI player IF

    Fwatch Request List

    I've read your article and watched your video. But the problem is I need OFP recognize 2 bytes to know which character to display since there're thousands of characters. Is that still possible aplying only OFP original fxy design?
  11. CTI player IF

    Fwatch Request List

    I have a request about language for Chinese. Chinese characters need 2 bytes for expression while other languages supported by OFP (except Korean) require simply 1 byte. Common method in dta/fonts doesn't support Chinese. In early version of OFP (no later than 1.75) there's a bug in OFP EXE and Chinese agent used a trick basing on that bug. They manage to load a big texture (15.1MB, 2256x2352) using buffer. That big texture contains all Chinese characters. I wonder whether it's possible to realize similar trick in Fwatch, using buffer trick or something else. Regards, IF
  12. CTI player IF

    TZK CTI MOD/MPMissions

    I don't know. One of our player have this problem too, with his 2.01 none-official. However not any other player meet this problem. I think this may due to server setting or 2.01 features. Maybe you can ask 2.01 programmers.
  13. CTI player IF

    Discover and Identify

    Supplement on 1000 accuracy: The 1000 accuracy is not necessary when applying on non-aircraft vehicle. The reason I use 1000 accuracy is, which is mentioned in the article, that 1000 accuracy can make AI ignore the "model" attribute when deciding whether to use MG to shoot at aircraft or not. When editing a vehicle without considering if it'll be attacked by AI MG, the 1000 accuracy is unnecessary. Besides, the "armor" value play main role in affecting vehicle being attacked by AI with MG. One can verify this by checking the original BIN\CONFIG. The total health point (HP) of a object is decided by the product: (armor * armorStructural). M2staticMG is a unique vehicle with 10 armorStructural . The reason its armorStructural so high probably is aiming to reduce the armor value to make soldiers using rifle to attack it. And players may have noticed that AI sometimes will use MG to attack T55/M60 but never T72/T80. One can test assign T80's armorto 1% (7) and armorStructural to 100 times (200) and see whether AI MG will shoot at T80.
  14. CTI player IF

    Discover and Identify

    An example applying this trick on side attribute. The small MH6 helicopter in video applied this trick. Such a helicopter won't be attacked by tunguska before it get close enough. It's recognized as "civilian vehicle" by tunguska when far away. As a contrast, BIS UH60/Ch47 will be attack immediately at that distance. This helicopter has an abstract base class whose accuracy is 0.3 and side is civilian side, a father class whose accuracy is 3.5 and side west, its class itself is accuracy 1000. It is the father class 3.5 accuracy and base class civilian side that consist of this trick. Such a trick had been applied by BI in the second last mission of "resistance" campaign, using those "fakeC" soldiers.