Bug Reports APR2012

Status
Not open for further replies.

CmdrQuartz

New Adventurer
Joined
Jul 2, 2012
Messages
26
Reaction score
0
There is a novice shadow goblin in orc_for that is invincible. It can attack me but I can't hit it at all, not with a sword, arrows, fireball, and even minions won't acknowledge that he is there like he has no real hitbox or something. It's the one if you got right and then right again through a goblin village, he appears in a narrow corridor there. It's happened 2 of 2 times I've been there, nothing special going on at the time just walking through, he spawns and proceeds to be unkillable while killing me.
 

Fegged

New Adventurer
The Dragonknights
Joined
Aug 12, 2010
Messages
529
Reaction score
0
Age
27
CmdrQuartz said:
There is a novice shadow goblin in orc_for that is invincible. It can attack me but I can't hit it at all, not with a sword, arrows, fireball, and even minions won't acknowledge that he is there like he has no real hitbox or something. It's the one if you got right and then right again through a goblin village, he appears in a narrow corridor there. It's happened 2 of 2 times I've been there, nothing special going on at the time just walking through, he spawns and proceeds to be unkillable while killing me.
It's not an bug, we had this one already 'reported' but Tothie has his reasons (i guess?)
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
No, that's a bug, not a feature. Thought we fixed that, but meh... Running out of ways to try. Shouldn't happen every time, at least - otherwise woulda had more luck diagnosing it by now.
 

CmdrQuartz

New Adventurer
Joined
Jul 2, 2012
Messages
26
Reaction score
0
Is there some way I can help? So far it's been 2 for 2 for me, so I'm either lucky or unlucky. I'm playing on my own server off my own machine so if there's log files to generate, commands to do, I can try them. Got plenty of time to myself to test
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Nothing's gonna show up in the logs, that I can think of (plus the debugs in the final release are minimized for optimization's sake.)

Here's the script:
Code:
//Shadow Goblin from Blood Goblin Skirmisher by Thothie
//Spends most of the time doing invisible hit and runs

#scope server

{
	setvar NPC_SELF_ADJUST 1
	const NPC_ADJ_TIERS [censored]
	const NPC_ADJ_DMG_MUTLI_TOKENS "1.0;1.5;2.0;5.0;7.5;10.0;"
	const NPC_ADJ_HP_MUTLI_TOKENS "1.0;1.5;2.0;3.0;5.0;7.5;"

	const NPC_BASE_EXP 150

	setvard CAN_FIREBALL 0

	setvard DROP_GOLD 1
	setvard DROP_GOLD_AMT $rand(40,50)

	const DMG_KNIFE $rand(10,30)
	setvard BASE_FRAMERATE 2.0
	setvard ATTACK_HITCHANCE 80

	setvard CAN_STUN 0
	const FLINCH_HEALTH 200

	const CL_SCRIPT monsters/sgoblin_cl //poof effect

	const ORG_BODY 0 //change this if ye make an archer
	const SOUND_FADE "monsters/gonome/gonome_melee2.wav"
	const SOUND_APPEAR "ambience/alien_humongo.wav"
}

{ game_precache
	precachefile CL_SCRIPT
}

#include monsters/bgoblin

{ [override] [shared] goblin_spawn

	name a|Shadow Goblin
	race demon
	blood red
	hp 200
	roam 1

	hearingsensitivity 4

	setanim.framerate 2.0

	setmodel monsters/goblin_new.mdl
	width 24
	height 50

	setmodelbody 0 0 //body: 0-Bare 1-Quiver&Strap 2-invisible
	setmodelbody 1 0 //head: 0-Bare 1-Horns 2-Animal 3-Chief 4-Rag
	setmodelbody 2 8 //weapon: 0-Unarmed 1-Axe 2-wbow 3-sbow 4-sword 5-rAxe 6-sword&shield 7-club 8-knife
	setmodelbody 3 0 //arrow: On/off
	
	setprop ent_me skin 3 //0-norm 1-blood 2-vile 3-Shadow

	setidleanim ANIM_IDLE
	setmoveanim ANIM_WALK

	setvard ANIM_ATTACK swordswing1_L

	clientevent new all CL_SCRIPT
	setvard CL_IDX game.script.last_sent_id

	setvard SWING_COUNT 0

	callevent 2.0 final_adj
}

{ final_adj
	if NPC_ADJ_LEVEL <= 1
	setvard SGOBLIN_TRAINEE 1
	name a|Shadow Goblin Novice
}

{ game_death
	clientevent remove all CL_IDX
	if AM_INVISIBLE
	callevent go_visible
}

{ [override] swing_axe

	callevent normal_immunes

	playrandomsound 0 10 SOUND_ATTACK1 SOUND_ATTACK2 SOUND_ATTACK3
	dodamage NPCATK_TARGET ATTACK_HITRANGE DMG_KNIFE ATTACK_HITCHANCE slash
	setvard OVERHEAD_SMASH 1
}

{ [override] swing_sword

	//if ( AM_INVISIBLE ) callevent fade_in

	callevent normal_immunes

	playrandomsound 0 10 SOUND_ATTACK1 SOUND_ATTACK2 SOUND_ATTACK3
	dodamage NPCATK_TARGET ATTACK_HITRANGE DMG_KNIFE ATTACK_HITCHANCE pierce
	add SWING_COUNT 1
	if SWING_COUNT > 5
	setvard SWING_COUNT 0
	callevent fade_and_flee	
}

{ npc_selectattack //gonna swing, make visible
	if ( AM_INVISIBLE ) callevent fade_in
}

{ [override] gob_jump_check

	if GOB_JUMP_SCANNING
	local GOB_HOP_DELAY $randf(2,4)
	callevent GOB_HOP_DELAY gob_jump_check

	//no jumpy if in stabby range
	if $get(NPCATK_TARGET,range) > ATTACK_HITRANGE

	if NPCATK_TARGET isnot unset
	if !I_R_FROZEN
	if !IS_FLEEING
	if $get(NPCATK_TARGET,range) < GOBLIN_JUMPRANGE

	//jump at target if he's higher than I am
	local ME_POS game.monster.origin
	local MY_Z $vec.z(ME_POS)
	local TARGET_POS $get(NPCATK_TARGET,origin)
	local TARGET_Z $vec.z(TARGET_POS)
	local TARGET_Z_DIFFERENCE TARGET_Z
	subtract TARGET_Z_DIFFERENCE MY_Z

	if ( TARGET_Z_DIFFERENCE > GOB_JUMP_THRESH )
	{
		if TARGET_Z_DIFFERENCE < 500 //not hoplessly high up
		playanim critical ANIM_SMASH
		callevent 0.1 gob_hop
	}
}

{ game_struck
	if ( AM_INVISIBLE ) callevent jump_away

	if ( SGOBLIN_TRAINEE ) setvard BLEED_STEPS 1

	if PARAM1 > 200
	if $rand(1,2) == 1
	callevent jump_away
}

{ [override] jump_away
	if ( !IS_FLEEING ) callevent npcatk_flee $get(ent_laststruck,id) 100 3.0
	callevent 0.1 gob_hop
}

{ fade_and_flee
	clientevent update all CL_IDX poof_fx $get(ent_me,origin)
	callevent jump_away
	callevent 0.25 go_invisible
}

{ go_invisible
	if $get(ent_me,isalive)
	dbg *** GOING INVISIBLE ***
	setvard AM_INVISIBLE 1
	if ( SGOBLIN_TRAINEE )
	{
		if BLEED_STEPS
		callevent blood_steps
	}
	playsound 0 10 SOUND_FADE
	setprop ent_me rendermode 2
	setprop ent_me renderamt 0
	setmodelbody 0 2 //body: 0-Bare 1-Quiver&Strap 2-invisible
	setmodelbody 1 0 //head: 0-Bare 1-Horns 2-Animal 3-Chief 4-Rag
	setmodelbody 2 0 //weapon: 0-Unarmed 1-Axe 2-wbow 3-sbow 4-sword 5-rAxe 6-sword&shield 7-club 8-knife
	setmodelbody 3 0 //arrow: On/off
	callevent etherial_immunes
}

{ blood_steps
	if AM_INVISIBLE
	callevent $randf(0.1,0.3) blood_steps
	dbg bloodystep AM_INVISIBLE SGOBLIN_TRAINEE BLEED_STEPS WALK_COUNT

	effect decal $get(ent_me,origin) $rand(31,34)
	
}

{ go_visible
	dbg *** GOING VISIBLE ***
	setvard AM_INVISIBLE 0
	setprop ent_me rendermode 0
	setprop ent_me renderamt 255
	callevent normal_immunes

	setmodelbody 0 0 //body: 0-Bare 1-Quiver&Strap 2-invisible
	setmodelbody 1 0 //head: 0-Bare 1-Horns 2-Animal 3-Chief 4-Rag
	setmodelbody 2 8 //weapon: 0-Unarmed 1-Axe 2-wbow 3-sbow 4-sword 5-rAxe 6-sword&shield 7-club 8-knife
	setmodelbody 3 0 //arrow: On/off
}

{ fade_in
	if $get(ent_me,isalive)
	playsound 0 10 SOUND_APPEAR
	clientevent update all CL_IDX unpoof_fx $get(ent_me,origin)
	callevent go_visible
}

{ npc_targetsighted
	if !FIRST_ALERT
	if !AM_INVISIBLE
	setvard FIRST_ALERT 1
	if $get(NPCATK_TARGET,range) > ATTACK_HITRANGE
	callevent fade_and_flee
}

{ my_target_died
	setvard FIRST_ALERT 0
	if AM_INVISIBLE
	callevent fade_in
}

{ etherial_immunes
	if !SGOBLIN_TRAINEE
	clearfx
	setvard INVISIBLE_MODE 1
	invincible 1
	takedmg fire 0.0
	takedmg cold 0.0
	takedmg poison 0.0
	takedmg holy 1.0 //blarg - wont work while invulnerable, but meh
}

{ normal_immunes
	if !SGOBLIN_TRAINEE
	invincible 0
	setvard INVISIBLE_MODE 0
	takedmg fire 1.0
	takedmg cold 1.0
	takedmg poison 1.0
	takedmg holy 0.0
}

{ game_dodamage

	if ( INVISIBLE_MODE ) callevent normal_immunes
	
	if ( OVERHEAD_SMASH )
	{
		if AM_INVISIBLE
		callevent fade_in
	}
	setvard OVERHEAD_SMASH 0
}

He's rigged to switch to vulnerable if he attacks at all, and Trainees are never to become invulnerable at all, so IDK how he's pulling this.
 

CmdrQuartz

New Adventurer
Joined
Jul 2, 2012
Messages
26
Reaction score
0
Well I don't particularly "know" code but it does look like if he swings his weapon he should call the event for normal_immunes which sets his invulnerability to 0 so by all rights he should be vulnerable when he swings his weapon, unless he isn't using a sword or an axe, I would think he'd be using a dagger but I have no idea if it would be relevant or not.

I only see one spot in the code where he's ever made "invincible", under etherial_immunes. Would it kill the code at all to just set that to 0 as well?

That's all I've got as far as suggestions go, not sure if it'll be of any help
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
The swing_axe and swing_sword go off whenever he plays an attack animation, regardless of actual weapon in hand - I think the swing_axe is the slower overhead swipe, while the swing_sword is the faster horizontal. The non-novice variants are supposed to be invulnerable while invisible, so setting it 0 there would just kill that. Still dunno what's going on, but I'm beginning to wonder if the map is pointing to the wrong script entirely - though I don't think you'd get "Novice" Shadowgoblin's at all, under the other one.
 

CmdrQuartz

New Adventurer
Joined
Jul 2, 2012
Messages
26
Reaction score
0
Well it seems like something somewhere is overriding the goblins immunity, either on the map or in the script and the script looks like it should work. So as far as my troubleshooting skills go I would add that script to some other map, perhaps even a nearly blank one, and see if it occurs at all. Otherwise it's something in the map. Maybe the wrong version got uploaded in the final? Or maybe I have the wrong patch, pretty sure I got apr2012a or b I'll check and make sure. Also as I have plenty of time after work and on the weekends so if you lack testers I could certainly run my suggested test, I'm always looking for things to do.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
At a guess, I'd say the bugger is happening here:
Code:
callevent 2.0 final_adj

[RodSerling] Picture if you will a goblin spawning. He spawns like any other, but the player is not like any other. He is already there, ready to fight. Our poor goblin doesn't even have a chance to understand his role before becoming invincible. Instead, he's thrust into it before anyone can tell him different. He's unable to un-invincible himself due to "if !SGOBLIN_TRAINEE" at the top of the function that would do that. Therefor, he's forever trapped in this crazy world we call, the Twilight Zone.[/voice]

Just my thought, anyway. Why do you need that delay so long? A lot of stuff can happen in two seconds, just ask CMD.
 

CmdrQuartz

New Adventurer
Joined
Jul 2, 2012
Messages
26
Reaction score
0
Yeah, that particular goblin I'm usually right in his face when he spawns because I'm just walking/running along forgetting him and a pouncer spawn there. Not sure where/what exactly the trigger is but I think perhaps he should spawn when the lshaman is defeated in that little town, that should give him time to adjust before a player then proceeds down that path.
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
The Man In Black said:
At a guess, I'd say the bugger is happening here:
Code:
callevent 2.0 final_adj

