User talk:ONIrules: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(new character?)
(Here we go)
Line 1: Line 1:
Hi ONIrules,
I have been watching you for some time (I mean it in good, no stalking ^_^). Looks like you are similar to me in terms of modifying ONI. How about joining our forces together?
Point is: Your TRAM hacks are awesome, but there IS already similar idea by me. I am not saying I am better, NO. We are SAME. Just...I am working on enhanced TRAM system now, this time I want to do more job than just add a few flashes/trails and make a few moves deal more damage or stagger enemy. I want to make combat system a bit deeper, less spam-able and maybe more fun.
My visions:
*add wall smashing (3 particle system) to knockdowns and some throws, so combat is more environment-interactive
*add new TRACs for boss-characters (Barabus, Mukade), modify their moves so they are more powerful (not overpowered, just more powerful)
*add new moves for these TRACs, of course these will be modificated moves that are already present in ONI (I cannot create new moves so far, I have tried and FAILED ^_^)
*get rid of riddculously large throw distances of come chars (strikers- throw range 20!), make throws work more like "counter attacks" than like regular moves
*overall add some "new moves" such as side rolls (not that pseudo-roll which is made when you move mouse while character lies on the ground, but real side roll, should be performed by pressing left/right key while on the ground, which will make character roll quickly ''to the side'', not on one place)
*reduce invulnerability of some moves (mainly specials and throws) so you are vulnerable at the beginning/near the end of the move. This should makespecials less spam-able
*get rid of unblockables as much as possible (no it is not fun to have unblockables, AI2 is dumb in this and WILL try to block these attacks), some unblockables are must (RIF moves for example) these should do only symbolic damage to avoid abusing
*in terms of special attacks, replace unblockable with heavy stagger if attack was blocked + of course set 1/2 block damage flag for these moves
*maybe change ninja's block for "pseudo dodge" for Mukade
*and lots of other changes
This is NOT full list, it is just brainstormed right at the moment from what I have in my head for at last 2 years. If you join, we will discuss details before we get to work. I want, because in two it will be easier.
So...would you like me to join you on our (almost same) goal? If yes, then we can make sorta mini-team (2 people ^_^) which will do this TRAM modding for others.
Please write your reply in this discussion,
--[[User:Loser|Loser]] 16:15, 3 August 2008 (CEST)
Loser: please keep your modding focused, so that you don't spend ages designing "new moves" when you could include them in a later release; please keep your modding modular, so that the more controversial parts can be made optional in a release; please distribute .oni files rather than OUP-importable data chunks when you can; please double-check your modded .raw parts carefully, because you don't want the release to be plagued with memory corruption; what is the most current release of your modded TRAM (did you fix all of the issues present [http://geyser.oni2.net/edition/20080121/ HERE]?), and do you believe it is ''stable'' (i.e., that it doesn't cause memory corruption and random crashes)? Please reply. Oh, and once your roadmap is clear enough, you can put that kind of talk on AE:Melee and AE_talk:Melee (and on more specific pages like AE:Spam-proof_melee and AE:Char-env_collision and...)
Loser: please keep your modding focused, so that you don't spend ages designing "new moves" when you could include them in a later release; please keep your modding modular, so that the more controversial parts can be made optional in a release; please distribute .oni files rather than OUP-importable data chunks when you can; please double-check your modded .raw parts carefully, because you don't want the release to be plagued with memory corruption; what is the most current release of your modded TRAM (did you fix all of the issues present [http://geyser.oni2.net/edition/20080121/ HERE]?), and do you believe it is ''stable'' (i.e., that it doesn't cause memory corruption and random crashes)? Please reply. Oh, and once your roadmap is clear enough, you can put that kind of talk on AE:Melee and AE_talk:Melee (and on more specific pages like AE:Spam-proof_melee and AE:Char-env_collision and...)
:[[User:Geyser|geyser]] 16:41, 3 August 2008 (CEST)
:[[User:Geyser|geyser]] 16:41, 3 August 2008 (CEST)


Join forces?!?!No problem ,but I'm not quite an expert yet. In fact I should call you an expert Loser. I mean you did a lot of things (the old warehouse mod, which makes me start to hack TRAMS) and videos like "Revenge" (I love that). I will try and decide to team up with you!!! Also don't expect much on me when I write scripts. To me is kinda hard. Sorry about taking your idea. It also love to edit TRAMS too ^_^ --[[User:ONIrules|ONIrules]]  August 2008 (EST)
----


----
THANKS ONIrules!!!
THANKS ONIrules!!!
OK, first: geyser, I have read and aknowledged. Will try to do it that way.
OK, first: geyser, I have read and aknowledged. Will try to do it that way.
Line 63: Line 37:
:Thats a lot!! Since this is my first time, it will be a little unclear. So Loser, just tell me first the things step by step. Then I can follow your task. You don't have to remind of the characters that I'm going to do. Its in my brain ^_^[[User:ONIrules|ONIrules]]  August 2008 (EST)
:Thats a lot!! Since this is my first time, it will be a little unclear. So Loser, just tell me first the things step by step. Then I can follow your task. You don't have to remind of the characters that I'm going to do. Its in my brain ^_^[[User:ONIrules|ONIrules]]  August 2008 (EST)
::Can you post a screenshot or even the files of your new character? [[User:EdT|EdT]] 21:53, 3 August 2008 (CEST)
::Can you post a screenshot or even the files of your new character? [[User:EdT|EdT]] 21:53, 3 August 2008 (CEST)
''EdT'': I don't think he means whole new character, but "his" TRAMs (his half of work).
''Paradox'': I know about that fact, but thanks for mentioning it. Yes, numbers are shifted because list should start with ZERO, but it start with one.
''ONIrules'':OK, it is decided. I write you this step by step list how to work on one TRAM in way I want and let's get to work. When you are finished, write here + post .oni files.
First, terminology we will be using for fields in attack part of the TRAM:
{{Table}}
{{OBDth}}
{{OBDtrBK}}
{{OBDtr| 0x00 | bitset32 |FFC8C8| 00 60 06 00 | 0, 96, 6, 0 | damage-dealing bones
}}
{{OBDtr| 0x04 | float    |FFFFC8| 00 00 00 41 | 8.000000    | '''knockback''', the higher you set, the more is enemy pushed back when attack is sucessful }}
{{OBDtr| 0x08 | bitset32 |C8FFC8| 08 00 00 00 | 8, 0, 0, 0  | '''attack part flags'''; the following bits are possible:
:0x00 - nothing special, attack can be blocked by any stance of defender (crouch, stand) and deals no damage when blocked
:0x01 - attack is unblockable
:0x02 - attack is high (can be blocked only in normal stance, hits if enemy is crouching)
:0x04 - attack is low (can be blocked only in crouch stance, hits if enemy is in normal stance)
:0x08 - attack deals 1/2 damage when blocked + while blocking, it does not use blue flash but hit flash (konflash1 for this TRAM)
}}
{{OBDtr| 0x0C | int16    |C8FFFF| 14 00      | 20          | hit points }}
{{OBDtr| 0x0E | int16    |FFC8FF| 05 00      | 5          | start frame }}
{{OBDtr| 0x10 | int16    |FFC8FF| 0F 00      | 15          | stop frame }}
{{OBDtr| 0x12 | int16    |FFC800| 50 00      | 80          | '''hit animation''' (animtype ID of animation of opponent if attack was sucessful,for example 80 <nowiki>=</nowiki> hit_foot) }}
{{OBDtr| 0x14 | int16    |C800C8| 0A 00      | 10          | '''animation duration''' (in frames, if you input high values, it automatically changes any animtype ID of enemy to stagger animation}}
{{OBDtr| 0x16 | int16    |C800C8| 0A 00      | 10          | '''block stun''' (in frames) -input high values and this attack will get "has blockstun" label when used by MELE profile}}
{{OBDtr| 0x18 | int16    |C800C8| 00 00      | 0          | '''block stagger''' (in frames) - when used this move gets "has stagger" when used by MELE profile}}
{{OBDtr| 0x1A | int16    |C800C8| 00 00      | 0          | apparently garbage }}
{{OBDtr| 0x1C | int32    |C87C64| 00 00 00 00 | 0          | apparently garbage }}
|}
*1) Spam original TRAM (or whole combo). Spam it aganist group of enemies, spam it aganist single enemy (some harder, like Muro/Mukade). Look at the effect this spam has.
:*Is AI2 able to resist the spam? That does not mean it can block/dodge every attack. Only if you can do that move again and again and enemy can barely hit you, there is something wrong, especially aganist multiple enemies (Konoko's original kick special is nice example. If you have good timing, you can spam it so good that you are virtually undefeatable)
:*Are you (attacker) vulnerable while attacking? That means: if you attack with your move and enemy attacks you as well, then enemy gets hit but you recieve "blocked attack" blue flash. Notice when spamming specials. Sometimes you GET hit (some enemy attacks you) while doing special, but it indicates blue flash. Similar when getting up.
:*Which effect has sucessful attack on enemy? Does he only gets hit/is staggered/is knockdowned? Do you think it is good response for your attack? Are you satisfied with knockback? In combos, can you land next hit safely or enemy gets out of reach/can counterattack when you want to do next move?
::MY VISION for combos: Make combos so you can sucessfully counterattack only in pause between FIRST and SECOND move. next pauses (between third and fourth etc) should be cared that defender cannot counterattack, can only defend. This way, using combos will get more rewarding. Use bigger value in block stun or mild block stagger to achieve this effect.
::REASON: In original ONI if enemy catches you with combo, you can usually throw him and free yourself (with few exceptions) between 2nd and 3rd move. Then using combos is too risky and player reserves for hit n' run tactics, lariatfest or judo (throws a lot). Of course when combo looks like two fast punches then one slow, it has to be treated differently. It is up to you.
:*think about damage, block stagger. I prefer block stagger to block stun, it looks more dynamic. But choice is yours. Don't forget: even if TRAM will cause block stagger, there should be at least 8 frames of block stun written in. Block stagger should be adequate to the power of attack. Beware: some attack causes block stagger -> right after that we can throw. That would lead (logically) to abuse of that move. Specials/standing combos are usually good (use block stagger wisely), Be especially catious when modifying running/jumping moves (block stagger from running move -> immediate possibility of running throw).
:*You can also change start/stop frame if you think it will be for good.
:*my request: directional (lt/rt/fw/bk) punches can be blocked in any stance, kicks only in stand (0x02 attack part flag)
:*my request: last moves from combos should be blocked only high or low (depends on how animation looks), rest can be blocked in any stance
:*my request: running punches can be blocked in any stance, kicks in stand only (0x02 attack part flag)
::REASON: by these, we will uplift kicks a bit, evening fact that fists are usually faster.
*2) Then start modifying TRAM. Do attack part, then change vulnerability if attack has any. Basically, make TRAMs as much vulnerable as possible. Don't forget - throws are next step, so leave them out now.
:*invulnerability - Open your [[TRAM]] (dat entry), offset 0x3C. Check that it does NOT have 0x02. If yes, remove it so TRAM becomes vulnerable. If it had (specials mostly), do that screen capture process I wrote above. That way you will see how animation looks in each frame, it helps you with deciding. Now we want it to be invulnerable only in the middle. Go to 0x180, here you can set first frame when animation gets invulnerable. next to it is field for last frame. Adjust it so these specials have invulnerable part in the middle of execution, where "attacker is the king" but have at least 16 frames long windows (and I prefer longer ^_^) at the beginning/at the end of animation, so  attacker can be hurt. This should prevent spamming.
*3) Save, try again aganist group and aganist single enemy. Finetune, then move onto another TRAM. That is enough so far.
LET'S ROCK !!!

Revision as of 07:39, 4 August 2008

Loser: please keep your modding focused, so that you don't spend ages designing "new moves" when you could include them in a later release; please keep your modding modular, so that the more controversial parts can be made optional in a release; please distribute .oni files rather than OUP-importable data chunks when you can; please double-check your modded .raw parts carefully, because you don't want the release to be plagued with memory corruption; what is the most current release of your modded TRAM (did you fix all of the issues present HERE?), and do you believe it is stable (i.e., that it doesn't cause memory corruption and random crashes)? Please reply. Oh, and once your roadmap is clear enough, you can put that kind of talk on AE:Melee and AE_talk:Melee (and on more specific pages like AE:Spam-proof_melee and AE:Char-env_collision and...)

geyser 16:41, 3 August 2008 (CEST)

THANKS ONIrules!!! OK, first: geyser, I have read and aknowledged. Will try to do it that way.

And now, ONIrules:

- make clean install of EDITION or whatever was the version you modified. I do the same. That should prevent us from unwanted changes to sneak into our work. Then, the file where we will be modifying TRAMs will be EDITION level0. Make backup of clean, unmodified file, so you can compare if something goes wrong.
- use 640x480 windowed mode, it is good for screen capturing (see in TIPS)

1st goal: change of attack part attributes

why first: easy to reach, easy to show in trailer
  • in brackets there is prefix of TRAMs which each one of us will modify:
  • ONIRules: Muro(MUR), MutantMuro(MUT), striker(STR), ninja(NIN), TCTF_swat(TCT)
  • Loser: Konoko(KON), thug(THU), elite(ELI), comguy(COM), tanker(TAN), fury(RED)
  • what to do: play with some ONCC which has "your" moves (for example with Muro). Via script or develop console activate chr_debug_characters=1. In the window which appears, watch names of moves you do with your char. Reason is that TRACs can be inherited, so you can perform some STR moves with Muro. Those should NOT interest you while you are doing MUR ^_^.Play with character a lot for a while, spamming one attack, then next attack, then next...(by "attack" I mean single attack if it is directional, or whole combo if it is string of attacks)...focus on cheapness, spammability and overall look of move (strong and slow, strong and fast, weak and fast...). Then try to figure out in head what should be done in order to make the move be good, useable, but not abusable. Do it, test it, finetune it, move onto another TRAM. In combo, modify gradually one move after another from start to end.
  • TIPS:
  • do only attack moves, throws will be our next step
  • if you want to finetune something, make little script that will do this when you press punch (or any other animation): rotate camera 90°, cm_orbit(90,90) ,pause for a while, sleep 10 ,and then chr_animate 0 "your animation". Then activate thedayismine, make sure you have chr_debug_characters=1, press CRTL+SHIFT+L and then press whatever will trigger the script(punch,kick,some anim). after anim ends, CRTL+SHIFT+L to end capturing. This should take screenshot EVERY frame, allowing you to see how animation looks during its execution.
  • try to get rid of unblockability in special moves, replace it with heavy block stagger (60 frames of stagger, 0x3C00 in raw, that is max stagger before animation starts repeating itself) and 0x0008 attack part TRAM flag (attack does 1/2 dmg when blocked+uses attack flash, not blocked one)
  • use block stagger wisely, don't make it that every stronger attack makes enemy stagger for 60 frames
  • don't be afraid to change sucessful attack's impact on enemy. If it originally does stagger but you feel that body knockdown (50) is better, change it.
  • change also damage if you want but don't overdo it
  • for special attacks, use screen capturing process mentioned above to see how animation looks. Then make it semi-vulnerable. How? TRAM,0x3c, check that it does NOT have 0x02. Then go 0x180. first invulnerable frame, next is last invulnerable frame. Set these so they make middle part of special attack invulnerable, but leave there vulnerable windows at the beginning/in the end. How big? It is up to you, use screens to decide. Also, it should be at least 16 frames in order to have its effect (prevention from spamming). Totally vulnerable specials are bad idea IMO, but try it and if you will like it, do it. ^_^
  • please no particles/flashes changes, this will be done later
  • do RIF/PIS attack moves as well (there is not many of them). For RIF moves, I think it is good to make them unblockable but set damage to low value (1-5) and have them knockdown enemy. Purpose of these TRAMs is IMO to knockdown enemy and then finish them with weapon. Again, use your head and do it your way if you think your solution is better.

I think that is all from me. Write your comments. If you don't have any, write that we can start. Once you finish your work, export it as .oni files, rar it and write link here, so I can d/l it and test it. I will do the same with my part.

EDIT: THIS should help you, anim flags (first part) is what interest you as these are written into 0x12 in OBD:TRAM/raw0x14. CREDITS go to MOLTEN, the one who created it. --Loser 19:13, 3 August 2008 (CEST)

Hi, I'm just reading by. About that pdf: note that the flags are 1 too high. (Example: Remember powerup animation type 219? It is 220 in the pdf.) --Paradox-01 20:05, 3 August 2008 (CEST)
Thats a lot!! Since this is my first time, it will be a little unclear. So Loser, just tell me first the things step by step. Then I can follow your task. You don't have to remind of the characters that I'm going to do. Its in my brain ^_^ONIrules August 2008 (EST)
Can you post a screenshot or even the files of your new character? EdT 21:53, 3 August 2008 (CEST)

EdT: I don't think he means whole new character, but "his" TRAMs (his half of work).

Paradox: I know about that fact, but thanks for mentioning it. Yes, numbers are shifted because list should start with ZERO, but it start with one.

ONIrules:OK, it is decided. I write you this step by step list how to work on one TRAM in way I want and let's get to work. When you are finished, write here + post .oni files. First, terminology we will be using for fields in attack part of the TRAM:

Offset Type Raw Hex Value Description
First element (black outline)
0x00 bitset32 00 60 06 00 0, 96, 6, 0 damage-dealing bones
0x04 float 00 00 00 41 8.000000 knockback, the higher you set, the more is enemy pushed back when attack is sucessful
0x08 bitset32 08 00 00 00 8, 0, 0, 0 attack part flags; the following bits are possible:
0x00 - nothing special, attack can be blocked by any stance of defender (crouch, stand) and deals no damage when blocked
0x01 - attack is unblockable
0x02 - attack is high (can be blocked only in normal stance, hits if enemy is crouching)
0x04 - attack is low (can be blocked only in crouch stance, hits if enemy is in normal stance)
0x08 - attack deals 1/2 damage when blocked + while blocking, it does not use blue flash but hit flash (konflash1 for this TRAM)
0x0C int16 14 00 20 hit points
0x0E int16 05 00 5 start frame
0x10 int16 0F 00 15 stop frame
0x12 int16 50 00 80 hit animation (animtype ID of animation of opponent if attack was sucessful,for example 80 = hit_foot)
0x14 int16 0A 00 10 animation duration (in frames, if you input high values, it automatically changes any animtype ID of enemy to stagger animation
0x16 int16 0A 00 10 block stun (in frames) -input high values and this attack will get "has blockstun" label when used by MELE profile
0x18 int16 00 00 0 block stagger (in frames) - when used this move gets "has stagger" when used by MELE profile
0x1A int16 00 00 0 apparently garbage
0x1C int32 00 00 00 00 0 apparently garbage
  • 1) Spam original TRAM (or whole combo). Spam it aganist group of enemies, spam it aganist single enemy (some harder, like Muro/Mukade). Look at the effect this spam has.
  • Is AI2 able to resist the spam? That does not mean it can block/dodge every attack. Only if you can do that move again and again and enemy can barely hit you, there is something wrong, especially aganist multiple enemies (Konoko's original kick special is nice example. If you have good timing, you can spam it so good that you are virtually undefeatable)
  • Are you (attacker) vulnerable while attacking? That means: if you attack with your move and enemy attacks you as well, then enemy gets hit but you recieve "blocked attack" blue flash. Notice when spamming specials. Sometimes you GET hit (some enemy attacks you) while doing special, but it indicates blue flash. Similar when getting up.
  • Which effect has sucessful attack on enemy? Does he only gets hit/is staggered/is knockdowned? Do you think it is good response for your attack? Are you satisfied with knockback? In combos, can you land next hit safely or enemy gets out of reach/can counterattack when you want to do next move?
MY VISION for combos: Make combos so you can sucessfully counterattack only in pause between FIRST and SECOND move. next pauses (between third and fourth etc) should be cared that defender cannot counterattack, can only defend. This way, using combos will get more rewarding. Use bigger value in block stun or mild block stagger to achieve this effect.
REASON: In original ONI if enemy catches you with combo, you can usually throw him and free yourself (with few exceptions) between 2nd and 3rd move. Then using combos is too risky and player reserves for hit n' run tactics, lariatfest or judo (throws a lot). Of course when combo looks like two fast punches then one slow, it has to be treated differently. It is up to you.
  • think about damage, block stagger. I prefer block stagger to block stun, it looks more dynamic. But choice is yours. Don't forget: even if TRAM will cause block stagger, there should be at least 8 frames of block stun written in. Block stagger should be adequate to the power of attack. Beware: some attack causes block stagger -> right after that we can throw. That would lead (logically) to abuse of that move. Specials/standing combos are usually good (use block stagger wisely), Be especially catious when modifying running/jumping moves (block stagger from running move -> immediate possibility of running throw).
  • You can also change start/stop frame if you think it will be for good.
  • my request: directional (lt/rt/fw/bk) punches can be blocked in any stance, kicks only in stand (0x02 attack part flag)
  • my request: last moves from combos should be blocked only high or low (depends on how animation looks), rest can be blocked in any stance
  • my request: running punches can be blocked in any stance, kicks in stand only (0x02 attack part flag)
REASON: by these, we will uplift kicks a bit, evening fact that fists are usually faster.
  • 2) Then start modifying TRAM. Do attack part, then change vulnerability if attack has any. Basically, make TRAMs as much vulnerable as possible. Don't forget - throws are next step, so leave them out now.
  • invulnerability - Open your TRAM (dat entry), offset 0x3C. Check that it does NOT have 0x02. If yes, remove it so TRAM becomes vulnerable. If it had (specials mostly), do that screen capture process I wrote above. That way you will see how animation looks in each frame, it helps you with deciding. Now we want it to be invulnerable only in the middle. Go to 0x180, here you can set first frame when animation gets invulnerable. next to it is field for last frame. Adjust it so these specials have invulnerable part in the middle of execution, where "attacker is the king" but have at least 16 frames long windows (and I prefer longer ^_^) at the beginning/at the end of animation, so attacker can be hurt. This should prevent spamming.
  • 3) Save, try again aganist group and aganist single enemy. Finetune, then move onto another TRAM. That is enough so far.

LET'S ROCK !!!