Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69

Система уровня и опыта!

03.09.2014, 20:17. Показов 1566. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! подскажите пожалуйста как можно сделать в игре уровни и опыт.... никаких соображений нет((
объясните или скиньте пример код!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2014, 20:17
Ответы с готовыми решениями:

Какого уровня тестовые задания при приеме на работу ребят без опыта
Всем привет. Краткая предыстория: высшее образование у меня гуманитарное, но чёрт дернул меня идти в программисты (всегда хотел в IT,...

Система расчета опыта, как в Steam
checkRank()//каждый раз идет обращение к функции при операциях, связанных с опытом { $oldrk=$rank;//записываем в переменную, и если...

Подскажите как побороть такую задачу: Есть формула по которой просчитывается значение для каждого опыта. Например для опыта
Добрый день форумчане. Подскажите как побороть такую задачу: Есть формула по которой просчитывается значение для каждого опыта....

20
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
03.09.2014, 21:28
Создается таблица (можно и по формуле вычислять) с указанием какому уровню сколько опыта соответствует. За каждое ключевое событие начисляется опыт. Количество выбирает разработчик/гейм-дизайнер. Показатели сравниваются. Профит.
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
04.09.2014, 00:42  [ТС]
TanaTiX, извини пожалуйса..... но можно пример кода..?? я всеравно не врубился....
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
04.09.2014, 18:11
60reg, с примером кода вряд ли - сейчас почти нет времени.
Ну например, допустим у нас опыт для получения уровня равен уровень*500. Следовательно если у персонажа 1485 опыта, то это соответствует 2-му уровню (тут чисто математика, код не должен понадобиться). Персонаж выполнил квест на 30 очков, следовательно у него 1515 опыта, что больше 1500, что соответствует 3-му уровню. Как-то так.
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
04.09.2014, 21:39  [ТС]
TanaTiX, я так понял тут нужны массивы..., а у меня с ними полное горе....
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
05.09.2014, 18:54
Цитата Сообщение от 60reg Посмотреть сообщение
я так понял тут нужны массивы..., а у меня с ними полное горе....
Придется изучать - без них Вы ничего сделать не сможете. На самом деле ничего сложного в массивах нет, если по-русски, то это обычный нумерованный список. Так как любой массив - это экземпляр класса Array, то предварительно его нужно объявить.
Два способа объявления масива ниже идентичны - выбирайте тот, который больше нравится.
ActionScript 3
1
2
var arr:Array = new Array();
var arr:Array = [];
Массив готов, теперь вы можете обращаться к любому номеру в списке.
Все, что вы можете сделать это либо записать значение, либо прочитать его.
Обращение к элементам массива происходит следующим образом:
ActionScript 3
1
arr[i]; // i - номер элемента массива - нумерация начинается с нуля.
вернемся к нашему массиву и запишем в него данные
ActionScript 3
1
2
3
trace(arr[1]); // пока что тут ничего нет
arr[1] = "one";
trace(arr[1]); // у нас появилась запись
Также забыл упомянуть, что при инициализации массива его можно сразу заполнить даннымиЖ
ActionScript 3
1
2
var arr:Array = [ "one", "two", "three" ];
trace(arr[1]);
также существуют различные метода для управления массивом (нахождение индекса элемента, удаление элементов, добавление элементов - о них вы можете прочитать подробнее в руководстве Adobe).
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
05.09.2014, 20:16  [ТС]
Theoryofgames, я Вас правильно понял??

ActionScript 3
1
2
3
4
5
6
function exp():void {
    var levels:Array = [100, 250, 400, 550, 700];
    if (levels = rating) {
        leves +1;
    }
}
rating - это значение из БД.
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
07.09.2014, 18:10
Цитата Сообщение от 60reg Посмотреть сообщение
if (levels = rating)
наверно все-таки
ActionScript 3
1
levels == rating;
А вообще это сравнение некорректно - вы сравниваете массив с числом.
Должно быть что-то вроде этого
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const levels:Array = [ 10, 20, 30, 40, 50, 60 ];
var curExp:int = 45; // значение опыта
var curLevel:int = 3; // текущий уровень
var getRealLevel:Function = function() : int
{
  for (var i:int = 0; i < levels.length; ++i)
  {
    var data:int = levels[i];
    if (data > curExp) return i;
  }
  return level.length; // максимальный уровень
}
var realLevel:int = getRealLevel();
if (curLevel != realLevel)
  curLevel = realLevel; // меняем уровень
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
07.09.2014, 19:05  [ТС]
Theoryofgames, все равно что-то не то.... или я не так делаю....
Все по порядку!

Объявлена переменная rating
ActionScript 3
1
var rating:Number;
rating берется из БД, и выводиться во флеш так:
ActionScript 3
1
rating_res.text = String(xml.user.rating);
подставил код, который выше указан, немного изменив....,
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const levels:Array = [ 10, 20, 30, 40, 50, 60 ];
var rating:int = 45; // значение опыта
var curLevel:int = 3; // текущий уровень
var getRealLevel:Function = function() : int
{
  for (var i:int = 0; i < levels.length; ++i)
  {
    var data:int = levels[i];
    if (data > rating) return i;
  }
  return level.length; // максимальный уровень
}
var realLevel:int = getRealLevel();
if (curLevel != realLevel)
  curLevel = realLevel; // меняем уровень
сделал текстовое поле level,
но безрезультатно.... ошибок нет, и в поле level тоже ничего нет!!
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
08.09.2014, 12:37
Цитата Сообщение от 60reg Посмотреть сообщение
return level.length; // максимальный уровень
Здесь у меня опечатка
ActionScript 3
1
return levels.length
Цитата Сообщение от 60reg Посмотреть сообщение
но безрезультатно.... ошибок нет, и в поле level тоже ничего нет!!
а где вы ему что-то присваиваете?
После вот этого:
Цитата Сообщение от 60reg Посмотреть сообщение
if (curLevel != realLevel) curLevel = realLevel; // меняем уровень
пропишите
ActionScript 3
1
trace(curLevel);
и посмотрите, что выводится.
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
08.09.2014, 14:03  [ТС]
Theoryofgames, в трейсе вроде как выводт уровень т.к. написано у Вас, но вот в чем беда..

когда вставляю своё значение rating, выводит 0 (ур.) это получается что мои данные не читает...

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const levels:Array = [ 50, 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600 ];
var xml:XML = new XML(loader.data);
var rating:int = xml.user.rating;
var curLevel:int;
var getRealLevel:Function = function() : int
{
  for (var i:int = 0; i < levels.length; ++i)
  {
    var data:int = levels[i];
    if (data > rating) return i;
  }
  return levels.length
 
}
var realLevel:int = getRealLevel();
if (curLevel != realLevel)
  curLevel = realLevel; 
 
trace(curLevel);
Добавлено через 17 минут
Theoryofgames, Спасибо огромное разобрался!!!

Добавлено через 23 минуты
Theoryofgames, а такой вопрос...... как прикрутить прогресс бар??

я сделал мувик levelBar

ActionScript 3
1
2
levelBar.width = 139;
levelBar.x ==rate;
но ничего не выходит(
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
08.09.2014, 17:54
Цитата Сообщение от 60reg Посмотреть сообщение
evelBar.x ==rate;
= - это присвоение
== - это сравнение
Вы что хотели сделать ?

Вам нужно знать следующие вещи
1 - количество опты до след уровня
2 - текущее кол-во опыта на данном уровне
ActionScript 3
1
2
3
4
5
const maxBarWidth:Number = 100; // максимальная длина прогресс бара
var expAtCurLevel:int = 500;
var expTillNextLevel:int = 1000;
var realWidth:Number = maxBarWidth * (expAtCurLevel / expTillNextLevel);
bar.width = realWidth;
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
08.09.2014, 18:06  [ТС]
Theoryofgames, что-то не понял:
ActionScript 3
1
2
3
4
5
const maxBarWidth:Number = 133; // максимальная длина прогресс бара
var expAtCurLevel:int = 5000; //что именно тут?
var expTillNextLevel:int = 10000; // тут писать levels?
 var realWidth:Number = maxBarWidth * (expAtCurLevel / expTillNextLevel);
levelBar.width = realWidth;
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
08.09.2014, 18:22
ActionScript 3
1
2
var expAtCurLevel:int = 5000;      // количество опыта на текущем уровне
var expTillNextLevel:int = 10000;  // количество опыта необходимое до следующего опыта
например:
ActionScript 3
1
2
3
4
var level:Array = [ 10, 20, 30, 40, 50, 60 ];
var exp:int = 53;
var expAtCurLevel:int = 3; // [53 - 50];
var expTillNextLevel:int = 7; // [60 - 53];
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
08.09.2014, 18:35  [ТС]
Theoryofgames, все равно у меня ничего не выходит......

не могли-бы Вы мне помочь собрать два кода в один.?
вот:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const levels:Array = [10,30,100,200,400,700,1200,2000,3300,4800,6500,9100,12500,17100,25400,,152000,201200];
var rating:int = xml.user.rating;
var curLevel:int;
var getRealLevel:Function = function() : int
{
  for (var i:int = 0; i < levels.length; ++i)
  {
    var data:int = levels[i];
    if (data > rating) return i;
  }
  return levels.length
 
}
var realLevel:int = getRealLevel();
if (curLevel != realLevel)
  curLevel = realLevel; 
 
level.text = String(curLevel);
и вот:
ActionScript 3
1
2
3
4
5
const maxBarWidth:Number = 133; // максимальная длина прогресс бара
var expAtCurLevel:int = 5000; //что именно тут?
var expTillNextLevel:int = 10000; // тут писать levels?
 var realWidth:Number = maxBarWidth * (expAtCurLevel / expTillNextLevel);
levelBar.width = realWidth;
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
08.09.2014, 18:54
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const levels:Array = [10,30,100,200,400,700,1200,2000,3300,4800,6500,9100,12500,17100,25400,,152000,201200];
var rating:int = xml.user.rating;
var curLevel:int;
var getRealLevel:Function = function() : int
{
  for (var i:int = 0; i < levels.length; ++i)
  {
    var data:int = levels[i];
    if (data > rating) return i;
  }
  return levels.length
 
}
var realLevel:int = getRealLevel();
if (curLevel != realLevel)
  curLevel = realLevel; 
 
level.text = String(curLevel);
 
const maxBarWidth:Number = 133; // максимальная длина прогресс бара
var expAtCurLevel:int = rating - levels[curLevel];
var expTillNextLevel:int = levels[curLevel + 1] - rating;
var realWidth:Number = maxBarWidth * (expAtCurLevel / expTillNextLevel);
levelBar.width = realWidth;
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
08.09.2014, 19:00  [ТС]
Theoryofgames, все равно прогресс бар не шевелиться...
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
09.09.2014, 10:07
Цитата Сообщение от 60reg Посмотреть сообщение
Theoryofgames, все равно прогресс бар не шевелиться...
Так он должен меняться только при изменении каких-то значений.
0
0 / 0 / 2
Регистрация: 07.07.2013
Сообщений: 69
09.09.2014, 15:09  [ТС]
Theoryofgames, так я и так изменяю параметр rating, а прогресс бар всегда полный!
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
09.09.2014, 17:28
вместо
Цитата Сообщение от Theoryofgames Посмотреть сообщение
var expTillNextLevel:int = levels[curLevel + 1] - rating;
ActionScript 3
1
var expTillNextLevel:int = levels[curLevel + 1] - levels[curLevel];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2014, 17:28
Помогаю со студенческими работами здесь

Однозначное отделение (классификация) оборудования уровня ядра/аггрегации от уровня доступа
Всем привет. Возник такой вопрос: можно ли по функциям или по железу понять уровень железки (ядра, аггрегации, доступа). Или это всё...

Как выбрать элемент 1 уровня многомерного массива по значениям 2 уровня?
Доброе время суток. Есть массив фруктов, у каждого элемента есть название и цена. $arr = array( array( 'name' =&gt;...

Как отсортировать элементы 1 уровня многомерного массива по значениям 2 уровня?
Доброе время суток. Есть массив фруктов, у каждого элемента есть название и цена. $arr = array( array( 'name' =&gt; 'banana', ...

Как найти элемент 1 уровня многомерного массива по значению его элемента 2 уровня?
Есть многомерный массив типа такого: Array ( =&gt; Array ( =&gt; Алексей =&gt; 34 ...

Перенаправление с домена третьего уровня на домен второго уровня
Здравствуйте. Возможно ли с помощью htaccess перенаправлять адреса от домена третьего уровня, на домен второго уровня? Например чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru