Register

Автор Тема: Сон или явь?  (Прочитано 1501 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Deyar

  • Братство Ронинов
  • Герой
  • ****
  • Сообщений: 2062
  • Карма: -173
  • Пол: Мужской
Сон или явь?
« : 06.04.06, 04:59:29 »
Коридор в 'Гарцующем пони'.
Этот коридор ведет из общего зала к номерам постоЯльцев. Вы можете пройти отсюда
в северный и южный флигелЯ гостиницы, а также попасть на второй и третий этажи.
Впрочем, вы должны отдавать себе отчет, что хорошие номера стоЯт денег, и вам
придетсЯ раскошелитьсЯ, чтобы снЯть себе номер. В южном флигеле, через
распахнутую дверь одного из номеров, вы видите сидЯщего в комнате человека.
Выходы: север юг запад вверх.
(Одиночка) *** Ужас мобов спит глубоким сном.

У *** громко бурчит в животе.
*** хочет пить.
РастЯнувшись на земле, *** заснул.

Так наш таинственный герой все-таки спал или нет?

PS Всякое совпадение с реальными людьми является случайным и непреднамеренным.
PPS Для Инферно: "***" это не оскорбления в чей-либо адрес, не мат и не ругательство итд итп. Вообщем, правил я не нарушал :)

Оффлайн Tasuja

  • Путешественник
  • **
  • Сообщений: 321
  • Карма: 0
  • Пол: Мужской
Сон или явь?
« Ответ #1 : 06.04.06, 10:10:39 »
Спал, но проснулся от голода-жажды. В чем глюк я так и не понял.
Хотя конечно могли бы это текстом выводить, что мол проснулся и т.д. Кстати, когда просыпаешься кажется оказываешься на ногах. Хотя было бы логичнее просто просыпаться.

Оффлайн aldaril

  • Постоялец
  • *
  • Сообщений: 169
  • Карма: 2
  • Пол: Мужской
Сон или явь?
« Ответ #2 : 06.04.06, 10:32:12 »
На самом деле все очень просто. Когда персонаж доведен до состояния что хочет пить или есть, на нем срабатывает вызов повреждений (здоровье падает). В модуле повреждений всегда позиция сразу устанавливается в "стоит".
Естественно никаких сообщений в комнату что игрок проснулся не выдается.

Можно фиксить, фиксить тут:
update.c
void gain_condition( CHAR_DATA *ch, int iCond, int value )
...
   if ( ch->pcdata->condition[iCond] == 0 )
...
вставить в строку 420:
 act( AT_PLAINE, "$n проснул$z(ся:ась:ось)!", ch, NULL, NULL, TO_ROOM);
перед
   retcode = damage(ch, ch, 2, TYPE_UNDEFINED);
аналогично смотреть в 430, 440.

Оффлайн Deyar

  • Братство Ронинов
  • Герой
  • ****
  • Сообщений: 2062
  • Карма: -173
  • Пол: Мужской
Сон или явь?
« Ответ #3 : 11.04.06, 21:15:45 »
Спасибо aldaril