Page 1 of 1

White face acting weird in specific cases

Posted: Sun Jan 17, 2016 7:36 pm
by ibm5155
So, for some reasons, when a player is on the top of a object that is near to two walls, he doesnt instakill him, and many times he just fails to kill the player '-'
phpBB [video]
The [video] tag is deprecated, please use the [media] tag
Here's a example vĂ­deo, whiteface pass near the player and goes in a linear direction, after passing the sector, he goes back and kill the player.

This wasn't even happening before, before, he would just go over that direction he went before, and he would never return D:

Here's the code line that he was executing

Code: Select all

  SeeHaunt:
   SCAR A 0 A_JumpIf(user_WFHunterTimer>0,3)
   //START SETUP
   SCAR A 0 A_SetUserVar("user_WFHunterTimer",random(10,20))//Set the timer 
   SCAR A 0 ACS_Execute(46,0,1) //1
   //END START SETUP
   SCAR A 0 A_Playsound("KIDSND")//2 <-
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.1,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.2,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.3,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.4,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.5,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.6,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.7,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.8,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.9,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(1.0,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.9,0) 
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.8,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.7,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.5,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.4,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.3,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.2,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.1,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.0,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase 
   SCAR A 0 A_SetUserVar("user_WFHunterTimer",user_WFHunterTimer-1)//in case it goes below zero
   SCAR A 0 A_JumpIf(user_WFHunterTimer>0,5)
   //RESET WHITE FACE TO NORMAL STATUS
   SCAR A 0 A_SetTranslucent (0.0,0)  //1
   SCAR A 0 ACS_Execute(46,0,0)         //2
   SCAR A 0 A_SetUserVar("user_WFHunterTimer",0)//in case it goes below zero
   SCAR A 0 A_Jump(256,"See")      //4
   SCAR A 0                        //5 <--
   Loop  
He should act as a tracer, and, 99% of the cases it Works just fine, it's just these specific cases that I don't get why he doesn't kill the player :(

What should I do to make WhiteFace kills the player in the first try?

Also, here's a Picture about where were I
[spoiler]Image[/spoiler]

RE: White face acting weird in specific cases

Posted: Sun Jan 17, 2016 7:47 pm
by Lollipop
How exactly do you kill the player? If it is with a damaging decorate function, the walls could potentially block some of it IDK...
Have you tried making it look at the play and call a script killing its linetarget? That should kill the player if whiteface can see him.

RE: White face acting weird in specific cases

Posted: Sun Jan 17, 2016 9:53 pm
by Ivan
This is too scary.

RE: White face acting weird in specific cases

Posted: Sun Jan 17, 2016 10:47 pm
by Doomkid
I was not expecting ear rape, I got pwned

RE: White face acting weird in specific cases

Posted: Sun Jan 17, 2016 10:56 pm
by Combinebobnt
Sorry this bug is probably too scary for torr samaho to fix

RE: White face acting weird in specific cases

Posted: Mon Jan 18, 2016 12:31 am
by ibm5155
Lollipop wrote: How exactly do you kill the player? If it is with a damaging decorate function, the walls could potentially block some of it IDK...
Have you tried making it look at the play and call a script killing its linetarget? That should kill the player if whiteface can see him.
The monster itself doesn't kill the play, it gives the player some decorate object, that object calls an acs script when given to the player, that acs called teleport the player to a instakill sector, shows that image on the screen and plays the death sound.


Also here's the full White face code

Code: Select all


actor IMSCAREDACTIVE : CustomInventory
{
  //$Category Ibm Stuff
  inventory.pickupmessage ""
  inventory.pickupsound ""
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Pickup:
    TNT1 A 0 ACS_Execute(44, 0)
    stop
  }
}

