]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/gameserv.cpp
Added a notice to c_Forest when the players database was updated
[irc/gameservirc.git] / gameserv / gameserv.cpp
index f8dd0c47f7125c3eb2add34a376bcc11c6b54f2f..a1286a274194bc1cde965e682e82a317f90e9964 100644 (file)
@@ -616,7 +616,7 @@ void do_list(char *u)
     {
        while(temp)
        {
-           if (!cmd || is_playing(temp->getData()))
+           if (cmd || is_playing(temp->getData()))
            {
                if (!header)
                {
@@ -1684,12 +1684,13 @@ void do_attack(char *u)
        // then set your exp to 2bil. (2 billion max)... otherwise add them.
        // This could be a problem with overflowing out of the sign bit.
        // Unsigned long int maybe? Leave it for now.
-        ni->stats->exp = ( (ni->stats->exp + fight->exp) > 2000000000 ? 2000000000 : 
-                               ni->stats->exp + fight->exp);
-
-        ni->stats->gold = (ni->stats->gold + fight->gold > 2000000000 ? 2000000000 : 
-                               ni->stats->gold + fight->gold);
+       ni->stats->exp += fight->exp;
+       if (ni->stats->exp < 0 || ni->stats->exp > 2000000000)
+           ni->stats->exp = 2000000000;
 
+       ni->stats->gold += fight->gold;
+       if (ni->stats->gold < 0 || ni->stats->gold > 2000000000)
+           ni->stats->gold = 2000000000;
 
         if (master_fight(ni))
         {
@@ -1890,16 +1891,11 @@ void do_attack(char *u)
         battle->stats->hp = 0;
         clearAlive(battle->stats);
 
-        if (2000000000 - ni->stats->exp > (long int)(battle->stats->exp * .10))
-        {
-            ni->stats->exp += (long int)(battle->stats->exp * .10);
-            battle->stats->exp -= (long int)(battle->stats->exp * .10);
-        }
-        else
-        {
-            battle->stats->exp -= (long int)(battle->stats->exp * .10);
+        ni->stats->exp += (long int)(battle->stats->exp * .10);
+        battle->stats->exp -= (long int)(battle->stats->exp * .10);
+
+        if (ni->stats->exp < 0 || ni->stats->exp > 2000000000)
             ni->stats->exp = 2000000000;
-        }
 
         if (2000000000 - ni->stats->gold > battle->stats->gold)
         {
@@ -1921,6 +1917,7 @@ void do_attack(char *u)
 
             ni->stats->gold = 2000000000;
         }
+
        clearYourTurn(ni->stats);
        clearYourTurn(battle->stats);
        battle->stats->battle = NULL;
@@ -2844,7 +2841,7 @@ void do_dragon(char *u)
     updateTS(user->stats);
 
     Player *p = user->stats;
-    p->fight = new Monster(boss);
+    p->fight = new Monster(&boss);
     notice(s_GameServ, u, "You approach the dragon's lair cautiously.");
     notice(s_GameServ, u, "The stench of sulfer fills the air as a "\
        "deep, red fog rolls in. The air is filled with the "\
@@ -3136,10 +3133,15 @@ void resetall()
 
 void reset(Player *p)
 {
+    char *myname;
+    myname = new char[strlen(p->name)];
+    strcpy(myname, p->name);
     if (!p)
        return;
 
     p->reset();
+    strcpy(p->name, myname);
+    delete [] myname;
 }
 
 void updateTS(Player *p)
@@ -3295,7 +3297,7 @@ void do_reset(char *u)
        notice(s_GameServ, u, "Resetting everyone's stats!");
        resetall();
     }
-    else if ((user = findbyrealnick(nick)))
+    else if ((user = findplayer(nick)))
     {
        if (is_playing(user))
        {
@@ -3308,11 +3310,8 @@ void do_reset(char *u)
        }
        else
        {
-           #ifdef P10
-           notice(s_GameServ, u, "%s is not playing.", user->getRealNick());
-           #else
-           notice(s_GameServ, u, "%s is not playing.", user->getNick());
-           #endif
+           notice(s_GameServ, u, "Resetting %s", user->stats->name);
+           reset(user->stats);
        }
     }
     else