а чего там писать то ? :)
void do_drink( CHAR_DATA *ch, char *argument )
{
.....
if ( !obj )
{
if (
is_water_room(ch->in_room) &&
ch->in_room->sector_type != SECT_WATER_SWIM &&
ch->in_room->sector_type != SECT_OCEANFLOOR
)
{
if ( ch->mount )
{
act( AT_ACTION, "Как вы себе это представляете? Может лучше спешиться?...", ch, NULL, NULL, TO_CHAR );
return;
}
if ( ch->pcdata->condition[COND_THIRST] < 100 )
{
if ( ch->pcdata->condition[COND_THIRST] < 40 || number_range(1, 100) < 60 )
{
act( AT_ACTION, "Вы нагнулись и хлебнули немного воды.", ch, NULL, NULL, TO_CHAR );
act( AT_ACTION, "$n1 нагнул$z(ся:ась:ось) и выпил$a немного воды.", ch, NULL, NULL, TO_ROOM );
if ( !IS_NPC(ch) )
ch->pcdata->condition[COND_THIRST] += 3;
if ( ch->pcdata->condition[COND_THIRST] >= 100 )
ch->pcdata->condition[COND_THIRST] = 100;
}
return;
}
act( AT_ACTION, "У вас больше нет сил пить, вы словно бочка!", ch, NULL, NULL, TO_CHAR );
act( AT_ACTION, "$n1 нагнул$z(ся:ась:ось) и увлажнил$a язык водой.", NULL, NULL, NULL, TO_ROOM );
return;
}
else
if (
ch->in_room->sector_type == SECT_UNDERWATER ||
ch->in_room->sector_type == SECT_OCEANFLOOR
)
{
act( AT_ACTION, "Вы что, решили захлебнуться ?!", ch, NULL, NULL, TO_CHAR );
return;
}
send_to_char( "Из чего выпить?\n\r", ch );
return;
}
параметры, сектора и прочее по усмотрению
p.s. взят из моего участка кода
is_water_room(ch->in_room) - это отдельная функция где я проверяю в комнате есть вода или нет
bool is_water_room ( ROOM_INDEX_DATA *room )
{
bool checked = FALSE;
switch ( room->sector_type )
{
case SECT_INSIDE:
case SECT_CITY:
case SECT_FIELD:
case SECT_FOREST:
case SECT_HILLS:
case SECT_MOUNTAIN:
case SECT_AIR:
case SECT_DESERT:
case SECT_DUNNO:
case SECT_UNDERGROUND:
case SECT_LAVA:
case SECT_SWAMP:
checked = FALSE;
break;
case SECT_WATER_SWIM:
case SECT_WATER_NOSWIM:
case SECT_UNDERWATER:
case SECT_OCEANFLOOR:
case SECT_LAKE:
case SECT_RIVER:
if ( !xIS_SET(room->room_flags, ROOM_ICEWATER ) )
checked = TRUE;
break;
};
if ( xIS_SET( room->room_flags, ROOM_WATER ) &&
!xIS_SET(room->room_flags, ROOM_ICEWATER )
)
checked = TRUE;
return checked;
}
кое что отсюда надо убрать для совместиомсти с ардой (например лед, который сковал реку или озеро, да и тип сектора река и вода в арде нету)
(Добавление)
p.p.s экологическую ситуация связанную с загрязнением не учитывал