actor IMSCARED2BETA 31199
{
  //$Category Ibm Stuff
  MONSTER
  //Radius 20
  Health 0x7fffffff
  Damage 0
  Speed 3
  scale 0.08
  +GHOST +NOCLIP +NOGRAVITY +FLOAT +LOOKALLAROUND -SOLID +NOBLOCKMONST +DROPOFF +DONTSPLASH +BRIGHT
  ActiveSound"" 
  meleedamage 9999
  meleerange 64
  Obituary "%o was dead by \cjwhite face"
  
  var int user_WFHunterTimer;//
  var int user_WFStatusRandomizer;
  States
  {
  Spawn:
    SCAR A 1 A_Look
	SCAR A 0 A_SetUserVar("user_WFHunterTimer",0)
	SCAR A 0 A_SetUserVar("user_WFStatusRandomizer",-1)
	SCAR A 0 A_SetTranslucent(0,0)
	SCAR A 1 A_SetTranslucent (0.0,0)
    Loop
  See:
    //RETURN TO THE PREVIOUS SEE STATE (IN CASE SOMETHING LIKE MELEE INTERRUPT IT)
	SCAR A 0 A_JumpIf(user_WFHunterTimer>0,"SeeHaunt")
	//SEE STATE TO BE SELECTED
	SCAR A 0 A_SetUserVar("user_WFStatusRandomizer",random(0,100)) 
	SCAR A 0 A_JumpIf(user_WFStatusRandomizer<=15,"SeeLaught") //OK
	TNT1 A 0 A_JumpIf(user_WFStatusRandomizer<=25,"WanderState") //OK
	SCAR A 0 A_JumpIf(user_WFStatusRandomizer<=89,"SeeNormal") //OK
	SCAR A 0 A_Jump(256,"SeeHaunt")//last case | OK
	TNT1 A 1//IT'LL NEVER GO HERE
	Loop
  SeeNormal:
	SCAR A 0 A_SetUserVar("user_WFStatusRandomizer",random(0,100)) 
	SCAR A 0 A_JumpIf(user_WFStatusRandomizer>=70,"SeeBlink")  //OK
    SCAR A 0 A_SetTranslucent(0.0,0)
	SCAR AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 Bright A_Chase
    Goto See
  SeeHaunt:
   SCAR A 0 A_JumpIf(user_WFHunterTimer>0,3)
   //START SETUP
   SCAR A 0 A_SetUserVar("user_WFHunterTimer",random(10,20))//Set the timer 
   SCAR A 0 ACS_Execute(46,0,1) //1
   //END START SETUP
   SCAR A 0 A_Playsound("KIDSND")//2 <-
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.1,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.2,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.3,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.4,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.5,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.6,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.7,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.8,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.9,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(1.0,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.9,0) 
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.8,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.7,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.5,0)
   SCAR A 0 A_FaceTarget
   SCAR AAA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.4,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.3,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.2,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.1,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase
   SCAR A 0 A_SetTranslucent(0.0,0)
   SCAR A 0 A_FaceTarget
   SCAR AA 1 Bright A_Chase 
   SCAR A 0 A_SetUserVar("user_WFHunterTimer",user_WFHunterTimer-1)//in case it goes below zero
   SCAR A 0 A_JumpIf(user_WFHunterTimer>0,5)
   //RESET WHITE FACE TO NORMAL STATUS
   SCAR A 0 A_SetTranslucent (0.0,0)  //1
   SCAR A 0 ACS_Execute(46,0,0)         //2
   SCAR A 0 A_SetUserVar("user_WFHunterTimer",0)//in case it goes below zero
   SCAR A 0 A_Jump(256,"See")      //4
   SCAR A 0                        //5 <--
   Loop                            
  SeeBlink:  //OK
   SCAR A 0 A_SetTranslucent (0.3,0)
   SCAR A 0 A_Jump(127,2)//50% of chance to have heart sound
   SCAR A 0 A_Playsound("GDSEE")// visible active sound
   SCAR AAAAAAAAAAAA 2 A_Chase  
   SCAR A 0 A_SetTranslucent (0.0,0)
   SCAR AAAAAAAAAAAA 2 A_Chase
   Goto See
  SeeLaught: 
   SCAR A 0 A_Playsound("ELAUGHT")// Laught
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.1,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.2,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.3,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.4,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.5,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.6,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.7,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.8,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.9,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(1.0,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.9,0) 
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.8,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.7,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.6,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.5,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.4,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.3,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.2,0)
   SCAR A 2 Bright A_Chase  
   SCAR A 0 A_SetTranslucent(0.1,0)
   SCAR A 2 Bright A_Chase 
   SCAR A 0 A_SetTranslucent(0.0,0)
   SCAR A 2 Bright A_Chase  
   Goto See
  WanderState:
   SCAR A 0 ACS_Execute(46,0,1) //1
   SCAR A 1
   SCAR AAAAAAAAAAAAAAAAAA 0 A_Wander
   TNT1 A 0 A_Jump(10,2)
   SCAR AAAAAAAAAAAAAAAAAA 0 A_Wander
   TNT1 A 0  A_Jump(10,2)
   SCAR AAAAAAAAAAAAAAAAAA 0 A_Wander
   SCAR A 0 ACS_Execute(46,0,0) //1
   SCAR A 1 A_Chase
   Goto See
  Melee:
	SCAR A 0 A_GiveToTarget("IMSCAREDACTIVE", 1)
    SCAR A 0 A_FaceTarget
    SCAR A 2 A_MeleeAttack
	SCAR A 1
    Goto See
  Death:
    IBMA A 4 
    IBMA A 0 A_Scream
	IBMA A 4
    IBMA A 4
    IBMA A 4 A_SetTranslucent(1.0,0)
    IBMA A 4 A_Fall
    IBMA A -1 A_SetFloorClip
    Stop
  Raise:
    IBMA A 8 A_UnSetFloorClip
    IBMA A 8
    Goto See
  }
}
Maybe, it's something related to the A_chase function, because I replaced that function with "A_SkullAttack" and it "worked" (Well, it didn't entered into the melee state, but it at least touched the player on the first try)

And before
SCAR A 0 A_FaceTarget
SCAR AA 1 Bright A_Chase
I was using
SCAR A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_TARGET,AAPTR_DEFAULT)
SCAR AA 1 Bright A_Chase
But that didn't worked either (and it was worse, because on that position, the ghoul would never go back to kill the human)

RE: White face acting weird in specific cases

Posted: Mon Jan 18, 2016 2:56 pm
by CloudFlash
So why exactly does it need to give player an item that teleports him to a sector which spawns an actor that shoots him with another item that, once collected, activates a jumpif loop in player's spawn state that lowers his damage to the level adjacent to the number of custom ammo type that is then taken away?
Wouldn't it be easier to just kill the player without trying to be fancy about that?