Показать сообщение отдельно
Старый 20.12.2010, 04:16   #2397
halogene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Olympus:
Ну хорошо. Тогда как их испралять?
func int означает, что функция обязана возвращать числовое значение, к сожалению парсер не учитывает значения внутри блоков с условиями (при наличии else), поэтмоу вариантов минимум 2:

Стандартный, чтобы отмахаться от ошибки и пойти дальше:
Cпойлер(щелкните, чтобы прочесть):
func int B_SetDayTolerance()
{
* * *if(Wld_IsTime(22,0,23,59))
* * *{
* * * * * *return Wld_GetDay() + 1;
* * *}
* * *else
* * *{
* * * * * *return Wld_GetDay();
* * *};
* * *return 0;
};

Более хитрый
Cпойлер(щелкните, чтобы прочесть):
func int B_SetDayTolerance()
{
* * if(Wld_IsTime(22,0,23,59))
* * {
* * * * * return Wld_GetDay() + 1;
* * };
* * return Wld_GetDay();
};


Да, а каким образом к повреждению от обычных мечей добавляется сила? Может по этому же принципу можно будет добавить запас маны к огненному повреждению?
Этими вычислениями занимается движок игры и лучше оставить эту функцию ему.

Что можно сделать?
Можно написать стороннюю функцию, которая будет при встрече с каждым врагом высчитывать необходимый нам урон от огня. Например, в функции восприятия B_AssessFighter() добавить:
Код:
// определяем игрок ли другой НПЦ? * * *if(Npc_IsPlayer(other)) { * * * * * *var C_ITEM tmpwpn; * * * * * *// определяем оружие, которым экипирован игрок * * * * * *tmpwpn = Npc_GetReadiedWeapon(other); ** * * * * * * * *if (Hlp_IsItem(tmpwpn,Mythrilklinge02)) { * * * * * * * * *tmpwpn.damage[DAM_INDEX_FIRE] = 30 + other.attribute[ATR_MANA]; // меняем урон * * * * * * * * *tmpwpn.count[3] = tmpwpn.damage[DAM_INDEX_FIRE]; * * * * * * * * // меняем сопутствующую надпись * * * * * *}; * * *};
Ответить с цитированием