#include <stdio.h> #include <string.h> #include <time.h> #include <unistd.h> #include <ctype.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <stdlib.h> #include <limits.h> #include <malloc.h> #include <fcntl.h> #include <stdarg.h> #include "merc.h" #include "interp.h" void do_convert ( CHAR_DATA *ch, char *argument) // Recoded by NebuSoft { char arg1[MAX_INPUT_LENGTH]; argument = one_argument( argument, arg1); if (IS_NPC(ch)) return; if (arg1[0] == '\0' || (str_cmp(arg1,"exp") && str_cmp(arg1,"bones"))) { send_to_char("convert <bones|exp>\n\r",ch); return; } if (!str_cmp(arg1,"bones")) { if ( ch->bones < 2500 ) { send_to_char("You need at least 2500 bones to convert.\n\r",ch); return; } if ( ch->exp >= 1000000000 ) { send_to_char("You need to spend some of your XP first.\n\r",ch); return; } ch->exp += 1000000000; ch->bones -= 2500; send_to_char("You convert 2500 bones into 1 billion XP.\n\r",ch); } else if (!str_cmp(arg1,"exp")) { if ( ch->exp < 1000000000 ) { send_to_char("You need at least 1,000,000,000 exp to convert.\n\r",ch); return; } ch->exp -= 1000000000; ch->bones += 2500; send_to_char("You convert 1 billion XP into 2500 bones\n\r",ch); } return; } void do_prof(CHAR_DATA * ch, char *argument) { char arg1[MAX_STRING_LENGTH]; char buf[MSL]; argument = one_argument( argument, arg1 ); if (IS_NPC(ch))return; if ( arg1[0] == '\0' ) { send_to_char("#0 Slash, Slice, Pound, Crush, Grep, Bite, Unarmed, Pierce, Suck, Blast, Claw, Whip, Stab..\n\r",ch); return; } if (ch->pcmaxwpnprof >= 3) { send_to_char(" You may only have 3 weapon proficiencies \n\r",ch); return; } if (!str_cmp(arg1,"slash")) { if (IS_SET(ch->pcwpnprof, WPNPROF_SLASH)) { send_to_char("#0 You already have Slash proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_SLASH); send_to_char("#0 You now have Slash proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"slice")) { if (IS_SET(ch->pcwpnprof, WPNPROF_SLICE)) { send_to_char("#0 You already have Slice proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_SLICE); send_to_char("#0 You now have Slice proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"pound")) { if (IS_SET(ch->pcwpnprof, WPNPROF_POUND)) { send_to_char("#0 You already have Pound proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_POUND); send_to_char("#0 You now have Pound proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"crush")) { if (IS_SET(ch->pcwpnprof, WPNPROF_CRUSH)) { send_to_char("#0 You already have Crush proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_CRUSH); send_to_char("#0 You now have Crush proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"grep")) { if (IS_SET(ch->pcwpnprof, WPNPROF_GREP)) { send_to_char("#0 You already have Grep proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_GREP); send_to_char("#0 You now have Grep proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"bite")) { if (IS_SET(ch->pcwpnprof, WPNPROF_BITE)) { send_to_char("#0 You already have Bite proficiency.\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_BITE); send_to_char("#0 You now have Bite proficiency.\n\r",ch); return; } } else if (!str_cmp(arg1,"unarmed")) { if (IS_SET(ch->pcwpnprof, WPNPROF_UNARM)) { send_to_char("#0 You already have Hand-To-Hand proficiency.\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_UNARM); send_to_char("#0 You now have Unarmed proficiency.\n\r",ch); return; } } else if (!str_cmp(arg1,"pierce")) { if (IS_SET(ch->pcwpnprof, WPNPROF_PIERCE)) { send_to_char("#0 You already have Dagger Proficiency.\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_PIERCE); send_to_char("#0 You now have Pierce proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"suck")) { if (IS_SET(ch->pcwpnprof, WPNPROF_SUCK)) { send_to_char("#0 You already have Suck proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_SUCK); send_to_char("#0 You now have Suck proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"blast")) { if (IS_SET(ch->pcwpnprof, WPNPROF_BLAST)) { send_to_char("#0 You already have Blast proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_BLAST); send_to_char("#0 You now have Blast proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"claw")) { if (IS_SET(ch->pcwpnprof, WPNPROF_CLAW)) { send_to_char("#0 You already have Claw proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_CLAW); send_to_char("#0 You now have Claw proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"whip")) { if (IS_SET(ch->pcwpnprof, WPNPROF_WHIP)) { send_to_char("#0 You already have Whip proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_WHIP); send_to_char("#0 You now have Whip proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"stab")) { if (IS_SET(ch->pcwpnprof, WPNPROF_STAB)) { send_to_char("#0 You already have Stab proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_STAB); send_to_char("#0 You now have Stab proficiency\n\r",ch); return; } } return; } void do_level(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char skill[20]; char buf[MAX_STRING_LENGTH]; char stance [20]; float chgen = 0; float chgenexp = 0; int percent = 0; int nextgen = 0; int expneeded = 0; one_argument( argument, arg ); ROOM_INDEX_DATA *room; one_argument(argument, arg); if (IS_NPC(ch)) return; stc("#0X#r==============================#0[#rW#Reapon #rL#Revels#0]#r==============================#0X#n\n\r",ch); sprintf(skill, "#r|#0 Saber #7: %-4d", ch->wpn[1]); // slice send_to_char(skill, ch); sprintf(skill, "#0 Shiv #7: %-4d", ch->wpn[2]); // stab send_to_char(skill, ch); sprintf(skill, "#0 One-Handed Longsword #7: %-4d", ch->wpn[3]); // slash send_to_char(skill, ch); sprintf(skill, "#0Whip #7: %-4d #r|#n\n\r", ch->wpn[4]); // whip send_to_char(skill, ch); sprintf(skill, "#r|#0 Claw #7: %-4d", ch->wpn[5]); // claw send_to_char(skill, ch); sprintf(skill, "#0 Blast #7: %-4d", ch->wpn[6]); // blast send_to_char(skill, ch); sprintf(skill, "#0 WarHammer #7: %-4d", ch->wpn[7]); // pound send_to_char(skill, ch); sprintf(skill, "#0 Mace #7: %-4d #r|#n\n\r", ch->wpn[8]); // crush send_to_char(skill, ch); sprintf(skill, "#r|#0 Grep #7: %-4d", ch->wpn[9]); // grep send_to_char(skill, ch); sprintf(skill, "#0 Fang #7: %-4d", ch->wpn[10]); // bite send_to_char(skill, ch); sprintf(skill, "#0 Dagger #7: %-4d", ch->wpn[11]); // pierce send_to_char(skill, ch); sprintf(skill, "#0 Vampiric #7:%-4d#r|#n\n\r", ch->wpn[12]); // suck send_to_char(skill, ch); sprintf(skill, "#r|#0 Hand-to-Hand #7: %-4d #r|#n\n\r", ch->wpn[0]); send_to_char(skill, ch); stc("#0X#r==============================#0[#rS#Rtance #rL#Revels#0]#r==============================#0X\n\r",ch); sprintf(skill,"#r|#0 Viper #7%-4d #0Crane #7%-4d #0Crab #7%-4d #0Mongoose #7%-4d #0PitBull #7%-4d#r |\n\r",ch->stance[1],ch->stance[2],ch->stance[3],ch->stance[4],ch->stance[5]); stc(skill,ch); sprintf(skill,"#r|#0 Hawk #7%-4d #0Badger #7%-4d #0Cougar #7%-4d #0Grizzly #7%-4d #0Wolverine #7%-4d#r|\n\r",ch->stance[6],ch->stance[7],ch->stance[8],ch->stance[10],ch->stance[9]); stc(skill,ch); stc("#0X#r==============================#0[#rS#Ruper #rS#Rtances#0]#r==============================#0X#n\n\r",ch); sprintf(skill,"#r|#0 SS1 #7%-4d #0SS2 #7%-4d #0SS3 #7%-4d #0Pizza #7%-4d #0Zarius #7%-4d#r |#n\n\r",ch->stance[13],ch->stance[14],ch->stance[15],ch->stance[16],ch->stance[17]); stc(skill,ch); stc("#r| |\n\r",ch); stc("#r| #7To gain super stances, you must max all your current stances. #r|\n\r",ch); stc("#r| #7After this, use 'setstance' to beging editing your superstance. #r|\n\r",ch); stc("#0X#r==============================#0[#rS#Rpell #rL#Revels#0]#r===============================#0X#n\n\r",ch); sprintf(skill, "#r| #pPurple#n #C: %-4d", ch->spl[0]); send_to_char(skill, ch); sprintf(skill, " #lBlue#n #C: %-4d", ch->spl[2]); send_to_char(skill, ch); sprintf(skill, " #rRed#n #C: %-4d", ch->spl[1]); send_to_char(skill, ch); sprintf(skill, " #gGreen#n #C: %-4d", ch->spl[3]); send_to_char(skill, ch); sprintf(skill, " #yYellow#n #C: %-4d #r|#n\n\r", ch->spl[4]); send_to_char(skill, ch); stc("#0X#r==============================#0[#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#0]#r==============================#0X#n\n\r",ch); stc("#0X#r==============================#0[#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#0]#r==============================#0X#n\n\r",ch); stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); xprintf(buf, "#0You are currently generation #W%d#n\n\r", ch->generation); send_to_char(buf, ch); chgen = ch->generation; chgenexp = ch->genexp; if (ch->generation == 6) expneeded = 13000000.00; else if (ch->generation == 5) expneeded = 150000000.00; else if (ch->generation == 4) expneeded = 400000000.00; else if (ch->generation == 3) expneeded = 900000000.00; else if (ch->generation == 2) expneeded = 1800000000.00; percent = (chgenexp / expneeded) * 100.00; nextgen = (ch->generation - 1); if (ch->generation > 1 && ch->level > 2) { sprintf(skill,"#0You are #R%d#W%% #0on your way to generation #R%d.#n\n\r",percent,nextgen); stc(skill,ch); } stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); if ( ch->stance[12] == 1 ) sprintf(stance, " Viper" ); else if ( ch->stance[12] == 2 ) sprintf(stance, " Crane" ); else if ( ch->stance[12] == 3 ) sprintf(stance, " Crab" ); else if ( ch->stance[12] == 4 ) sprintf(stance, " Mongoose" ); else if ( ch->stance[12] == 5 ) sprintf(stance, " Pitbull" ); else if ( ch->stance[12] == 6 ) sprintf(stance, " Hawk" ); else if ( ch->stance[12] == 7 ) sprintf(stance, " Badger" ); else if ( ch->stance[12] == 8 ) sprintf(stance, " Cougar" ); else if ( ch->stance[12] == 9 ) sprintf(stance, " Wolverine" ); else if ( ch->stance[12] == 10 ) sprintf(stance, " Grizzly" ); else if ( ch->stance[12] == 11 ) sprintf(stance, " Wolf" ); else if ( ch->stance[12] == 13 ) sprintf( stance, " SS1"); else if ( ch->stance[12] == 14 ) sprintf( stance, " SS2"); else if ( ch->stance[12] == 15 ) sprintf( stance, " SS3"); else if ( ch->stance[12] == 16 ) sprintf( stance, " Pizza"); else if ( ch->stance[12] == 17 ) sprintf( stance, " Zarius"); else if ( ch->stance[12] == -1 ) sprintf(stance, " None" ); else sprintf(stance, " None" ); sprintf(skill, "#0Autostance#n: #R%s #n\n\r",stance); send_to_char(skill, ch); if (IS_SET(ch->act, PLR_RIGHTHAND)) send_to_char("#wYou favor your right arm in combat.#n\n\r",ch); else if(IS_SET(ch->act, PLR_LEFTHAND)) send_to_char("#wYou favor your left arm in combat.#n\n\r",ch); else send_to_char("#wYou fight well with both your arms.#n\n\r",ch); stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); if (IS_CLASS(ch, CLASS_DEMON)) send_to_char("You are a demon!\n\r", ch); if (IS_CLASS(ch, CLASS_MAGE)) send_to_char("You are a battlemage!\n\r", ch); if (IS_CLASS(ch, CLASS_SHAPESHIFTER)) send_to_char("You are a shapeshifter!\n\r", ch); if (IS_CLASS(ch, CLASS_UNDEAD_KNIGHT)) send_to_char("You are an undead knight!\n\r", ch); if (IS_CLASS(ch, CLASS_WEREWOLF)) send_to_char("You are a werewolf!\n\r", ch); if (IS_CLASS(ch, CLASS_NINJA)) send_to_char("You are a ninja!\n\r", ch); if (IS_CLASS(ch, CLASS_VAMPIRE)) send_to_char("You are a vampire!\n\r", ch); if (IS_CLASS(ch, CLASS_SAMURAI)) send_to_char("You are a Samurai!\n\r", ch); if (IS_CLASS(ch, CLASS_DROW)) send_to_char("You are a drow!\n\r", ch); if (IS_CLASS(ch, CLASS_ANGEL)) send_to_char("You are an angel!\n\r", ch); if (IS_CLASS(ch, CLASS_LICH)) send_to_char("You are a lich!\n\r", ch); if (IS_CLASS(ch, CLASS_SKYBLADE)) send_to_char("You are a SkyBlade!!\n\r", ch); if (IS_CLASS(ch, CLASS_GHOUL)) send_to_char ("You are a foul smelling #GGhoul#n!!\n\r", ch); if (IS_CLASS(ch, CLASS_DRACONIAN)) send_to_char("You are a Draconian!!\n\r", ch); if (IS_CLASS(ch, CLASS_TANARRI)) send_to_char ("You are a warrior of The Bloodwars.\n\r", ch); if (IS_CLASS(ch, CLASS_MONK)) stc("You are a monk!\n\r", ch); if (IS_CLASS(ch, CLASS_CYBORG)) stc("You are a Mix Between Man and Machine!\n\r", ch); if (IS_CLASS(ch, CLASS_SHADOW)) stc("You are a Shadow!\n\r", ch); if (IS_CLASS(ch, CLASS_PRIEST)) stc("You are a holy Priest\n\r", ch); if (IS_CLASS(ch, CLASS_JEDI)) stc("You are a Jedi Warrior!\n\r", ch); if (IS_CLASS(ch, CLASS_BLADE_MASTER)) send_to_char("You are a Blade Master.\n\r", ch); if ( IS_CLASS(ch, CLASS_DRAGON) ) send_to_char(" You are a dragon! \n\r", ch); if (IS_CLASS(ch, CLASS_PALADIN)) send_to_char("You are a Paladin.\n\r", ch); if ( IS_CLASS(ch, CLASS_ZOMBIE) ) send_to_char(" You are a Zombie! \n\r", ch); if (IS_CLASS(ch, CLASS_SHINOBI)) send_to_char("You are a Shinobi.\n\r", ch); if ( IS_CLASS(ch, CLASS_ELEMENTAL) ) send_to_char(" You are a Elemental! \n\r", ch); if (IS_CLASS(ch, CLASS_TANARRI)) { if (ch->pcdata->rank == TANARRI_FODDER) send_to_char ("You are nothing but fodder for the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_FIGHTER) send_to_char ("You are a fighter in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_ELITE) send_to_char ("You are an elite warrior in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_CAPTAIN) send_to_char ("You are a captain in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_WARLORD) send_to_char ("You are a warlord in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_BALOR) send_to_char("You are a Tanar'ri Balor.\n\r", ch); } if (IS_CLASS(ch, CLASS_VAMPIRE)) { if (ch->pcdata->rank == AGE_TRUEBLOOD) send_to_char("You are a TrueBlood!\n\r", ch); else if (ch->pcdata->rank == AGE_LA_MAGRA) send_to_char("You are a La Magra!\n\r", ch); else if (ch->pcdata->rank == AGE_METHUSELAH) send_to_char("You are a Methuselah!\n\r", ch); else if (ch->pcdata->rank == AGE_ELDER) send_to_char("You are an Elder!\n\r", ch); else if (ch->pcdata->rank == AGE_ANCILLA) send_to_char("You are an Ancilla!\n\r", ch); else if (ch->pcdata->rank == AGE_NEONATE) send_to_char("You are a Neonate!\n\r", ch); else send_to_char("You are a Childe!\n\r", ch); } room = get_room_index( ch->home ); sprintf(skill, "#0Recall Room#R : #Y%s#n\n\r", room->name); send_to_char( skill, ch ); stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); return; } int find_spell( CHAR_DATA *ch, const char *name ) { /* finds a spell the character can cast if possible */ int sn, found = -1; if (IS_NPC(ch)) return skill_lookup(name); for ( sn = 0; sn < MAX_SKILL; sn++ ) { if (skill_table[sn].name == NULL) break; if (LOWER(name[0]) == LOWER(skill_table[sn].name[0]) && !str_prefix(name,skill_table[sn].name)) { if ( found == -1) found = sn; if (ch->pcRaceLevel >= skill_table[sn].race_level && ch->pcdata->learned[sn] > 0) return sn; } } return found; } void do_rompractice( CHAR_DATA *ch, char *argument ) { char buf[MAX_STRING_LENGTH]; int sn; if ( IS_NPC(ch) ) return; if ( argument[0] == '\0' ) { int col; col = 0; for ( sn = 0; sn < MAX_SKILL; sn++ ) { if ( skill_table[sn].name == NULL ) break; if ( ch->pcRaceLevel < skill_table[sn].race_level) // || ch->pcdata->learned[sn] < 1 /* skill is not known */) continue; if ( ch->level < skill_table[sn].skill_level ) continue; sprintf( buf, "%-18s %3d%% ", skill_table[sn].name, ch->pcdata->learned[sn] ); send_to_char( buf, ch ); if ( ++col % 3 == 0 ) send_to_char( "\n\r", ch ); } if ( col % 3 != 0 ) send_to_char( "\n\r", ch ); sprintf( buf, "You have %d practice sessions left.\n\r", ch->pcpractice ); send_to_char( buf, ch ); } else { CHAR_DATA *mob; int adept; if ( !IS_AWAKE(ch) ) { send_to_char( "In your dreams, or what?\n\r", ch ); return; } /* for ( mob = ch->in_room->people; mob != NULL; mob = mob->next_in_room ) { if ( IS_NPC(mob) && IS_SET(mob->act, ACT_PRACTICE) ) break; } if ( mob == NULL ) { send_to_char( "You can't do that here.\n\r", ch ); return; } */ if ( ch->pcpractice <= 0 ) { send_to_char( "You have no practice sessions left.\n\r", ch ); return; } if ( ( sn = find_spell( ch,argument ) ) < 0 || ( !IS_NPC(ch) && (ch->pcRaceLevel < skill_table[sn].race_level))) // || ch->pcdata->learned[sn] < 1))) /* skill is not known */ // || skill_table[sn].rating[ch->class] == 0))) { send_to_char( "You can't practice that.\n\r", ch ); return; } // adept = IS_NPC(ch) ? 100 : class_table[ch->class].skill_adept; adept = 75; if ( ch->pcdata->learned[sn] >= adept ) { sprintf( buf, "You are already learned at %s.\n\r", skill_table[sn].name ); send_to_char( buf, ch ); } else { ch->pcpractice--; ch->pcdata->learned[sn] += 5; // int_app[get_curr_int(ch)].learn / // skill_table[sn].rating[ch->class]; if ( ch->pcdata->learned[sn] < adept ) { act( "You practice $T.", ch, NULL, skill_table[sn].name, TO_CHAR ); act( "$n practices $T.", ch, NULL, skill_table[sn].name, TO_ROOM ); } else { ch->pcdata->learned[sn] = adept; act( "You are now learned at $T.", ch, NULL, skill_table[sn].name, TO_CHAR ); act( "$n is now learned at $T.", ch, NULL, skill_table[sn].name, TO_ROOM ); } } } return; } char *num_punct(int foo) { int index,index_new,rest; char buf[16]; static char buf_new[16]; sprintf(buf,"%d",foo); rest = strlen(buf)%3; for (index=index_new=0;index<strlen(buf);index++,index_new++) { if (index!=0 && (index-rest)%3==0 ) { buf_new[index_new]=','; index_new++; buf_new[index_new]=buf[index]; } else buf_new[index_new] = buf[index]; } buf_new[index_new]='\0'; return buf_new; } void do_jail( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; char arg2[MSL]; char buf[MAX_STRING_LENGTH]; CHAR_DATA *victim; int jtime; argument = one_argument( argument, arg ); argument = one_argument( argument, arg2 ); if ( arg[0] == '\0' ) { send_to_char( "Jail whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "They aren't here.\n\r", ch ); return; } if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } /*if ( get_trust( victim ) > get_trust( ch ) ) { send_to_char( "You failed.\n\r", ch ); return; }*/ //How long do you want them jailed? if(is_number(arg2)){ jtime = atoi( arg2 ); } else{ jtime = 120; } victim->jailtime = jtime; // if((IS_SET(ch->newbits2, PLR_UINVIS) || IS_SET(ch->act, PLR_WIZINVIS)) && ch->level > 6) // { // sprintf(buf,"#C%s #Lgets beaten half to death by an Immortal, then is led to #0prison#l.", victim->name); // do_info(ch,buf); // } // { sprintf(buf,"#C%s #Lgets beaten half to death by %s, then is led to #0prison#l.", victim->name,ch->name); do_info(ch, buf);// } send_to_char( "OK.\n\r", ch ); stop_fighting(victim,TRUE); do_transfer(victim, "self 5"); SET_BIT(victim->newbits2, IS_JAILED); return; } void do_freechar( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; CHAR_DATA *victim; one_argument( argument, arg ); if ( arg[0] == '\0' ) { send_to_char( "Unjail whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "They aren't here.\n\r", ch ); return; } if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } sprintf(buf,"#y%s #Lhas been released from #0jail#l.#n", victim->name); REMOVE_BIT(victim->newbits2, IS_JAILED); do_info(ch, buf); send_to_char( "OK.\n\r", ch ); stop_fighting(victim,TRUE); victim->jailtime = -1; do_transfer(victim, "self 3054"); return; } void do_warden( CHAR_DATA *ch, char *argument ) { char buf[MSL]; CHAR_DATA *gch; if( IS_NPC(ch)) return; stc("#R[#r--#r------------#r---#RWarden's List#r---------#r----------#R]#n\n\r",ch); stc("#R[#r #yName #r| #RTime #r| #RType #R]#n\n\r",ch); stc("#R[#r--#r------------#r------#r------------#r-------#r----------#R]#n\n\r",ch); for(gch=char_list;gch != NULL;gch=gch->next){ if(IS_NPC(gch)) continue; if( (gch->jailtime <= 0 && gch->in_room->vnum != 10162) && gch->siletime <= 0 && gch->freetime <= 0 && gch->hallutime <= 0 ) continue; if(gch->jailtime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->jailtime,"Jail"); stc(buf,ch); } else if(gch->in_room->vnum == 10162){ sprintf(buf,"#R[ #y%-12s #r| #R%-15s #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,"No Time Set","Jail"); stc(buf,ch); } if(gch->hallutime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->hallutime,"Hallucination"); stc(buf,ch); } if(gch->siletime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->siletime,"Silence"); stc(buf,ch); } if(gch->freetime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->freetime,"Freeze"); stc(buf,ch); } } stc("#R[#r-------------------------------------------------#R]#n\n\r",ch); return; } // dystopia call all void call_all( CHAR_DATA *ch ) { CHAR_DATA *gch; OBJ_DATA *obj; OBJ_DATA *in_obj; CHAR_DATA *victim = NULL; DESCRIPTOR_DATA *d; ROOM_INDEX_DATA *chroom; ROOM_INDEX_DATA *objroom; bool found = FALSE; for ( obj = object_list; obj != NULL; obj = obj->next ) { if ( obj->questowner == NULL || strlen(obj->questowner) < 2 || str_cmp( ch->pcdata->switchname, obj->questowner ) || obj->item_type == ITEM_PAGE) continue; found = TRUE; for ( in_obj = obj; in_obj->in_obj != NULL; in_obj = in_obj->in_obj ) ; if (in_obj->carried_by != NULL) { if (in_obj->carried_by == ch) continue; if ((gch = in_obj->carried_by) != NULL) { if (gch->desc && gch->desc->connected != CON_PLAYING) continue; } } if (obj->carried_by != NULL && obj->carried_by != ch) { if (obj->carried_by == ch || obj->carried_by->desc == NULL || obj->carried_by->desc->connected != CON_PLAYING) { if (!IS_NPC(obj->carried_by)) return; } act("$p suddenly vanishes from your hands!",obj->carried_by,obj,NULL,TO_CHAR); act("$p suddenly vanishes from $n's hands!",obj->carried_by,obj,NULL,TO_ROOM); SET_BIT(obj->carried_by->extra, EXTRA_CALL_ALL); obj_from_char(obj); } else if (obj->in_room != NULL) { chroom = ch->in_room; objroom = obj->in_room; char_from_room(ch); char_to_room(ch,objroom); act("$p vanishes from the ground!",ch,obj,NULL,TO_ROOM); if (chroom == objroom) act("$p vanishes from the ground!",ch,obj,NULL,TO_CHAR); char_from_room(ch); char_to_room(ch,chroom); obj_from_room(obj); } else if (obj->in_obj != NULL) obj_from_obj(obj); else continue; obj_to_char(obj,ch); if (IS_SET(obj->extra_flags,ITEM_SHADOWPLANE)) REMOVE_BIT(obj->extra_flags,ITEM_SHADOWPLANE); if (!IS_HEAD(ch, LOST_HEAD)) { act("$p materializes in your hands.",ch,obj,NULL,TO_CHAR); act("$p materializes in $n's hands.",ch,obj,NULL,TO_ROOM); } } if ( !found && !IS_HEAD(ch, LOST_HEAD) ) send_to_char( "Nothing happens.\n\r", ch ); for ( d = descriptor_list; d != NULL; d = d->next ) { if ( d->connected != CON_PLAYING ) continue; if ( (victim = d->character) == NULL ) continue; if ( IS_NPC(victim) ) continue; if ( ch != victim && !IS_EXTRA(victim,EXTRA_CALL_ALL) ) continue; REMOVE_BIT(victim->extra, EXTRA_CALL_ALL); do_autosave(victim,""); } return; } char *getCurrRanking( CHAR_DATA *ch, int pRank ) { static char rank[MAX_STRING_LENGTH]; rank[0] = '\0'; switch( pRank ) { case 0: strcat( rank, "Serf" ); break; case 1: strcat( rank, "Peasant" ); break; case 2: strcat( rank, "Apprentice" ); break; case 3: strcat( rank, "Wanderer" ); break; case 4: strcat( rank, "Explorer" ); break; case 5: strcat( rank, "Adventurer" ); break; case 6: strcat( rank, "Veteran" ); break; case 7: strcat( rank, "Champion" ); break; case 8: strcat( rank, "Master" ); break; case 9: strcat( rank, "Mystic" ); break; case 10: strcat( rank, "Ancient" ); break; case 11: strcat( rank, "Seer" ); break; case 12: strcat( rank, "Savior" ); break; case 13: strcat( rank, "Myth" ); break; case 14: strcat( rank, "Legend" ); break; case 15: strcat( rank, "Forgotten" ); break; case 16: strcat( rank, "Chosen" ); break; case 17: strcat( rank, "Avatar" ); break; case 18: strcat( rank, "Omnipotent" ); break; case 19: strcat( rank, "Hero" ); break; case 20: strcat( rank, "Warlord" ); break; case 21: strcat( rank, "Demi-God" ); break; default: strcat( rank, "Invalid Rank" ); break; } return rank; } void do_nuke( CHAR_DATA *ch, char *argument) { char strsave[MAX_INPUT_LENGTH]; CHAR_DATA *victim; char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; one_argument(argument,arg); if (str_cmp(ch->pcdata->switchname, "Xrakisis")) { sprintf( buf, "ONLY FOR XRAK!'", ch->name); return; } if(arg[0] == '\0') { send_to_char("Syntax: nuke <unlucky bastard>\n\r",ch); return; } if((victim = get_char_world(ch,arg)) == NULL) { send_to_char("Sorry! They have to be logged in.\n\r", ch); return; } if(IS_NPC(victim)) { send_to_char("Sorry! Players only!\n\r",ch); return; } if(IS_IMMORTAL(victim)) { send_to_char("Nice try.. Gonna have to find a different way to do that.",ch); return; } sprintf(strsave,"%s%s",PLAYER_DIR, capitalize(victim->name)); stop_fighting(victim,TRUE); sprintf(buf, "OUCH! %s just nuked %s!", ch->pcdata->switchname,victim->pcdata->switchname); do_info(ch, buf); do_quit(victim, ""); unlink(strsave); return; }