void do_swoop( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; ROOM_INDEX_DATA *location; CHAR_DATA *victim; one_argument (argument, arg); if (IS_NPC(ch)) return; if (!IS_CLASS(ch, CLASS_ANGEL)) { send_to_char("Huh?\n\r", ch ); return; } if (ch->pcdata->powers[ANGEL_JUSTICE] < 1) { send_to_char("You haven't learned to fly yet.\n\r",ch); return; } if (!IS_SET(ch->pcdata->powers[ANGEL_POWERS], ANGEL_WINGS)) { send_to_char("Where are your wings?\n\r",ch); return; } if ((victim = get_char_world(ch, arg)) == NULL) { send_to_char("Swoop down on whom?\n\r", ch ); return; } if (IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } if (IS_IMMUNE(victim, IMM_TRAVEL) && !IS_NPC(victim)) { send_to_char("I don't think they want you to do that.\n\r",ch); return; } if (IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "Your room is not connected to the astral plane.\n\r",ch); return; } location = victim->in_room; if (ch->move < 500) { send_to_char("You don't have the move to fly that far.\n\r", ch ); return; } act("You fly up into the sky.", ch, NULL, NULL, TO_CHAR); act("$n flies into the sky.", ch, NULL, NULL, TO_ROOM); ch->move -= 500; char_from_room(ch); char_to_room(ch, location); do_look(ch, "auto"); act("You swoop down upon $N.", ch, NULL, victim, TO_CHAR); act("$n swoops down from the sky.", ch, NULL, NULL, TO_ROOM); return; }
/* syntax : teleport <target> * ex : teleport satan */ void do_teleport (CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; ROOM_INDEX_DATA *location; CHAR_DATA *victim; one_argument (argument, arg); if (IS_NPC(ch)) return; if (!IS_CLASS(ch, CLASS_MAGE)) { send_to_char("Huh?\n\r", ch ); return; } if (ch->pcdata->powers[PINVOKE] < 1) /* 1 is just a test */ { send_to_char("You don't have that invoke yet.\n\r",ch); return; } if ((victim = get_char_world(ch, arg)) == NULL) { send_to_char("Teleport to whom?\n\r", ch ); return; } if (IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } if (IS_IMMUNE(victim, IMM_TRAVEL) && !IS_NPC(victim)) { send_to_char("I don't think they want you to do that.\n\r",ch); return; } if (IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "Your room is not connected to the astral plane.\n\r",ch); return; } location = victim->in_room; if (ch->mana < 250) { send_to_char("You don't have the mana to cast teleport.\n\r", ch ); return; } act("You utter a single powerword.", ch, NULL, NULL, TO_CHAR); act("$n utters a strange sounding word and disappers.", ch, NULL, NULL, TO_ROOM); ch->mana -= 250; char_from_room(ch); char_to_room(ch, location); do_look(ch, "auto"); act("You materialize.", ch, NULL, NULL, TO_CHAR); act("$n suddenly appear from out of nowhere.", ch, NULL, NULL, TO_ROOM); return; }
void do_drowshield(CHAR_DATA *ch, char *argument) { if (IS_NPC(ch)) return; if (!IS_CLASS(ch, CLASS_DROW) || !IS_SET(ch->pcdata->powers[1], DPOWER_DROWSHIELD)) { send_to_char("Huh?\n\r", ch ); return;} if (!IS_IMMUNE(ch,IMM_SHIELDED) ) { send_to_char("You shield your aura from those around you.\n\r",ch); SET_BIT(ch->immune, IMM_SHIELDED); return; } send_to_char("You stop shielding your aura.\n\r",ch); REMOVE_BIT(ch->immune, IMM_SHIELDED); return; }
void do_bladejump( CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; char arg[MAX_INPUT_LENGTH]; if ( IS_NPC(ch) ) return; argument = one_argument (argument, arg); if (!IS_CLASS(ch, CLASS_SKYBLADE) ) { send_to_char("Huh?\n\r",ch); return; } if ( arg[0] == '\0' ) { send_to_char( "BladeJump to whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "You cannot find them.\n\r", ch ); return; } if( ch->move < 1000) { stc( "You don't have enough movement points to bladejump to them.\n\r",ch); return; } if( IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } if( IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "Your body can't go there.\n\r",ch); return; } if (IS_SET(victim->act, ACT_NOTRAVEL)) { send_to_char("No Can Do.\n\r", ch); return; } if (ch == victim) { send_to_char("But you're already at yourself!\n\r",ch); return; } if ( room_is_private(victim->in_room ) ) { send_to_char( "That room is private right now.\n\r", ch ); return; } if (!IS_NPC(victim) && ch->move < victim->max_move) { if ( !IS_NPC(victim) && !IS_IMMUNE(victim, IMM_SUMMON) ) { send_to_char( "They are hiding from you.\n\r", ch ); return; } else send_to_char("You need more move than you're opponent.\n\r",ch); } if (victim->in_room == ch->in_room) { send_to_char("But you're already there!\n\r",ch); return; } act("You jump into the clouds", ch, NULL, victim, TO_CHAR); act("$n jumps into the clouds", ch, NULL, victim, TO_ROOM); char_from_room(ch); char_to_room(ch,victim->in_room); ch->move -= 1000; act("$n jumps out of the clouds and lands infront of $N.", ch, NULL, victim, TO_NOTVICT); act("$n jumps out of the clouds and lands infront of you.", ch, NULL, victim, TO_VICT); do_look(ch,"auto"); return; }
void do_stalk( CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; char arg[MAX_INPUT_LENGTH]; if ( IS_NPC(ch) ) return; argument = one_argument (argument, arg); if (!IS_CLASS(ch, CLASS_NINJA) ) { send_to_char("Huh?\n\r",ch); return; } if ( arg[0] == '\0' ) { send_to_char( "Stalk whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "You cannot find them.\n\r", ch ); return; } if( ch->move < 500) { stc( "You don't have enough movement points to stalk them.\n\r",ch); return; } if( IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } if( IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "Your body can't go there.\n\r",ch); return; } if (ch == victim) { send_to_char("But you're already at yourself!\n\r",ch); return; } if ( room_is_private(victim->in_room ) ) { send_to_char( "That room is private right now.\n\r", ch ); return; } if ( !IS_NPC(victim) && !IS_IMMUNE(victim, IMM_SUMMON) ) { send_to_char( "They are hiding from you.\n\r", ch ); return; } if (victim->in_room == ch->in_room) { send_to_char("But you're already there!\n\r",ch); return; } act("You pick up the trail of $N, and quickly find them.", ch, NULL, victim, TO_CHAR); act("$n slides into the shadows, stalking someone.", ch, NULL, victim, TO_ROOM); char_from_room(ch); char_to_room(ch,victim->in_room); ch->move -= 500; act("$n walks out of nowhere behind $N.", ch, NULL, victim, TO_NOTVICT); act("$n walks out of nowhere from behind.", ch, NULL, victim, TO_VICT); do_look(ch,"scry"); return; }
void do_chaosgate(CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; ROOM_INDEX_DATA *location; CHAR_DATA *victim; int random_room; one_argument (argument, arg); if (IS_NPC(ch)) return; if (!IS_CLASS(ch, CLASS_TANARRI)) { send_to_char("Huh?\n\r",ch); return; } if (!IS_SET(ch->pcdata->powers[TANARRI_POWER], TANARRI_CHAOSGATE)) { send_to_char("You don't have that power yet.\n\r",ch); return; } if ((victim = get_char_world(ch, arg)) == NULL) { send_to_char("Chaosgate to whom?\n\r", ch ); return; } if (IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } if (IS_IMMUNE(victim, IMM_TRAVEL) && !IS_NPC(victim)) { send_to_char("I don't think they want you to do that.\n\r",ch); return; } if (IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "Your room is not connected to the astral plane.\n\r",ch); return; } if (ch->move < 1000) { send_to_char("You don't have the move to open a chaosgate.\n\r", ch ); return; } if (number_range(1,15)!=1) location = victim->in_room; else { send_to_char("Something went wrong.\n\r",ch); for ( ; ; ) { random_room = number_range(1000, 65535); location = get_room_index(random_room); if (location != NULL) if (!IS_SET(location->room_flags, ROOM_PRIVATE) && !IS_SET(location->room_flags, ROOM_SOLITARY) && !IS_SET(location->room_flags, ROOM_NO_TELEPORT)) break; } } act("You open a gate made from pure chaos and steps into it.", ch, NULL, NULL, TO_CHAR); act("$n opens a gate of pure chaos and steps into it.", ch, NULL, NULL, TO_ROOM); ch->move -= 1000; char_from_room(ch); char_to_room(ch, location); do_look(ch, "auto"); act("You step out of the gate.", ch, NULL, NULL, TO_CHAR); act("A gate appears from out of nowhere and $n steps out of it.", ch, NULL, NULL, TO_ROOM); return; }
void do_shadowwalk(CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; ROOM_INDEX_DATA *location; CHAR_DATA *victim; one_argument (argument, arg); if (IS_NPC(ch)) return; if (!IS_CLASS(ch, CLASS_DROW) && !IS_CLASS(ch,CLASS_DROID)) { send_to_char("Huh?\n\r", ch ); return;} if (!IS_SET(ch->pcdata->powers[1],DPOWER_SHADOWWALK) && IS_CLASS(ch,CLASS_DROW)) { send_to_char("Huh?\n\r", ch ); return;} if ((victim = get_char_world(ch, arg)) == NULL) { send_to_char("Shadowwalk to whom?\n\r", ch ); return;} if( IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } // if( IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) if (IS_IMMUNE(victim, IMM_TRAVEL) && !IS_NPC(victim)) { send_to_char("I don't think they want you to do that.\n\r",ch); return; } if (IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "Your room is not connected to the astral plane.\n\r",ch); return; } location = victim->in_room; if (ch->move < 250) { send_to_char("You are too tired to go shadowwalking.\n\r", ch ); return;} /* if (!IS_NPC(victim)) { send_to_char("You failed.\n\r", ch ); return;} if (!IS_SET(victim->in_room->room_flags, ROOM_DARK)) { send_to_char("You failed.\n\r", ch ); return;}*/ act("You walk into the shadows.", ch, NULL, NULL, TO_CHAR); act("$n walks into the shadows.", ch, NULL, NULL, TO_ROOM); ch->move -= 250; char_from_room(ch); char_to_room(ch, location); do_look(ch, "auto"); act("You walk out of the shadows.", ch, NULL, NULL, TO_CHAR); act("$n walks out of the shadows.", ch, NULL, NULL, TO_ROOM); return; }
void do_hologramtransfer( CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; char arg[MAX_INPUT_LENGTH]; if ( IS_NPC(ch) ) return; argument = one_argument (argument, arg); if (!IS_CLASS(ch, CLASS_SAMURAI) ) { send_to_char("Huh?\n\r",ch); return; } if ( arg[0] == '\0' ) { send_to_char( "Walk the ancestrial path to whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "They are not of this world.\n\r", ch ); return; } if( ch->move < 1000) { stc( "The path escapes your senses as you loose control over your inner energies.\n\r",ch); return; } if( IS_SET(victim->in_room->room_flags, ROOM_ASTRAL)) { stc( "You can't find it's room.\n\r",ch); return; } if (IS_SET(victim->act, ACT_NOTRAVEL)) { send_to_char("No Can Do.\n\r", ch); return; } if( IS_SET(ch->in_room->room_flags, ROOM_ASTRAL)) { stc( "You cannot sense any paths leading from this room.\n\r",ch); return; } if (ch == victim) { send_to_char("But you're already at yourself!\n\r",ch); return; } if ( room_is_private(victim->in_room ) ) { send_to_char( "That room is private right now.\n\r", ch ); return; } if ( !IS_NPC(victim) && !IS_IMMUNE(victim, IMM_SUMMON) ) { send_to_char( "They don't want you near them.\n\r", ch ); return; } if (victim->in_room == ch->in_room) { send_to_char("But you're already there!\n\r",ch); return; } act("You follow the path to $N.", ch, NULL, victim, TO_CHAR); act("$n steps into the air, leaving behind no trace whatsoever.", ch, NULL, victim, TO_ROOM); char_from_room(ch); char_to_room(ch,victim->in_room); ch->move -= 1000; act("$n steps out of the air in front of $N.", ch, NULL, victim, TO_NOTVICT); act("$n steps out of the air in front of you.", ch, NULL, victim, TO_VICT); do_look(ch,"auto"); return; }