You are not logged in.
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 <--- 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
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
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
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
Unfortunately I can't offer any help, but I just wanted to say that this is a really good mod idea.
Offline
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
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
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
}
}
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
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
"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
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.
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.
Last edited by love_Oni (06/20/10 04:06)
The Boy Who Knew Too Much
Offline
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
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
Check out the Anniversary Edition Seven at ae.oni2.net!
Offline
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
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
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
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
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
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.
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 )
The Boy Who Knew Too Much
Offline
Yeah, It`s working! Is`s better solution than mine. Setting counter to 0, is better than counter = -1 .
For me, it doesn`t matter how many times Konoko goes Overpower.
]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.
This is just the perfect game for such a system
Yes, I think the same. It will be new challenge in oni .
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
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
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
However, you should probably write a function that translates integers to strings instead of making endless 'if' statements.
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
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
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
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
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
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
Ask edt. I never tried.
Offline
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.
Mukade: I extracted the triggervolume as XML and edited the coordinates. It was mostly trial and error.
Offline
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
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
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.
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 .
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