Online MUD игра АРДА

Общедоступные => Ошибки игры => Тема начата: novi от 12.02.06, 15:58:08

Название: пить из реки
Отправлено: novi от 12.02.06, 15:58:08
Возможно ли пить из реки? если да, то как
Название: пить из реки
Отправлено: Maikroft от 12.02.06, 15:59:13
Нет, данная опция не предусмотрена в коде Смауга.
Название: пить из реки
Отправлено: Arris от 12.02.06, 19:04:02
Цитировать
Возможно ли пить из реки? если да, то как


Я в "Поселении на Выдровом ручье" и в "Маленькой Долине" делал эту возможность через одно место именно из-за ее отсутствия в коде Смауга. [off]Впрочем в Арде многое через это место. [/off]Короче, в Выдровом в ручье есть ключи. Вот там где они есть - там все операции с колодцами доступны.
Название: пить из реки
Отправлено: Barkett от 12.02.06, 19:05:37
Выше писал я, не заметил сначала кем был вход на форум.
Название: пить из реки
Отправлено: Alanna от 13.02.06, 01:19:27
Может, сделать такую возможность в коде? С риском, что вода может оказаться недоброкачественной, грязной и т.п.
Название: пить из реки
Отправлено: Таракс от 13.02.06, 08:35:17
Ага - глотнул и опал как озимый... а всему виной выброс бензола на химических заводах Карн-Дума :D
Название: пить из реки
Отправлено: aldaril от 13.02.06, 10:58:20
а чего там писать то ? :)
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 экологическую ситуация связанную с загрязнением не учитывал

Название: пить из реки
Отправлено: aaaa от 13.02.06, 12:43:42
Цитировать
if ( ch->mount )...
Брр... А почему нет?
Цитировать
Как вы себе это представляете?
Ну например так же, только загнав лошадь в воду по грудь.
Цитировать
Вы нагнулись и хлебнули немного воды.
Просто можно в этом случае сообщение сменить немного.
Название: пить из реки
Отправлено: Barkett от 13.02.06, 13:26:28
Цитировать
Ну например так же, только загнав лошадь в воду по грудь.


А везде ли можно это сделать? Простейшие два примера: плотина возле мельницы Теда, верховья рек в горах.
Название: пить из реки
Отправлено: Локхорн от 13.02.06, 15:18:04
Цитировать
Может, сделать такую возможность в коде? С риском, что вода может оказаться недоброкачественной, грязной и т.п.

Угу, и чтоб энты не тонули, в крайнем случе - не захлёбывались.

Цитировать
Возможно ли пить из реки? если да, то как

по дороге в гавани - чистый ручеек пересекает дорогу, давая путникам возможность напиться.
Название: пить из реки
Отправлено: Alanna от 18.02.06, 14:12:57
Алдарил, соленость воды у тебя учитывается? И возможность хлебнуть воды, будучи под водой (зачем нагибаться)? Возможно, следует предусмотреть отдельный флаг комнаты, который определяет, можно ли пить воду. Если нет, выдавать "Нет, эту воду не стоит пить." или что-то в этом роде. Примеры: морская вода, Черный поток в Сумеречье. Даже в не измененной человеком природе встречается вода, которую пить вредно или невозможно.
Название: пить из реки
Отправлено: Nanni от 18.02.06, 22:47:02
А зачем запрещать пить какую-либо воду? Каждый сам за свое здоровье отвечает, а Минздрава Толкиен не предусматривал ;)

И лучше не запрещать пить воду из реки в Сумрачье, а вешать на выпившего волшебный сон, тиков эдак на 30 :) Можно как на Бомбура ;)
Название: пить из реки
Отправлено: Deyar от 18.02.06, 23:21:41
если сделают отравляющую воду, то сделайте еще чтоб как-нибудь'видеть яд' можно было на нее колдовать, ибо РПейно;)
Название: пить из реки
Отправлено: Alanna от 19.02.06, 01:15:53
Я не говорила, что запрещать, Nanni. Но хорошо ли тебе будет, если ты выпьешь морской воды? К тому же, жажда от этого может и усилиться. Поэтому, если уж реализовывать, это тоже, на мой взгляд, надо учесть.
Название: пить из реки
Отправлено: aldaril от 20.02.06, 10:39:37
Вам как мед - так и ложкой
Основу кода предложил - дальше все плюшки по желанию
Название: пить из реки
Отправлено: Zurna от 30.11.06, 18:38:56
А клевая идея, мы так правда скоро введем умение откусить, которое будет работать так, в инвизе от моба который тя не видит можно будет откусить кусочек :)
Название: пить из реки
Отправлено: Alanna от 30.11.06, 21:54:02
Ага, и чтобы моб в ответ откусывал перманентно (навсегда) 5% здоровья вашего персонажа... =о) А "пить из реки" вполне реалистично было бы. Правда, вряд ли это самое нужное. Старая тема - закрываю.