Схема(система) за левели(нива)

CosaNostra

Registered
Здравейте!

Трябва ми схема за качване на левели. Ще се опитам да я опиша възможно най-точно.

Аз съм ниво 1. За да стигна ниво 2 трябва да кача 100 exp ( опит ). Щом достигна нужния опит искам да ми се изпраща съобщение, че съм качил ниво. Нивото ми вече е 2 и нужния ми опит е 300. Щом го достигна искам процеса да се повтаря отново.

Надявам се да сте ме разбрали и благодаря предварително за помощта
 
PHP:
if($row['opit'] >= 100) {
echo 'Вие сте ниво 2';
} else {
echo 'Вие сте ниво 1';
}
:?:
Съобщенията си ги оправи сам, проблема е там, че ако искаш да праща съобщения трябва да записваш нивата в дб :)
И тогава ще стане така, че когато направи повече от 100 опит да нулира опита и да дига +1 ниво :) И ще проверяваш ако опита е 100 да изпраща съобщения, после ако е 300 и т.н. :) Става по-сложно!
 
Ev0luti0N каза:
PHP:
if($row['opit'] >= 100) {
echo 'Вие сте ниво 2';
} else {
echo 'Вие сте ниво 1';
}
:?:
Съобщенията си ги оправи сам, проблема е там, че ако искаш да праща съобщения трябва да записваш нивата в дб :)
И тогава ще стане така, че когато направи повече от 100 опит да нулира опита и да дига +1 ниво :) И ще проверяваш ако опита е 100 да изпраща съобщения, после ако е 300 и т.н. :) Става по-сложно!

Това, което си ми дал като пример го направих и аз и не ми върши никаква работа

ПП: Нивата ми се записват в БД.
 
Мисля,че това ще ти помогне :
PHP:
<?php
if($_SESSION['name']) {
$name = $_SESSION['name'];
$_1 = "SELECT * FROM group WHERE name = '$name'";
$_2 = mysql_query($_1);
$check = mysql_fetch_array($_2);
$lvl = $check['lvl'];
$exp = $check['exp'];
if($lvl == '0') { $need = '250'; }
if($lvl == '1') { $need = '1000'; }
if($lvl == '2') { $need = '5000'; }
if($lvl == '3') { $need = '25000'; }
if($lvl == '4') { $need = '100000'; }
if($lvl == '5') { $need = '250000'; }
if($lvl == '6') { $need = '500000'; }
if($lvl == '7') { $need = '1000000'; }
if($lvl == '8') { $need = '2500000'; }
if($lvl == '9') { $need = '5000000'; }
if(($exp > $need) && $lvl < '10') {
mysql_query("UPDATE group SET lvl = lvl + 1 WHERE name = '$name'");
echo 'Ти качи ниво!<br />'; }} ?>
 
Имаш ли някаква формула по която си смяташ опита за следващото ниво?
Аз ползвам ето тази функция:
Код:
	function check() {
		$l = $this->player->level +1; //нивото в момента +1
		$exp = $this->player->exp; //опита в момента
		$next = (100*$l+$l*10*($l-1))*$l; //формулата за опита
		if($exp >= $next) {
			//заявка за вдигане на нивото в БД
			return TRUE;
		} else {
			return FALSE;
		}
	}
И ако функцията върне TRUE извеждам съобщение за качено ниво
 

Back
Горе