proc/Attack(var/mob/victum,var/mob/attacker) var/ap = attacker.str-victum.def if(ap<=0) ap=1 ap = rand(0,ap) victum.hp = victum.hp - ap victum.rexp = round(((victum.maxhp / 10)+(victum.maxmp / 5)+(victum.str)+(victum.def)+(victum.spd / 2)+(victum.maxsta / 6)) * 0.16) attacker.exp+= victum.rexp * ap Level_Up(attacker) if(victum.hp<=0) // Victum has died if(istype(victum,/mob/player)) if(istype(attacker,/mob/player)) var/gg = rand(0,victum.gold) victum.gold-=gg attacker.gold+=gg else if(istype(attacker,/mob/monster)) var/gg = rand(0,victum.gold) victum.gold-=gg attacker.gold+=gg else if(istype(victum,/mob/monster)) if(istype(attacker,/mob/player)) attacker.gold+=victum.gold else if(istype(attacker,/mob/monster)) attacker.gold+=victum.gold victum.dead=1
The error occures how ever when ever I use the attack() verb for the usr. I stand right by the giant rat and hit attack.
mob/player/verb/Attack() for(var/mob/monster/M in oview(1)) if(M.dead!=1) Attack(M,usr) break
Now this is the error that it brings up.
runtime error: Maximum recursion level reached (perhaps there is an infinite loop) To avoid this safety check, set world.loop_checks=0. verb name: Attack (/mob/player/verb/Attack) usr: Green Lime (/mob/player) src: Green Lime (/mob/player) call stack: Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) ... Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack(Giant Rat (/mob/monster/Giant_Rat), Green Lime (/mob/player)) Green Lime (/mob/player): Attack()
Ok can you please look over the code and tell me what I did wrong cause I simply dont have a clue. Also the monsters check_dist() proc isnt working. When I go into its view its suppose to come after me intell 1 space away.
mob/monster icon='Monsters.dmi' density=1 New() GetDist(usr) proc/GetDist(var/mob/monster/M) for(var/mob/player/P in oview()) if(P.dead!=1) if(P in oview(1)) Attack(P,M) else step_towards(M,P) spawn(M.spd) GetDist(M) break