Калькулятор талантов
#1
Отправлено 15 February 2017 - 16:12
http://www.levelbase...33!51644289a532
если кто-нибудь найдёт калькулятор получше - не ленитесь поделиться ссылкой.
#2
Отправлено 15 February 2017 - 16:42
#3
Отправлено 15 February 2017 - 17:47
#6
Отправлено 16 February 2017 - 08:08
#7
Отправлено 16 February 2017 - 10:58
konkere (16 February 2017 - 08:08) писал:
var perksCounter = 0; $(".perk.info .perk-rank").each(function(indx, element){perksCounter += +(element.innerText).match(/(\d+)\//)[1];;}); perksCounterВыведет количество взятых перков.
upd. На странице уровень считается правильно пока не перезагружаешь, тогда счетчик ломается. Дописала счетчик, который считает необходимую сумму очков, но мой скрипт все равно не учитывает требования уровня к взятию перка.
var perksCounter = 0; $(".perk.info .perk-rank").each(function(indx, element){perksCounter += +(element.innerText).match(/(\d+)\//)[1];;}); var levelCounter = 0; $(".special-value").each(function(indx, element){levelCounter += +element.innerText;}); levelCounter -= 27; perksCounter + levelCounter
#8
Отправлено 16 February 2017 - 11:34
вот скрин того билда, что я хочу таки докачать до необходимого минимума и если я правильно подсчитал, то необходим 61 уровень перса, а на скрине показан 55. почему? я что ли неправильно считаю что-то?
http://yadi.sk/i/ntaMEtOf3E9WLS
похоже, что сайт работает через раз. сейчас создал билд на 127 уровень и надо же - при подсчёте всё совпало. фз от чего это зависит.
Сообщение отредактировал konkere: 16 February 2017 - 12:41
#9
Отправлено 16 February 2017 - 12:40
konkere (16 February 2017 - 11:34) писал:
Для crome: Открываем нужную страницу (ту, где нужно запустить скрипт) и жмем F12.
Нажимаем на вкладку Console:
Открывается белое поле, куда можно вводить текст (там может уже быть что-то, как ошибка в примере, не стоит на это обращать внимание). Вставляем в это поле скрипт:
И нажимаем Enter, тут же внизу выведется число - результат:
Для firefox: Открываем страницу, жмем F12.
Нажимаем на вкладку Консоль:
Тоже белое поле, но поле ввода уже снизу, пробуем туда вставить скрипт, получаем сообщение:
Оцениваем, насколько Няша злобный человек и сует тут скрипты, чтобы вас взломать! (хотя на самом желе лучше с осторожностью относиться к чужим скриптам). И все-таки вводим ручками в поле "разрешить вставку". После этого копируем скрипт, вставляем, жмем энтер, получаем результат:
Для параноиков разбор скрипта:
var perksCounter = 0; // Присваиваем в переменную perksCounter значение 0 $(".perk.info .perk-rank").each( // Выбираем все элементы с перками на странице. Ячейка таблицы имеет класс "perk info", а текст с перком класс "perk-rank". Для каждого элемента выполняется функция, описанная ниже (функция each запускает функцию внутри себя для каждого элемента массива, для javascript это нормально) function(indx, element){ // Это та самая функция indx - индекс элемента, element - сам элемент // element.innerText - текст элемента, тут будет текст "0/5" или "3/5". // (element.innerText).match(/(\d+)\//)[1] - вместо того, чтобы просто взять первый символ я зачем-то написала регулярку, которая выбирает все числа перед символом / // perksCounter += +( ... ) прибавляем к счетчику найденное число (плюс перед числом чтобы js воспринял число как число, а не как текст) perksCounter += +(element.innerText).match(/(\d+)\//)[1]; } ); var levelCounter = 0; // Присваиваем в переменную levelCounter значение 0 $(".special-value").each( // Выбираем все элементы с классом ".special-value" - это статы. И запускаем для каждого функцию: function(indx, element){ levelCounter += +element.innerText; // Просто увеличить счетчик на значение стата. Тут просто в элементе просто число без всяких там слэшей, поэтому просто. } ); levelCounter -= 27; // Отнимаем значение 27 от счетчика, чтобы исключить изначальную расстановку (7 статов изначально имеют 1, 21 очко дается по умолчанию и -1 потому что нулевого уровня нет) perksCounter + levelCounter // Это уже команда консоли - вывести сумму переменных perksCounter и levelCounter
Если кому интересно:
Любой сайт делится на 2 части - внутреннюю (сервер, бэкенд) и внешнюю (визуальная часть, фронтенд). Серверную часть менять нельзя (разве что взламывать), сервер передает тебе на комп всю визуальную часть - офромление, текст (html + css), все скрипты, которые позволяют взаимодействовать со страницей (javascript). Вся внешняя часть загружается к тебе на комп и если твой браузер умнее шестого эксплорера, то ты можешь всю эту часть менять, дописывать свои скрипты, редактировать чужие скрипты. Поэтому когда говорят о безопасности в сайтостроении, то всегда говорят о том, что нельзя верить тому, что происходит на странице после того, как сервер отдал фронтенд часть. Пользователь может сделать что угодно, но работать оно будет до следующей перезагрузки. Правда, это "что угодно" может послать на сервер какие-нибудь неожиданные данные или попытаться еще какую пакость сделать. Ну а я просто беру со страницы данные, суммирую их и выдаю результат в консоль. Ничего не ломаю, никого не обижаю, просто пользуюсь тем, что знаю.
#10
Отправлено 16 February 2017 - 12:48
#11
Отправлено 16 February 2017 - 15:25
#13
Отправлено 16 February 2017 - 17:32
#14
Отправлено 16 February 2017 - 17:45
#16
Отправлено 16 February 2017 - 17:57
#17
Отправлено 16 February 2017 - 18:09
Няш (16 February 2017 - 17:57) писал:
http://kmgame.ru/
Сообщение отредактировал Rakanishu: 16 February 2017 - 18:11
#18
Отправлено 16 February 2017 - 18:19
Rakanishu (16 February 2017 - 18:09) писал:
http://kmgame.ru/
#19
Отправлено 16 February 2017 - 19:38
Няш (16 February 2017 - 18:19) писал:
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных