/*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Dystopia Mud improvements copyright (C) 2000, 2001 by Brian Graversen * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ /*************************************************************************** * _/ _/ * * _/_/_/ _/_/ _/_/_/ _/ _/_/ _/ _/ _/_/_/ * * _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ * * _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ * * _/ _/ _/ _/_/_/ _/ _/_/ _/_/_/ _/_/_/ * *************************************************************************** * Mindcloud Copyright 2001-2003 by Jeff Boschee (Zarius), * * Additional credits are in the help file CODECREDITS * * All Rights Reserved. * ***************************************************************************/ #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <time.h> #include "merc.h" #include "interp.h" void do_balance(CHAR_DATA * ch, char *argument) { char buf[MAX_STRING_LENGTH]; xprintf(buf, "#wYou have #Y%d#w #0bones #win between your #pcheeks#n.\n\r", ch->bones); send_to_char(buf, ch); xprintf(buf, "#wYou have #Y%d#w #0bones #win the bank.#n\n\r", ch->pcdata->bank); send_to_char(buf, ch); return; } void do_membership(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; int cost = 0; argument = one_argument(argument, arg); if (IS_NPC(ch)) return; if (str_cmp(arg, "upgrade")) { if (ch->pcdata->membership <= 0) { send_to_char("You have a basic membership.\n\r", ch); cost = 100000; } else if (ch->pcdata->membership == 1) { send_to_char("You have a bronze membership.\n\r", ch); cost = 250000; } else if (ch->pcdata->membership == 2) { send_to_char("You have a silver membership.\n\r", ch); cost = 500000; } else if (ch->pcdata->membership == 3) { send_to_char("You have a gold membership.\n\r", ch); cost = 650000; } else if (ch->pcdata->membership == 4) { send_to_char("You have a platinum membership.\n\r", ch); cost = 750000; } else { send_to_char ("Your membership is bugged, report to an imm.\n\r", ch); return; } if (cost > 0) { xprintf(buf, "It will cost you %d bones to upgrade your membership.\n\r", cost); send_to_char(buf, ch); } return; } else { if (!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { xprintf(buf, "You can't only do that at a bank.\n\r"); send_to_char(buf, ch); return; } if (ch->pcdata->membership == 4) { send_to_char("You're already platinum baby.\n\r", ch); return; } if (ch->pcdata->membership == 0) cost = 100000; else if (ch->pcdata->membership == 1) cost = 250000; else if (ch->pcdata->membership == 2) cost = 500000; else if (ch->pcdata->membership == 3) cost = 650000; else cost = 750000; if (cost > ch->bones + ch->pcdata->bank) { send_to_char("You don't have enough bones to upgrade your membership.\n\r", ch); return; } ch->pcdata->membership += 1; send_to_char("Your membership has been upgraded!\n\r", ch); cost -= ch->bones; if (cost == 0) return; if (cost < 0) { ch->bones = (cost * -1); return; } ch->pcdata->bank -= cost; return; } return; } void do_deposit(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; int amnt, allowed; if (IS_NPC(ch)) { return; } if (!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { xprintf(buf, "But you are not in a bank.\n\r"); send_to_char(buf, ch); return; } one_argument(argument, arg); if (arg[0] == '\0') { xprintf(buf, "How many bones do you wish to deposit?\n\r"); send_to_char(buf, ch); return; } if (!str_cmp(arg, "all")) { amnt = ch->bones; } else { amnt = atoi(arg); } if (amnt < 1) { send_to_char("Put a REAL amount in\n\r", ch); return; } if (amnt > ch->bones) { xprintf(buf, "#R%s#w, you do not have #Y%d#w bones.\n\r", ch->name, amnt); send_to_char(buf, ch); return; } switch (ch->pcdata->membership) { case 1: allowed = 250000; break; case 2: allowed = 500000; break; case 3: allowed = 1000000; break; case 4: allowed = 10000000; break; default: allowed = 150000; break; } if (ch->pcdata->bank >= allowed) { xprintf(buf, "Your bank account is full at %d, place them back between your cheeks.\n\r", allowed); send_to_char(buf, ch); return; } if ((ch->pcdata->bank + amnt) > allowed) { amnt = allowed - ch->pcdata->bank; xprintf(buf, "You can only hold %d bones in your account, so you only deposit %d.\n\r", allowed, amnt); send_to_char(buf, ch); //return; } ch->pcdata->bank += amnt; ch->bones -= amnt; xprintf(buf, "#R%s#w, your account now contains: #Y%d#w bones, after depositing #Y%d#w bones.\n\r", ch->name, ch->pcdata->bank, amnt); send_to_char(buf, ch); return; } void do_withdraw(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; int amnt, allowed; if (IS_NPC(ch)) { return; } if (!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { xprintf(buf, "But you are not in a bank.\n\r"); send_to_char(buf, ch); return; } argument = one_argument(argument, arg); if (arg[0] == '\0') { xprintf(buf, "How many bones do you wish to withdraw?\n\r"); send_to_char(buf, ch); return; } if (!str_cmp(arg, "all")) { amnt = ch->pcdata->bank; } else { amnt = atoi(arg); } switch (ch->pcdata->membership) { case 1: allowed = 250000; break; case 2: allowed = 500000; break; case 3: allowed = 1000000; break; case 4: allowed = 5000000; break; default: allowed = 150000; break; } if (amnt < 1 || amnt > allowed) { send_to_char("Nice try, Put a REAL amount in\n\r", ch); return; } if (amnt >= (ch->pcdata->bank + 1)) { xprintf(buf, "#R%s#w, you do not have #Y%d#w bones in the bank.\n\r", ch->name, amnt); send_to_char(buf, ch); return; } ch->bones += amnt; ch->pcdata->bank -= amnt; xprintf(buf, "#R%s#w, your account now contains: #Y%d#w bones, after withdrawing #Y%d#w bones.\n\r", ch->name, ch->pcdata->bank, amnt); send_to_char(buf, ch); return; }