Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 06/17/10 14:06

Tantir
Member
From: Cracow
Registered: 06/10/07

Oni statistics

Oni statistics

What is done:

  • TIME: Faster you are, more points you have. <--- Can you tell me, how much time you need to finish first lvl? This point can be a little unbalanced.

  • HEALTH: You lose points for taking damage and going over power <--- Thanks to love_Oni it is finished.

  • KILLS: How many enemies you kill <--- It will be great to use chr_display_combat_stats but I must used normal couter.

  • BACKBRAKERS: How many enemies have their back braked <--- Finished. Max value 32. There is only 31 enemies so I think its enouch.

  • FRIENDLY CASAULTIES: How many neutrals guys died. <--- Finished.

  • ALARM: Activated or not. <--- Finished

  • BLOCKS: How many times you blocked punchs. <--- Finished. I think it count it in approximation.

  • BAD LANDINGS: What can I say? Just don`t fall from big height . <--- Finished.

  • SECRETS: How many you found, of course smile <--- There is only 7 in warehouse level? Including secret striker?

  • END: Finial note. Sum of all above. It is number from 1 to 100. But, it can be smaller than 0 when you are very bad, and can be over 100 only when you are master. Hmm, It will be very very hard to have 100+, but having 100 is quite possible.



Hi.
I`m working on script which add statistics to the game. Maybe someone made script like that earlier, but I dont find anything like that.
Idea is preety simple. At the end of the level you can learn how many enemies you killed, how much time it takes you, your health-lose rate (no damage, good, poor), later maybe how much back brakes you did, and more. After that, you will see your  cumulative rate.

Of course, I`m not pro in scripting so I need help.

1. Is there any way to tell when Konoko goes over-power?

func koks {
sleep 60
chr_wait_health 0 210 
sleep 60
mycounter2 = mycounter2 - 1
}

This don`t working.

2. Is there any way to know when Konoko picks powerup?  I mean, power up or weapon in secret place, to count how many secrects player found.

3. Is there any way to place a value from var int mycounter = 0;  to dmsg " "  ?

You can try this script by replaceing EnvWarehouse bsl files.

Last edited by Tantir (06/22/10 13:06)

Offline

#2 06/17/10 15:06

s10k
Member
Registered: 01/14/07
Website

Re: Oni statistics

Tantir wrote:

1. Is there any way to tell when Konoko goes over-power?

func koks {
sleep 60
chr_wait_health 0 210 
sleep 60
mycounter2 = mycounter2 - 1
}

