Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Общение с богами

Общение с богами Прежде чем что-то писать - подумайте. А то ведь и лягушкой стать недолго.

Ответ
 
Опции темы Опции просмотра
Старый 06.10.2004, 13:07   #1
olleg
Новичок
 
Регистрация: 28.09.2004
Сообщений: 12
Angry Похоже нет зависимости успеха спела от мудрости

Вот кусочек кода из br10_03 spell_parser.c

int spell_use_success(struct char_data *ch, struct char_data *victim, int casting_type, int spellnum)
{int prob = 100;

if (IS_IMMORTAL(ch) || GET_GOD_FLAG(ch, GF_GODSLIKE))
return (TRUE);

switch (casting_type)
{case SAVING_SPELL:
case SAVING_ROD:
prob = int_app[GET_REAL_WIS(ch)].spell_success +
GET_CAST_SUCCESS(ch);

Поле spell_success есть в массивах структур int_app и wis_app. Но в int_app это поле везде нулевое, а в wis_app похоже несет отведенный смысл. Здесь берестся мудрость, но почему-то применяется к массиву от интелекта, у которого эти поля нулевые. Если это баг, то вот патч:

*** spell_parser.c.orig 2004-10-06 12:44:17.804049489 +0400
--- spell_parser.c 2004-10-06 12:44:39.432382087 +0400
***************
*** 2445,2451 ****
switch (casting_type)
{case SAVING_SPELL:
case SAVING_ROD:
! prob = int_app[GET_REAL_WIS(ch)].spell_success +
GET_CAST_SUCCESS(ch);

if ((IS_MAGE(ch) && ch->in_room != NOWHERE && ROOM_FLAGGED(IN_ROOM(ch),ROOM_MAGE)) ||
--- 2445,2451 ----
switch (casting_type)
{case SAVING_SPELL:
case SAVING_ROD:
! prob = wis_app[GET_REAL_WIS(ch)].spell_success +
GET_CAST_SUCCESS(ch);

if ((IS_MAGE(ch) && ch->in_room != NOWHERE && ROOM_FLAGGED(IN_ROOM(ch),ROOM_MAGE)) ||


Всю славу Горилюбу.
__________________
Olleg
olleg вне форума   Ответить с цитированием
Старый 06.10.2004, 19:32   #2
Ann
Злобное создание
 
Регистрация: 22.09.2004
Сообщений: 358
По умолчанию RE: Похоже нет зависимости успеха спела от мудрости

Уважаемый товарищ Олег, если не лень свяжись со мной пожалуйста.
В маде Пандора, или аська 112273019.
Ann вне форума   Ответить с цитированием
Старый 15.10.2004, 13:50   #3
Кудояр
Новичок
 
Регистрация: 15.10.2004
Сообщений: 1
По умолчанию RE: Похоже нет зависимости успеха спела от мудрости

Цитата:
Поле spell_success есть в массивах структур int_app и wis_app. Но в int_app это поле везде нулевое, а в wis_app похоже несет отведенный смысл. Здесь берестся мудрость, но почему-то применяется к массиву от интелекта, у которого эти поля нулевые. Если это баг...
Посмотрим...

Ты предлагаешь рассматривать массив wis_app. У него значение поля spell_success для 20 мудры (минимальном, к примеру, для волша) равно 90. Плюс GET_CAST_SUCCESS(ch) (+5 - по роду, +n - по стафу) - уже получим реальный каст приближенный к 100 или выше. Это не есть гуд, т.к. в конце spell_use_success мы видим
Код:
return (prob > number(0,100));
Т.о. для мудры 20 закла проходит грубо говоря в 100% случаев.

Напротив у массива int_app. Такой гига-а-анской плюхи нет. Там тупо все поля забиты нулями (это ты верно заметил). Но мудра должна ролять на каст, и это вроде бы записано на скрижалях былиновского manual, - чего в итоге не наблюдается. Смею предположить, то сей вопиющий факт есть не что иное, как простой недогляд со стороны кодеров. Т.к. в файле constants.c поля int_app смещены по вертикали начиная с 25 позиции. Что приводит к ошибочному восприятию (сам купился), что на 25 позиции spell_success равен 9 и медленно, но растет. Имхо, кодеры также не заметили такого смещения.

Так что твой патч, заменяющий структуру int_app на wis_app не адекватен, т.к. дает просто нереально высокий каст. А вот кодерам надо бы (если они этого еще не сделали) сесть и заполнить поля int_app.spell_success в соответствии с РП-легендой. За что им будет всеобщее спасибо.

вбр, Кудояр
Кудояр вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:40.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot