Anyway, before the research, Master Bing asked me how to add actions to the code. I found inspiration from BHVT, and after writing it, I felt that it would be a very useful thing, so I encapsulated it and made it into a module. Everyone uses it.

At present, there are already some methods for everyone to use. Due to my limited technology, the code may have high redundancy (referring to many reused parts are CTRL CV). If it can help you turn your ideas into reality and produce mods faster, I will Still will be happy.

There is no difference between these operation processes and direct file operation actions, and it also reduces the time (it really takes too long to add an action to the template)

Then where do the parameters in it come from? Let me introduce the BHVT that I have been using.

But in order to facilitate everyone's understanding, I will release a sample code for everyone to see

The above picture is a simple small mod, its function is to make air dodge derive air dodge, and after using the toolkit, it only needs one line of code to get it done (the error is reported because there is no detection status, sometimes the player object does not Does not exist, but it is not a fatal error, and generally does not affect the running of the script)


The picture above is the rendering.

Next, let's talk about what are the parameters in this function

First of all, according to the top function diagram, the first one is a very long string, which is nodeID. If you have BHVT, you can see this interface after opening it.

Then let’s talk about the idea, first of all, make this mod, since we want to connect the air dodge to the air dodge, then we have to find the id of the air dodge

You can see that the activeNode above is 416 when we are dodging in the sky

So go to the above Search to find this ID

Press Enter and click Goto to come to this place

You can see that the NodeID here is the same as what I wrote in the code above, because we just want to derive air dodge from air dodge. And pay attention to the 466 above the blue box, this is the Node serial number or NodeIndex, or it can also be called StateIndex, anyway, anyway, this Id will be used, NodeID and NodeIndex can find this ID, and the 466 we entered above is this NodeIndex.

Now that we know Node, condition is also a derived condition. Where can we find it? Of course, I choose to go to the place where this node can be derived, that is, the node we drew

You can see that ActiveNode was 1186 when we took off. According to the method just now, use Search to find

But we will find that there is no 466 in the state of this place, what should we do? Don't worry, there is a high probability that a node will jump directly to 466. At this time, we can use the call action function that comes with BHVT, that is, click the run button next to each entry to see what action it is

Then when we clicked on 512 above, we found that air dodge was used, so we can directly find its corresponding condition (condition).

In the BHVT interface, the derived target (State) from top to bottom corresponds to the following conditions (Condition) one by one, that is to say, 512State is the third from top to bottom in State, then The corresponding Condition is also the third in the TransitionConditions below.

At this time, if we expand it, we can find that its Condition ID is 1950

So far, the last piece of the puzzle using this function has been completed, and then we put it into

In the re.on_frame() function running by frame, this effect is achieved

At present, the function in this Toolkits will overwrite the file when called. If you want, you can use this thing to override the GP length of the file mod to make it reach a longer GP judgment. I also put the related functions In Toolkits, but due to my limited technical ability, I can't directly get the static action generated by the game like bhvt, so I still need to use hooks. I also release the sample code of the mod I play here.

One of the functions in the above two lines is to change the judgment of the GP of the chopping ax attribute, and the other is to change the judgment of the GP of the film hand, and the standard GP judgment that needs to be passed in is a Table. The example is as follows


There is a skill table in the weapon table, and there are four frame numbers in the skill table: StartFrame, EndFrame, ModifiedStartFrame, and ModifiedEndFrame. In fact, you can lose StartFrame and EndFrame when using this function, because the first two variables are reserved for recovery. It is used for weapon judgment, but the actual AIO (called ModifyGPAIO in toolkits, the full name is Modify Guard Point All In One) does not call these two values ​​at present, and this should be updated after my full weapon function script is written. Add new features as you write mods.

And weapontype can use the weapon index table that comes with toolkits

The previous damageReflexObject needs to pass in a native args. If people who have used hooks will be very familiar with this thing, I will also put a screenshot here

(In fact, you can also tick start here)

As for where this method was found, and how to know to tick this function, I also found it with BHVT. It is the same as the above steps. I will put a screenshot

Generally, hook it first, and then a small window will appear after the hook, which contains the method of your Hook

Generally, as long as you use the action after hooking it, the call Count will jump, which proves that this method can be used for hooking, and then use lua to hook, and then directly throw args into the toolkit function as in the above picture. And pass in the NodeID when it takes effect, weaponType, and the modified table, and this function will automatically handle these things for you.

The writing of this module itself is not complicated. The first thing I write here is for my own convenience, and the second is to lower the threshold of modding and help more people. Another reason why I made this thing is because the weapon fsm that is updated in a large version will inevitably fail, and it needs to be overthrown and restarted, and the code may only need to fill in the latest action to restore it to the original, whether it is maintenance or mods. It is more comfortable to move files directly.

If you want to improve this toolkit or have any suggestions, you are also welcome to release other versions. If you can, it would be best to let me know, although I don't usually go to the forum very much.

Set 2 points of influence as the threshold, to the extent that you can reach it in one day, if you are in the mod group of rise, you can also find me directly in the group

So be it.

Comments