ID:178542
 
I'm having trouble with my PvP. After a battle, it starts right back up. I've looked and looked at it, and I'm not seeing anything. Any input would be appreciated.

-------
mob
verb
VerbList()
var/verbchoice = input("Command") in list ("Talk","Item","Cast","Equip","Search","PvP","Cancel")
switch(verbchoice)
if("Talk")
Talk()
if("Item")
Item()
if("Cast")
Cast()
if("Equip")
masterequip()
if("Search")
Search()
if("PvP")
PVP()
if("Cancel")
return ..()
PVP()
set category = null
for(var/mob/M in get_step(usr,usr.dir))
if(usr.preslocation != "town")
if(M.key && M.client)
if(inpvp == 0)
var/pvpq = input(M,"Wanna fight?") in list("No","Yes")
if(inpvp == 0)
switch(pvpq)
if("Yes")
pvp(usr,M)
..()
if("No")
usr << "[M.name] declines."
..()
else
usr << "This person is already in a fight."
else
usr << "This person is already in a fight."
else
usr << "You can't pick a fight with an NPC."
else
usr << "You can't fight in towns."

mob/proc
pvp(mob/A as mob,mob/B as mob)
var
music
A << sound(null)
B << sound(null)
A.verbs -= /mob/verb/Cast
A.verbs -= /mob/verb/Item
A.verbs -= /mob/verb/VerbList
B.verbs -= /mob/verb/Cast
B.verbs -= /mob/verb/Item
B.verbs -= /mob/verb/VerbList
.=..()
music = 'dq4nmbat.mid'
A.inpvp = 1
B.inpvp = 1
A << sound(music,1)
B << sound(music,1)
A.battlecounter = 0
B.battlecounter = 0
A._GM_lockmove = 1
B._GM_lockmove = 1
A.dir = SOUTH
B.dir = SOUTH
A.onbattlefield = null
B.onbattlefield = null
Apvpmaincombat(A,B)

Apvpmaincombat(mob/A as mob,mob/B as mob)
var/MagicOp
if(A.battlecounter == 0)
A.battlestr = A.strequip
A.battledef = A.defequip
A.pvpop = input(A,"What do you wish to do?") in list ("Attack","Spell")
if(A.pvpop == "Spell")
for(var/C in A.battlespell)
tempbatspell += C
tempbatspell += "Cancel"
if(tempbatspell.len == 1)
A << "You don't have any spells that can be used in battle."
Apvpmaincombat(A,B)
else
MagicOp = input(A,"Which spell would you like to use?") in tempbatspell
if(MagicOp == "Cancel")
Apvpmaincombat(A,B)
if(MagicOp == "Sleep" || MagicOp == "StopSpell" || MagicOp == "PanicAll" || MagicOp == "Expel" || MagicOp == "TwinHits" || MagicOp == "SpeedUp" || MagicOp == "SlowAll" || MagicOp == "Transform" || MagicOp == "Upper" || MagicOp == "Increase" || MagicOp == "Ironize" || MagicOp == "Surround" || MagicOp == "Barrier" || MagicOp == "Healmore" || MagicOp == "Healall" || MagicOp == "HealUs" || MagicOp == "Healusall" || MagicOp == "Antidote" || MagicOp == "NumbOff" || MagicOp == "Awaken" || MagicOp == "CurseOff" || MagicOp == "Vivify" || MagicOp == "Revive" || MagicOp == "Return" || MagicOp == "Chance" || MagicOp == "Return")
A << "This spell is not implemented yet."
Apvpmaincombat(A,B)
if(MagicOp == "Beat" || MagicOp == "Defeat" || MagicOp == "Sacrifice" || MagicOp == "Disperse")
A << "You are not allowed to cast [MagicOp]."
Apvpmaincombat(A,B)
else
A.pvpop = MagicOp
for(var/D in tempbatspell)
tempbatspell -= D
Bpvpmaincombat(A,B)

