Пятница, 19 Апреля 2024, 14:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Как сделать систему уровней?
Как сделать систему уровней?
Don_AlexeyДата: Понедельник, 22 Июля 2013, 22:37 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Привет, как правильно сделать уровни? В бд или прописать в файле? Я иммею ввиду: кол—во опыта для уровня, награда и т.д.

Офф. Сайт Битва за Олейрент - Это мой сайт посвящённый серии игр Битва за Олейрент.
Видео прохождение игр - Это мой сайт посвящённый прохождению игр.
FaraonДата: Понедельник, 22 Июля 2013, 22:54 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Привет, прости если я не прав, я в етом полний ноль, но я думаю что можна зделать проверку по опиту,
тоесть:
1lvl = 0 ( 0 - ето очки опита)
2lvl = 500
3lvl = 1 000
4lvl = 2 000
и так дале ...

Например наш персонаж на 1lvl и тока что он набрал больше 500 очков, то он должен перейти на уровень 2
Делаем проверку, если очков больше 500 то персонажу в базу приписиваем + один уровень и EV для повишения статов.
Я думаю что так зделаю у сябя в браузерке! Жду от тебя коментаря. Наверное не очень хороший спосиб!
last2424Дата: Понедельник, 22 Июля 2013, 22:58 | Сообщение # 3
30 мл. блоков
Сейчас нет на сайте
Faraon,
Цитата (Faraon)
больше

Поправлю больше или равно 500 то поднимаем уровни и так с каждым.

Добавлено (22.07.2013, 22:58)
---------------------------------------------
Ну, а на php это выглядит как то так:
Код

<?
$lvl = 1;
$xp = 0;
$maxp = 500;
if($xp >= $maxp){
$lvl + 1;
$maxp + 1000;
$xp = 0;
}
?>


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Понедельник, 22 Июля 2013, 23:03
FaraonДата: Понедельник, 22 Июля 2013, 22:59 | Сообщение # 4
почетный гость
Сейчас нет на сайте
например
if ( $exp > 500) $lvl = 1;
if ( $exp > 1 000) $lvl = 1;
if ( $exp > 2 000) $lvl = 1;
if ( $exp > 3 500) $lvl = 1;

$exp // свой опыт
Я собираюсь выводить с таблици "users" поле "exp" и присваивать ему переменную $exp
а потом делать проверку которую я написал с верху.


Сообщение отредактировал Faraon - Вторник, 23 Июля 2013, 01:43
last2424Дата: Понедельник, 22 Июля 2013, 22:59 | Сообщение # 5
30 мл. блоков
Сейчас нет на сайте
P.S. писал на скорою руку код надеюсь без ошибок.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Понедельник, 22 Июля 2013, 23:02
HerrPotapovДата: Вторник, 23 Июля 2013, 19:50 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Don_Alexey, по-моему никто не понял вопроса. По-крайней мере мне кажется, что автор о другом спрашивает.
Необходимо хранить данные о необходимом для получения нового уровня опыте и о награде при достижении этого уровня.
Я думаю это можно реализовать очень просто. Упрощенный вид: награда это один предмет.

Тогда создаем таблицу levels_data: int level (primary key), int exp_required, int reward FK
В reward храним id предмета который выдаем персонажу. Можно добавить еще например поле reward_money и выдавать игроку еще и деньги.

После каждого действия, ведущего к получению опыта (окончание боя, использование какого-нибудь свитка и т.п.) запускаем функцию типа этой

Код

function check_level_up($current_level, $current_exp){
   $current_level++;
   $query = "SELECT * FROM levels_data WHERE level = " . $current_level . "";
   /*Делаем запрос к БД, обрабатываем полученные данные и пакуем их в переменную $level_data*/
   if($level_data['exp_required'] <= $current_exp){
     /*Делаем левел-ап персонажу. Тут уже мало что можно написать, все зависит от архитектуры приложения.*/

     /*Типа ООП стиль*/
     $user->give_item($level_data['reward']);
     $user->give_money($level_data['reward_money']);
     $user->increase_level();

     /* Еще вариант */
     $user->level_up($level_data);

     /*А можно просто вернуть TRUE и уже разбираться с левел-апом там, откуда вызывали функцию*/
     return TRUE;
   }else{
     return FALSE;
   }
}


Discord: alpotapov#1741

Интервью с разработчиком WarCastle - Читаем и вникаем!


Сообщение отредактировал HerrPotapov - Вторник, 23 Июля 2013, 19:52
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Как сделать систему уровней?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг