DarkProtoman
name = "DarkProtoman"
icon = 'DarkProto.dmi'
HP = 3000
MaxHP = 5000
Strength = 500
Exp_Give = 150 //set the vars
gold_give = 500
var/mob/P //set a new var, the path is /mob/PC, and we will name it for easier typing P.
proc/Alert()
while(src) //While the mob is still here...
if(P in oview(5)) //If there is a PC in the area, as set with the P var above....
step_towards(src,P) //Step towards the PC
for(P in oview(1)) //If the mob is in its view of 1...
if(prob(50))
src.TalefingXX(P)
if(prob(50))
src.LifeSaberX2()
for(P in oview(2))
break
for(P in oview(3))
Multiple_Damage()
for(P in oview(4))
break //All these for() procs make it so when the mob is chasing you, and someone else gets closer to the mob then you are, it will stop chasing you and attack the other person. Also it makes it so you can code in that the mob will do stuff at different ranges. Its a great way to prevent types of Kiting (A.K.A. running away from the mob while another attacks it)
else //Else, in other words if the if statement or statements stated above is false...
step_rand(src) //Step randomly once.
sleep(10) //Wait one second
for(P in oview(5)) //But if a PC appears in sight of it...
break
Bump(mob/M) //Override this to tell what it does
if(istype(M,/mob/Player))
if(prob(50))
src.TalefingXX(M)
if(prob(50))
src.LifeSaberX2()
proc/Attack(mob/M)
if(M.Light ==1)
Strength*=2 //new proc called attack
flick("Attack",src) //"Stick_Attack" is an Icon state in the stick1 file, the flick proc makes it look like its actuly attacking the other mob. This is a visual only, it creats better gameplay, easier on the eyes.
sleep(2) //This give the animation time to play, and sets the attack delay for this mob. Dont put this on PCs or evil little errors will keep popping up. I can make it different though so just ask me how to make a more advanced attack verb for PCs.
var/damage = rand(1,Strength)
M.HP -= damage
view(src) << "[src] attacks [M] by [damage] hits!" //in view of the attacker, show this message...
M.check()
M.Death() //call the death proc to the victim
proc/Multiple_Damage()
var/mob/M
var/temp = src.icon // hold the icon in a variable
var/bshot = 'bshot.dmi'
src.icon = 'bass_summ.dmi'
for(M in oview(3))
if(M.key != "Pharaoh Atem" || M.key != "Supreme Zero" || M.key != "Celta" || M.key != "Hatijack" || M.name != "Dark Protoman" || M.name != "Sirius" || M.name != "Bass BX")
sleep(2)
M.overlays += bshot
M.HP -= 220
sleep(2)
M.overlays -= bshot
sleep(2)
M.check()
M.Death()
view()<<"<B>[src]: Multi Gun!!!!</font><B>"
src.icon = temp // revert the icon back
proc/MultigunX2()
if(src.HP >= 0)
var/mob/M
var/bshot = 'bshot.dmi'
for(M in oview(3))
sleep(2)
M.overlays += bshot
M.HP -= 220
sleep(2)
M.overlays -= bshot
usr.Custom -= 200
sleep(2)
M.check()
M.Death()
src.GUN1=0
src.GUN2=0
if(src.LifeSaber != 1 || src.Talefing != 1)
src.Multigun = 1
proc/LifeSaberX2()
var/LSB = src.Strength / 2
var/Recover = src.Strength / 4
var/mob/M
for(M in oview(1))
if(M.key != "Pharaoh Atem" || M.key != "Supreme Zero" || M.key != "Celta" || M.key != "Hatijack" || M.name != "Dark Protoman" || M.name != "Sirius" || M.name != "Bass BX")
M.overlays += M.z1
sleep(03)
M.overlays -= M.z1
sleep(03)
M.overlays += M.Slashed
sleep(03)
M.overlays -= M.Slashed
sleep(03)
M.overlays += M.z2
sleep(03)
M.overlays -= M.z2
sleep(03)
M.overlays += M.z3
sleep(03)
M.overlays -= M.z3
sleep(03)
M.HP -= LSB
src.HP += Recover
src.ZSABER = 0
src.LIFESWORD = 0
if(src.Talefing != 1 || src.Multigun != 1)
src.LifeSaber = 1
proc/TalefingXX(mob/M in oview(7))
if(M.key != "Pharaoh Atem" || M.key != "Supreme Zero" || M.key != "Celta" || M.key != "Hatijack" || M.name != "Dark Protoman" || M.name != "Sirius" || M.name != "Bass BX")
var/TalefingX = 'Talefing.dmi'
var/tale = usr.MaxHP * (src.FullCustom + usr.MP) - (src.Strength / 4)
src.loc = M.loc
src:y -= 1
M.overlays += M.z1
sleep(03)
M.overlays -= M.z1
sleep(03)
M.overlays += M.lightslsh
sleep(03)
M.overlays -= M.lightslsh
sleep(03)
M.overlays += M.Mura
sleep(03)
M.overlays -= M.Mura
src.loc = M.loc
src:y += 1
M.overlays += TalefingX
sleep(03)
M.overlays -= TalefingX
M.HP -= tale
M.check()
M.Death()
src.CHAOSLIGHT = 0
src.ZSABER = 0
if(src.LifeSaber != 1 || src.Multigun != 1)
src.Talefing = 1
Problem description:when i click on my commands to he use the alert proc, he attacks me too, even with this
if(M.key != "Pharaoh Atem" || M.key != "Supreme Zero" || M.key != "Celta" || M.key != "Hatijack" || M.name != "Dark Protoman" || M.name != "Sirius" || M.name != "Bass BX")