Oni Central Forum

A forum for the Oni community

You are not logged in.

#26 08/14/08 20:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

Oh, it looks like many of you are in busy. Don't matter. When you have the free time, please take a while and call me, o.k?


The Boy Who Knew Too Much tongue

Offline

#27 08/14/08 21:08

EdT
Moderator
From: Los Angeles, CA
Registered: 01/13/07
Website

Re: OTA builds

love_Oni: Don't worry, if you have questions, just post them, sooner or later someone will respond. :-)

Offline

#28 08/14/08 22:08

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: OTA builds

I'm always here to help (on a break from modding or not), I just won't do any of the actual work. tongue


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#29 08/15/08 19:08

Muro
Member
From: England
Registered: 05/28/08

Re: OTA builds

love_Oni wrote:

P.S: Have you try the compound arena in the attachment? Isn't it funny? tongue

You can jump very high in that one lol.

So whats the Arena 0? Something to do with the edition?

Offline

#30 08/15/08 21:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

Ah, I mean the Arena 0 is the arena 1.0, which you can see in my previous post. The name of arenas 1.0 begins with "(A0)", ex: (A0) Lv.02 - Manufactory Plant Arena.zip.

Long time no post. Sorry because the network in my area had somethings wrong.

Ok, I'll start.

I'm trying to remake some arena scripts, exactly I'll add somethings to them. I added many new flags so the battlefield can be larger and more enjoyable. For example, the first Arena "Dprint hello" in the Arena Lv.02 manplant - v.1.1:

Lv02-Arena0Map.jpg

