Pages:<< prev 1 next >>
Off the Edge of the Map

GroupAdministrators
Posts1,199
JoinedMar 21, 2006
Bug: Snipe does not echo to the sniper's room
Danger: Trivial - People in the same room can't see that someone has shot at someone else.
Found by: Ayuri
Fixed by: Keberus
---
swskills.c, do_snipe
Locate:
Replace with:
This fix will ensure that people in the same room can see that someone is sniping a specific direction, but it won't tell who they are shooting at.
Danger: Trivial - People in the same room can't see that someone has shot at someone else.
Found by: Ayuri
Fixed by: Keberus
---
swskills.c, do_snipe
Locate:
char_from_room( ch );
char_to_room( ch, victim->in_room );
if( number_percent( ) < schance )
{
sprintf( buf, "A blaster shot fires at you from the %s.", dir_name[dir] );
act( AT_ACTION, buf, victim, NULL, ch, TO_CHAR );
act( AT_ACTION, "You fire at $N.", ch, NULL, victim, TO_CHAR );
sprintf( buf, "A blaster shot fires at $N from the %s.", dir_name[dir] );
act( AT_ACTION, buf, ch, NULL, victim, TO_NOTVICT );
one_hit( ch, victim, TYPE_UNDEFINED );
if( char_died( ch ) )
return;
stop_fighting( ch, TRUE );
learn_from_success( ch, gsn_snipe );
}
else
{
act( AT_ACTION, "You fire at $N but don't even come close.", ch, NULL, victim, TO_CHAR );
sprintf( buf, "A blaster shot fired from the %s barely misses you.", dir_name[dir] );
act( AT_ACTION, buf, ch, NULL, victim, TO_ROOM );
learn_from_failure( ch, gsn_snipe );
}
Replace with:
if( number_percent( ) < schance )
{
char_from_room( ch );
char_to_room( ch, was_in_room );
sprintf( buf, "$n fires a blaster shot to the %s.", dir_name[get_door(arg)] );
act( AT_ACTION, buf, ch, NULL, NULL, TO_ROOM );
char_from_room( ch );
char_to_room( ch, victim->in_room );
sprintf( buf, "A blaster shot fires at you from the %s.", dir_name[dir] );
act( AT_ACTION, buf, victim, NULL, ch, TO_CHAR );
act( AT_ACTION, "You fire at $N.", ch, NULL, victim, TO_CHAR );
sprintf( buf, "A blaster shot fires at $N from the %s.", dir_name[dir] );
act( AT_ACTION, buf, ch, NULL, victim, TO_NOTVICT );
one_hit( ch, victim, TYPE_UNDEFINED );
if( char_died( ch ) )
return;
stop_fighting( ch, TRUE );
learn_from_success( ch, gsn_snipe );
}
else
{
char_from_room( ch );
char_to_room( ch, was_in_room );
sprintf( buf, "$n fires a blaster shot to the %s.", dir_name[get_door(arg)] );
act( AT_ACTION, buf, ch, NULL, NULL, TO_ROOM );
char_from_room( ch );
char_to_room( ch, victim->in_room );
act( AT_ACTION, "You fire at $N but don't even come close.", ch, NULL, victim, TO_CHAR );
sprintf( buf, "A blaster shot fired from the %s barely misses you.", dir_name[dir] );
act( AT_ACTION, buf, ch, NULL, victim, TO_ROOM );
learn_from_failure( ch, gsn_snipe );
}
This fix will ensure that people in the same room can see that someone is sniping a specific direction, but it won't tell who they are shooting at.
Pages:<< prev 1 next >>