Bpvpmaincombat(mob/A as mob,mob/B as mob)
var/MagicOp
if(A.battlecounter == 0)
B.battlestr = B.strequip
B.battledef = B.defequip
B.pvpop = input(B,"What do you wish to do?") in list ("Attack","Spell")
if(B.pvpop == "Spell")
for(var/C in B.battlespell)
tempbatspell += C
tempbatspell += "Cancel"
if(tempbatspell.len == 1)
B << "You don't have any spells that can be used in battle."
Bpvpmaincombat(A,B)
else
MagicOp = input(B,"Which spell would you like to use?") in tempbatspell
if(MagicOp == "Cancel")
Bpvpmaincombat(A,B)
if(MagicOp == "Sleep" || MagicOp == "StopSpell" || MagicOp == "PanicAll" || MagicOp == "Expel" || MagicOp == "TwinHits" || MagicOp == "SpeedUp" || MagicOp == "SlowAll" || MagicOp == "Transform" || MagicOp == "Upper" || MagicOp == "Increase" || MagicOp == "Ironize" || MagicOp == "Surround" || MagicOp == "Barrier" || MagicOp == "Healmore" || MagicOp == "Healall" || MagicOp == "HealUs" || MagicOp == "Healusall" || MagicOp == "Antidote" || MagicOp == "NumbOff" || MagicOp == "Awaken" || MagicOp == "CurseOff" || MagicOp == "Vivify" || MagicOp == "Revive" || MagicOp == "Return" || MagicOp == "Chance" || MagicOp == "Return")
B << "This spell is not implemented yet."
Bpvpmaincombat(A,B)
if(MagicOp == "Beat" || MagicOp == "Defeat" || MagicOp == "Sacrifice" || MagicOp == "Disperse")
B << "You are not allowed to cast [MagicOp]."
Bpvpmaincombat(A,B)
else
B.pvpop = MagicOp
for(var/D in tempbatspell)
tempbatspell -= D
battlesets(A,B)

battlesets(mob/A as mob, mob/B as mob)
var/tempagla
var/tempaglb
tempagla = A.aglequip + rand(-10,10)
tempaglb = B.aglequip + rand(-10,10)
if(tempagla == tempaglb)
var/fifif
fifif = rand(0,1)
if(fifif == 0)
tempagla += 1
else
tempaglb += 1
if(tempagla > tempaglb)
battle(A,B)
else
battle(B,A)

battle(mob/A as mob, mob/B as mob)
if(A.pvpop == "Attack")
A << 'attack.wav'
B << 'enemy-attack.wav'
sleep(10)
var/hitstr = round((A.battlestr - B.battledef)/2) + rand (-5,5)
view() << "[A.name] attacks [B.name]"
if(prob(A.crithitperc)&& hitstr > 0)
hitstr = A.battlestr + rand (-5,5)
view() << "Critical Hit!"
view() << 'criticalhit.wav'
sleep(10)
else if (hitstr <=0)
hitstr = rand (0,3)
if(hitstr > 0)
B.hp -= hitstr
view() << 'hit.wav'
view() << "[A.name] does [hitstr] damage to [B.name]."
sleep(10)
else
view() << 'dodge.wav'
view() << "[A.name] misses [B.name]!"
sleep(10)
if(A.weaponname == "Falcon Sword")
A << 'attack.wav'
B << 'enemy-attack.wav'
sleep(10)
hitstr = round((A.battlestr - B.battledef)/2) + rand (-5,5)
view() << "[A.name] attacks [B.name]"
if(prob(A.crithitperc)&& hitstr > 0)
hitstr = A.battlestr + rand (-5,5)
view() << "Critical Hit!"
view() << 'criticalhit.wav'
sleep(10)
else if (hitstr <=0)
hitstr = rand (0,3)
if(hitstr > 0)
B.hp -= hitstr
view() << 'hit.wav'
view() << "[A.name] does [hitstr] damage to [B.name]."
sleep(10)
else
view() << 'dodge.wav'
view() << "[A.name] misses [B.name]!"
sleep(10)
else if(A.pvpop != "Attack")
var/damage
if(A.pvpop == "Blaze")
if(A.mp >= 2)
A.mp -= 2
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 10 + rand (-3,3)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blazemore")
if(A.mp >= 6)
A.mp -= 6
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 80 + rand (-10,10)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blazemost")
if(A.mp >= 12)
A.mp -= 12
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 180 + rand (-25,25)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Firebal")
if(A.mp >= 4)
A.mp -= 4
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 25 + rand (-5,5)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Firebane")
if(A.mp >= 6)
A.mp -= 6
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 35 + rand (-10,10)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Firebolt")
if(A.mp >= 12)
A.mp -= 12
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 100 + rand (-20,20)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Bang")
if(A.mp >= 5)
A.mp -= 5
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 20 + rand (-5,5)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Boom")
if(A.mp >= 9)
A.mp -= 9
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 60 + rand (-10,10)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Explodet")
if(A.mp >= 18)
A.mp -= 18
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 140 + rand (-20,20)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Infernos")
if(A.mp >= 4)
A.mp -= 4
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 15 + rand (-5,5)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Infermore")
if(A.mp >= 6)
A.mp -= 6
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 40 + rand (-10,10)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Infermost")
if(A.mp >= 9)
A.mp -= 9
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 90 + rand (-15,15)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Icebolt")
if(A.mp >= 3)
A.mp -= 3
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 30 + rand (-10,10)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Snowstorm")
if(A.mp >= 6)
A.mp -= 6
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 50 + rand (-15,15)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blizmost")
if(A.mp >= 9)
A.mp -= 9
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 70 + rand (-20,20)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blizzard")
if(A.mp >= 12)
A.mp -= 12
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 100 + rand (-30,30)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Zap")
if(A.mp >= 8)
A.mp -= 8
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 80 + rand (-30,15)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Thordain")
if(A.mp >= 30)
A.mp -= 30
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 200 + rand (-60,20)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "BeDragon")
if(A.mp >= 24)
A.mp -= 24
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 110 + rand (-55,55)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Sap")
if(A.mp >= 3)
A.mp -= 3
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = round(B.battledef/3)
B.battledef -= damage
view() << "[B.name]'s defense is reduced by [damage] points."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Defense")
if(A.mp >= 4)
A.mp -= 4
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = round(B.battledef/2)
B.battledef -= damage
view() << "[B.name]'s defense is reduced by [damage] points."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "RobMagic")
view() << "[A.name] casts RobMagic"
view() << 'spell.wav'
var/stealmagic = round(B.mp/2)
var/maxmagic = A.maxmp - A.mp
if(stealmagic == 0)
view() << "[B.name] doesn't have any MP to steal."
else
if(stealmagic < maxmagic)
view() << "[A.name] steals [stealmagic] from [B.name]."
A.mp += stealmagic
B.mp -= stealmagic
else
view() << "[A.name] steals [maxmagic] from [B.name]."
A.mp += maxmagic
B.mp -= maxmagic
if(A.pvpop == "Heal")
if(A.mp >= 3)
A.mp -= 3
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
var/healnum = 35 + round(A.intequip / 20)
var/diffhp = A.maxhp - A.hp
if(diffhp < healnum)
A.hp = A.maxhp
view() << "[A.name] was healed for [diffhp] HP."
else
A.hp += healnum
view() << "[A.name] was healed for [healnum] HP."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Healmore")
if(A.mp >= 7)
A.mp -= 7
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
var/healnum = 85 + round(A.intequip / 10)
var/diffhp = A.maxhp - A.hp
if(diffhp < healnum)
A.hp = A.maxhp
view() << "[A.name] was healed for [diffhp] HP."
else
A.hp += healnum
view() << "[A.name] was healed for [healnum] HP."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Healall")
if(A.mp >= 7)
A.mp -= 7
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
var/diffhp = A.maxhp - A.hp
A.hp = A.maxhp
view() << "[A.name] was healed for [diffhp] HP."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blaze")
if(A.mp >= 2)
A.mp -= 2
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 10 + rand (-3,3)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blaze")
if(A.mp >= 2)
A.mp -= 2
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 10 + rand (-3,3)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blaze")
if(A.mp >= 2)
A.mp -= 2
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 10 + rand (-3,3)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
if(A.pvpop == "Blaze")
if(A.mp >= 2)
A.mp -= 2
view() << "[A.name] casts [A.pvpop]."
view() << 'spell.wav'
sleep(10)
view() << 'hit.wav'
sleep(7)
damage = 10 + rand (-3,3)
B.hp -= damage
view() << "[B.name] receives [damage] damage."
else
view() << "[A.name] doesn't have enough MP to cast [A.pvpop]."
A.battlecounter += 1
B.battlecounter += 1
pvpdc(A,B)

pvpdc(mob/A as mob, mob/B as mob)
A << "[A.name]"
if(B.hp <= 0)
A << sound(null)
world << "[A.name] has defeated [B.name]."
var/tempgold = round(B.gold/2)
var/tempexp = B.level * 50
A.exp += tempexp
A.gold += tempgold
B.gold -= tempgold
A << "You receive [tempexp] exp. and [tempgold] gold."
B << "You have lost [tempgold] gold."
A << 'winbattle.wav'
sleep(12)
endpvpbattle(A,B)
if(B.hp > 0)
if (A.battlecounter%2==0)
Apvpmaincombat(A,B)
else
battle(B,A)

