Показать сообщение отдельно
Старый 23.04.2008, 23:25   #2036
halogene

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

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

2niccolo: В готике 1 (да и в г2, скорее всего, так же), за это отвечает ф-ция B_giveXP которая, помимо дачи эскпы, проводит проверку на достижение нового урвоня.

Функция расположена в Story\B\B_GiveXp.d

Собственно, вот проверка на достижение нового уровня:
Код:
 * * *if(hero.exp >= hero.exp_next) * * *{ * * *hero.level = hero.level + 1; * * *hero.exp_next = hero.exp_next + ((hero.level + 1) * 500); * * *hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS_MAX] + HP_PER_LEVEL; * * *hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_PER_LEVEL; * * *hero.lp = hero.lp + LP_PER_LEVEL; * * *PrintScreen(NAME_LevelUp,-1,_YPOS_MESSAGE_LEVELUP,"font_old_20_white.tga",_TIME_MESSAGE_LEVELUP); * * *Snd_Play("LevelUp"); * * *};
Где:
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_PER_LEVEL и hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS_MAX] + HP_PER_LEVEL - рост ЖС на размер, указанный в константе HP_PER_LEVEL

Собственно, для маны можно также задать, только вместо [ATR_HITPOINTS] и [ATR_HITPOINTS_MAX] следует добавить строчки с [ATR_MANA] и [ATR_MANA_MAX]. Вместо константы HP_PER_LEVEL можете прописать свою для маны или просто число.
Ответить с цитированием