Posts: 19
|
Post by ehand on Jul 12, 2021 16:57:11 GMT 10
Good day. I did not understand at all how the ability to "replace" enemies (enemy_swap.ini) works and why it is needed. Maybe it affects the compatibility of enemies, without which the game would simply crash? It would be nice to see examples of how it can be used in different situations.
|
|
dale home
Posts: 288
|
Post by kTeo on Jul 13, 2021 1:55:03 GMT 10
how it works is it instructs the DLL to swap every enemy ID that gets loaded in the area with another ID. I can only see three possible functionalities for this: 1- change the first ganado at r100 which is the only enemy in the entire game outside of the .esl files 2- change hardcoded animals such as bats and spiders in r106, fish in r10b, etc. Those are also not found within .esl files. 3- change snakes so you can spawn enemies from ETS or other enemies instead of snakes.
|
|
Posts: 19
|
Post by ehand on Jul 13, 2021 19:37:39 GMT 10
Replacing spiders, snakes? I didn't really think about it. I just tried to do it and it worked, but even more questions arose:
1. If, for example, there are 3 spiders in the room and I replace only 2, will they be replaced randomly? 2. Is it possible to change the equipment, the coordinates of enemies that have been replaced? 3. Why do you need to replace the appearance?
I would be very grateful if you could try to explain a little more in detail.
|
|
dale home
Posts: 288
|
Post by kTeo on Jul 13, 2021 22:41:41 GMT 10
1- no. the order of the replacement goes by sequential crescent order of their ID. example: three ganados 12 00 with esl indexes at of 2A, 6C and 0F exist in the same room. If you replace only 2, the one at 6C will NOT be replaced. Same goes for snakes, it counts based on the index count of the .ITA so you can precisely determine what types of enemies will appear when and where. Sadly i don't think it's possible to do the same on non-ESL enemies since we can't see their index order, so you'll have to experience that yourself. 2- Sadly you can't. Coordinates will always be the same from ESL or ITA but there's a neat trick to make items spawn somewhere else when killing someone or breaking an ETS so coordinates shouldn't be a problem. Not sure if that's written in Curious's tutorials but i got that from the Bitores battle when he drops the eye on the ground, you can research those bytes to understand how to replicate it yourself. 3- the appearance or "outfit" as it's written in enemyswap.ini is the enemy sub-type. a garrador 1B 0A is a type 1B with sub-type 0A. mostly you will only use this for making the areas not repeat the same type of enemy but some of them can't spawn at all without this. You can go very complex with this file like replacing a single enemy in a room full of them just because he has a specific amount of health that no one else has it's also great to use the snakes thing to do more complex areas, you really just need to discover how the game behave on your commands by yourself to understand better how everything works. PS: enemies spawned from .ITA (snakes) can't drop fixed items like a key since they aren't inside .esl files. they'll still drop random loot though.
|
|
✫Advanced Coder✫
gridning hard working on a fan game - Resident Evil Remix
Posts: 2,991
|
Post by Mr.Curious on Jul 14, 2021 2:40:15 GMT 10
2- Sadly you can't. Coordinates will always be the same from ESL or ITA but there's a neat trick to make items spawn somewhere else when killing someone or breaking an ETS so coordinates shouldn't be a problem. Not sure if that's written in Curious's tutorials but i got that from the Bitores battle when he drops the eye on the ground, you can research those bytes to understand how to replicate it yourself. Oh! Someone was just asking about how to do this, and I said unless there was an example in the game that I thought it wouldn't be possible, but THIS is a perfect example of this. I will have to go back through my participated threads in hopes to find the person who was asking about this! Also now I am very interested to see the ITA for this room to see which byte handles that. COOL!
|
|
dale home
Posts: 288
|
Post by kTeo on Jul 14, 2021 4:33:09 GMT 10
UPDATE: the bytes responsible for making items spawn somewhere else are Offset[132..135] = 0x1. I had some others written here in my notes but thanks to Curious we could narrow it down to this one.
|
|
Posts: 19
|
Post by ehand on Jul 14, 2021 19:04:59 GMT 10
Thank you for the detailed answer. I have never dealt with modifications, so any information will be useful to me. You gave an example with the type 12 00, but in the guide to changing enemies there is also 13 01, 15 00, 17 00, etc., which refers specifically to Jose. It turns out that they also have indices (indexes) or what?
|
|
dale home
Posts: 288
|
Post by kTeo on Jul 14, 2021 23:00:28 GMT 10
Thank you for the detailed answer. I have never dealt with modifications, so any information will be useful to me. You gave an example with the type 12 00, but in the guide to changing enemies there is also 13 01, 15 00, 17 00, etc., which refers specifically to Jose. It turns out that they also have indices (indexes) or what? there's multiple IDs for the same ganados, zealots and island soldiers.
|
|
Posts: 19
|
Post by ehand on Jul 15, 2021 5:25:07 GMT 10
No no. I meant the indexes you listed. 12 is type, 00 is subtype and it has 3 indexes (2A, 6C, 0F). Will 13 01 also have their own indexes? To be honest, I'm a little confused and need to digest all this information.
|
|
dale home
Posts: 288
|
Post by kTeo on Jul 15, 2021 23:30:42 GMT 10
oh i see. Index is a term for the entry value. a .esl file can have up to 256 entries (256 enemies max in a single .esl) starting at 0, then 1, 2, 3... and so on. If a ganado has an index of 2A, he's at the position 42 in the .esl here's a screenshot of Crzosk's ESL tool, the box is the entry number for each entity and it goes all the way down to 255 (FF in hex, the maximum 1-byte value).
The same goes for ITA, for example. you can have a maximum of 256 entries per .ITA file, and every one will have an index value representing their entry position.
|
|
Posts: 19
|
Post by ehand on Jul 16, 2021 3:46:20 GMT 10
42 - 2A, 108 - 6С, 15 - 0F. Did I understand correctly? And one more thing that I noticed just now. You wrote "sequential crescent order" and I did not find this in the search. Google translated this as "descending order".
|
|
dale home
Posts: 288
|
Post by kTeo on Jul 16, 2021 21:18:56 GMT 10
yeah you understood it. you will need to convert hexadecimal to decimal and vice-versa once in a while. descending order is also right, it means "starting at 0 then adding +1 each step down"
|
|
Posts: 19
|
Post by ehand on Jul 17, 2021 5:14:14 GMT 10
Got it. That seems to be all I wanted to ask. Thanks again for the explanations.
|
|