I also added Muro and Barabas in this arena, and I need to make them a little tougher (because actually they were change classes from strikers by using the 'chr_set_class' functions, and their battle tactics are poor you know). These are the functions I added in the file "arena_teams.bsl":

  (why can't we make bold characters in the code tag?)

func void AddEnemyTeam(void) {
    AddPlayer(Syndicate, ambush_striker_3, "[r.MURO]"); sleep 1;
chr_set_class 1 muro_generic
chr_ultra_mode ambush_striker_3 1
chr_set_health ambush_striker_3 800
chr_boss_shield ambush_striker_3
sleep 149
    AddPlayer(Syndicate, ambush_striker_2, "[o.Sewer Denizen]"); sleep 150;
    AddPlayer(Syndicate, hall_striker_2, "[y.SYNDICATE BOSS]"); sleep 1;
chr_set_class 7 barabus
chr_ultra_mode hall_striker_2 1
chr_set_health hall_striker_2 1000
chr_boss_shield hall_striker_2
sleep 149

. . . 
 
}

But I still have some problems:

  1 - I did want to make Muro tougher:
... so I added these functions in the "arena_rand.bsl":

var int rand_muro2= 0; var string rand_muro2_move;

func RandMuro2
{
    if(rand_muro2 eq 0) rand_muro2_move=    MURCOMkick_fw;
    if(rand_muro2 eq 1) rand_muro2_move=   MURCOMpunch_fw;
    if(rand_muro2 eq 2) rand_muro2_move= MURCOMkick_heavy;
}

... and these functions in the "arena_main.bsl":

func void main(void) {
    ArenaSetupLevel();
. . .

fork muro
sleep 60
fork muro2
}

fork muro {

. . . (these are the other functions which I'm not mention now)
}

func void muro2(string rand_muro2_move) {
chr_wait_animation ambush_striker_3 MURCOMkick_fw
fork RandMuro2
chr_animate(ambush_striker_3, rand_muro2_move);
sleep 30
rand_muro2= rand_muro2 + 1;
if(rand_muro eq 3) rand_muro2= 0;
sleep 30
fork muro2
}

So all the things I did means: When Muro (actually the striker) tries to perform "MURCOMkick_fw", I'll force him to perform the other moves. Those are "MURCOMkick_fw", "MURCOMpunch_fw", "MURCOMkick_heavy", and those will be perform in the order that I mentioned in the line above, together with the changes of the rand_muro2 variation: 0, 1, 2, 0, 1, 2,... But... it doesn't work. So I ask you if you can help me to make a ramdom "chr_animate [Muro] [moves]" as I mentioned.

  2 - I did want to make Barabus tougher
... so I added these functions in the "arena_main.bsl":

func void main(void) {
    ArenaSetupLevel();
. . .

fork muro
sleep 60
fork muro2
sleep 780
fork barabus
sleep 60
fork barabus2
sleep 10
fork barabus3
sleep 10
fork barabus4
sleep 10
fork barabus5
sleep 10
fork barabus6
sleep 10
fork barabus7
}

func barabus {
chr_wait_animation hall_striker_2 ELICOMpunch_heavy
sleep 1
chr_unstoppable hall_striker_2 1
chr_invincible hall_striker_2 1
chr_animate hall_striker_2 BARABkick_heavy
sleep 12
slowmo 5
sleep 21
slowmo 11
sleep 22
slowmo 29
sleep 5
chr_unstoppable hall_striker_2 0
chr_invincible hall_striker_2 0
sleep 600
fork barabus
}

func barabus2 {
chr_wait_animation hall_striker_2 ELICOMthrow_bk
sleep 72
slowmo 40
sleep 92
chr_animate hall_striker_2 STRCOMcrouch_bk
fork barabus2
}

func barabus3 {
chr_wait_animation hall_striker_2 ELICOMkicK_low
chr_animate hall_striker_2 STRCOMkick_low
fork barabus3
}

func barabus4 {
chr_wait_animation hall_striker_2 ELICOMkicK_fw
sleep 50
chr_animate hall_striker_2 ELICOMpunch_low
sleep 30
fork barabus4
}

func barabus5 {
chr_wait_animation hall_striker_2 ELICOMpunch_low
chr_animate hall_striker_2 STRCOMpunch_low
sleep 30
fork barabus5
}

func barabus6 {
chr_wait_animation hall_striker_2 ELICOMcomb_k_k_k
chr_animate hall_striker_2 STRCOMcomb_k_k_k
sleep 30
fork barabus6
}

func barabus7 {
chr_wait_animation hall_striker_2 ELICOMcomb_p_p
sleep 1
chr_animate hall_striker_2 STRCOMcomb_p_p
sleep 19
chr_animate hall_striker_2 ELICOMcomb_p_p_p
sleep 30
fork barabus7
}

... and it still made a big problem: Looks like my computer isn't strong enough to get all of it, and when after every characters dead, they only respawn in one flag! Maybe that problem comes from too many functions, but I don't know. You can try the script I put in attachment and give me some way to solve this.

  3 - Accorrding the functions I used in the previous:

func void AddEnemyTeam(void) {
    AddPlayer(Syndicate, ambush_striker_3, "[r.MURO]"); sleep 1;
chr_set_class 1 muro_generic
chr_ultra_mode ambush_striker_3 1
  ==> chr_set_health ambush_striker_3 800 <==
chr_boss_shield ambush_striker_3
sleep 149
    AddPlayer(Syndicate, ambush_striker_2, "[o.Sewer Denizen]"); sleep 150;
    AddPlayer(Syndicate, hall_striker_2, "[y.SYNDICATE BOSS]"); sleep 1;
chr_set_class 7 barabus
chr_ultra_mode hall_striker_2 1
 ==> chr_set_health hall_striker_2 1000 <==
chr_boss_shield hall_striker_2
sleep 149

. . . 
 
}

... so when I start the arena, Muro and Barabus can be spawn in the first with the modified health number: 800 and 1000. But when they die, they only respawn with the original health number: 69, because actually they were changed classes from strikers. I don't want that thing happens so I'm finding a way to fix that. In the file "arena_main.bsl", I found this function:

######## RESPAWN LOGIC (CORE)
func void RespawnPlayer(string ai_team, string ai_name, string ai_nick) {
    if(chr_is_player(ai_name)) RandMusic();
    chr_invincible(ai_name, 1); ==> chr_full_health(ai_name); <==
    fork SendToRandFlag(ai_name, ai_team);
    ai2_idle(ai_name); sleep 1; ai2_setjobstate(ai_name);
    chr_inv_reset(ai_name);

. . .

I think the function "chr_full_health(ai_name)" caused this problem. So, I asked you if I could add other functions to fix this, such as:

if(ai_name 'or ai_nick or something' eq Muro) then respawn him and "chr_set_health [Muro] 800
if(ai_name 'or ai_nick or something' eq Barabus) then respawn him and "chr_set_health [Barabus] 1000
else "chr_full_health(ai_name)"

... but that's only my thinking. Do you have any ideas?

*If there is a function to change characters' max health (ex: chr_set_max_health) or a way to do that, this problem could be solve easily.

(Put the script in the attachment in the 'manplant' folder and load level 2. If every characters only respawn in one flag, open the file "arena_main.bsl" and delete the line "fork newmoves")

*EDIT: Fixed the new function.

Last edited by love_Oni (08/17/08 07:08)


The Boy Who Knew Too Much tongue

Offline

#31 08/15/08 22:08

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: OTA builds

Looks good. There is no way to set the max health. No big deal, just use what you've got going. For the nicknames, they should be the names of the strikers you changed. And for shortness only have the If mess with health.

func barabus6 {
chr_wait_animation hall_striker_2 ELICOMcomb_k_k_k
chr_animate hall_striker_2 STRCOMcomb_k_k
sleep 39
fork barabus6_1
fork barabus6
}

func barabus6_1 {
chr_wait_animation hall_striker_2 STRCOMcomb_k_k
chr_animate hall_striker_2 STRCOMkick_fw
}

That seems like it will be bad. If Barabus is interrupted during his k_k animation, those will stay in memory, waiting until he next does the animation. Every time he is interrupted, another copy of that function will be in memory.


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#32 08/16/08 05:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

Hm... right. Looks like I need to reduce the amount of the 'newmoves' functions. How about making Muro's random move and the function to respawn Muro and Barabus? Do you have any ideas?

*P.S: Have do try the remake script? Did all characters only respawn in one place... as my 2nd problem?

Last edited by love_Oni (08/16/08 05:08)


The Boy Who Knew Too Much tongue

Offline

#33 08/16/08 10:08

Muro
Member
From: England
Registered: 05/28/08

Re: OTA builds

Nice arena love oni. I tried it out and the spawn points seem fine to me. Only a few things that could be improved here and there.

1 - Sewer Drag is invincible. He cannot be killed.
2 - Minor thing i guess but the civilian Sec cannot be hit. I just like hitting them or throwing them at my enemy's smile
3 - Muro and Barabus could use a little more health as they die a bit too fast at the moment. Not much more mind you as they already have two boss characters on their team.

Overall really fun arena to play in smile

Offline

#34 08/16/08 15:08

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: OTA builds

I don't have the HDD with Oni connected to my computer right now sad So I can't test it.

You can add new moves, just don't have one link to another like that.

If Sewer Drag = Barabus, just keep hitting him. The flashes won't quite be accurate because he has >100% HP


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#35 08/16/08 21:08

Muro
Member
From: England
Registered: 05/28/08

Re: OTA builds

Sewer Drag is a striker.

Offline

#36 08/17/08 04:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

1 - I think the reason why Sewer Drag was invincible is that was a bug. Strange that I didn't do anything to him, I just changed 2 Strikers into Muro and Barabas, nothing more.

2 - Ah yes, I'm also thinking of making us to be able to hit the civilian Sec, but actually she was put in Konoko's team by geyser (he's the person who made the original script).
I think I should put her in the neutral team, or I would keep to her stay at Konoko's team but I must change her class (because she doesn't have any battle techniques - maybe this problem can be solve by editing the characters' techniques file with the edition).

3 - Because I haven't know the functions to respawn Muro and Barabus with the other health yet (for example 400 HP or 500 HP), so I only set their health high from the start, and their health still became low when you did killed them. I'm waiting for someone could help me for those functions.

@Muro: The spawn points seem fine for you? Oh looks like it was my computer that isn't strong enough to run the script. sad

Last edited by love_Oni (08/17/08 07:08)


The Boy Who Knew Too Much tongue

Offline

#37 08/19/08 10:08

Muro
Member
From: England
Registered: 05/28/08

Re: OTA builds

Sewer Drag really ruins the arena. Do you have the same problem i wonder? Pity as its a really cool level.

Offline

#38 08/19/08 11:08

paradox-01
Member
From: Germany
Registered: 01/14/07

Re: OTA builds

What's the actual name of the trouble making character? (ai2_shownames = 1)
You could write "chr_lock_active ai_name" under chr_set_class command and see what happens.

Last edited by paradox-01 (08/19/08 11:08)

Offline

#39 08/19/08 18:08

Muro
Member
From: England
Registered: 05/28/08

Re: OTA builds

Ok the name of the character is patrol_striker-4.

Offline

#40 08/19/08 20:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

I had that problem too. But the more stranger that when I hadn't that problem, other problems came: one point respawn, didn't see any comments (such as "he is dead", "...has been wiped out"), only one type of weapon spawned in weapon mode... etc. I don't know what caused the script ran too heavily.

@paradox-01: that character's ai name is patrol_striker_4, but his class is original, I didn't use the 'chr_set_class' command for him.

Last edited by love_Oni (08/19/08 20:08)


The Boy Who Knew Too Much tongue

Offline

#41 08/20/08 09:08

paradox-01
Member
From: Germany
Registered: 01/14/07

Re: OTA builds

When I comment out (#) a new function in newmoves.bsl then partrol_striker_4 is not longer invincible, it doesn't matter if it is barabus2 or barabus2,  etc. However, these function doesn't look like causing the bug. Another time I comment out the sleeps between bearabus2 and barabus7, now low_striker_2 is invincible. This doesn't make much sense to me .. I just hope these numerous fork, sleep, chr_wait_animation doesn't overload the engine. In last try I watched Konoko double kicking without pressing kick; but that's already known for mass battles. hmm

Offline

#42 08/20/08 11:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

Ok, invincible Striker bug fixed. This time I added something new in the script. Hoped you will like it.

I still have some problems when I'm trying to improve the script. Please read the read-me I put in the attachment, I explained in it all.

Have fun! big_smile

Last edited by love_Oni (08/20/08 11:08)


The Boy Who Knew Too Much tongue

Offline

#43 08/23/08 05:08

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: OTA builds

love_Oni, you really should try using Onisplit to add new characters, instead of messing with messy BSL hacks. smile An installation .bat is quite easy to write, and would only take 10 seconds to add the character (for the enduser, not you)

I look at your script, and can't find anything wrong, but I don't generally mess with using BSL to replace moves. (and when I have, it took a lot of random tweaking to get it working right)

Last edited by Gumby (08/23/08 05:08)


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#44 08/23/08 07:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

I'm afraid that adding new characters such as Muro (expert fighter) and Barabus (know how to regenerate) would make a low-level arena becomes too hard.

*If that's so then we can improve the "KvW" script by adding Tankers and more spawnable characters for many classes, right? (Something's new to do, which classes would you like to add more spawnable characters?)

Last edited by love_Oni (08/23/08 07:08)


The Boy Who Knew Too Much tongue

Offline

#45 08/23/08 14:08

Gumby
Member
From: Seattle, WA, USA
Registered: 08/30/07

Re: OTA builds

Yes, I can, but KvW is messy right now. I kindly ask that you don't edit+release it. I was working on adding more characters, but there are other things to be doing right now. I've got adding characters covered, thank you. smile

EDIT: Hey love_Oni, try using this plugin: http://geyser.oni2.net/edition/plugins/level2_OBJC.zip Fighting Muro and Barabus included. ^_^

Last edited by Gumby (08/23/08 14:08)


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#46 08/23/08 16:08

Muro
Member
From: England
Registered: 05/28/08

Re: OTA builds

I played your new arena. It seems that both Muro and Barabus cannot be killed for around 5 minutes and stay in overpower. After their first death they respawn with very very low HP. Oh the striker is fixed smile

Last edited by Muro (08/23/08 16:08)

Offline

#47 08/24/08 08:08

love_Oni
Member
From: Da Nang, Vietnam
Registered: 05/10/08

Re: OTA builds

Er... About respawning Muro and Barabus, I haven't found a way to make them more health after respawned yet.

@Gumby: What did you add in the plugin? If you added attackable Muro and Barabas characters then please tell me their AI names.

*Is it hard to make a plugin? In which situation we use plugins? (I would like to know smile)


The Boy Who Knew Too Much tongue

Offline

Board footer

Powered by FluxBB