endpvpbattle(mob/A as mob, mob/B as mob)
var/music
if (A.battlearea != null)
var/turf/battlearea/U = A.battlearea
U.occupied = 0
A.battlearea = null
if (B.battlearea != null)
var/turf/battlearea/U = B.battlearea
U.occupied = 0
A.battlearea = null
A.verbs += /mob/verb/Cast
A.verbs += /mob/verb/Item
A.verbs += /mob/verb/VerbList
B.verbs += /mob/verb/Cast
B.verbs += /mob/verb/Item
B.verbs += /mob/verb/VerbList
A.battlestr = null
A.battledef = null
B.battlestr = null
B.battledef = null
if(A.hp <= 0)
A.density = 0
A.Move(locate(A.savex,A.savey,A.savez))
A.density = 0
A.hp = A.maxhp
A.mp = A.maxmp
if(A.savex == 17 && A.savey == 37 && A.savez == 2)
.=..()
music = 'dw3town2.mid'
usr << sound(music,1)
else if(A.savex == 27 && A.savey == 62 && A.savez == 5)
.=..()
music = 'dw4siste.mid'
usr << sound(music,1)
else if(A.savex == 56 && A.savey == 30 && A.savez == 2)
.=..()
music = 'dw4siste.mid'
usr << sound(music,1)
else
A.density = 0
A.Move(locate(A.oldlocx,A.oldlocy,A.oldlocz))
A.density = 1
A.preslocation = A.oldlocation
while(A.exp >= A.expreq)
checklevel(A)
if(A.preslocation == "natlan")
.=..()
music = 'dqmove_a.mid'
A << sound(music,1)
else if(A.preslocation == "satlan")
.=..()
music = 'dqmove_a.mid'
A << sound(music,1)
else if(A.preslocation == "ryuzak")
.=..()
music = 'dw3out.mid'
A << sound(music,1)
else if(A.preslocation == "ryuzak-atlancave")
.=..()
music = 'dw6overworld.mid'
A << sound(music,1)
else if(A.preslocation == "atlan_tazman_cave")
.=..()
music = 'dw1cave.mid'
A << sound(music,1)
else if(A.preslocation == "tazman")
.=..()
music = 'dw4yusha.mid'
A << sound(music,1)
if(B.hp <= 0)
B.density = 0
B.Move(locate(B.savex,B.savey,B.savez))
B.density = 0
B.hp = B.maxhp
B.mp = B.maxmp
if(B.savex == 17 && B.savey == 37 && B.savez == 2)
.=..()
music = 'dw3town2.mid'
usr << sound(music,1)
else if(B.savex == 27 && B.savey == 62 && B.savez == 5)
.=..()
music = 'dw4siste.mid'
usr << sound(music,1)
else if(B.savex == 56 && B.savey == 30 && B.savez == 2)
.=..()
music = 'dw4siste.mid'
usr << sound(music,1)
else
B.density = 0
B.Move(locate(B.oldlocx,B.oldlocy,B.oldlocz))
B.density = 1
B.preslocation = B.oldlocation
while(B.exp >= B.expreq)
checklevel(B)
if(B.preslocation == "natlan")
.=..()
music = 'dqmove_a.mid'
B << sound(music,1)
else if(B.preslocation == "satlan")
.=..()
music = 'dqmove_a.mid'
B << sound(music,1)
else if(A.preslocation == "ryuzak")
.=..()
music = 'dw3out.mid'
B << sound(music,1)
else if(A.preslocation == "ryuzak-atlancave")
.=..()
music = 'dw6overworld.mid'
B << sound(music,1)
else if(A.preslocation == "atlan_tazman_cave")
.=..()
music = 'dw1cave.mid'
B << sound(music,1)
else if(A.preslocation == "tazman")
.=..()
music = 'dw4yusha.mid'
B << sound(music,1)
A.oldlocx = null
A.oldlocy = null
A.oldlocz = null
A.battlecounter = 0
A.oldlocation = null
B.oldlocx = null
B.oldlocy = null
B.oldlocz = null
B.battlecounter = 0
B.oldlocation = null
A._GM_lockmove = 0
B._GM_lockmove = 0
A.inpvp = 0
B.inpvp = 0</<></<></<></<></&l t;></<></<></<></<>&l t;/<></<></<></<></<& gt;</<></<></<>
I'm sorry to bump, but I haven't heard anything on this, and I posted this yesterday. Are there any ideas??? After the battle, it starts over. Thanks.
In response to Rubius
My best guess would be that you are simply ending the battle without ending the main battle proc. Of course, this is only an idea.

That *is* an awful lot of code. Maybe if you trimmed it a bit, more people wouldn't just click your post, look at all the code, and think "forget it" because of all the code.