[RodSerling] Picture if you will a goblin spawning. He spawns like any other, but the player is not like any other. He is already there, ready to fight. Our poor goblin doesn't even have a chance to understand his role before becoming invincible. Instead, he's thrust into it before anyone can tell him different. He's unable to un-invincible himself due to "if !SGOBLIN_TRAINEE" at the top of the function that would do that. Therefor, he's forever trapped in this crazy world we call, the Twilight Zone.[/voice]

Just my thought, anyway. Why do you need that delay so long? A lot of stuff can happen in two seconds, just ask CMD.
All monsters are invulnerable for 2 seconds after spawn to prevent the gibbing error - seems to be the minimum. Additionally, all the various adjustments (self adjusters, add param flags, etc.) take place during that time, so at the end of 2 seconds, it assumes everything that's going to be done to it, has been, and checks to see if it's total adjustment level still renders it level 1.

I could see the "if !SGOBLIN_TRAINEE" causing problems - not sure what it's doing there. I'll axe it, but looking at it, it seems that if SGOBLIN_TRAINEE = never becomes invulnerable to begin with, outside the usual base script function - just invisible with blood trails.

Also, what happened between you and CMD that I dun wanna know about?
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
But, if during that two seconds, it spots a player, it goes ethereal, thereby becoming immune 'cause it doesn't know it's SGOBLIN_TRAINEE yet, so it bypasses that. When it's time to become not invincible, it realizes it IS the trainee, so it doesn't do that code
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Ah I C
enlightenment.jpg


So axing that conditional should fix it (which I already did)... Or adding a delay before it can vanish, might also be good, as redundancy.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
Try to hide your love for me, Thoth. It's embarrassing.
 

CrazyMonkeyDude

New Adventurer
MSC Developer
RiP
Joined
Jun 29, 2007
Messages
2,619
Reaction score
2
Age
34
Thothie said:
Also, what happened between you and CMD that I dun wanna know about?

Sorry Thoth, I promised MiB I wouldn't tell anyone about what happens to him in 2 seconds.

Oh, wait.
 

zeus9860

Active Adventurer
The True Followers of the Lost
Crusaders
Blades of Urdual
Alpha Tester
Joined
Feb 28, 2008
Messages
2,581
Reaction score
37
Age
31
Location
lolwut
I just did the_wall and noticed that players can't spawn summons under their feet anymore... was this intentional when you released summon bear? This completly kills the summon-pult "feature", which was something really fun to use to explore certain maps such as pvp_archery or deralia. I hope this was a mistake, honestly.

Also leadfoot is broken. Petrified blademasters can throw players around, same with ihotohr but tork archers can't knock players back, so something is messed up with the potion.

Vampire blood potion is also broken, it doesn't give health when used. (i think i reported this one before)
 

FreshMeat

New Adventurer
The Dragonknights
Joined
Apr 3, 2006
Messages
86
Reaction score
0
I have a summon bear scroll. Is it going away next patch? I didn't understand what was meant by "IM an ID and ... have reset you next patch".
 

Caluminium

Adventurer
Shadows of Torkalath
Alpha Tester
Joined
Feb 16, 2010
Messages
495
Reaction score
13
Age
27
Location
England
Don't worry your scroll won't disappear, he is just fixing something with the rewards list.
 

rhys8866

New Adventurer
Joined
Jun 29, 2008
Messages
34
Reaction score
0
Age
30
Location
UK - England
That character selection crash bug I've had a few times, I can replicate it perfectly too, but mine is slightly different (I think).

If I just leave the game on character selection screen for about two to three minutes, then click anything, the background turns white and the game crashes, throwing up some invalid steam id error or some such nonsence. I can get back in the server and load my character fine, it's just if I stay in that screen for too long. :|

It's easily avoidable though, just don't stay in the character select screen for longer than I have to. :oldlol:
 

kamikadze321

New Adventurer
Joined
Jul 4, 2012
Messages
11
Reaction score
0
-orc_for shadow goblin is still invincible most of the time
-bloodrose crashes on the death of flesh eater. Tried three times now, crashed every single time. Never going to get that poison staff =[
-edana mayor quest is still glitched, doesn't work if you don't open the chest once before you approach the mayor

Also not sure if glitch or i just don't know what I'm doing, but previously holding R when on "ms_autocharge 0" would charge the weapon, which was very convenient, now it no longer works even if the button is assigned in controls.
 
Status
Not open for further replies.
Top