Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 2/7/14 15:52

TOCS
Member
From: Denmark
Registered: 4/4/07

Feign death

I've been toying a bit around with console commands for the past few days, and I was wondering if this is possible to do in any way? Would it require modding? From what I understand you'd basically need a "dead" player state that the AI recognises as dead while in reality you're still alive.

Offline

#2 2/7/14 16:18

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

Re: Feign death

Hmm, good question.  There's seemingly a "play dead" key in Dev Mode (Ctrl-F7), but it doesn't fool the AI because it's not intended for that; it was probably used by the devs to place corpses in levels.  There are commands to make the AI forget about you, but if they were still looking at you, they would presumably immediately notice you again.  So you would need to turn them off altogether with something like ai2_inactive or ai2_allpassive, then turn them on again when Konoko got up, which could be triggered using chr_wait_animation.


byproducts are fine, but where's the beef?

Offline

#3 2/7/14 20:40

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Feign death

The first idea which comes to mind is to change team of the "fake dead" char to Switzerland, then issue ai2_forget with no specific AI2 unit name, which means broadcast to all AI2 units. AI2 units will then stop attacking the "fake dead" character, while retaining all their AI2 abilities. If it is an AI2 char who should play dead, then selective ai2_passive(char_name, 1) should be applied on it to prevent it from getting up.

So, according to this idea:

chr_changeteam(name_of_char, Switzerland)
ai2_passive(name_of_char, 1)
ai2_forget

And to stop the "fake dead" mode of the character:

chr_changeteam(name_of_char, previous_team)
ai2_passive(name_of_char, 0)
ai2_forget

The broadcast ai2_forget is required in both cases, since it wipes records of all encounters with other characters for AI2 units. That means AI2 units will act as if they encounctered the "fake dead" char for the first time and will remember the correct team which this "fake dead" char affiliates with.

Name_of_char is a name of the char to play dead for example A_t48 (ai2 character in the EnvWarehouse). For player character, writing the digit 0 is good enough, no need to write the name.
Previous_team is a label of the team the "fake dead" char was affiliated with before it was changed to Switzerland by script. For example Konoko or Syndicate or Neutral. It is up to the scripter to keep the correct team in mind and switch the char back to correct team when "fake dead" mode ends.

Team name strings:

  • Konoko - AI2 unit is attacked by Syndicate on sight. AI2 unit attacks Syndicate on sight or a specific teammember of any other team if that teammmember harms the AI2 unit, except for Switzerland and TCTF (those are "friends", melee won't affect them).

  • TCTF - AI2 unit is attacked by Syndicate on sight. AI2 unit attacks Syndicate and RougeKonoko on sight or a specific teammember of any other team if that teammember harms the AI2 unit, except for Switzerland and Konoko (those are "friends", melee won't affect them).

  • Syndicate - AI2 unit is attacked by Konoko, TCTF, Neutral, SecurityGuard and RougeKonoko on sight. AI2 unit attacks Konoko, TCTF, Neutral, SecurityGuard and RougeKonoko on sight. AI2 unit won't attack Switzerland or SyndicateAccessory (those are "friends", melee won't affect them).

  • Neutral - AI2 unit is attacked by Syndicate on sight. AI2 unit attacks Syndicate on sight or a specific teammember of any other team if that teammember harms the AI2 unit, except for Switzerland (its a "friend", melee won't affect it).

  • SecurityGuard - AI2 unit is attacked by Syndicate and RougeKonoko on sight. AI2 unit attacks Syndicate and RougeKonoko on sight or a specific teammember of any other team if that teammember harms the AI2 unit, except for Switzerland (its a "friend", melee won't affect it).

  • RogueKonoko - AI2 unit is attacked by TCTF, Syndicate and SecurityGuard on sight. AI2 unit attacks TCTF and Syndicate on sight or a specific teammember of any other team if that teammember harms the AI2 unit, except for Switzerland (its a "friend", melee won't affect it).

  • Switzerland - AI2 unit is not attacked by anyone on sight, considered a "friend" by all. AI2 unit does not attack anyone on sight nor on harm, takes all other teams as friends. De facto melee immune, since it takes all teams as friends.

  • SyndicateAccessory - AI2 unit is not attacked by anyone on sight. AI2 unit does not attack anyone on sight, it only attacks a specific teammember of any other team if that teammember harms the AI2 unit, except for Syndicate and Switzerland (those are "friends", melee won't affect them).

Last edited by Loser (2/7/14 20:42)


"I am just a mere reflection of what I would be."

Offline

#4 4/7/14 10:23

TOCS
Member
From: Denmark
Registered: 4/4/07

Re: Feign death

This is pretty cool! I might see if I can get something out of it. But I don't think the AI will recognise you as "dead", i.e. it will not taunt you when you use this? smile

Offline

#5 4/7/14 14:20

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Feign death

Exactly as pointed, enemies will not taunt. They are not considering the "fake dead" character truly dead, they only start ignoring him.

However, enemies don't always taunt defeated opponents (it is set by ONCC parameter) so them not taunting does not feel awkward nor out of place.

Last edited by Loser (4/7/14 14:24)


"I am just a mere reflection of what I would be."

Offline

Board footer

Powered by FluxBB