Помощник
|
Вопрос о PHP (таблица опыта) |
OldSpice
|
Сообщение
#1
|
||
|
|
||
|
|||
webpavilion |
6.4.2012, 19:39;
Ответить: webpavilion
Сообщение
#2
|
|
Подскажите пожалуйста какое-нибудь решение! http://dev.mysql.com/doc/refman/5.0/en/case-statement.html и http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html самый простой вариант. -------------------- Не ведитесь, cамопис это почти всегда плохо! Делаю сайты на Drupal 7.x (очень дорого) |
|
|
OldSpice
|
Сообщение
#3
|
|
Там темный лес
Может какая-то функция есть с описанием, чтобы я мог разобраться? |
|
|
dan1 |
6.4.2012, 21:28;
Ответить: dan1
Сообщение
#4
|
|
Если уровень конечен, что можно создать таблицу с опытом и соотношением его с уровнем. Если не хотите париться с процедурами в MySQL, можно создать функцию расчёта уровня в PHP. Можете привести формулу расчёта уровня от опыта? Или хотя бы продолжите последовательность, а то в голову приходит несколько формул.
PS. Насколько я понимаю, формула является рекуррентной, иначе проблем бы не возникло. Сообщение отредактировал dan1 - 6.4.2012, 21:31 |
|
|
OldSpice
|
Сообщение
#5
|
|
Короче говоря сейчас такой вариант.
function getLevel($exp){ $levels = array( 1 => 1000, 2 => 2000, 3 => 3000, 4 => 4000, 5 => 5000); if ($exp <= $levels[1]) return 'Level 1'; if ($exp <= $levels[2]) return 'Level 2'; if ($exp <= $levels[3]) return 'Level 3'; if ($exp <= $levels[4]) return 'Level 4'; if ($exp <= $levels[5]) return 'Level 5'; } И в профиле игрока выводим как <?=getLevel($user['exp_war'])?> Но есть проблема. Допустим при 4001 опыта, должен быть 4 уровень. А выводится пятый. |
|
|
dan1 |
6.4.2012, 21:59;
Ответить: dan1
Сообщение
#6
|
|
Вот вам рекуррентный вариантик...
function getLevel($exp) { if($exp < 1000) return 0; $decrement = 3000; $lvl = 1; while($exp - $decrement >= 1000) { $lvl++; $exp -= $lvl*$decrement; } return $lvl; } echo getLevel(100000); А то что вы делаете, можно как раз сделать с помощью CASE THEN в MySQL. Сообщение отредактировал dan1 - 6.4.2012, 22:06 |
|
|
xdvix |
6.4.2012, 23:49;
Ответить: xdvix
Сообщение
#7
|
|
Функцию, а там
if($Опыт<$макс_значение для уровня){ $ur = X; } if(условие){ $ur = X; } if(условие){ $ur = X; } if(условие){ $ur = X; } if(условие){ $ur = X; } if(условие){ $ur = X; } и т.д. В переменную попадет максимальное значение Вотой вариант это определить шаг прогрессии к примеру 1.1+X или 3.5 И выполнять необходимые матем. действия -------------------- |
|
|
webpavilion |
6.4.2012, 23:54;
Ответить: webpavilion
Сообщение
#8
|
|
Короче говоря сейчас такой вариант. жесть... то же самое делает только правильно: function trans($points) { return floor($points/1000); } Вот вам рекуррентный вариантик мне кажется ваш код работает неправильно...
Сообщение отредактировал webpavilion - 6.4.2012, 23:54 -------------------- Не ведитесь, cамопис это почти всегда плохо! Делаю сайты на Drupal 7.x (очень дорого) |
|
|
dan1 |
7.4.2012, 7:45;
Ответить: dan1
Сообщение
#9
|
|
мне кажется ваш код работает неправильно... Я делал функцию под последовательность значений из первого сообщения (там можно предположить, что каждое последующее значение расчитывается из предыдущего). function trans($points) { return floor($points/1000); } Ну, а это конечно будет работать. Только вот если всё так просто зачем тс изначально описал другие значения.. как можно вывести из базы это значение SELECT FLOOR(exp/1000) AS level FROM table
|
|
|
webpavilion |
7.4.2012, 9:30;
Ответить: webpavilion
Сообщение
#10
|
|
|
Я делал функцию под последовательность значений из первого сообщения с учетом того что ТС дает провотеричивые задания, оба варианты верны, извените если задел. Такое лучше делать в mysql в любом случаи. Получилась как всегда ТС просит подсказать, а в итоге все получает готовое решение.
-------------------- Не ведитесь, cамопис это почти всегда плохо! Делаю сайты на Drupal 7.x (очень дорого) |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3426 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1246 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44947 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1894 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3409 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 25.4.2024, 21:45 |