#include "aClient.h"
#include "config.h"
#include "extern.h"
+#include "player.h"
+#include "pouch.h"
#include "flags.h"
#include "list.h"
#include "level.h"
#include "sockhelp.h"
+#include "item.h"
#include <cctype>
#include <fstream>
#include <stdlib.h>
+#include <list>
+#include <iterator>
-using std::ifstream;
-using std::ofstream;
-using std::ios;
+using namespace std;
#if defined(HAVE_CRYPT_H)
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;
+ showinventory(ni, ni);
}
else
{
}
else if (!name)
{
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] {PASSWORD|BANK BALANCE|PLAYER FIGHTS|FOREST FIGHTS|GOLD|STRENGTH|DEFENSE|HP|MAXHP|EXP|LEVEL|WEAPON|ARMOR|HP POTIONS|STRENGTH POTIONS|DEFENSE POTIONS|HEALING POTIONS|ALIVE|SEEN MASTER} {STRING|NUMBER|TRUE|FALSE}");
+ notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] {PASSWORD|BANK BALANCE|PLAYER FIGHTS|FOREST FIGHTS|GOLD|STRENGTH|DEFENSE|HP|MAXHP|EXP|LEVEL|ALIVE|SEEN MASTER} {STRING|NUMBER|TRUE|FALSE}");
return;
}
else if (!(target = findplayer(name)))
return;
}
}
- else if (stricmp(cmd, "WEAPON") == 0)
- {
- if (!isAdmin(user))
- {
- notice(s_GameServ, u, "Admins Only!");
- return;
- }
- else
- {
- if (!cmd2)
- {
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] WEAPON <NUMBER>");
- return;
- }
-
- target->stats->wea = stringtoint(cmd2);
-
- if (target->stats->wea < 0)
- target->stats->wea = 0;
- else if (target->stats->wea >= WNA)
- target->stats->wea = WNA - 1;
- notice(s_GameServ, u, "Weapon set to %s", weapons[target->stats->wea]);
- return;
- }
- }
- else if (stricmp(cmd, "ARMOR") == 0)
- {
- if (!isAdmin(user))
- {
- notice(s_GameServ, u, "Admins Only!");
- return;
- }
- else
- {
- if (!cmd2)
- {
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] ARMOR <NUMBER>");
- return;
- }
- target->stats->arm = stringtoint(cmd2);
-
- if (target->stats->arm < 0)
- target->stats->arm = 0;
- else if (target->stats->arm >= WNA)
- target->stats->arm = WNA - 1;
-
- notice(s_GameServ, u, "Armor set to %s", armors[target->stats->arm]);
- return;
- }
- }
- else if (stricmp(cmd, "HP") == 0 && stricmp(cmd2, "POTIONS") == 0)
- {
- if (!isAdmin(user))
- {
- notice(s_GameServ, u, "Admins Only!");
- return;
- }
- else
- {
- cmd2 = strtok(NULL, " ");
- if (!cmd2)
- {
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] HP POTIONS <NUMBER>");
- return;
- }
- target->stats->inventory.setHP(abs(stringtoint(cmd2)));
-
- notice(s_GameServ, u, "HP Potions set to %d", target->stats->inventory.HP());
- return;
- }
- }
- else if (stricmp(cmd, "HEALING") == 0 && stricmp(cmd2, "POTIONS") == 0)
- {
- if (!isAdmin(user))
- {
- notice(s_GameServ, u, "Admins Only!");
- return;
- }
- else
- {
- cmd2 = strtok(NULL, " ");
- if (!cmd2)
- {
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] HEALING POTIONS <NUMBER>");
- return;
- }
- target->stats->inventory.setHealing(abs(stringtoint(cmd2)));
- notice(s_GameServ, u, "Healing Potions set to %d", target->stats->inventory.Healing());
- return;
- }
- }
- else if (stricmp(cmd, "STRENGTH") == 0 && stricmp(cmd2, "POTIONS") == 0)
- {
- if (!isAdmin(user))
- {
- notice(s_GameServ, u, "Admins Only!");
- return;
- }
- else
- {
- cmd2 = strtok(NULL, " ");
- if (!cmd2)
- {
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] STRENGTH POTIONS <NUMBER>");
- return;
- }
- target->stats->inventory.setStrength(abs(stringtoint(cmd2)));
- notice(s_GameServ, u, "Strength Potions set to %d", target->stats->inventory.Strength());
- return;
- }
- }
- else if (stricmp(cmd, "DEFENSE") == 0 && stricmp(cmd2, "POTIONS") == 0)
- {
- if (!isAdmin(user))
- {
- notice(s_GameServ, u, "Admins Only!");
- return;
- }
- else
- {
- cmd2 = strtok(NULL, " ");
- if (!cmd2)
- {
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] DEFENSE POTIONS <NUMBER>");
- return;
- }
- target->stats->inventory.setDefense(abs(stringtoint(cmd2)));
- notice(s_GameServ, u, "Defense Potions set to %d", target->stats->inventory.Defense());
- return;
- }
- }
else if (stricmp(cmd, "ALIVE") == 0)
{
if (!isAdmin(user))
else
{
notice(s_GameServ, u, "Unknown command: SET %s", cmd);
- notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] {PASSWORD|BANK BALANCE|PLAYER FIGHTS|FOREST FIGHTS|GOLD|STRENGTH|DEFENSE|HP|MAXHP|EXP|LEVEL|WEAPON|ARMOR|HP POTIONS|STRENGTH POTIONS|DEFENSE POTIONS|HEALING POTIONS|ALIVE|SEEN MASTER} {STRING|NUMBER|TRUE|FALSE}");
+ notice(s_GameServ, u, "SYNTAX: /msg %S SET [NAME] {PASSWORD|BANK BALANCE|PLAYER FIGHTS|FOREST FIGHTS|GOLD|STRENGTH|DEFENSE|HP|MAXHP|EXP|LEVEL|ALIVE|SEEN MASTER} {STRING|NUMBER|TRUE|FALSE}");
return;
}
}
void do_use(char *u)
{
+ /*
aClient *user;
Pouch *p;
}
end_turn(user); // If they're fighting, end their turn
+ */
+ return;
}
void do_run(char *u)
{
<< it->hp << ' ' << it->maxhp << ' ' << it->strength << ' ' << it->defense << ' '
<< it->arm << ' ' << it->wea << ' '
<< it->forest_fights << ' ' << it->player_fights << ' '
- << it->getFlags() << ' ' << it->password << ' ' << it->inventory.Healing()
+ << it->getFlags() << ' ' << it->password << ' '
+/* fixing this << it->inventory.Healing()
<< ' ' << it->inventory.Strength() << ' ' << it->inventory.Defense() << ' ' << it->inventory.HP()
- << ' ' << it->lastlogin << endl;
+ << ' ' */ << it->lastlogin << endl;
ptr = ptr->Next();
}
}
}
while (infile.getline(buf, 1024, '\n'))
- {
+ {
temp = new aClient;
tempname = strtok(buf, " ");
temp->stats = new Player(tempname);
p = temp->stats;
-
+
p->level = stringtoint(strtok(NULL, " "));
p->exp = stringtoint(strtok(NULL, " "));
p->gold = stringtoint(strtok(NULL, " "));
p->player_fights = stringtoint(strtok(NULL, " "));
p->setFlags(stringtoint(strtok(NULL, " ")));
+
+
password = strtok(NULL, " ");
p->password = password;
temp->setNick("Not Playing");
- #ifdef P10
+#ifdef P10
temp->setRealNick("Not Playing");
- #endif
-
- p->inventory.reset(); // Set inventory to all 0s
+#endif
+
+ p->inventory->clear(); // Set inventory to all 0s
// Old player databases didn't have these three extra values
// If they come up null, leave them to 0 as the default.
// On the next gameserv database save, it will save the values.
tempname = strtok(NULL, " ");
- if (tempname)
- p->inventory.setHealing(stringtoint(tempname));
-
+ // if (tempname)
+ // p->inventory.setHealing(stringtoint(tempname));
+
tempname = strtok(NULL, " ");
- if (tempname)
- p->inventory.setStrength(stringtoint(tempname));
-
+ //if (tempname)
+ // p->inventory.setStrength(stringtoint(tempname));
+
tempname = strtok(NULL, " ");
- if (tempname)
- p->inventory.setDefense(stringtoint(tempname));
-
+ //if (tempname)
+ // p->inventory.setDefense(stringtoint(tempname));
+
tempname = strtok(NULL, " ");
- if (tempname)
- p->inventory.setHP(stringtoint(tempname));
-
+ //if (tempname)
+ // p->inventory.setHP(stringtoint(tempname));
+
tempname = strtok(NULL, " ");
if (tempname)
- p->lastlogin = stringtoint(tempname);
+ p->lastlogin = stringtoint(tempname);
else
- p->lastlogin = time(NULL);
-
+ p->lastlogin = time(NULL);
+
unsigned long hv = iHASH((unsigned char *) temp->stats->name.c_str());
-
+
temp->stats->client = NULL;
players[hv].insertAtBack(temp);
delete temp;
- }
-delete [] buf;
-infile.close();
-return 1;
+ }
+ delete [] buf;
+ infile.close();
+ return 1;
}
bool passcmp(const char *encrypted, char *plaintext)
{
- char salt[3];
- char *plaintext2, *plainToencrypt;
- bool same = false;
-
- plaintext2 = new char[strlen(encrypted) + strlen(plaintext)]; // Extra
- strcpy(plaintext2, plaintext);
-
- salt[0] = encrypted[0];
- salt[1] = encrypted[1];
- salt[3] = '\0';
-
- plainToencrypt = crypt(plaintext2, salt);
-
- same = (strcmp((const char *)encrypted, plainToencrypt) == 0 ? true : false);
-
- delete []plaintext2;
-
- return same;
+ char salt[3];
+ char *plaintext2, *plainToencrypt;
+ bool same = false;
+
+ plaintext2 = new char[strlen(encrypted) + strlen(plaintext)]; // Extra
+ strcpy(plaintext2, plaintext);
+
+ salt[0] = encrypted[0];
+ salt[1] = encrypted[1];
+ salt[3] = '\0';
+
+ plainToencrypt = crypt(plaintext2, salt);
+
+ same = (strcmp((const char *)encrypted, plainToencrypt) == 0 ? true : false);
+
+ delete []plaintext2;
+
+ return same;
}
bool check_password(char *name, char *plaintext)
{
- aClient *client;
-
- if (!(client = findplayer(name)))
- return false;
- else
+ aClient *client;
+
+ if (!(client = findplayer(name)))
+ return false;
+ else
{
- return passcmp(client->stats->password.c_str(), plaintext);
+ return passcmp(client->stats->password.c_str(), plaintext);
}
}
void do_store(char *u)
{
- char *cmd = strtok(NULL, " ");
- char *item = strtok(NULL, " ");
- char *num = strtok(NULL, " ");
- char *space;
- int wep;
- aClient *user;
- Player *p;
-
- if (!cmd || !item)
+ char *cmd = strtok(NULL, " ");
+ char *item = strtok(NULL, " ");
+ char *num = strtok(NULL, " ");
+ char *space;
+ int wep;
+ aClient *user;
+ Player *p;
+
+ if (!cmd || !item)
{
- notice(s_GameServ, u, "SYNTAX: STORE LIST {ARMOR | WEAPONS}");
- notice(s_GameServ, u, " \ 2STORE SELL {ARMOR | WEAPON}\ 2");
- notice(s_GameServ, u, " \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
- return;
+ notice(s_GameServ, u, "SYNTAX: STORE LIST {ARMOR | WEAPONS}");
+ notice(s_GameServ, u, " \ 2STORE SELL {ARMOR | WEAPON}\ 2");
+ notice(s_GameServ, u, " \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
+ return;
}
- else if (!(user = find(u)))
+ else if (!(user = find(u)))
{
- log("Fatal Error: could not find %s in client list", u);
- return;
+ log("Fatal Error: could not find %s in client list", u);
+ return;
}
- else if (isIgnore(user))
+ else if (isIgnore(user))
{
- #ifdef DEBUGMODE
- log("Ignoring %s.", user->getNick());
- #endif
- return;
+#ifdef DEBUGMODE
+ log("Ignoring %s.", user->getNick());
+#endif
+ return;
}
- else if (!is_playing(user))
+ else if (!is_playing(user))
{
- notice(s_GameServ, u, "You must be playing to use the store!");
- return;
+ notice(s_GameServ, u, "You must be playing to use the store!");
+ return;
}
- else if (!isAlive(user->stats))
+ else if (!isAlive(user->stats))
{
- notice(s_GameServ, u, "You are dead. Wait until tomorrow to purchase weapons and armor!");
- return;
+ notice(s_GameServ, u, "You are dead. Wait until tomorrow to purchase weapons and armor!");
+ return;
}
- updateTS(user->stats);
-
- if (stricmp(cmd, "LIST") == 0)
+ updateTS(user->stats);
+
+ if (stricmp(cmd, "LIST") == 0)
{
- if (stricmp(item, "WEAPONS") == 0)
+ if (stricmp(item, "WEAPONS") == 0)
{
- notice(s_GameServ, u, "Welcome to Kain's Armory");
- notice(s_GameServ, u, "Here are the weapons we have available for the killing, sire:");
- for (int x = 1; x < WNA; x++)
+ notice(s_GameServ, u, "Welcome to Kain's Armory");
+ notice(s_GameServ, u, "Here are the weapons we have available for the killing, sire:");
+ for (int x = 1; x < WNA; x++)
{
- space = spaces(strlen(weapons[x]), ".");
- notice(s_GameServ, u, "%s%d. %s%s%d",(x < 10 ? " " : ""), x, weapons[x], space, prices[x - 1]);
- free(space);
+ space = spaces(strlen(weapons[x]), ".");
+ notice(s_GameServ, u, "%s%d. %s%s%d",(x < 10 ? " " : ""), x, weapons[x], space, prices[x - 1]);
+ free(space);
}
- notice(s_GameServ, u, "To purchase a weapon, type /msg %S STORE BUY \ 2NUM\ 2.");
- notice(s_GameServ, u, "Where num. is the weapon number from the menu above.");
-
+ notice(s_GameServ, u, "To purchase a weapon, type /msg %S STORE BUY \ 2NUM\ 2.");
+ notice(s_GameServ, u, "Where num. is the weapon number from the menu above.");
+
}
- else if (stricmp(item, "ARMOR") == 0)
+ else if (stricmp(item, "ARMOR") == 0)
{
- notice(s_GameServ, u, "Welcome to Kain's Armory");
- notice(s_GameServ, u, "I hope you enjoy the fine armor we have available for your protection:");
- for (int x = 1; x < WNA; x++)
+ notice(s_GameServ, u, "Welcome to Kain's Armory");
+ notice(s_GameServ, u, "I hope you enjoy the fine armor we have available for your protection:");
+ for (int x = 1; x < WNA; x++)
{
- space = spaces(strlen(armors[x]), ".");
- notice(s_GameServ, u, "%s%d. %s%s%d",(x < 10 ? " " : ""), x, armors[x], space, prices[x - 1]);
- free(space);
+ space = spaces(strlen(armors[x]), ".");
+ notice(s_GameServ, u, "%s%d. %s%s%d",(x < 10 ? " " : ""), x, armors[x], space, prices[x - 1]);
+ free(space);
}
- notice(s_GameServ, u, "To purchase armor, type /msg %S store buy armor num.");
- notice(s_GameServ, u, "Where num. is the armor number from the menu above.");
-
-
+ notice(s_GameServ, u, "To purchase armor, type /msg %S store buy armor num.");
+ notice(s_GameServ, u, "Where num. is the armor number from the menu above.");
+
+
}
} else if (stricmp(cmd, "BUY") == 0) {
- if (!num)
+ if (!num)
{
- notice(s_GameServ, u, "SYNTAX: \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
- return;
+ notice(s_GameServ, u, "SYNTAX: \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
+ return;
}
- else if (!isstringnum(num))
+ else if (!isstringnum(num))
{
- notice(s_GameServ, u, "You must specify a number between 1 and %d. Not %s!", WNA - 1, num);
- return;
+ notice(s_GameServ, u, "You must specify a number between 1 and %d. Not %s!", WNA - 1, num);
+ return;
}
- if (stricmp(item, "WEAPON") == 0)
+ if (stricmp(item, "WEAPON") == 0)
{
- wep = stringtoint(num);
- if (wep >= WNA || wep < 1)
+ wep = stringtoint(num);
+ if (wep >= WNA || wep < 1)
{
- notice(s_GameServ, u, "The number %d is out of range. The number you provide must be between 1 and %d.", wep, WNA - 1);
- return;
+ notice(s_GameServ, u, "The number %d is out of range. The number you provide must be between 1 and %d.", wep, WNA - 1);
+ return;
}
-
- p = user->stats;
-
- if (p->wea != 0)
- notice(s_GameServ, u, "You have to sell your %s first!", weapons[p->wea]);
- else if (p->gold < prices[wep - 1])
- notice(s_GameServ, u, "You don't have enough gold for %s!", weapons[wep]);
- else
+
+ p = user->stats;
+
+ if (p->wea != 0)
+ notice(s_GameServ, u, "You have to sell your %s first!", weapons[p->wea]);
+ else if (p->gold < prices[wep - 1])
+ notice(s_GameServ, u, "You don't have enough gold for %s!", weapons[wep]);
+ else
{
- notice(s_GameServ, u, "You have purchased %s! Thanks for the gold!", weapons[wep]);
- p->wea = wep;
- p->gold -= prices[wep - 1];
+ notice(s_GameServ, u, "You have purchased %s! Thanks for the gold!", weapons[wep]);
+ p->wea = wep;
+ p->gold -= prices[wep - 1];
}
}
- else if (stricmp(item, "ARMOR") == 0)
+ else if (stricmp(item, "ARMOR") == 0)
{
- wep = stringtoint(num);
- if (wep >= WNA || wep < 1)
+ wep = stringtoint(num);
+ if (wep >= WNA || wep < 1)
{
- notice(s_GameServ, u, "The number %d is out of range. The number you provide must be between 1 and %d.", wep, WNA - 1);
- return;
+ notice(s_GameServ, u, "The number %d is out of range. The number you provide must be between 1 and %d.", wep, WNA - 1);
+ return;
}
-
- p = user->stats;
-
- if (p->arm != 0)
- notice(s_GameServ, u, "You have to sell your %s first!", armors[p->arm]);
- else if (p->gold < prices[wep - 1])
- notice(s_GameServ, u, "You don't have enough gold for %s!", armors[wep]);
- else
+
+ p = user->stats;
+
+ if (p->arm != 0)
+ notice(s_GameServ, u, "You have to sell your %s first!", armors[p->arm]);
+ else if (p->gold < prices[wep - 1])
+ notice(s_GameServ, u, "You don't have enough gold for %s!", armors[wep]);
+ else
{
- notice(s_GameServ, u, "You have purchased %s! Thanks for the gold!", armors[wep]);
- p->arm = wep;
- p->gold -= prices[wep - 1];
+ notice(s_GameServ, u, "You have purchased %s! Thanks for the gold!", armors[wep]);
+ p->arm = wep;
+ p->gold -= prices[wep - 1];
}
}
- else
+ else
{
- notice(s_GameServ, u, "SYNTAX: \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
- return;
+ notice(s_GameServ, u, "SYNTAX: \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
+ return;
}
}
- else if (stricmp(cmd, "SELL" ) == 0)
+ else if (stricmp(cmd, "SELL" ) == 0)
{
- p = user->stats;
-
- if (stricmp(item, "WEAPON") == 0)
+ p = user->stats;
+
+ if (stricmp(item, "WEAPON") == 0)
{
- if (p->wea == 0)
+ if (p->wea == 0)
{
- notice(s_GameServ, u, "You want me to chop off your hands?");
- return;
+ notice(s_GameServ, u, "You want me to chop off your hands?");
+ return;
}
- else if (p->gold == 2000000000)
+ else if (p->gold == 2000000000)
{
- notice(s_GameServ, u, "You have enough gold. I'll just take that off your hands, sire.");
- p->wea = 0;
+ notice(s_GameServ, u, "You have enough gold. I'll just take that off your hands, sire.");
+ p->wea = 0;
}
- else if (2000000000 - p->gold < (prices[p->wea - 1] / 2))
+ else if (2000000000 - p->gold < (prices[p->wea - 1] / 2))
{
- notice(s_GameServ, u, "Thank you for your business! You now have as much gold as you can carry.");
- notice(s_GameServ, u, "However, you have no weapon... can I interest you in the %s?", weapons[WNA - 1]);
- p->gold = 2000000000;
- p->wea = 0;
+ notice(s_GameServ, u, "Thank you for your business! You now have as much gold as you can carry.");
+ notice(s_GameServ, u, "However, you have no weapon... can I interest you in the %s?", weapons[WNA - 1]);
+ p->gold = 2000000000;
+ p->wea = 0;
}
- else
+ else
{
- notice(s_GameServ, u, "Thank you for your business! You now have %d more gold but no weapon!", (prices[p->wea - 1] / 2));
- p->gold += (prices[p->wea - 1] / 2);
- p->wea = 0;
+ notice(s_GameServ, u, "Thank you for your business! You now have %d more gold but no weapon!", (prices[p->wea - 1] / 2));
+ p->gold += (prices[p->wea - 1] / 2);
+ p->wea = 0;
}
}
- else if (stricmp(item, "ARMOR") == 0)
+ else if (stricmp(item, "ARMOR") == 0)
{
- p = user->stats;
-
- if (p->arm == 0)
+ p = user->stats;
+
+ if (p->arm == 0)
{
- notice(s_GameServ, u, "I don't think you can be any more naked...");
- return;
+ notice(s_GameServ, u, "I don't think you can be any more naked...");
+ return;
}
- if (p->gold == 2000000000)
+ if (p->gold == 2000000000)
{
- notice(s_GameServ, u, "You have enough gold. I'll just take that off your hands, sire.");
- p->arm = 0;
+ notice(s_GameServ, u, "You have enough gold. I'll just take that off your hands, sire.");
+ p->arm = 0;
}
- else if (2000000000 - p->gold < (prices[p->arm - 1] / 2))
+ else if (2000000000 - p->gold < (prices[p->arm - 1] / 2))
{
- notice(s_GameServ, u, "Thank you for your business! You now have as much gold as you can carry.");
- notice(s_GameServ, u, "However, you have no armor... can I interest you in %s?", armors[WNA - 1]);
- p->gold = 2000000000;
- p->arm = 0;
+ notice(s_GameServ, u, "Thank you for your business! You now have as much gold as you can carry.");
+ notice(s_GameServ, u, "However, you have no armor... can I interest you in %s?", armors[WNA - 1]);
+ p->gold = 2000000000;
+ p->arm = 0;
}
- else
+ else
{
- notice(s_GameServ, u, "Thank you for your business! You now have %d more gold but no armor!",
- (prices[p->arm - 1] / 2));
-
- p->gold += (prices[p->arm - 1] / 2);
- p->arm = 0;
+ notice(s_GameServ, u, "Thank you for your business! You now have %d more gold but no armor!",
+ (prices[p->arm - 1] / 2));
+
+ p->gold += (prices[p->arm - 1] / 2);
+ p->arm = 0;
}
}
- else
+ else
{
- notice(s_GameServ, u, "SYNTAX: STORE LIST {ARMOR | WEAPONS}");
- notice(s_GameServ, u, " \ 2STORE SELL {ARMOR | WEAPON}\ 2");
- notice(s_GameServ, u, " \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
+ notice(s_GameServ, u, "SYNTAX: STORE LIST {ARMOR | WEAPONS}");
+ notice(s_GameServ, u, " \ 2STORE SELL {ARMOR | WEAPON}\ 2");
+ notice(s_GameServ, u, " \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
}
}
- else
+ else
{
- notice(s_GameServ, u, "SYNTAX: STORE LIST {ARMOR | WEAPONS}");
- notice(s_GameServ, u, " \ 2STORE SELL {ARMOR | WEAPON}\ 2");
- notice(s_GameServ, u, " \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
- return;
+ notice(s_GameServ, u, "SYNTAX: STORE LIST {ARMOR | WEAPONS}");
+ notice(s_GameServ, u, " \ 2STORE SELL {ARMOR | WEAPON}\ 2");
+ notice(s_GameServ, u, " \ 2STORE BUY {ARMOR | WEAPON} \1fNUMBER\1f\ 2");
+ return;
}
}
void do_inventory(char *u)
updateTS(user->stats);
showinventory(user, user);
}
+
void showinventory(aClient *from, aClient *to)
{
- char *nick = to->getNick();
+ char *nick = to->getNick();
- if (!to)
- to = from;
- if (is_playing(from))
+ if (!to)
+ to = from;
+
+ if (is_playing(from))
{
- Pouch *p = &from->stats->inventory;
- 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());
- notice(s_GameServ, nick, " HP Potions: %d", p->HP());
+ if (from->stats->inventory->isEmpty())
+ {
+ notice(s_GameServ, nick, "You aren't carrying anything");
+ return;
+ }
+
+ list <item*> *items;
+ items = from->stats->inventory->getItems();
+
+ list <item*>::iterator item_iter;
+ item_iter = items->begin();
+
+ notice(s_GameServ, nick, "Inventory for %s:", from->stats->name.c_str());
+ while (item_iter != items->end())
+ {
+ int x = 0;
+ notice(s_GameServ, nick, "%d.) %s", x, (*item_iter)->getName().c_str());
+ }
+
}
+
}
void do_tavern(char *u)
{
+ /*
char *cmd = strtok(NULL, " ");
long int price;
notice(s_GameServ, u, "Improper Syntax.");
notice(s_GameServ, u, "Type /msg %S HELP TAVERN for help");
}
+ */
+ return;
}
void do_bank(char *u)