#include "extern.h"
#include "flags.h"
#include "list.h"
+#include "myString.h"
#include "sockhelp.h"
#include <cctype>
do_tavern(source);
} else if (stricmp(cmd, "LIST") == 0) {
do_list(source);
+ #ifdef DEBUGMODE
+ } else if (stricmp(cmd, "PRINT") == 0) {
+ List<myString> 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) {
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
{
void do_list(char *u)
{
aClient *user;
+ char *cmd = strtok(NULL, " ");
+
if (!(user = find(u)))
{
log("Fatal Error: Couldn't find %s in the client list", u);
ListNode<aClient> *temp;
bool header = false;
+
for (unsigned long x = 0; x < U_TABLE_SIZE; x++)
{
temp = players[x].First();
if (!players[x].isEmpty())
{
- if (!header)
- {
- notice(s_GameServ, u, "People Playing:");
- header = true;
- }
while(temp)
{
- #ifdef P10
- notice(s_GameServ, u, "IRC: %s Game: %s", temp->getData()->getRealNick(),
- temp->getData()->stats->name);
- #else
- notice(s_GameServ, u, "IRC: %s Game: %s", temp->getData()->getNick(),
- temp->getData()->stats->name);
- #endif
+ if (!cmd || is_playing(temp->getData()))
+ {
+ if (!header)
+ {
+ notice(s_GameServ, u, "Players:");
+ header = true;
+ }
+ #ifdef P10
+ notice(s_GameServ, u, "IRC: %s Game: %s", temp->getData()->getRealNick(),
+ temp->getData()->stats->name);
+ #else
+ notice(s_GameServ, u, "IRC: %s Game: %s", temp->getData()->getNick(),
+ temp->getData()->stats->name);
+ #endif
+ }
temp = temp->Next();
}
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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)
{
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)
{
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)
{
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;
}
aClient *user;
Player *p;
+
if (!(user = find(u)))
{
notice(s_GameServ, u, "Fatal Error. See a %S admin for help");
}
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)
{
{
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;
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!");
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!");
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!");
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!");
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;
}
updateTS(user->stats);
- char *cmd = strtok(NULL, " ");
Player *p = user->stats;
p->fight = new Monster(boss);
notice(s_GameServ, u, "You approach the dragon's lair cautiously.");
"deep, red fog rolls in. The air is filled with the "\
"heated mist of deadly fire from beyond the cave "\
"entrance.");
- notice(s_GameServ, u, "You adjust your %s, tighten your grip on "\
+ 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.");
notice(s_GameServ, u, "Just then you notice the eye begin to "\
"glare orange! The tooth is moving... but it is still too "\
"dark for you to make out.... THE DRAGON! You see it!");
- display_monsters(u);
+ display_monster(u);
}
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: