ID:262094
 
is there a way I can make it so that the monster still attacks back but doesn't wander?
mob
Golem
icon = 'Monster.dmi'
icon_state="golem"
gold = 20
HP = 100
MHP = 100
player = 0
Str = 17
Expg = 18
level = 10
monster = 1
PK = 1
NPC = 0
New()
. = ..()
spawn()
Wander()
proc/Wander(var/mob/You/P)
while(src)
if(P in oview(5))
step_towards(src,P)
for(P in oview(1))
break
for(P in oview(2))
break
for(P in oview(3))
break
for(P in oview(4))
break
else
step_rand(src)
sleep(5)
for(P in oview(5))
break
sleep(5)
spawn(5)
Wander()
Bump(mob/M)
if(M.player == 1)
Fight(M)
else
return
proc/Fight()
for(var/mob/E in get_step(usr,usr.dir))
var/damage = src.Str
E.HP -= damage
E << "[src] attacks you for [damage] damage!!"
src<<"You attack [E] for [damage] damage!!"
UserDcheck(E)<dm>
All I did was turn the step_rand into a comment that wa it is excluded.
mob
Golem
icon = 'Monster.dmi'
icon_state="golem"
gold = 20
HP = 100
MHP = 100
player = 0
Str = 17
Expg = 18
level = 10
monster = 1
PK = 1
NPC = 0

New()
. = ..()
spawn()
Wander()
proc/Wander(var/mob/You/P)
while(src)
if(P in oview(5))
step_towards(src,P)
for(P in oview(1))
break
for(P in oview(2))
break
for(P in oview(3))
break
for(P in oview(4))
break
else
//step_rand(src)
sleep(5)
for(P in oview(5))
break
sleep(5)
spawn(5)
Wander()
Bump(mob/M)
if(M.player == 1)
Fight(M)
else
return
proc/Fight()
for(var/mob/E in get_step(usr,usr.dir))
var/damage = src.Str
E.HP -= damage
E << "[src] attacks you for [damage] damage!!"
src<<"You attack [E] for [damage] damage!!"
UserDcheck(E)
Two main problems:

  • You forgot src in oview(), which should be oview(5,src), etc. Otherwise it defaults to usr as the frame of reference, which is wrong here.
  • You need to use </dm> after your code, not repeat the <dm> tag. Remember, closing tags always have a slash in them.

    Lummox JR
In response to Lummox JR
sorry lummox I was in a hurry and I guess I forgot the slash. Thanks for letting me know.