Опит на герой

ronaldinho_880

Registered
Някаква идея как да направя, когато героя вдигне малко опит да се пълни една колбичка например до следващото ниво ? Например 1 ниво е от 0 до 100, как да направя така че когато стане 50 опит да е пълна колбичката до средата ? Когато е на 25 да е пълна 1/4 от колбичката(или нещо подобно на loading bar само че да се пълни с качване на опита ). Дано някой да е схванал :)
 
Ето моето решение, само че аз тук го нарпавих с пиксели, а не с проценти, но лесно може да се обърне :)
PHP:
<?php
$max_progressbar_width = 300; // дължината на прогресбара колко да е МАХ
$current_bar_procentage = 0; // колко да е запълнено по подразбиране
$current_hero_ability = 1570; // КОЛКО е ТЕКУЩАТА СИЛА на героя
$max_hero_ability = 1570; // КОЛКО Е МАКСИМАЛНАТА
$current_bar_procentage =  ceil(($current_hero_ability / $max_hero_ability)  * $max_progressbar_width) - 5;
//echo $current_bar_procentage;
?>
<div style='padding:2px;border:1px solid #ccc;background:#fcfcfc;width:<?php echo $max_progressbar_width;?>px;'>
	<div style='height:10px;margin:2px;background:#265CFF;width:<?php echo $current_bar_procentage;?>px;'></div>
</div>

:idea: :?: :?:
 
joTunkiq каза:
Ето моето решение, само че аз тук го нарпавих с пиксели, а не с проценти, но лесно може да се обърне :)
PHP:
<?php
$max_progressbar_width = 300; // дължината на прогресбара колко да е МАХ
$current_bar_procentage = 0; // колко да е запълнено по подразбиране
$current_hero_ability = 1570; // КОЛКО е ТЕКУЩАТА СИЛА на героя
$max_hero_ability = 1570; // КОЛКО Е МАКСИМАЛНАТА
$current_bar_procentage =  ceil(($current_hero_ability / $max_hero_ability)  * $max_progressbar_width) - 5;
//echo $current_bar_procentage;
?>
<div style='padding:2px;border:1px solid #ccc;background:#fcfcfc;width:<?php echo $max_progressbar_width;?>px;'>
	<div style='height:10px;margin:2px;background:#265CFF;width:<?php echo $current_bar_procentage;?>px;'></div>
</div>

:idea: :?: :?:

Получава се, но как да направя на следващото ниво да започва да се пълни наново ?
 
ronaldinho_880 каза:
joTunkiq каза:
Ето моето решение, само че аз тук го нарпавих с пиксели, а не с проценти, но лесно може да се обърне :)
PHP:
<?php
$max_progressbar_width = 300; // дължината на прогресбара колко да е МАХ
$current_bar_procentage = 0; // колко да е запълнено по подразбиране
$current_hero_ability = 1570; // КОЛКО е ТЕКУЩАТА СИЛА на героя
$max_hero_ability = 1570; // КОЛКО Е МАКСИМАЛНАТА
$current_bar_procentage =  ceil(($current_hero_ability / $max_hero_ability)  * $max_progressbar_width) - 5;
//echo $current_bar_procentage;
?>
<div style='padding:2px;border:1px solid #ccc;background:#fcfcfc;width:<?php echo $max_progressbar_width;?>px;'>
	<div style='height:10px;margin:2px;background:#265CFF;width:<?php echo $current_bar_procentage;?>px;'></div>
</div>

:idea: :?: :?:

Получава се, но как да направя на следващото ниво да започва да се пълни наново ?

Можеш примерно със един for цикъл да го направиш.Примерно ако имаш 10 нива, да се изпълнява докато героя ти не стане 10-то ниво.Или нещо такова
 
Ще се наложи да промениш малко кода .. :D Значи може да се напрви по доста начини, но най-простия е като записваш теушия левл на поребителя ($_SESSION['user_level']) в ДБ и го предаваш в тази променлива още при логина, ккато и ТЕКУЩИТЕ ТОЧКИ които са направени от героя ($_SESSION['user_hero_points']).. тя може да идва от ДБ, смисал да е $r[нещо си .. ] .. като цяло съм коминтирал подробно .. ако искаш да го схванеш .. ЧЕТИ внимателно :)

PHP:
<?php
//да не забравиш да стартираш сесиите инак няма да работи .. 
// --- > session_start();
//-----------------------------
$user_current_level = $_SESSION['user_level']; // това е ТЕКУЩОТО НИВО нА ПОТРЕБИТЕЛЯ
// идва от ДБ или по скоро ЛОГИНА .. може да се казва и по друг начин
$max_hero_ability = 17505; // КОЛКО Е МАКСА на 1-ви левел
$max_hero_ability = ($user_current_level * $max_hero_ability); // колко ТРЯБВА ДА НАРПАВИ на следващото ниво(не променяй, ако не разбираш)
$max_progressbar_width = 300; // дължината на прогресбара колко да е МАХ
$current_bar_procentage = 0; // колко да е запълнено по подразбиране
$current_hero_ability = $_SESSION['user_hero_points']; // КОЛКО е ТЕКУЩАТА СИЛА на героя
// това също идва от логина или от ДБ .. може и по друг начин да се казва .. 
//да сметнем процента
$current_bar_procentage =  floor(($current_hero_ability / $max_hero_ability)  * 100);
// същинската работа .. 
// ако ТОЧКИТЕ са на макс ...
if($current_hero_ability >= $max_hero_ability)
{
     // гледай да не излиза от квадратчетоо, затова сметни наново
		$current_bar_procentage =  floor(($current_hero_ability / $max_hero_ability)  * 100);
	 // ---------------------
	 // вдигни нивото 
		$_SESSION['user_level']++; // просто добавя 1 към нивото
	 // може и да направиш със всяко ниво да се качват и максималните точки ..
	 // но ще го закоментрарам, ако ти трябва си го разкоментирай .. :)
	 //-----------------------
		$max_hero_ability = ($user_current_level * $max_hero_ability);
	 //-----------------------
}
// изкарайй ейтъй да има ... 
echo "<b>".$_SESSION['user_level']."</b> LV -> ".$current_hero_ability." / <b>".$max_hero_ability."</b>";


?>

<div style='padding:2px;border:1px solid #ccc;background:#fcfcfc;width:<?php echo $max_progressbar_width;?>px;'>

	<div style='height:10px;margin:2px;background:#265CFF;width:<?php echo $current_bar_procentage;?>%;'></div>

</div>

:idea: :idea: :?: :?:
 
Revelation каза:
HTML5 предлага готови progressbar-ове

http://slides.html5rocks.com/#semantic-tags-2

Става дума за самите сметки и логиката, прогрес бара може да си го направи и с флаш ако му се занимава да търси, моето беше просто пример :idea: :?: Като се замисля май ще е по-добре да ползва html5 за прогрес бара :D :?:
 
joTunkiq каза:
Revelation каза:
HTML5 предлага готови progressbar-ове

http://slides.html5rocks.com/#semantic-tags-2

Става дума за самите сметки и логиката, прогрес бара може да си го направи и с флаш ако му се занимава да търси, моето беше просто пример :idea: :?: Като се замисля май ще е по-добре да ползва html5 за прогрес бара :D :?:

За сметките нищо не писах, защото ти му писа. Не съм видял точно какво си му дал, но реших поне за прогресбара да му дам по-модерно решение.
 

Back
Горе