This don`t working.

2. Is there any way to know when Konoko picks powerup?  I mean, power up or weapon in secret place, to count how many secrects player found.

3. Is there any way to place a value from var int mycounter = 0;  to dmsg " "  ?

1- I don't think so... The code you posted didn't work because chr_wait_health doesn't wait for a specific value, but for any that is bellow or equal.

Even if the player has just 1 health the <mycounter2 = mycounter2 - 1> would be executed.

2-You could wait for the pickup animation, but that would work for any pickup not just for the secrets.

3-I don't think so. BSL doesn't have any function to convert from int to string I believe.

Offline

#3 06/17/10 15:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

So Oni has no "greater than, less than" functions like "<" or ">" ? that sux :-/


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#4 06/17/10 17:06

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Oni statistics

Mukade wrote:

So Oni has no "greater than, less than" functions like "<" or ">" ? that sux :-/

It does have ">" and "<", but I don't think there's a function to read character health into a variable so you can perform a < or > on it.

chr_wait_health 0 210

I thought this would fail because Konoko's health might not be getting set to exactly 210....


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#5 06/17/10 20:06

Paff
Member
From: Karatu, Arusha, Tanzania
Registered: 04/18/10
Website

Re: Oni statistics

Unfortunately I can't offer any help, but I just wanted to say that this is a really good mod idea.

Offline

#6 06/17/10 20:06

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Oni statistics

Yeah, I like the idea too.  There's a lot of obstacles in implementing it, though.

By the way, S10K was right, chr_wait_health looks for that health or lower.  Shame on me for not reading the wiki.  It's funny because I used that function in a script and still didn't know how it worked.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#7 06/18/10 04:06

Leus
Member
From: Boone, NC
Registered: 05/28/09
Website

Re: Oni statistics

With the new Daodan Gumby was talkin' about like a year ago a lot of this stuff would be more feasible.  Did that ever come out?


If we don't change the direction we're going, we'll likely end up where we're headed.

Offline

#8 06/18/10 06:06

Tantir
Member
From: Cracow
Registered: 06/10/07

Re: Oni statistics

Ok. I manage konoko over power.

func koks {
fork koks1
chr_wait_health 0 210 
mycounterpower = mycounterpower + 1

}
func koks1  {
sleep 10
if(mycounterpower eq 0)
        {
       mycounter2 = mycounter2 - 1
        }
if(mycounterpower eq 1)
        {
       mycounterpower = 0
fork koks
        }
}

   smile

What this script do?
1. TIME <---- it count how long you play level. Since we can`t transform int to string it has only 7 options like very fast, medium, slow. It must be balanced.
2. HEALTH <---- 7 options, a) no damage and no overpower,  b) health don`t drop under 200, c) under 100, d) under 50.
3. KILLS <---- How many enemies you killed.
4. BACKBRAKERS <----  How many of them you did.
5. FRIENDLY CASAULTIES <---- How many neutral guys are dead.
6. ALARM <----  Activated or no.
Cooming soon:
7. OVERALL RATE 

Have any ideas what should I add?

And about powerups.
In first level when you are near hypo o ammo there is message: Press q to pick hypo.  Maybe it is a way to count how many powerups Konoko have?

Offline

#9 06/18/10 08:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

Ahhh, well done Tantir, I see what you did there, used chr_wait_health as a false boolean condition I think is the words, or something along those lines...

On a slightly related, yet unrelated subject, who here has ever considered an achievement system for Oni big_smile


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#10 06/18/10 09:06

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

Re: Oni statistics

Well, this is what I tried:

var int mycounterpower;
var int mycounter2;
func void main(void)
{
level_start
fork koks
fork test
}

func koks {
fork koks1
chr_wait_health 0 210 
mycounterpower = mycounterpower + 1

}
func koks1  {
sleep 10
if(mycounterpower eq 0)
        {
       mycounter2 = mycounter2 + 1
        }
if(mycounterpower eq 1)
        {
       mycounterpower = 0
fork koks
        }
}

func test {
chr_wait_animation 0 KONOKOrun_bk_kick
if(mycounter2 eq 0)
    {
    dmsg"overpower = 0"
    }
if(mycounter2 eq 1)
    {
    dmsg"overpower = 1"
    }
if(mycounter2 eq 2)
    {
    dmsg"overpower = 2"
    }
if(mycounter2 eq 3)
    {
    dmsg"overpower = 3"
    }
if(mycounter2 eq 4)
    {
    dmsg"overpower = 4"
    }
if(mycounter2 eq 5)
    {
    dmsg"overpower = 5"
    }
if(mycounter2 eq 6)
    {
    dmsg"overpower = 6"
    }
if(mycounter2 eq 7)
    {
    dmsg"overpower = 7"
    }
if(mycounter2 eq 8)
    {
    dmsg"overpower = 8"
    }
if(mycounter2 eq 9)
    {
    dmsg"overpower = 9"
    }
if(mycounter2 eq 10)
    {
    dmsg"overpower = 10"
    }
sleep 120
fork test
}

(what did I changed:
-I added "var int mycounterpower;" and "var int mycounter2;" in the beginning.
-Replacing "mycounter2 = mycounter2 - 1" by "mycounter2 = mycounter2 + 1"
-I added "test" function to see if the counter works.
)
I started the game and entered "fatloot". I used a hypo and then I did a back running kick to see what would happen. It worked!. "overpower = 1" appeared.  smile
But then I waited for Konoko's health to drop down and I used a hypo again, it was still "overpower = 1" that appeared, not "overpower = 2" that I supposed to be. I wonder what I have done wrong?

But anyway, well done Tantir! It seems that was a success in scripting Oni to me. I have wondered about it too but up to now, I still haven't found the answer for that. But you changed it. big_smile

Last edited by love_Oni (06/20/10 04:06)


The Boy Who Knew Too Much tongue

Offline

#11 06/19/10 14:06

Phydur
Member
Registered: 01/13/07

Re: Oni statistics

y'know, to be honet, I don't like  statistics at the end of levels.
because im never good enough to get the perfect rank. except for maybe ocasionaly from sheer luck, or perhaps a forgiving score, i have never gotten an S rank. A's i can get once in  a blue moon, but genarly i have to settle for Cs or Bs..
but thats just cause i suck or mess up and dont want to play the level over and over again. so its not realy important. but i just wanted to give my opinion. not that it maters. i jut wont download the mod...
out of all the games i've played i think ive only goten like 4 or 5 max rank scores...


I intentionally spell dang, dange, FYI.

Offline

#12 06/19/10 18:06

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Oni statistics

Yeah, I tend not to get good grades in video games either.  But I still like this idea, in part because there is that precedent of the Training level, where you do get a score.  I always do well there, but I think we all do.  Shinatama is very forgiving smile


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#13 06/19/10 20:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

Maybe you don't like getting graded at the end, but it's a way we can see how we did, and try to improve on that... also, it can be one way to compare our skills together, at least until Flatline comes out wink

Again on my post above, does anyone of the experienced scripters here think that would be possible?


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#14 06/19/10 21:06

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Oni statistics

What, an achievement system?  We would need a way to save achievements to disk, which goes beyond anything BSL can do.  The Daodan could probably do it easily, although the proof of your achievement would still only be on your hard drive.  Once we get MP working, we'll probably have a foundation for doing achievements right.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#15 06/19/10 23:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

I guess... well, we could maybe start by thinking up some achievement concepts, maybe make a list, then write a script to check for them, and the user can print out the list and put a check mark next to each of them  big_smile  cool

This is just the perfect game for such a system


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#16 06/20/10 04:06

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

Re: Oni statistics

I wrote:

Well, this is what I tried:

var int mycounterpower;
var int mycounter2;
func void main(void)
{
level_start
fork koks
fork test
}

func koks {
fork koks1
chr_wait_health 0 210 
mycounterpower = mycounterpower + 1

}
func koks1  {
sleep 10
if(mycounterpower eq 0)
        {
       mycounter2 = mycounter2 + 1
        }
if(mycounterpower eq 1)
        {
       mycounterpower = 0
fork koks
        }
}

func test {
chr_wait_animation 0 KONOKOrun_bk_kick
if(mycounter2 eq 0)
    {
    dmsg"overpower = 0"
    }
if(mycounter2 eq 1)
    {
    dmsg"overpower = 1"
    }
if(mycounter2 eq 2)
    {
    dmsg"overpower = 2"
    }
if(mycounter2 eq 3)
    {
    dmsg"overpower = 3"
    }
if(mycounter2 eq 4)
    {
    dmsg"overpower = 4"
    }
if(mycounter2 eq 5)
    {
    dmsg"overpower = 5"
    }
if(mycounter2 eq 6)
    {
    dmsg"overpower = 6"
    }
if(mycounter2 eq 7)
    {
    dmsg"overpower = 7"
    }
if(mycounter2 eq 8)
    {
    dmsg"overpower = 8"
    }
if(mycounter2 eq 9)
    {
    dmsg"overpower = 9"
    }
if(mycounter2 eq 10)
    {
    dmsg"overpower = 10"
    }
sleep 120
fork test
}

(what did I changed:
-I added "var int mycounterpower;" and "var int mycounter2;" in the beginning.
-Replacing "mycounter2 = mycounter2 - 1" by "mycounter2 = mycounter2 + 1"
-I added "test" function to see if the counter works.
)
I started the game and entered "fatloot". I used a hypo and then I did a back running kick to see what would happen. It worked!. "overpower = 1" appeared.  smile
But then I waited for Konoko's health to drop down and I used a hypo again, it was still "overpower = 1" that appeared, not "overpower = 2" that I supposed to be. I wonder what I have done wrong?

Have you try it? Just put the code in a .bsl file and put it in EnvWarehouse folder. (I'm waiting for your feedback smile)


The Boy Who Knew Too Much tongue

Offline

#17 06/20/10 06:06

Tantir
Member
From: Cracow
Registered: 06/10/07

Re: Oni statistics

Yeah, It`s working! Is`s better solution than mine. Setting counter  to 0, is better than counter = -1  smile.
For me, it doesn`t matter how many times Konoko goes Overpower.

