/* Riverwinds new implementations for Vego mud. */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include "structs.h"
#include "mob.h"
#include "obj.h"
#include "utils.h"
#include "interp.h"
#include "handler.h"
#include "db.h"
#include "spells.h"
#include "limits.h"
extern struct room_data *world;
extern struct char_data *character_list;
extern struct obj_data *object_list;
extern char *where[];
void show_obj_to_char(struct obj_data *object, struct char_data *ch, int mode);
void list_obj_to_char(struct obj_data *list, struct char_data *ch, int mode,
bool show);
struct obj_data *get_object_in_equip_vis(struct char_data *ch,
char *arg, struct obj_data **equipment, int *j);
/* Setin function */
/*
void do_setin(struct char_data *ch, char *argument, int cmd)
{
char buf[100];
if(!*argument)
{
send_to_char("What do you want to set setin to ?\r\n", ch);
return;
}
ch->player.setin = str_dup(argument);
sprintf(buf, "Setin set to : %s\r\n", GET_SETIN(ch));
send_to_char(buf, ch);
}
*/
/* Setout function */
/*
void do_setout(struct char_data *ch, char *argument, int cmd)
{
char buf[100];
if(!*argument)
{
send_to_char("What do you want to set setout to ?\r\n", ch);
return;
}
ch->player.setout = str_dup(argument);
sprintf(buf, "Setout set to : %s\r\n", GET_SETOUT(ch));
send_to_char(buf, ch);
}
*/
/* Review Function */
/*
void do_review(struct char_data *ch, char *argument, int cmd)
{
char buf[100];
send_to_char("Here is what you have setin and setout set to.\r\n", ch);
sprintf(buf, "Setin : %s\r\n", GET_SETIN(ch));
send_to_char(buf, ch);
sprintf(buf, "Setout : %s\r\n", GET_SETOUT(ch));
send_to_char(buf, ch);
}
*/
/* Jail Function */
void do_jail(struct char_data *ch, char *argument, int cmd)
{
struct char_data *vict;
struct obj_data *needthis;
char buf[100];
int location;
if (IS_NPC(ch))
return;
one_argument(argument, buf);
if (!*buf)
{
send_to_char("Who do you want to send to jail ?\r\n", ch);
return;
}
if ((location = real_room(9499)) == -1 )
{
send_to_char("Hmm that room is not around...\r\n",ch);
return;
}
else if(!generic_find(argument, FIND_CHAR_WORLD,ch,&vict,&needthis))
{
send_to_char("That player could not be found in the world.\r\n",ch);
return;
}
else if(IS_NPC(vict))
{
send_to_char("Sorry you can't do that to a mob.\r\n",ch);
return;
}
else if(GET_LEVEL(vict) >= GET_LEVEL(ch))
{
send_to_char("Thats not a good idea!\r\n",ch);
return;
}
else
{
sprintf(buf, "Ok you sent %s to jail.\r\n", GET_NAME(vict));
send_to_char(buf, ch);
send_to_char("You are being sent to jail!\r\n",vict);
char_from_room(vict);
char_to_room(vict,location);
do_look(vict, "", 0);
return;
}
}
/* Demote Function */
void do_demote(struct char_data *ch, char *argument, int cmd)
{
struct char_data *vict;
struct obj_data *needthis;
char buf[100];
if (IS_NPC(ch))
return;
one_argument(argument, buf);
if (!*buf)
{
send_to_char("Who do you want to demote ?\r\n", ch);
return;
}
if(!generic_find(argument, FIND_CHAR_WORLD,ch,&vict,&needthis))
{
send_to_char("That player can not be found in the world.\r\n",ch);
return;
}
else if(IS_NPC(vict))
{
send_to_char("You can't demote a mob!\r\n",ch);
return;
}
else if(GET_LEVEL(vict) >= GET_LEVEL(ch))
{
send_to_char("Thats not a good idea!\r\n",ch);
return;
}
else
{
sprintf(buf, "Ok you demoted %s.\r\n",GET_NAME(vict));
send_to_char(buf, ch);
send_to_char("You have been demoted!\r\n",vict);
vict->tmpabilities.str = 1;
vict->abilities.str = 1;
vict->tmpabilities.intel = 1;
vict->abilities.intel = 1;
vict->tmpabilities.wis = 1;
vict->abilities.wis = 1;
vict->tmpabilities.dex = 1;
vict->abilities.dex = 1;
vict->tmpabilities.con = 1;
vict->abilities.con = 1;
vict->points.gold = 1;
vict->points.exp = 1;
vict->points.max_mana = 25;
vict->points.max_hit = 25;
vict->points.max_move = 25;
vict->specials.practices = 0;
vict->specials.alignment = 0;
vict->player.level = 2;
save_char_obj(ch);
send_to_char("Auto-saving...\r\n", vict);
return;
}
}
/* pcinv function */
void do_pcinv(struct char_data *ch, char *argument, int cmd)
{
struct char_data *vict;
struct obj_data *needthis;
char buf[100];
if(IS_NPC(ch))
return;
one_argument(argument, buf);
if (!*buf)
{
send_to_char("Whos' inventory do you want to check ?\r\n",ch);
return;
}
else if(!generic_find(argument, FIND_CHAR_WORLD,ch,&vict,&needthis))
{
send_to_char("That player can not be found.\r\n",ch);
return;
}
else if(IS_NPC(vict))
{
send_to_char("You don't need to use this command on a mob.\r\n",ch);
return;
}
else if(GET_LEVEL(vict) >= GET_LEVEL(ch))
{
send_to_char("Thats not a good idea!\r\n",ch);
return;
}
else
{
sprintf(buf,"%s is carying :\r\n",GET_NAME(vict));
send_to_char(buf,ch);
list_obj_to_char(vict->carrying,ch,1,TRUE);
return;
}
}
/* pceq function */
void do_pceq(struct char_data *ch, char *argument, int cmd)
{
int j;
bool found;
struct char_data *vict;
struct obj_data *needthis;
char buf[100];
if(IS_NPC(ch))
return;
one_argument(argument, buf);
if (!*buf)
{
send_to_char("Whos' eq do you want to peek at ?\r\n",ch);
return;
}
else if(!generic_find(argument, FIND_CHAR_WORLD,ch,&vict,&needthis))
{
send_to_char("That player can not be found.\r\n",ch);
return;
}
else if(IS_NPC(vict))
{
send_to_char("You don't need to use this command on a mob!\r\n",ch);
return;
}
else if(GET_LEVEL(vict) >= GET_LEVEL(ch))
{
send_to_char("Thats not a good idea!\r\n",ch);
return;
}
else
{
sprintf(buf,"This is %s's equipment :\r\n",GET_NAME(vict));
send_to_char(buf,ch);
found = FALSE;
for (j=0; j< MAX_WEAR; j++) {
if (vict->equipment[j]) {
if (CAN_SEE_OBJ(ch,vict->equipment[j])) {
send_to_char(where[j],ch);
show_obj_to_char(vict->equipment[j],ch,1);
found = TRUE;
} else {
send_to_char(where[j],ch);
send_to_char("Something.\r\n",ch);
found = TRUE;
return;
}
}
}
}
}
/* sget function */
void do_sget(struct char_data *ch, char *argument, int cmd)
{
char *arg1;
char *arg2;
struct char_data *vict;
struct obj_data *needthis;
char buf[100];
struct obj_data *obj_object;
int j;
if(IS_NPC(ch))
return;
argument_interpreter(argument, arg1, arg2);
if (!*arg1)
{
send_to_char("What item do you want to get ?\r\n",ch);
return;
}
if(!generic_find(argument, FIND_CHAR_WORLD,ch,&vict,&needthis))
{
send_to_char("That player can not be found in the world.\r\n",ch);
return;
}
if (!*arg2)
{
send_to_char("Who do you want to get this item from ?\r\n",ch);
return;
}
else if(IS_NPC(vict))
{
send_to_char("You don't need to use this on a mob!\r\n",ch);
return;
}
else if(GET_LEVEL(vict) >= GET_LEVEL(ch))
{
send_to_char("Thats not a good idea!\r\n",ch);
return;
}
else
sprintf(buf, "You summon [%s] from %s\r\n",arg1,arg2);
send_to_char(buf, ch);
obj_object = get_object_in_equip_vis(
ch,arg1, vict->equipment, &j);
if(!obj_object)
{
send_to_char("Hmm you can't seen to find that object ?\r\n",ch);
return;
}
else
{
obj_to_char(unequip_char(vict,j),ch);
return;
}
}