X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/ddef84f1065598678384195233eeb24e835b4acc..5c449fdefc6456ed1f53fb4488755826ac1d5198:/gameserv/gameserv.cpp diff --git a/gameserv/gameserv.cpp b/gameserv/gameserv.cpp index 5e61c20..281c057 100644 --- a/gameserv/gameserv.cpp +++ b/gameserv/gameserv.cpp @@ -27,8 +27,6 @@ using std::ios; Monster boss; // The boss monster Level levels[LEVELS]; // The newest way to store monsters -Monster *masters[LEVELS]; // A master for each level - // Database functions int save_gs_dbase(); int load_gs_dbase(); @@ -44,7 +42,7 @@ int strnicmp(const char *s1, const char *s2, size_t len); /********** Password functions **********/ -bool passcmp(char *encrypted, char *plaintext); // Compares an encrypted pass with a plain text one +bool passcmp(const char *encrypted, char *plaintext); // Compares an encrypted pass with a plain text one bool check_password(char *name, char *plaintext); // Finds a password for the given name, and checks it with passcmp against the plaintext password given. @@ -86,11 +84,10 @@ void refresh(Player *p); void refreshall(); void updateTS(Player *p); void reset(Player *p); -void init_masters(); +bool load_masters(); bool load_monsters(); bool load_levels(); void delete_monsters(); -void delete_masters(); void do_admin(char *u); void do_attack(char *u); @@ -279,7 +276,7 @@ void gameserv(char *source, char *buf) } else if (stricmp(cmd2, "MONSTERS") == 0) { - notice(s_GameServ, source, "Loading monster data from %s", monsterdata); + notice(s_GameServ, source, "Loading monster data"); load_monsters(); } else @@ -365,7 +362,7 @@ void showstats(const char *u, const char *nick) } else if (ni->stats) { - notice(s_GameServ, sender->getNick(), "Stats for %s:", ni->stats->name.getString()); + notice(s_GameServ, sender->getNick(), "Stats for %s:", ni->stats->name.c_str()); sprintf(buf, "Experience: %ld", ni->stats->exp); space = spaces(strlen(buf), " "); @@ -414,7 +411,7 @@ void showstats(const char *u, const char *nick) } else { - notice(s_GameServ, u, "%s is not playing!", ni->stats->name.getString()); + notice(s_GameServ, u, "%s is not playing!", ni->stats->name.c_str()); } delete [] buf; } @@ -634,10 +631,10 @@ void do_list(char *u) } #ifdef P10 notice(s_GameServ, u, "IRC: %s Game: %s", temp->getData()->getRealNick(), - temp->getData()->stats->name.getString()); + temp->getData()->stats->name.c_str()); #else notice(s_GameServ, u, "IRC: %s Game: %s", temp->getData()->getNick(), - temp->getData()->stats->name.getString()); + temp->getData()->stats->name.c_str()); #endif } @@ -685,7 +682,7 @@ void do_logout(char *u) } else { - notice(s_GameServ, u, "Logging out %s", user->stats->name.getString()); + notice(s_GameServ, u, "Logging out %s", user->stats->name.c_str()); logout(user); } } @@ -713,7 +710,7 @@ void logout(aClient *user) { ListNode *it; aClient *temp; - unsigned long hv = iHASH((unsigned char *) user->stats->name.getString()); + unsigned long hv = iHASH((unsigned char *) user->stats->name.c_str()); it = players[hv].Find(user); if (!it) @@ -808,7 +805,6 @@ void do_register(char *u) user->stats->reset(); // set the user up user->stats->password = crypt(password, salt); user->stats->name = name; - unsigned long hv = iHASH((unsigned char *) name); updateTS(user->stats); temp = players[hv].insertAtBack_RLN(user); @@ -817,9 +813,9 @@ void do_register(char *u) // Update the last login time user->stats->lastlogin = time(NULL); - notice(s_GameServ, u, "Player %s registered with password %s.", user->stats->name.getString(), password); + notice(s_GameServ, u, "Player %s registered with password %s.", user->stats->name.c_str(), password); notice(s_GameServ, u, "Write this password down. If you lose it, there is no way to retrieve it!"); - log("Nickname %s registered player %s.", u, user->stats->name.getString()); + log("Nickname %s registered player %s.", u, user->stats->name.c_str()); setPlaying(user); // set the playing flag } else @@ -867,7 +863,7 @@ void do_identify(char *u) } else { ListNode *temp; - unsigned long hv = iHASH((unsigned char *) p->stats->name.getString()); + unsigned long hv = iHASH((unsigned char *) p->stats->name.c_str()); temp = players[hv].Find(p); if (!temp) { @@ -875,7 +871,7 @@ void do_identify(char *u) strtok(NULL, "")); return; } - user->stats = new Player(p->stats->name.getString()); + user->stats = new Player(p->stats->name); #ifdef DEBUGMODE log("Setting data for identified"); #endif @@ -885,7 +881,7 @@ void do_identify(char *u) #ifdef DEBUGMODE - log("Player %s IRC: %s Identified", user->stats->name.getString(), + log("Player %s IRC: %s Identified", user->stats->name.c_str(), user->getNick()); #endif @@ -930,129 +926,72 @@ void do_stats(char *u) else { updateTS(user->stats); - showstats(u, user->stats->name.getString()); + showstats(u, user->stats->name.c_str()); } } else showstats(u, nick); } -void init_masters() +bool load_masters() { - #ifdef DEBUGMODE - log("Calling delete_masters()"); - #endif + ifstream infile("data/masters.dat"); + char *buf; + int l = 0; + buf = new char[1024]; - delete_masters(); + if (infile.fail()) + { + log("Error opening data/masters.dat"); + return false; + } #ifdef DEBUGMODE - log("Initializing masters"); + log("Loading masters from data/masters.dat"); #endif - for (int x = 0; x < LEVELS; x++) - masters[x] = new Monster; - - masters[0]->name = "Old Bones"; - masters[0]->weapon = "Dull Sword Cane"; - masters[0]->strength = 32; - masters[0]->gold = 0; - masters[0]->exp = 0; - masters[0]->maxhp = 35; - masters[0]->hp = 35; - masters[0]->death = "You have done well my student, but the road is long. Use your new strength with humility and honor as you progress in levels!"; - - masters[1]->name = "Master Chang"; - masters[1]->weapon = "Nanchaku"; - masters[1]->strength = 48; - masters[1]->gold = 0; - masters[1]->exp = 0; - masters[1]->maxhp = 51; - masters[1]->hp = 51; - masters[1]->death = "You try to make out what Master Chang is saying, but the only thing you catch is something about a grasshopper."; - - masters[2]->name = "Chuck Norris"; - masters[2]->weapon = "Ranger Kick"; - masters[2]->strength = 88; - masters[2]->gold = 0; - masters[2]->exp = 0; - masters[2]->maxhp = 100; - masters[2]->hp = 100; - masters[2]->death = "Be strong, and keep your goals in site. Drink milk, and don't do drugs. One day you may be fighting next to me as a Texas Ranger YEEHAW!"; - - - masters[3]->name = "Mr. Miagi"; - masters[3]->weapon = "Petrified Bonsai"; - masters[3]->strength = 169; - masters[3]->gold = 0; - masters[3]->exp = 0; - masters[3]->maxhp = 165; - masters[3]->hp = 165; - masters[3]->death = "Skill comes from repeating the correct but seemingly mundane actions. Wax ON, wax OFF!"; - - masters[4]->name = "Jackie Chan"; - masters[4]->weapon = "Kung Fu Kick"; - masters[4]->strength = 275; - masters[4]->gold = 0; - masters[4]->exp = 0; - masters[4]->maxhp = 232; - masters[4]->hp = 232; - masters[4]->death = "I like to let people talk who like to talk... it's easier to find out how full of it they really are!"; - - masters[5]->name = "Jet Li"; - masters[5]->weapon = "Motorcycle"; - masters[5]->strength = 347; - masters[5]->gold = 0; - masters[5]->exp = 0; - masters[5]->maxhp = 504; - masters[5]->hp = 504; - masters[5]->death = "Failure is a fuel for excuses. It's the doing the do, that makes the making."; - - - masters[6]->name = "Muhammad Ali"; - masters[6]->weapon = "Quick Jab"; - masters[6]->strength = 515; - masters[6]->gold = 0; - masters[6]->exp = 0; - masters[6]->maxhp = 1078; - masters[6]->hp = 1078; - masters[6]->death = "It's just a job. Grass grows, birds fly, waves pound the sand. I beat people up."; - - masters[7]->name = "Li Mu Bai"; - masters[7]->weapon = "Green Destiny"; - masters[7]->strength = 655; - masters[7]->gold = 0; - masters[7]->exp = 0; - masters[7]->maxhp = 2207; - masters[7]->hp = 2207; - masters[7]->death = "No growth without resistance. No action without reaction. No desire without restraint."; - - - masters[8]->name = "Jimmy Wang Yu"; - masters[8]->weapon = "Flying Guillotine"; - masters[8]->strength = 819; - masters[8]->gold = 0; - masters[8]->exp = 0; - masters[8]->maxhp = 2780; - masters[8]->hp = 2780; - masters[8]->death = "You have beaten the one armed boxer. Proceed with caution!"; - - masters[9]->name = "Wong Fei Hong"; - masters[9]->weapon = "Drunken Boxing"; - masters[9]->strength = 1014; - masters[9]->gold = 0; - masters[9]->exp = 0; - masters[9]->maxhp = 3046; - masters[9]->hp = 3046; - masters[9]->death = "Hiccup! Monkey drinks master's wine!"; - - masters[10]->name = "Bruce Lee"; - masters[10]->weapon = "Fists of fury"; - masters[10]->strength = 1286; - masters[10]->gold = 0; - masters[10]->exp = 0; - masters[10]->maxhp = 3988; - masters[10]->hp = 3988; - masters[10]->death = "You must learn to concentrate. It is like a finger pointing away to the moon... DONT concentrate on the finger, or you will miss all the heavenly glory."; + for (l = 0; l < LEVELS; l++) + { + infile.getline(buf, 1024, '\n'); + + log("%s", buf); + if (buf[0] == '#' || buf[0] == '\n' || buf[0] == '\r') + { + l--; + continue; + } + else if (buf[0] == '^') + break; + + Monster *master = &levels[l].master; + + char *name, *weapon, *strength, *gold, *exp, *maxhp, *death; + + + name = strtok(buf, "~"); + weapon = strtok(NULL, "~"); + strength = strtok(NULL, "~"); + gold = strtok(NULL, "~"); + exp = strtok(NULL, "~"); + maxhp = strtok(NULL, "~"); + death = strtok(NULL, "~"); + + master->name = name; + master->weapon = weapon; + master->strength = stringtoint(strength); + master->gold = stringtoint(gold); + master->exp = stringtoint(exp); + master->maxhp = stringtoint(maxhp); + master->hp = master->maxhp; + master->death = death; + } + + delete []buf; + + if (l < LEVELS - 1) // We didn't load a master for every level - check data/masters.dat + return false; + else + return true; } void delete_monsters() @@ -1061,13 +1000,6 @@ void delete_monsters() levels[x].monsters.deleteNodes(); } -void delete_masters() -{ - for (int x = 0; x < LEVELS; x++) - if (masters[x]) - delete masters[x]; -} - void display_monster(char *u) { if (is_playing(u)) @@ -1076,7 +1008,7 @@ void display_monster(char *u) Player *ni = user->stats; notice(s_GameServ, u, "Your Hitpoints: %d", ni->hp); - notice(s_GameServ, u, "%s's Hitpoints: %d", ni->fight->name.getString(), ni->fight->hp); + notice(s_GameServ, u, "%s's Hitpoints: %d", ni->fight->name.c_str(), ni->fight->hp); notice(s_GameServ, u, "Here are your commands:"); notice(s_GameServ, u, "/msg %S attack"); notice(s_GameServ, u, "/msg %S run"); @@ -1102,7 +1034,7 @@ void display_players(aClient *user) { aClient *battle = user->stats->battle; notice(s_GameServ, u, "Your Hitpoints: %d", user->stats->hp); - notice(s_GameServ, u, "%s's Hitpoints: %d", battle->stats->name.getString(), battle->stats->hp); + notice(s_GameServ, u, "%s's Hitpoints: %d", battle->stats->name.c_str(), battle->stats->hp); notice(s_GameServ, u, "Here are your commands:"); notice(s_GameServ, u, "/msg %S attack"); notice(s_GameServ, u, "/msg %S run"); @@ -1255,11 +1187,11 @@ void do_fight(char *u) notice(s_GameServ, u, "You decide to fight %s while they're "\ "not in the realm!", - battle->stats->name.getString()); + battle->stats->name.c_str()); display_players(u); } */ - else if (stricmp(ni->stats->name.getString(), battle->stats->name.getString()) == 0) + else if (stricmp(ni->stats->name.c_str(), battle->stats->name.c_str()) == 0) { notice(s_GameServ, u, "Are you trying to commit suicide!?"); } @@ -1269,31 +1201,29 @@ void do_fight(char *u) } else if (player_fight(battle)) { - notice(s_GameServ, u, "%s is fighting %s already!", battle->stats->name.getString(), - battle->stats->battle->stats->name.getString()); + notice(s_GameServ, u, "%s is fighting %s already!", battle->stats->name.c_str(), battle->stats->battle->stats->name.c_str()); } else if (master_fight(battle)) { - notice(s_GameServ, u, "%s is fighting their master!", battle->stats->name.getString()); + notice(s_GameServ, u, "%s is fighting their master!", battle->stats->name.c_str()); } else if (is_fighting(battle)) { - notice(s_GameServ, u, "%s is fighting %s already!", battle->stats->name.getString(), - battle->stats->fight->name.getString()); + notice(s_GameServ, u, "%s is fighting %s already!", battle->stats->name.c_str(), battle->stats->fight->name.c_str()); } else if (ni->stats->level - battle->stats->level > maxbfightdistance) { // You can't fight someone below you by more than X level(s) // level 12 can fight level (12 - X) but not < (12 - X) notice(s_GameServ, u, "You may not fight %s. You're too strong!", - battle->stats->name.getString()); + battle->stats->name.c_str()); } else if (battle->stats->level - ni->stats->level > maxafightdistance) { // You can't fight someone above you by more than X level(S) // level 1 can fight level (1 + X), but not > (1 + X) notice(s_GameServ, u, "%s, do you really have a death wish? Try the forest you "\ - "weakling!", ni->stats->name.getString()); + "weakling!", ni->stats->name.c_str()); } else { @@ -1310,13 +1240,11 @@ void do_fight(char *u) // Initiate Battle sequence! ni->stats->player_fights -= 1; - notice(s_GameServ, u, "You challenge %s to an online duel!", battle->stats->name.getString()); - notice(s_GameServ, battle->getNick(), "%s has challenged you to an online duel!", - ni->stats->name.getString()); + notice(s_GameServ, u, "You challenge %s to an online duel!", battle->stats->name.c_str()); + notice(s_GameServ, battle->getNick(), "%s has challenged you to an online duel!", ni->stats->name.c_str()); notice(s_GameServ, battle->getNick(), "%s gets to go first "\ - "because they initiated!", ni->stats->name.getString()); - notice(s_GameServ, battle->getNick(), "Please wait while %s decides what to do.", - ni->stats->name.getString()); + "because they initiated!", ni->stats->name.c_str()); + notice(s_GameServ, battle->getNick(), "Please wait while %s decides what to do.", ni->stats->name.c_str()); display_players(ni); } } @@ -1485,25 +1413,23 @@ void do_run(char *u) notice(s_GameServ, u, "You run in place... try fighting next time."); else if (!player_fight(user) && !master_fight(user)) { - notice(s_GameServ, u, "You run away from %s like a little baby!", p->fight->name.getString()); + notice(s_GameServ, u, "You run away from %s like a little baby!", p->fight->name.c_str()); delete p->fight; p->fight = NULL; } else if (player_fight(user) && isYourTurn(p)) { - notice(s_GameServ, u, "You run away from %s like a little baby!", p2->name.getString()); - notice(s_GameServ, p->battle->getNick(), "%s ran away from you like a little baby!", - p->name.getString()); + notice(s_GameServ, u, "You run away from %s like a little baby!", p2->name.c_str()); + notice(s_GameServ, p->battle->getNick(), "%s ran away from you like a little baby!", p->name.c_str()); p2->battle = NULL; } else if (player_fight(user) && !isYourTurn(p)) { - notice(s_GameServ, u, "It is not your turn. Please wait until %s decides what to do.", - p2->name.getString()); + notice(s_GameServ, u, "It is not your turn. Please wait until %s decides what to do.", p2->name.c_str()); } else if (master_fight(user)) { - notice(s_GameServ, u, "You cannot run from %s! FIGHT!", p->master->name.getString()); + notice(s_GameServ, u, "You cannot run from %s! FIGHT!", p->master->name.c_str()); } p->battle = NULL; } @@ -1546,16 +1472,16 @@ void end_turn(aClient *user) if (mhit > 0) { notice(s_GameServ, u, "%s attacks with their %s for %d damage!", - fight->name.getString(), fight->weapon.getString(), mhit); + fight->name.c_str(), fight->weapon.c_str(), mhit); } else if (mhit <= 0) - notice(s_GameServ, u, "%s completely misses you!", fight->name.getString()); + notice(s_GameServ, u, "%s completely misses you!", fight->name.c_str()); if (mhit >= user->stats->hp) { if (!master_fight(user)) { - notice(s_GameServ, u, "You have been killed by %s!", fight->name.getString()); + notice(s_GameServ, u, "You have been killed by %s!", fight->name.c_str()); notice(s_GameServ, u, "You lose all gold on hand and lose 10 percent "\ "of your experience!"); user->stats->gold = 0; @@ -1568,7 +1494,7 @@ void end_turn(aClient *user) else { notice(s_GameServ, u, "%s has bested you! You will have to wait "\ - "until tomorrow to try again", user->stats->master->name.getString()); + "until tomorrow to try again", user->stats->master->name.c_str()); user->stats->fight = NULL; user->stats->master = NULL; goto endturn; @@ -1661,23 +1587,23 @@ void do_attack(char *u) if (!player_fight(ni)) { if (hit > 0) - notice(s_GameServ, u, "You attack %s for %d points!", fight->name.getString(), hit); + notice(s_GameServ, u, "You attack %s for %d points!", fight->name.c_str(), hit); else - notice(s_GameServ, u, "You miss %s completely!", fight->name.getString()); + notice(s_GameServ, u, "You miss %s completely!", fight->name.c_str()); if (hit >= fight->hp) { if (master_fight(ni)) { - notice(s_GameServ, u, "You have bested %s!", fight->name.getString()); + notice(s_GameServ, u, "You have bested %s!", fight->name.c_str()); addNews(todaysnews, "%s has bested %s and moved "\ - "to level %d", ni->stats->name.getString(), fight->name.getString(), + "to level %d", ni->stats->name.c_str(), fight->name.c_str(), (ni->stats->level + 1)); } else - notice(s_GameServ, u, "You have killed %s!", fight->name.getString()); + notice(s_GameServ, u, "You have killed %s!", fight->name.c_str()); - notice(s_GameServ, u, "%s", fight->death.getString()); + notice(s_GameServ, u, "%s", fight->death.c_str()); notice(s_GameServ, u, "You recieve %d experience and %d gold!", fight->exp, fight->gold); @@ -1733,20 +1659,20 @@ void do_attack(char *u) if (mhit > 0) { notice(s_GameServ, u, "%s attacks with their %s for %d damage!", - fight->name.getString(), fight->weapon.getString(), mhit); + fight->name.c_str(), fight->weapon.c_str(), mhit); } else if (mhit <= 0) - notice(s_GameServ, u, "%s completely misses you!", fight->name.getString()); + notice(s_GameServ, u, "%s completely misses you!", fight->name.c_str()); if (mhit >= ni->stats->hp) { if (!master_fight(ni)) { - notice(s_GameServ, u, "You have been killed by %s!", fight->name.getString()); + notice(s_GameServ, u, "You have been killed by %s!", fight->name.c_str()); notice(s_GameServ, u, "You lose all gold on hand and lose 10 percent "\ "of your experience!"); addNews(todaysnews, "%s has been killed by %s!", - ni->stats->name.getString(), fight->name.getString()); + ni->stats->name.c_str(), fight->name.c_str()); ni->stats->gold = 0; ni->stats->exp -= (long int)(ni->stats->exp * .10); ni->stats->hp = 0; @@ -1757,9 +1683,9 @@ void do_attack(char *u) else { notice(s_GameServ, u, "%s has bested you! You will have to wait "\ - "until tomorrow to try again", ni->stats->master->name.getString()); + "until tomorrow to try again", ni->stats->master->name.c_str()); addNews(todaysnews, "%s tried to best %s and failed!", - ni->stats->name.getString(), fight->name.getString()); + ni->stats->name.c_str(), fight->name.c_str()); ni->stats->fight = NULL; ni->stats->master = NULL; return; @@ -1865,30 +1791,30 @@ void do_attack(char *u) if (!isYourTurn(ni->stats)) { notice(s_GameServ, u, "Please wait until %s decides what to do!", - battle->stats->name.getString()); + battle->stats->name.c_str()); return; } if (hit > 0) { - notice(s_GameServ, u, "You attack %s for %d points!", battle->stats->name.getString(), hit); + notice(s_GameServ, u, "You attack %s for %d points!", battle->stats->name.c_str(), hit); notice(s_GameServ, battle->getNick(), "%s has hit you with their %s for "\ - "%d damage!", ni->stats->name.getString(), + "%d damage!", ni->stats->name.c_str(), weapons[ni->stats->weapon], hit); } else { - notice(s_GameServ, u, "You miss %s completely!", battle->stats->name.getString()); - notice(s_GameServ, battle->getNick(), "%s misses you completely!", ni->stats->name.getString()); + notice(s_GameServ, u, "You miss %s completely!", battle->stats->name.c_str()); + notice(s_GameServ, battle->getNick(), "%s misses you completely!", ni->stats->name.c_str()); } if (hit >= battle->stats->hp) { - notice(s_GameServ, u, "You have killed %s!", battle->stats->name.getString()); + notice(s_GameServ, u, "You have killed %s!", battle->stats->name.c_str()); notice(s_GameServ, u, "You recieve %d experience and %ld gold!", (long int)(battle->stats->exp * .10), battle->stats->gold); notice(s_GameServ, battle->getNick(), "You have been killed by %s!", - ni->stats->name.getString()); + ni->stats->name.c_str()); battle->stats->hp = 0; clearAlive(battle->stats); @@ -1911,7 +1837,7 @@ void do_attack(char *u) notice(s_GameServ, battle->getNick(), "You lose ten percent of your experience!"); notice(s_GameServ, battle->getNick(), "However, %s could not carry all of your "\ - "gold.", ni->stats->name.getString()); + "gold.", ni->stats->name.c_str()); notice(s_GameServ, battle->getNick(), "Luckily, you still have %ld gold "\ "left. All is not lost!", battle->stats->gold); @@ -1933,7 +1859,7 @@ void do_attack(char *u) setYourTurn(battle->stats); display_players(battle); notice(s_GameServ, u, "Please wait while %s decides what to do!", - battle->stats->name.getString()); + battle->stats->name.c_str()); return; } } @@ -2105,11 +2031,11 @@ int save_gs_dbase() { it = ptr->getData()->stats; clearYourTurn(it); - outfile << it->name.getString() << ' ' << it->level << ' ' << it->exp << ' ' << it->gold << ' ' - << it->bank << ' ' << it->hp << ' ' << it->maxhp << ' ' << it->strength << ' ' << it->defense - << ' ' << it->armor << ' ' << it->weapon << ' ' + outfile << it->name.c_str() << ' ' << it->level << ' ' << it->exp << ' ' << it->gold << ' ' << it->bank << ' ' + << it->hp << ' ' << it->maxhp << ' ' << it->strength << ' ' << it->defense << ' ' + << it->armor << ' ' << it->weapon << ' ' << it->forest_fights << ' ' << it->player_fights << ' ' - << it->getFlags() << ' ' << it->password.getString() << ' ' << it->inventory.Healing() + << it->getFlags() << ' ' << it->password << ' ' << it->inventory.Healing() << ' ' << it->inventory.Strength() << ' ' << it->inventory.Defense() << ' ' << it->inventory.HP() << ' ' << it->lastlogin << endl; ptr = ptr->Next(); @@ -2171,7 +2097,6 @@ int load_gs_dbase() password = strtok(NULL, " "); p->password = password; - temp->setNick("Not Playing"); #ifdef P10 temp->setRealNick("Not Playing"); @@ -2203,7 +2128,7 @@ int load_gs_dbase() else p->lastlogin = time(NULL); - unsigned long hv = iHASH((unsigned char *) temp->stats->name.getString()); + unsigned long hv = iHASH((unsigned char *) temp->stats->name.c_str()); temp->stats->client = NULL; players[hv].insertAtBack(temp); @@ -2214,7 +2139,7 @@ infile.close(); return 1; } -bool passcmp(char *encrypted, char *plaintext) +bool passcmp(const char *encrypted, char *plaintext) { char salt[3]; char *plaintext2, *plainToencrypt; @@ -2244,7 +2169,7 @@ bool check_password(char *name, char *plaintext) return false; else { - return passcmp(client->stats->password.getString(), plaintext); + return passcmp(client->stats->password.c_str(), plaintext); } } @@ -2378,6 +2303,7 @@ void do_store(char *u) else { notice(s_GameServ, u, "SYNTAX: STORE BUY {ARMOR | WEAPON} NUMBER"); + return; } } else if (stricmp(cmd, "SELL" ) == 0) @@ -2488,7 +2414,7 @@ void showinventory(aClient *from, aClient *to) if (is_playing(from)) { Pouch *p = &from->stats->inventory; - notice(s_GameServ, nick, "Inventory for %s:", from->stats->name.getString()); + notice(s_GameServ, nick, "Inventory for %s:", from->stats->name.c_str()); notice(s_GameServ, nick, " Healing Potions: %d", p->Healing()); notice(s_GameServ, nick, "Strength Potions: %d", p->Strength()); notice(s_GameServ, nick, " Defense Potions: %d", p->Defense()); @@ -2614,7 +2540,7 @@ void do_tavern(char *u) notice(s_GameServ, u, "You don't have enough gold!"); break; case 4: - price = 2000 * p->level * 4; + price = 3000 * p->level * 4; if (p->gold >= price) { notice(s_GameServ, u, "One HP Potion coming right up!"); @@ -2856,7 +2782,7 @@ void do_dragon(char *u) notice(s_GameServ, u, "You adjust your %s, tighten your grip on "\ "your %s, and venture into the hot, dark cave. "\ "You are surprised at the angle of descent as you climb "\ - "lower and lower, deeper into the dragon's den.", armors[p->level - 1], weapons[p->level - 1]); + "lower and lower, deeper into the dragon's den."); notice(s_GameServ, u, "You come to the end of the cave to find "\ "a tooth. It is a large tooth... bigger than your torso."\ " Suddenly the darkness lifts from the gleam of an eye "\ @@ -2975,17 +2901,17 @@ void do_master(char *u) } else notice(s_GameServ, u, "You are not worthy of fighting %s! You need %ld more experience.", - masters[p->level - 1]->name.getString(), (need - p->exp)); + levels[p->level - 1].master.name.c_str(), (need - p->exp)); return; } else if (stricmp(cmd, "QUESTION") == 0) { if (p->exp >= need) notice(s_GameServ, u, "%s looks you up and down and decides you are more ready than you will ever be.", - masters[p->level - 1]->name.getString()); + levels[p->level - 1].master.name.c_str()); else notice(s_GameServ, u, "You pathetic fool! You are no match for %s, %s!", - masters[p->level - 1]->name.getString(), p->name.getString()); + levels[p->level - 1].master.name.c_str(), p->name.c_str()); return; } @@ -3008,7 +2934,7 @@ void see_master(char *u) if (!is_fighting(user) && is_playing(user)) { Player *p = user->stats; - p->master = new Monster(masters[p->level - 1]); + p->master = new Monster(&levels[p->level - 1].master); p->fight = p->master; display_monster(u); // Since master is the same structure, use this function } @@ -3142,15 +3068,15 @@ void resetall() void reset(Player *p) { - myString *myname; - myname = new myString(p->name); + string *myname; if (!p) return; + myname = new string(p->name); + p->reset(); p->name = *myname; - delete myname; } @@ -3160,11 +3086,11 @@ void updateTS(Player *p) return; #ifdef DEBUGMODE - log("Old timestamp for %s: %ld", p->name.getString(), p->lastcommand); + log("Old timestamp for %s: %ld", p->name.c_str(), p->lastcommand); #endif p->lastcommand = time(NULL); #ifdef DEBUGMODE - log("New timestamp for %s: %ld", p->name.getString(), p->lastcommand); + log("New timestamp for %s: %ld", p->name.c_str(), p->lastcommand); #endif } @@ -3186,7 +3112,7 @@ bool timedOut(Player *p) void timeOutEvent(Player *p) { - aClient *user = findplayer(p->name.getString()); + aClient *user = findplayer(p->name.c_str()); if (!user || !p->client) // then they're not playing return; @@ -3204,7 +3130,7 @@ void timeOutEvent(Player *p) notice(s_GameServ, nick, "You timed out "\ "during a fight. You lose your turn!"); notice(s_GameServ, p->battle->getNick(), - "%s hesitated for too long. Your move.", p->name.getString()); + "%s hesitated for too long. Your move.", p->name.c_str()); clearYourTurn(p); setYourTurn(p->battle->stats); @@ -3221,11 +3147,11 @@ void timeOutEvent(Player *p) notice(s_GameServ, p->battle->getNick(), "You and %s timed out at the same time."\ " Don't fight if you're just going to "\ - "sit there!", p->name.getString()); + "sit there!", p->name.c_str()); notice(s_GameServ, user->getNick(), "You and %s timed out at the same time."\ " Don't fight if you're just going to "\ - "sit there!", p->battle->stats->name.getString()); + "sit there!", p->battle->stats->name.c_str()); logout(p->battle); logout(user); return; @@ -3320,7 +3246,7 @@ void do_reset(char *u) } else { - notice(s_GameServ, u, "Resetting %s", user->stats->name.getString()); + notice(s_GameServ, u, "Resetting %s", user->stats->name.c_str()); reset(user->stats); } } @@ -3481,9 +3407,9 @@ bool load_monsters() Monster *temp; temp = new Monster; - temp->name = strtok(buf, "~"); - temp->weapon = strtok(NULL, "~"); - temp->death = strtok(NULL, "~"); + temp->name = strtok(buf, "~"); + temp->weapon = strtok(NULL, "~"); + temp->death = strtok(NULL, "~"); levels[level - 1].monsters.insertAtBack_RLN(temp); delete temp;