Система опыта и уровней

Печать RSS
436


2000 лет д.н.э.
0
9. XwiruS,
1 - 20
2 - 20*1.5 = 30 (50 summary)
3 - 30*1.5 = 45 (95 summary)
4 - 45*1.5 = 77 (172 summary)
5 - 77*1.5 = 115 (287 summary)
типа того.
грубо говоря, прикидыкаешь коэффициент (1.5 я от балды взял)
запускаешь цикл и пишешь в бд или файл, сразу прям до тысячи.
смотришь че получится, если нормально - оставляешь, если много\мало - меняешь коэффициент (его кстати тоже динамическим можно сделать, например 1.5 * ( 1+ ( ceil( level / 10 ) / 100 ) )

Добавлено через 03:39 сек.
на 50ом уровне коэффициент будет 1.5 * (1 + ( ( 50/10 [5]) / 100 [0.05]) [1.05])
1,5∗1,05=1,575

Добавлено через 07:01 сек.
ее, раз уж занялся играми, опытом и т.д. загугли формула диминишинга
очень активно используется в современных играх

2000 лет д.н.э.
0
http://media.diablofans.com/images/news/2012/august/patch/exp3.jpg рабочая таблица, из игры. можешь просто изменить числа, сохранив пропорции
Автор
Пацак
0
ramzes, Благодарю за разъяснение!
А за димишинг отдельное спасибо smile

Добавлено через 05:28 сек.
Плюсануть не могу, так, как уже плюсовал(
Автор
Пацак
0
12. ramzes, Вот к чему пришел, вполне удовлетворительные цифры.
<?php
$lvl = 0;
$exp = 20;
for($i=0;$i<100;$i++){
	if($lvl<10){
	$lvl = $lvl+1;	
	$exp = $exp*1.5 ;
	echo ''.$i.' => '.$lvl.' == '.round($exp).'<br/>';}
	elseif($lvl<40){
	$lvl = $lvl+1;	
	$exp = $exp*1.2 ;
	echo ''.$i.' => '.$lvl.' == '.round($exp).'<br/>';	
	}
	else{
	$lvl = $lvl+1;	
	$exp = $exp*1.2 ;
	echo ''.$i.' => '.$lvl.' == '.round($exp).'<br/>';	
	}
	
}?>
Изменил: Алексей (18.02.2015 / 08:31)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск