Currently, and I do not know how it got this way, You only battle four times. I was looking through the code but I can't find anything that would be obvious to me. So I need your help, heres the code.
mob
Move()
switch(onbattlefield)
if ("battlearea1")
randomencounter1(src)
return ..()
else
return ..()
player
mob/var/turf/battlearea
mob/proc
beginning combat.
randomencounter1(mob/M as mob)
var/turf/battlearea/T
if (prob(20))
for(T in world)
if(!T.occupied)
T.occupied = 1
M.oldlocx = M.x
M.oldlocy = M.y
M.oldlocz = M.z
M.battlearea = T
spawn(1)M.Move(usr.battlearea)
M.oldbattlefield = M.onbattlefield
M.onbattlefield = null
M << "Fight!"
M << "Click on the monster you wish to attack to start"
spawn(1)new /mob/Wolf(locate(M.battlearea.x,M.battlearea.y+4,M.battlearea .z))
return 1
return 0
maincombat(mob/attacker as mob, mob/target as mob)
var/list/CombatOps1 = list("Normal Attack", "Hard Attack", "Run", "Akai Magic")
var/CombatOp1 = input(usr, "What do you wish to do?", "Combat", "Attack") in CombatOps1
switch (CombatOp1)
if ("Normal Attack")
attack(attacker, target)
if ("Hard Attack")
attack(attacker, target)
if ("Run")
flee(attacker, target)
if ("Akai Magic")
akaimagic(attacker, target)
attack(mob/attacker as mob, mob/target as mob)
attacker << "You chose to attack [src]"
if(prob(attacker.hit - target.evade))
normaldamage(attacker, target)
else
attacker << "You miss! And Deal No Damage"
npcattack1(attacker, target)
if(prob(attacker.hit - target.evade))
akaimagic(attacker, target)
and clear battle vars if success
flee(mob/attacker as mob, mob/target as mob)
if (rand(1,3) == 1)
attacker << "You successfuly run from [target]"
endbattle(attacker)
del(target)
else
attacker << "You failed to run and lose a turn!"
npcattack1(attacker, target)
hooray!
akaimagic(mob/attacker as mob, mob/target as mob)
var/maxdamage = attacker.magic - target.magicdefense - (target.agility / 15)
var/damage = rand ((maxdamage / 2), maxdamage)
if (damage <= 0)
attacker << "You miss! And Deal No Damage"
npcattack1(attacker, target)
else
attacker << "You hit [src] for [damage] points of damage using your akai!"
target.HP -= damage
npcdeathcheck(attacker, target)
normaldamage(mob/attacker as mob, mob/target as mob)
var/maxdamage = attacker.attack - target.defense - (target.agility / 15)
var/damage = rand ((maxdamage / 2), maxdamage)
if (damage <= 0)
attacker << "You miss! (0 dmg)"
npcattack1(attacker, target)
else
attacker << "You hit [src] for [damage] points of damage with a normal attack!"
target.HP -= damage
npcdeathcheck(attacker, target)
maincombat.
npcattack1(mob/defender as mob, mob/monster as mob)
if (prob (monster.hit))
defender << "The [monster] attacks you and hits!"
var/maxdamage = monster.attack - (defender.defense / 4) - (defender.agility / 20)
var/damage = rand ((maxdamage / 2), maxdamage)
if (damage <= 0)
defender << "The attack bounces harmlessly off you."
maincombat(defender, monster)
else
defender << "Hit for [damage] damage!"
defender.HP -= damage
playerdeathcheck(defender, monster)
else
defender << "The [monster] attacks you and misses!"
maincombat(defender, monster)
variables.
endbattle(mob/M as mob)
var/turf/battlearea/T = M.battlearea
T.occupied = 0
M.battlearea = null
M.loc = locate(M.oldlocx,M.oldlocy,M.oldlocz)
M.onbattlefield = M.oldbattlefield
M.oldbattlefield = null
M.oldlocx = null
M.oldlocy = null
M.oldlocz = null
checklevel(M)

If the last one, I see one potential problem... look at your flee verb and your attack verb. You've got flee(mob/attacker,) and attack(mob/attacker,).... you don't need to ask who's fleeing and attacking, though, because the attacker is also the verb's src!
Do you realize that someone could use that flee verb to tell the Wolf (or whatever monster you're facing) to flee? If you inadvertently did that, then it wouldn't really clear the battle vars correctly, and that might somehow interfere with future battles.