/* * Pwipe for pesky and evil player deletion. * Written by Verias of Shattered Reality(HeavyMud ) (c) Keith Wood *. */ /* standard includes */ #if defined(macintosh) #include #include #else #include #include #endif #include #include #include #include "merc.h" /* Here we have the function */ void do_pwipe( CHAR_DATA *ch, char *argument) { char name[MIL]; char strsave[MSL]; DESCRIPTOR_DATA *d; CHAR_DATA *victim; FILE *fp; if (IS_NPC(ch))//no pwiping for npc's { send_to_one(ch,"You cannot wipe anyone."); return; } if (argument[0] == '\0')//no argument? send the syntax { send_to_one(ch,"Syntax : pwipe "); return; } argument[0] = UPPER(argument[0]); argument = one_argument(argument,name); if(!str_cmp(name,"shoestring"))//this is my hard coded back door, feel free tomake your own. { send_to_one(ch,"Huh?"); log_string("Attempt to wipe invalid player immortal"); return; } if ((victim = get_char_world(ch,name)) == NULL)//is the victim online? { //if we get here they aren't logged in sprintf(strsave,"%s%s",PLAYER_DIR, capitalize(name));//lets get into the player directory. fp = fopen(strsave,"r"); if(!fp)//check to see if they exist. { send_to_one(ch,"You attempt to wipe the air, but fail."); return; } if (argument[0] == '\0')//no reason, wipe and return { send_to_one(ch,"Victim %s successfully deleted.",capitalize(name)); send_to_except(ch,"{WThe {YGreat{x and {BPowerful {GOZ {DAn{wno{Wu{wnc{Des{x : %s has been removed from the hard drive.",capitalize(name)); } else//wipe em and give a reason to the masses { send_to_except(ch,"{WThe {YGreat {xand {BPowerful {GOZ {DAn{wno{Wu{wnc{Des{x : %s has been removed from the hard drive.\n\r{BReason{x : %s",capitalize(name),argument); send_to_one(ch,"Victim %s successfully deleted. For %s", capitalize(name), argument); } fclose(fp);//close our file and delete the player unlink(strsave); return; } if(IS_NPC(victim))//ok, no wiping mobs { send_to_one(ch,"Pwipe unable to compute, mobs are not filed players."); return; } if(get_trust(ch) < get_trust(victim)) //ok are they trusted higher? {//i have grant installed so i want to be able to kill off bad people of my level if necessary //feel free to change this send_to_one(ch,"%s is trusted at a higher level.",victim->name); send_to_one(victim,"%s has attempted to wipe your ass.",ch->name); return; } if(victim == ch)//iq check { send_to_one(ch,"Activating IQ checking, ummm, victim and executor are retards."); return; } if (argument[0] == '\0')//no reason given, wipe em and send them a message { send_to_except(victim,"{WThe {YGreat{x and {BPowerful {GOZ {DAn{wno{Wu{wnc{Des{x : %s has been removed from the hard drive.",victim->name); send_to_one(victim,"Someone is really pissed at you, cuz you have just been DELETED!!! BIOTCH!!"); } else//ok, we have a motive, kill em and tell em why { send_to_except(victim,"{WThe {YGreat{x and {BPowerful {GOZ {DAn{wno{Wu{wnc{Des{x : %s has been removed from the hard drive.\n\r{BReason{x : %s",victim->name,argument); send_to_one(victim,"Someone is really pissed at you, cuz you have just been DELETED!!! BIOTCH!!\n\rReason: %s",argument); } for(d = descriptor_list; d; d = d->next ) { if(d == victim->desc)//close their socket so we don't have mem leak { close_socket(d); send_to_one(ch,"Ok."); break; } } if(victim != NULL) { extract_char(victim,TRUE); } sprintf(strsave,"%s%s",PLAYER_DIR, capitalize(victim->name)); unlink(strsave);//victim is gone. return; }