Всем привет, неожиданное для меня появление в этом разделе
Зародилось виденье переработки прокачки, которое включает в себя классическую систему(относительно)+левел система.
Идея в чем:
- За каждое успешное использование любого навыка, дается какое-то кол-во опыта, которое зависит от коэффициента качества этого самого действия. Простой пример: чем больше урона наносим, тем больше опыта; чем лучше металл из которого крафтится предмет и больше требуется ресурсов, тем больше опыта и т.д. Так, для каждого скилла, где это качество действия можно как-то оценить.
- Есть группа навыков, допустим Combat. В эту группу входят все боевые навыки. У группы навыков есть уровень, который прокачивается успешными применениями навыков и получением за них опыта. Когда повышается уровень группы навыков, начисляется n-ое кол-во поинтов, которые можно свободно распределить между всеми навыками внутри группы навыков. Если получили уровень в группе Combat, то очки можно распределить только на те навыки, которые входят в эту группу. Всего 6 групп навыков
- Если какой-то из навыков достиг своего максимума(100.0 или 120.0), то этот навык больше не дает опыта
- Чтобы добавить поинты навыков, нужно заплатить золото за каждое повышение. Чтобы прокачать с 0.0 до 0.1 нужно 1 гп, с 0.1 до 0.2 нужно 2 гп и т.д., постоянная прогрессия стоимости
- При получении уровня группы навыков, требуемое кол-во опыта считается по формуле - (предыдущий опыт для уровня*1.2)
- Слева экрана вместо "Your skill in Swordmsnship increased by 0.1% and now 30.1%" -> "Your Combat experience has increased by 5 and now 5\3000"
Вопрос, собственно - Может быть у кого-то есть пример реализации хотя бы чего-то из перечисленного? Понимаю, что тут работы вагон, но всякое бывает
Да откуда тут вагон работы то?
Ну я делал что-то примерно такое.... правда до реализации не дошло.
On=@SkillSuccess
if <<argn>> < <skillclass.<argn>>
call f_return_skillgroup
tag.skillgain_<dlocal.group> += 1
doswitch <local.group> - 1
sysmessage @88,3,0
enddo
endif
On=@SkillGain
return 1
[FUNCTION f_return_skillgroup]
doswitch <argn>
local.group= 1 //Alchemy //0
local.group= 5 //Anatomy //1
прив написал в аську
On=@SkillSuccess
if <<argn>> < <skillclass.<argn>>
call f_return_skillgroup
tag.skillgain_<dlocal.group> += 1
doswitch <local.group> - 1
sysmessage @88,3,0
enddo
endif
On=@SkillGain
return 1
[FUNCTION f_return_skillgroup]
doswitch <argn>
local.group= 1 //Alchemy //0
local.group= 5 //Anatomy //1
Да... там по группам начисляются очки... кол-во я никак не отрегулировал... просто +1.
а сам диалог надо отдельно делать.
Лично в моем диалоге группы по цветам различаются. и можно очки группы в скиллы переливать.
Ну как бы для крафта есть свой триггер... и если там есть что посчитать... то всегда можно это посчитать.
Для других навыков аналогично надо писать ТЗ как что считать....
Доступ кстати прямо из этой функции - можно ввести какой-то коэффициент для разных навыков, возможно связать его как-то с уровнем навыка.
Так что это не сложность... просто время написать ТЗ.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)