love_Oni wrote:

]But then I waited for Konoko's health to drop down and I used a hypo again, it was still "overpower = 1" that appeared, not "overpower = 2" that I supposed to be. I wonder what I have done wrong?

You must add fork koks2 there. If not, both func will end when mycounterpower eq 0, because there will be no more fork koks. But, there is another problem. We must wait, till Konoko`s health drop down again to 200.  hmm, I think, in that way, it should work... maybe .

func koks1  {
sleep 10
if(mycounterpower eq 0)
        {
       mycounter2 = mycounter2 + 1
sleep 360  # <-------------- ?
fork koks2  #<--------------
        }
if(mycounterpower eq 1)
        {
       mycounterpower = 0
fork koks
        }
}

BTW, sorry for strange func like "koks" koks1", just I don`t want interfere with original func.


Mukade wrote:

This is just the perfect game for such a system

Yes, I think the same. It will be new challenge in oni wink.


I have another question.

1)  Reloading weapons. Whith prefix should I use? KONCOM? KONPIS?
How is it called anyway?    " reload_pistol"  ?   " reload_rifle"  ?
I want use it with"         chr_wait_animation 0

2) The same, as above, but with landing animation. Is there a way to
chr_wait_animation 0  "fall and take damage"  ?

3) How large bsl file can be?  As you can see, it is a lot of code  lol

 

if(mycounterblok eq 1)
        {
        dmsg "1 punches blocked !"
        }

if(mycounterblok eq 2)
        {
        dmsg "2 punches blocked !"
        }

if(mycounterblok eq 3)
        {
        dmsg "3 punches blocked !"
        }

if(mycounterblok eq 4)
        {
        dmsg "4 punches blocked !"
        }

if(mycounterblok eq 5)
        {
        dmsg "5 punches blocked !"
        }

if(mycounterblok eq 6)
        {
        dmsg "6 punches blocked !"
        }

if(mycounterblok eq 7)
        {
        dmsg "7 punches blocked !"
        }

if(mycounterblok eq 8)
        {
        dmsg "8 punches blocked !"
        }

if(mycounterblok eq 9)
        {
        dmsg "9 punches blocked !"
        }

if(mycounterblok eq 10)
        {
        dmsg "10 punches blocked !"
        }

if(mycounterblok eq 11)
        {
        dmsg "11 punches blocked !"
        }

if(mycounterblok eq 12)
        {
        dmsg "12 punches blocked !"
        }

if(mycounterblok eq 13)
        {
        dmsg "13 punches blocked !"
        }

if(mycounterblok eq 14)
        {
        dmsg "14 punches blocked !"
        }

if(mycounterblok eq 15)
        {
        dmsg "15 punches blocked !"
        }

if(mycounterblok eq 16)
        {
        dmsg "16 punches blocked !"
        }

if(mycounterblok eq 17)
        {
        dmsg "17 punches blocked !"
        }

if(mycounterblok eq 18)
        {
        dmsg "18 punches blocked !"
        }

if(mycounterblok eq 19)
        {
        dmsg "19 punches blocked !"
        }

if(mycounterblok eq 20)
        {
        dmsg "20 punches blocked !"
        }

if(mycounterblok eq 21)
        {
        dmsg "21 punches blocked !"
        }

if(mycounterblok eq 22)
        {
        dmsg "22 punches blocked !"
        }

if(mycounterblok eq 23)
        {
        dmsg "23 punches blocked !"
        }

if(mycounterblok eq 24)
        {
        dmsg "24 punches blocked !"
        }

if(mycounterblok eq 25)
        {
        dmsg "25 punches blocked !"
        }

if(mycounterblok eq 26)
        {
        dmsg "26 punches blocked !"
        }

if(mycounterblok eq 27)
        {
        dmsg "27 punches blocked !"
        }

if(mycounterblok eq 28)
        {
        dmsg "28 punches blocked !"
        }

if(mycounterblok eq 29)
        {
        dmsg "29 punches blocked !"
        }

if(mycounterblok eq 30)
        {
        dmsg "30 punches blocked !"
        }

if(mycounterblok eq 31)
        {
        dmsg "31 punches blocked !"
        }
if(mycounterblok eq 32)
        {
        dmsg "32 punches blocked !"
        }
if(mycounterblok eq 33)
        {
        dmsg "33 punches blocked !"
        }
if(mycounterblok eq 34)
        {
        dmsg "34 punches blocked !"
        }
if(mycounterblok eq 35)
        {
        dmsg "35 punches blocked !"
        }
if(mycounterblok eq 36)
        {
        dmsg "36 punches blocked !"
        }
if(mycounterblok eq 37)
        {
        dmsg "37 punches blocked !"
        }
if(mycounterblok eq 38)
        {
        dmsg "38 punches blocked !"
        }
if(mycounterblok eq 39)
        {
        dmsg "39 punches blocked !"
        }
if(mycounterblok eq 40)
        {
        dmsg "40 punches blocked !"
        }
if(mycounterblok eq 41)
        {
        dmsg "41 punches blocked !"
        }
if(mycounterblok eq 42)
        {
        dmsg "42 punches blocked !"
        }
if(mycounterblok eq 43)
        {
        dmsg "43 punches blocked !"
        }
if(mycounterblok eq 45)
        {
        dmsg "45 punches blocked !"
        }
if(mycounterblok eq 46)
        {
        dmsg "46 punches blocked !"
        }
if(mycounterblok eq 47)
        {
        dmsg "47 punches blocked !"
        }
if(mycounterblok eq 48)
        {
        dmsg "48 punches blocked !"
        }
if(mycounterblok eq 49)
        {
        dmsg "49 punches blocked !"
        }
if(mycounterblok eq 50)
        {
        dmsg "50 punches blocked !"
        }
if(mycounterblok eq 51)
        {
        dmsg "51 punches blocked !"
        }
if(mycounterblok eq 52)
        {
        dmsg "52 punches blocked !"
        }
if(mycounterblok eq 53)
        {
        dmsg "53 punches blocked !"
        }
if(mycounterblok eq 54)
        {
        dmsg "54 punches blocked !"
        }
if(mycounterblok eq 55)
        {
        dmsg "55 punches blocked !"
        }
if(mycounterblok eq 56)
        {
        dmsg "56 punches blocked !"
        }
if(mycounterblok eq 57)
        {
        dmsg "57 punches blocked !"
        }
if(mycounterblok eq 58)
        {
        dmsg "58 punches blocked !"
        }
if(mycounterblok eq 59)
        {
        dmsg "59 punches blocked !"
        }
if(mycounterblok eq 60)
        {
        dmsg "60 punches blocked !"
        }
if(mycounterblok eq 61)
        {
        dmsg "61 punches blocked !"
        }
if(mycounterblok eq 62)
        {
        dmsg "62 punches blocked !"
        }
if(mycounterblok eq 63)
        {
        dmsg "63 punches blocked !"
        }
if(mycounterblok eq 64)
        {
        dmsg "64 punches blocked !"
        }
if(mycounterblok eq 65)
        {
        dmsg "65 punches blocked !"
        }
if(mycounterblok eq 66)
        {
        dmsg "66 punches blocked !"
        }
if(mycounterblok eq 67)
        {
        dmsg "67 punches blocked !"
        }
if(mycounterblok eq 68)
        {
        dmsg "68 punches blocked !"
        }
if(mycounterblok eq 69)
        {
        dmsg "69 punches blocked !"
        }
if(mycounterblok eq 70)
        {
        dmsg "70 punches blocked !"
        }
if(mycounterblok eq 71)
        {
        dmsg "71 punches blocked !"
        }
