Обучение/Помощь новичкам | Помогите, уже все перерыл...
Привет всем! В общем, в моей игре есть "опыт", выглядит он в таком стиле: (сколько сейчас/сколько нужно), при зачислении все работает, но как только достигает нужного количества, бывает заходит за "рамки", например (13/10), и только после обновления, уровень повышаетсяи начинается с 0, например (0/20), но как сделать чтобы эти 3 лишние шли на следующий уровень?
Вот код зачисления:
switch($user['level']) {
case 1:
$exp = 9;
break;
case 2:
$exp = 15;
break;
case 3:
$exp = 90;
break;
case 4:
$exp = 195;
break;
case 5:
$exp = 298;
break;
case 6:
$exp = 388;
break;
case 7:
$exp = 512;
break;
case 8:
$exp = 881;
break;
case 9:
$exp = 1282;
break;
case 10:
$exp = 1932;
break;
case 11:
$exp = 2287;
break;
case 12:
$exp = 3045;
break;
case 13:
$exp = 4756;
break;
case 14:
$exp = 6390;
break;
case 15:
$exp = 8927;
break;
case 16:
$exp = 11960;
break;
case 17:
$exp = 14515;
break;
case 18:
$exp = 19023;
break;
case 19:
$exp = 25966;
break;
case 20:
$exp = 32553;
break;
case 21:
$exp = 39951;
break;
case 22:
$exp = 47205;
break;
case 23:
$exp = 58995;
break;
case 24:
$exp = 70894;
break;
case 25:
$exp = 85995;
break;
case 26:
$exp = 99192;
break;
case 27:
$exp = 120172;
break;
case 28:
$exp = 146240;
break;
case 29:
$exp = 180991;
break;
case 30:
$exp = 201027;
break;
case 31:
$exp = 240016;
break;
case 32:
$exp = 273061;
break;
case 33:
$exp = 299979;
break;
case 34:
$exp = 350000;
break;
case 35:
$exp = 500000;
break;
case 36:
$exp = 600000;
break;
case 37:
$exp = 725000;
break;
case 38:
$exp = 850000;
break;
case 39:
$exp = 975000;
break;
case 40:
$exp = 1100000;
break;
case 40:
$exp = 1100000;
break;
case 41:
$exp = 1225000;
break;
case 42:
$exp = 1350000;
break;
case 43:
$exp = 1475000;
break;
case 44:
$exp = 1600000;
break;
case 45:
$exp = 1725000;
break;
case 46:
$exp = 1850000;
break;
case 47:
$exp = 1975000;
break;
case 48:
$exp = 2100000;
break;
case 49:
$exp = 2225000;
break;
case 50:
$exp = 2500000;
break;
case 51:
$exp = 2700000;
break;
case 52:
$exp = 2900000;
break;
case 53:
$exp = 3100000;
break;
case 54:
$exp = 3300000;
break;
case 55:
$exp = 3500000;
break;
case 56:
$exp = 3700000;
break;
case 57:
$exp = 3900000;
break;
case 58:
$exp = 4100000;
break;
case 59:
$exp = 4500000;
break;
case 60:
$exp = 100000000;
break;
}
if($user['level'] != 60 && $user['exp'] >= $exp) {
$one = 1;
mysql_query("UPDATE `users` SET `exp` = `exp`-`exp` WHERE `login`='".$_COOKIE["login"]."'");
mysql_query("UPDATE `users` SET `level` = `level`+'$one' WHERE `login`='".$_COOKIE["login"]."'");
echo '<div class="block">Вы повысили уровень!</div>';
}
Вот код зачисления:
switch($user['level']) {
case 1:
$exp = 9;
break;
case 2:
$exp = 15;
break;
case 3:
$exp = 90;
break;
case 4:
$exp = 195;
break;
case 5:
$exp = 298;
break;
case 6:
$exp = 388;
break;
case 7:
$exp = 512;
break;
case 8:
$exp = 881;
break;
case 9:
$exp = 1282;
break;
case 10:
$exp = 1932;
break;
case 11:
$exp = 2287;
break;
case 12:
$exp = 3045;
break;
case 13:
$exp = 4756;
break;
case 14:
$exp = 6390;
break;
case 15:
$exp = 8927;
break;
case 16:
$exp = 11960;
break;
case 17:
$exp = 14515;
break;
case 18:
$exp = 19023;
break;
case 19:
$exp = 25966;
break;
case 20:
$exp = 32553;
break;
case 21:
$exp = 39951;
break;
case 22:
$exp = 47205;
break;
case 23:
$exp = 58995;
break;
case 24:
$exp = 70894;
break;
case 25:
$exp = 85995;
break;
case 26:
$exp = 99192;
break;
case 27:
$exp = 120172;
break;
case 28:
$exp = 146240;
break;
case 29:
$exp = 180991;
break;
case 30:
$exp = 201027;
break;
case 31:
$exp = 240016;
break;
case 32:
$exp = 273061;
break;
case 33:
$exp = 299979;
break;
case 34:
$exp = 350000;
break;
case 35:
$exp = 500000;
break;
case 36:
$exp = 600000;
break;
case 37:
$exp = 725000;
break;
case 38:
$exp = 850000;
break;
case 39:
$exp = 975000;
break;
case 40:
$exp = 1100000;
break;
case 40:
$exp = 1100000;
break;
case 41:
$exp = 1225000;
break;
case 42:
$exp = 1350000;
break;
case 43:
$exp = 1475000;
break;
case 44:
$exp = 1600000;
break;
case 45:
$exp = 1725000;
break;
case 46:
$exp = 1850000;
break;
case 47:
$exp = 1975000;
break;
case 48:
$exp = 2100000;
break;
case 49:
$exp = 2225000;
break;
case 50:
$exp = 2500000;
break;
case 51:
$exp = 2700000;
break;
case 52:
$exp = 2900000;
break;
case 53:
$exp = 3100000;
break;
case 54:
$exp = 3300000;
break;
case 55:
$exp = 3500000;
break;
case 56:
$exp = 3700000;
break;
case 57:
$exp = 3900000;
break;
case 58:
$exp = 4100000;
break;
case 59:
$exp = 4500000;
break;
case 60:
$exp = 100000000;
break;
}
if($user['level'] != 60 && $user['exp'] >= $exp) {
$one = 1;
mysql_query("UPDATE `users` SET `exp` = `exp`-`exp` WHERE `login`='".$_COOKIE["login"]."'");
mysql_query("UPDATE `users` SET `level` = `level`+'$one' WHERE `login`='".$_COOKIE["login"]."'");
echo '<div class="block">Вы повысили уровень!</div>';
}
Holter , отнимаешь от общего экспу за уровень, остаток переводишь. Или через остаток от деления реализуешь
Holter , отнимай от опыта персонажа только нужное для уровня количество опыта.
да эт нормально. в бт так же)
Евгений , он ведь обнуляется при следующем уровне:)
/// Вычисляем сколько лишнего опыта
$needExp = $user['exp'] - $exp;
/// Прибавляем
mysql_query("UPDATE `users` SET `exp` = '".$needExp."' WHERE `login`='".$_COOKIE["login"]."'");
mysql_query("UPDATE `users` SET `level` = `level`+ 1 WHERE `login`='".$_COOKIE["login"]."'");
Holter (04.02.2018 в 20:45)
Евгений , он ведь обнуляется при следующем уровне:)
Евгений , он ведь обнуляется при следующем уровне:)
`exp` = 0 так не вариант было сделать?
VarrkaN , а как сделать чтобы при повышении уровня и писало что уровень повышен и выводился уже новый уровень обновленный с нуля, чтобы не нужно было страницу для этого обновлять ещё один раз. А то у меня вот так:
------
53740_Screenshot_20180204190115.png (611.6 Kb)
Скачиваний: 79
------
Скачиваний: 79
Евгений , спасибо.
Стр.: 1, 2
