X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/68379f960ad12e5caf65f29453fba2aad68dd827..accc7c20201425b55c4462263641efc331043a8c:/gameserv/gameserv.cpp diff --git a/gameserv/gameserv.cpp b/gameserv/gameserv.cpp index 71ce6d5..d7a0f31 100644 --- a/gameserv/gameserv.cpp +++ b/gameserv/gameserv.cpp @@ -3,6 +3,7 @@ #include "extern.h" #include "flags.h" #include "list.h" +#include "myString.h" #include "sockhelp.h" #include @@ -224,6 +225,16 @@ void gameserv(char *source, char *buf) do_tavern(source); } else if (stricmp(cmd, "LIST") == 0) { do_list(source); + #ifdef DEBUGMODE + } else if (stricmp(cmd, "PRINT") == 0) { + List news; + myString *st; + st = new myString("This is a test"); + cout << news.insertAtBack_RLN(st)->getData() << endl; + cout << st << endl; + news.print(); + delete st; + #endif } else if (stricmp(cmd, "LOGOUT") == 0) { do_logout(source); } else if (stricmp(cmd, "REGISTER") == 0) { @@ -404,6 +415,20 @@ void showstats(const char *u, const char *nick) space = spaces(strlen(buf), " "); notice(s_GameServ, sender->getNick(), "%s%sPlayer Fights: %d", buf, space, ni->stats->player_fights); delete [] space; + Pouch *inv = &ni->stats->inventory; + + notice(s_GameServ, u, "Potions"); + sprintf(buf, "Healing: %d", inv->Healing()); + space = spaces(strlen(buf), " "); + notice(s_GameServ, sender->getNick(), "%s%sHP: %d", buf, + space, inv->HP()); + delete [] space; + + sprintf(buf, "Strength: %d", inv->Strength()); + space = spaces(strlen(buf), " "); + notice(s_GameServ, sender->getNick(), "%s%sDefense: %d", buf, + space, inv->Defense()); + delete [] space; } else { @@ -924,7 +949,7 @@ void init_masters() strcpy(masters[0]->name, "Old Bones"); strcpy(masters[0]->weapon, "Dull Sword Cane"); - masters[0]->strength = 30; + masters[0]->strength = 32; masters[0]->gold = 0; masters[0]->exp = 0; masters[0]->maxhp = 35; @@ -933,7 +958,7 @@ void init_masters() strcpy(masters[1]->name, "Master Chang"); strcpy(masters[1]->weapon, "Nanchaku"); - masters[1]->strength = 45; + masters[1]->strength = 48; masters[1]->gold = 0; masters[1]->exp = 0; masters[1]->maxhp = 51; @@ -942,7 +967,7 @@ void init_masters() strcpy(masters[2]->name, "Chuck Norris"); strcpy(masters[2]->weapon, "Ranger Kick"); - masters[2]->strength = 83; + masters[2]->strength = 88; masters[2]->gold = 0; masters[2]->exp = 0; masters[2]->maxhp = 100; @@ -952,7 +977,7 @@ void init_masters() strcpy(masters[3]->name, "Mr. Miagi"); strcpy(masters[3]->weapon, "Petrified Bonsai"); - masters[3]->strength = 159; + masters[3]->strength = 169; masters[3]->gold = 0; masters[3]->exp = 0; masters[3]->maxhp = 165; @@ -961,7 +986,7 @@ void init_masters() strcpy(masters[4]->name, "Jackie Chan"); strcpy(masters[4]->weapon, "Kung Fu Kick"); - masters[4]->strength = 260; + masters[4]->strength = 275; masters[4]->gold = 0; masters[4]->exp = 0; masters[4]->maxhp = 232; @@ -970,7 +995,7 @@ void init_masters() strcpy(masters[5]->name, "Jet Li"); strcpy(masters[5]->weapon, "Motorcycle"); - masters[5]->strength = 325; + masters[5]->strength = 347; masters[5]->gold = 0; masters[5]->exp = 0; masters[5]->maxhp = 504; @@ -980,7 +1005,7 @@ void init_masters() strcpy(masters[6]->name, "Muhammad Ali"); strcpy(masters[6]->weapon, "Quick Jab"); - masters[6]->strength = 380; + masters[6]->strength = 515; masters[6]->gold = 0; masters[6]->exp = 0; masters[6]->maxhp = 1078; @@ -989,7 +1014,7 @@ void init_masters() strcpy(masters[7]->name, "Li Mu Bai"); strcpy(masters[7]->weapon, "Green Destiny"); - masters[7]->strength = 462; + masters[7]->strength = 655; masters[7]->gold = 0; masters[7]->exp = 0; masters[7]->maxhp = 2207; @@ -999,7 +1024,7 @@ void init_masters() strcpy(masters[8]->name, "Jimmy Wang Yu"); strcpy(masters[8]->weapon, "Flying Guillotine"); - masters[8]->strength = 511; + masters[8]->strength = 819; masters[8]->gold = 0; masters[8]->exp = 0; masters[8]->maxhp = 2780; @@ -1008,7 +1033,7 @@ void init_masters() strcpy(masters[9]->name, "Wong Fei Hung"); strcpy(masters[9]->weapon, "Drunken Boxing"); - masters[9]->strength = 618; + masters[9]->strength = 1014; masters[9]->gold = 0; masters[9]->exp = 0; masters[9]->maxhp = 3046; @@ -1017,7 +1042,7 @@ void init_masters() strcpy(masters[10]->name, "Bruce Lee"); strcpy(masters[10]->weapon, "Fists of fury"); - masters[10]->strength = 725; + masters[10]->strength = 1286; masters[10]->gold = 0; masters[10]->exp = 0; masters[10]->maxhp = 3988; @@ -1337,19 +1362,24 @@ void do_use(char *u) p = &user->stats->inventory; - if (stricmp(item, "HEALTH") == 0) + if (stricmp(item, "HEALING") == 0) { if (p->Healing() <= 0) { - notice(s_GameServ, u, "You are out of Health Potions!"); + notice(s_GameServ, u, "You are out of Healing Potions!"); return; } - int oldhealth = user->stats->hp; + int oldhealing = user->stats->hp; notice(s_GameServ, u, "You hastiliy gulp down the flask of cool life-giving waters."); notice(s_GameServ, u, "Rejuvination spreads throughout your body."); user->stats->hp += (10 * user->stats->level) + (rand() % 10) * user->stats->level; - notice(s_GameServ, u, "You gain %d HP!", user->stats->hp - oldhealth); + notice(s_GameServ, u, "You gain %d HP!", user->stats->hp - oldhealing); p->decHealing(); + if (player_fight(user)) + { + notice(s_GameServ, user->stats->battle->getNick(), + "%s has used a healing potion!"); + } } else if (stricmp(item, "STRENGTH") == 0) { @@ -1364,6 +1394,11 @@ void do_use(char *u) user->stats->strength += 1 + (rand() % 10 >= 8 ? 1 : 0); // 1-2 notice(s_GameServ, u, "You gain %d Strength points!", user->stats->strength - oldstrength); p->decStrength(); + if (player_fight(user)) + { + notice(s_GameServ, user->stats->battle->getNick(), + "%s has used a strength potion!"); + } } else if (stricmp(item, "DEFENSE") == 0) { @@ -1378,6 +1413,11 @@ void do_use(char *u) user->stats->defense += 1 + (rand() % 10 >= 8 ? 1 : 0); // 1-2 notice(s_GameServ, u, "You gain %d Defense points!", user->stats->defense - olddefense); p->decDefense(); + if (player_fight(user)) + { + notice(s_GameServ, user->stats->battle->getNick(), + "%s has used a defense potion!"); + } } else if (stricmp(item, "HP") == 0) { @@ -1393,10 +1433,15 @@ void do_use(char *u) notice(s_GameServ, u, "You gain %d Maximum hit points!", user->stats->maxhp - oldHP); p->decHP(); + if (player_fight(user)) + { + notice(s_GameServ, user->stats->battle->getNick(), + "%s has used a HP potion!"); + } } else { - notice(s_GameServ, u, "SYNTAX: /msg %S USE {HEALTH | STRENGTH | DEFENSE}"); + notice(s_GameServ, u, "SYNTAX: /msg %S USE {HEALING | STRENGTH | DEFENSE | HP}"); return; } @@ -2420,6 +2465,7 @@ void do_tavern(char *u) aClient *user; Player *p; + if (!(user = find(u))) { notice(s_GameServ, u, "Fatal Error. See a %S admin for help"); @@ -2455,14 +2501,17 @@ void do_tavern(char *u) } else if (stricmp(cmd, "LIST") == 0) { - notice(s_GameServ, u, "Here is a list of what we have to offer:"); - notice(s_GameServ, u, "1. Healing Potions for %ld Gold", 100 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "2. Strength Potions for %ld Gold", 205 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "3. Defense Potions for %ld Gold", 200 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "4. HP Potions for %ld Gold", 230 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "To buy a potion, type /msg %S TAVERN BUY #"); - notice(s_GameServ, u, "Example: /msg %S TAVERN BUY 1 buys a healing potion!"); - notice(s_GameServ, u, "By something will ya!"); + notice(s_GameServ, u, "Here is a list of what we have to offer:"); + notice(s_GameServ, u, "1. Healing Potions for %ld Gold", + 1000 * p->level * 4); + notice(s_GameServ, u, "2. Strength Potions for %ld Gold", + 2500 * p->level * 4); + notice(s_GameServ, u, "3. Defense Potions for %ld Gold", + 3000 * p->level * 4); + notice(s_GameServ, u, "4. HP Potions for %ld Gold", + 2000 * p->level * 4); + notice(s_GameServ, u, "To buy a potion, type /msg %S TAVERN BUY #"); + notice(s_GameServ, u, "Example: /msg %S TAVERN BUY 1 buys a healing potion!"); } else if (stricmp(cmd, "BUY") == 0) { @@ -2479,10 +2528,14 @@ void do_tavern(char *u) { notice(s_GameServ, u, "Invalid Choice!"); notice(s_GameServ, u, "Here is a list of what we have to offer:"); - notice(s_GameServ, u, "1. Healing Potions for %ld Gold", 100 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "2. Strength Potions for %ld Gold", 205 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "3. Defense Potions for %ld Gold", 200 * p->level + (p->exp / 10)); - notice(s_GameServ, u, "4. HP Potions for %ld Gold", 230 * p->level + (p->exp / 10)); + notice(s_GameServ, u, "1. Healing Potions for %ld Gold", + 1000 * p->level * 4); + notice(s_GameServ, u, "2. Strength Potions for %ld Gold", + 2500 * p->level * 4); + notice(s_GameServ, u, "3. Defense Potions for %ld Gold", + 3000 * p->level * 4); + notice(s_GameServ, u, "4. HP Potions for %ld Gold", + 2000 * p->level * 4); notice(s_GameServ, u, "To buy a potion, type /msg %S TAVERN BUY #"); notice(s_GameServ, u, "Example: /msg %S TAVERN BUY 1 buys a healing potion!"); return; @@ -2490,7 +2543,7 @@ void do_tavern(char *u) switch(num) { case 1: - price = (100 * p->level) + (p->exp / 10); + price = (1000 * p->level * 4); if (p->gold >= price) { notice(s_GameServ, u, "One healing potion coming right up!"); @@ -2501,7 +2554,7 @@ void do_tavern(char *u) notice(s_GameServ, u, "You don't have enough gold!"); break; case 2: - price = (205 * p->level) + (p->exp / 10); + price = 2500 * p->level * 4; if (p->gold >= price) { notice(s_GameServ, u, "One strength boost coming right up!"); @@ -2512,7 +2565,7 @@ void do_tavern(char *u) notice(s_GameServ, u, "You don't have enough gold!"); break; case 3: - price = (200 * p->level) + (p->exp / 10); + price = 3000 * p->level * 4; if (p->gold >= price) { notice(s_GameServ, u, "One defense boost coming right up!"); @@ -2523,7 +2576,7 @@ void do_tavern(char *u) notice(s_GameServ, u, "You don't have enough gold!"); break; case 4: - price = (230 * p->level) + (p->exp / 10); + price = 3000 * p->level * 4; if (p->gold >= price) { notice(s_GameServ, u, "One HP Potion coming right up!"); @@ -2739,12 +2792,12 @@ void do_dragon(char *u) notice(s_GameServ, u, "You're dead. Wait until tomorrow to see your master!"); return; } - else if (user->stats->level < 12) + else if (user->stats->level < REALLEVELS) { notice(s_GameServ, u, "You fool! Only those strong enough "\ "to vanquish any foe should DARE fight the dragon!"); notice(s_GameServ, u, "To put it in terms you can understand: "\ - "You are too weak. You must be Level 12!"); + "You are too weak. You must be Level %d!", REALLEVELS); return; } @@ -2853,9 +2906,10 @@ void do_master(char *u) case 11: need = 20000000; break; - case 12: + + case REALLEVELS: need = p->exp + 1; - notice(s_GameServ, u, "You are at level 12. You are the master. What's left? The DRAGON!"); + notice(s_GameServ, u, "You are at level %d. You are the master. What's left? The DRAGON!", REALLEVELS); return; break; default: