#include "aClient.h"
#include "extern.h"
+#include "options.h"
#include "flags.h"
#include "level.h"
#include "player.h"
if (!(ni = find(u)))
{
- notice(s_GameServ, u, "Fatal error in do_attack. Contact a(n) %S admin for help.");
+ notice(s_GameServ, u, "Fatal error in do_attack. Contact a(n) <S admin for help.");
return;
}
else if (isIgnore(ni))
}
else
{
- if (!ni->stats->getMaster()) // This is not a master fight
- fight = ni->stats->getMonster(); // Monster Could be NULL
- else // This IS a master fight
- fight = ni->stats->getMaster(); // Master Could be NULL
-
+
+ fight = ni->stats->getMonster(); // Monster Could be NULL
battle = ni->stats->getBattle(); // Player Could be NULL
// One has to be !NULL based on the previous else if
" %s is now watching over the Dragon's lair!",
ni->stats->getName().c_str(), ni->stats->getName().c_str(),
ni->stats->getMonster()->name.c_str(), ni->stats->getName().c_str());
- dragon.name = "DRAGON-" + ni->stats->getName();
+ dragon.name = "Dragon " + ni->stats->getName();
dragon.weapon = "Breath of Fire";
dragon.strength = ni->stats->getStrength();
dragon.defense = ni->stats->getDefense();
save_dragon();
clearDragonFight(ni->stats);
reset(ni->stats);
+ ni->stats->delMonster();
+ return;
}
ni->stats->addExp(fight->exp);
{
if (is_playing(battle))
{
- if (!isYourTurn(ni->stats))
+ if (!isYourTurn(ni->stats) && isYourTurn(battle->stats))
{
notice(s_GameServ, u, "Please wait until %s decides what to do!",
battle->stats->getName().c_str());
return;
}
- if (hit > 0)
+ else if (!isYourTurn(ni->stats) && !isYourTurn(battle->stats))
+ {
+ // If somehow the player vs. player fight hangs, give the turn to the first attacker
+ setYourTurn(ni->stats);
+ }
+ if (hit > 0)
{
notice(s_GameServ, u, "You attack \1f%s\1f for \ 2%d\ 2 points!", battle->stats->getName().c_str(), hit);
notice(s_GameServ, u, "You have killed \ 2%s\ 2!", battle->stats->getName().c_str());
notice(s_GameServ, u, "You recieve \ 2%d\ 2 experience and \ 2%ld\ 2 gold!",
(long int)(battle->stats->getExp() * .10), battle->stats->getGold());
- addNews(todaysnews, "%s has defeated %s, leaving %s in a pool of blood", ni->stats->getName().c_str(), battle->stats->getName().c_str()); /* DrLnet - Modified by kain for news instead of just a message */
+ addNews(todaysnews, "%s has defeated %s, leaving %s in a pool of blood", ni->stats->getName().c_str(), battle->stats->getName().c_str(), battle->stats->getName().c_str()); /* DrLnet - Modified by kain for news instead of just a message */
notice(s_GameServ, battle->getNick(), "You have been killed by \ 2%s\ 2!",
ni->stats->getName().c_str());
battle->stats->setHP(0);
{
if (hit > 0)
battle->stats->subtractHP(hit);
+
clearYourTurn(ni->stats);
setYourTurn(battle->stats);
display_players(battle);