if(mycounterblok eq 72)
        {
        dmsg "72 punches blocked !"
        }
if(mycounterblok eq 73)
        {
        dmsg "73 punches blocked !"
        }
if(mycounterblok eq 74)
        {
        dmsg "74 punches blocked !"
        }
if(mycounterblok eq 75)
        {
        dmsg "75 punches blocked !"
        }
if(mycounterblok eq 76)
        {
        dmsg "76 punches blocked !"
        }
if(mycounterblok eq 77)
        {
        dmsg "77 punches blocked !"
        }
if(mycounterblok eq 78)
        {
        dmsg "78 punches blocked !"
        }
if(mycounterblok eq 79)
        {
        dmsg "79 punches blocked !"
        }
if(mycounterblok eq 80)
        {
        dmsg "80 punches blocked !"
        }
if(mycounterblok eq 81)
        {
        dmsg "81 punches blocked !"
        }
if(mycounterblok eq 82)
        {
        dmsg "82 punches blocked !"
        }
if(mycounterblok eq 83)
        {
        dmsg "83 punches blocked !"
        }
if(mycounterblok eq 84)
        {
        dmsg "84 punches blocked !"
        }
if(mycounterblok eq 85)
        {
        dmsg "85 punches blocked !"
        }
if(mycounterblok eq 86)
        {
        dmsg "86 punches blocked !"
        }
if(mycounterblok eq 87)
        {
        dmsg "87 punches blocked !"
        }
if(mycounterblok eq 88)
        {
        dmsg "88 punches blocked !"
        }
if(mycounterblok eq 89)
        {
        dmsg "89 punches blocked !"
        }
if(mycounterblok eq 90)
        {
        dmsg "90 punches blocked !"
        }
if(mycounterblok eq 91)
        {
        dmsg "91 punches blocked !"
        }
if(mycounterblok eq 92)
        {
        dmsg "92 punches blocked !"
        }
if(mycounterblok eq 93)
        {
        dmsg "93 punches blocked !"
        }
if(mycounterblok eq 94)
        {
        dmsg "94 punches blocked !"
        }
if(mycounterblok eq 95)
        {
        dmsg "95 punches blocked !"
        }
if(mycounterblok eq 96)
        {
        dmsg "96 punches blocked !"
        }
if(mycounterblok eq 97)
        {
        dmsg "97 punches blocked !"
        }
if(mycounterblok eq 98)
        {
        dmsg "98 punches blocked !"
        }
if(mycounterblok eq 99)
        {
        dmsg "99 punches blocked !"
        }
if(mycounterblok > 100)
        {
        dmsg "Over 100 punches blocked !"
        }

} 

Offline

#18 06/20/10 06:06

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Oni statistics

Well, Tantir, there's a script in gmsly's TCTF HQ mod that is 82KB, so don't worry about maximum size, you'll never get there  cool

However, you should probably write a function that translates integers to strings instead of making endless 'if' statements.

Mukade wrote:

I guess... well, we could maybe start by thinking up some achievement concepts, maybe make a list, then write a script to check for them, and the user can print out the list and put a check mark next to each of them  big_smile  cool

This is just the perfect game for such a system

Sure, we could certainly think up some achievements now.  You might want to start a new thread for that.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#19 06/20/10 13:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

Yeah, it's too bad BSL is a limited scripting language...

@Reloading gun animation...  Here's what you do to find out:
Go into Oni, and start dev mode. get an empty gun and some ammo, then in dev console type chr_debug_characters 0 1 or something like that... that should give you a little console with a bunch of character information, included is the current animation the character is playing. Then reload your gun and keep an eye on the current animation, it'll tell you what the name is  cool

Also, just wondering, would it be possible to make an animation go along with using a hypo spray? In that way, you could also track how many hypos were used. It would be quite an easy animation to make


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#20 06/20/10 14:06

s10k
Member
Registered: 01/14/07
Website

Re: Oni statistics

Mukade wrote:

Yeah, it's too bad BSL is a limited scripting language...
chr_debug_characters 0 1 or something like that...

