X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/b5cea1adadc9aaea0921e5d7f03932e35f3ac71c..af20337cbe2eda7033fe5e0040e843ad13858bf0:/gameserv/gameserv.cpp?ds=sidebyside diff --git a/gameserv/gameserv.cpp b/gameserv/gameserv.cpp index d5d9e97..d1b50f7 100644 --- a/gameserv/gameserv.cpp +++ b/gameserv/gameserv.cpp @@ -25,7 +25,7 @@ using std::ios; Monster boss; // The boss monster -level monsters[LEVELS]; // The newest way to store monsters +Level levels[LEVELS]; // The newest way to store monsters Monster *masters[LEVELS]; // A master for each level @@ -88,6 +88,7 @@ void updateTS(Player *p); void reset(Player *p); void init_masters(); bool load_monsters(); +bool load_levels(); void delete_monsters(); void delete_masters(); @@ -304,7 +305,12 @@ void gameserv(char *source, char *buf) } } else if (stricmp(cmd, "PRINT") == 0) { for (int x = 0; x < LEVELS; x++) - monsters[x].print(); + levels[x].monsters.print(); + } else if (stricmp(cmd, "RANDOM") == 0) { + char *rstr = strtok(NULL, ""); + range trange; + trange.setRange(rstr); + notice(s_GameServ, source, "Random number in that range: %d", trange.random()); #endif } else { aClient *user; @@ -1051,7 +1057,7 @@ void init_masters() void delete_monsters() { for (int x = 0; x < LEVELS; x++) - monsters[x].deleteNodes(); + levels[x].monsters.deleteNodes(); } void delete_masters() @@ -2596,7 +2602,7 @@ void do_tavern(char *u) notice(s_GameServ, u, "You don't have enough gold!"); break; case 4: - price = 3000 * p->level * 4; + price = 2000 * p->level * 4; if (p->gold >= price) { notice(s_GameServ, u, "One HP Potion coming right up!"); @@ -2838,7 +2844,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."); + "lower and lower, deeper into the dragon's den.", armors[p->level - 1], weapons[p->level - 1]); 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 "\ @@ -3412,6 +3418,21 @@ void do_admin(char *u) } } +bool load_levels() +{ + char *filename; + filename = new char[256]; + + for (int x = 1; x <= LEVELS; x++) + { + sprintf(filename, "data/levels/level%d.dat", x); + if (levels[x - 1].loadLevel(filename) == false) + return false; + } + + delete []filename; + return true; +} bool load_monsters() { char *filename; @@ -3446,14 +3467,9 @@ bool load_monsters() strcpy(temp->name, strtok(buf, "~")); strcpy(temp->weapon, strtok(NULL, "~")); - temp->strength = stringtoint(strtok(NULL, "~")); - temp->gold = stringtoint(strtok(NULL, "~")); - temp->exp = stringtoint(strtok(NULL, "~")); - temp->maxhp = stringtoint(strtok(NULL, "~")); - temp->hp = temp->maxhp; strcpy(temp->death, strtok(NULL, "~")); - monsters[level - 1].insertAtBack_RLN(temp); + levels[level - 1].monsters.insertAtBack_RLN(temp); delete temp; } delete [] filename;