It's chr_debug_character=1 I think.

2. Is there any way to know when Konoko picks powerup?  I mean, power up or weapon in secret place, to count how many secrects player found.

I was just thinking, with a little of xml editing it would be easy to do.

You just need to create a trigvolume in every secret area, every time the player gets there a bsl function will be called (you choose the name), in there you can just put «secrets_found=secrets_found+1» for example.

level_maze by edt does that for the savepoints and also for trigger other situations (like the final battle).

Offline

#21 06/20/10 16:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

Yeah, theres no posts on how to do triggers is there? I've tried and failed :-/

I've been wanting to know how to do this


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#22 06/20/10 17:06

s10k
Member
Registered: 01/14/07
Website

Re: Oni statistics

Ask edt. I never tried.

Offline

#23 06/20/10 23:06

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

Re: Oni statistics

The command chr_display_combat_stats will show the amount of damage and kills by a character.  But I don't know if you can access the info from BSL.

combat_stats.jpg

Mukade: I extracted the triggervolume as XML and edited the coordinates.  It was mostly trial and error.

Offline

#24 06/21/10 11:06

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 05/29/07

Re: Oni statistics

I see, but how do you edit the size of the triggervolume? Is that done with coordinates too? Or maybe a radius?


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#25 06/21/10 14:06

Tantir
Member
From: Cracow
Registered: 06/10/07

Re: Oni statistics

Iritscen wrote:

However, you should probably write a function that translates integers to strings instead of making endless 'if' statements.

Yeah, that would be great, but is it posibile? I`m already have 30 kb, and I`m planing add more endles ifstatemants  tongue

Mukade wrote:

Go into Oni, and start dev mode. get an empty gun and some ammo, then in dev console type chr_debug_characters 0 1 or something like that... that should give you a little console with a bunch of character information, included is the current animation the character is playing. Then reload your gun and keep an eye on the current animation, it'll tell you what the name is

Thanks! It is very helpful. I always wondering about animation`s names.

Script_10k wrote:

I was just thinking, with a little of xml editing it would be easy to do.

Wow, you are right! It is exactly what I need. And xml editing is easier than I tougt.

But, of course I have a problem wink.

I opened BINACJBOTrigger_Volume and on the end I add new trigger:

 <Object Id="11575" Type="TRGV">
           <Header>
               <Flags>1</Flags>
               <Position>53 39 -790</Position>
               <Rotation>0 0 0</Rotation>
           </Header>
           <OSD>
               <Name>pierwsze_ammo</Name>
               <Scripts>
                   <Entry>sekret</Entry>
                   <Inside></Inside>
                   <Exit></Exit>
               </Scripts>
               <Teams>255</Teams>
               <Size>50 50 50</Size>
               <TriggerVolumeId>0</TriggerVolumeId>
               <ParentId>0</ParentId>
               <Notes></Notes>
               <Flags>1</Flags>
           </OSD>
       </Object>

Nothing happened.

When I add this:

 <Object Id="11575" Type="TRGV">
           <Header>
               <Flags>1</Flags>
               <Position>53 39 -790</Position>
               <Rotation>0 0 0</Rotation>
           </Header>
           <OSD>
               <Name>pierwsze_ammo</Name>
               <Scripts>
                   <Entry>sekret</Entry>
                   <Inside></Inside>
                   <Exit></Exit>
               </Scripts>
               <Teams>255</Teams>
               <Size>50 50 50</Size>
               <TriggerVolumeId>46</TriggerVolumeId>   <--------
               <ParentId>0</ParentId>
               <Notes></Notes>
               <Flags>128</Flags>
           </OSD>
       </Object>

When I enter volume (Place was working) got dmsg: "<Training drone resseting position>"  Like it is in wikipedia. And it was repeated in every frame. ( I belive it if I change <Flags>128</Flags> to <Flags>1</Flags> it will be triggered only once? Am I right? )


Can someone tell me what`s is about these:
<TriggerVolumeId>46</TriggerVolumeId> 
<ParentId>0</ParentId>
I didnt find any useful information about it on wiki.

Offline

Board footer

Powered by FluxBB