1. PHP / Говнокод #27582

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    if($account['lvl']=="1"){ $exp=round($account['exp']*100/52);}
    if($account['lvl']=="2"){ $exp=round((($account['exp']-52)/(110))*100,2);}
    if($account['lvl']=="3"){ $exp=round((($account['exp']-135)/(832-135))*100,2);}
    if($account['lvl']=="4"){ $exp=round((($account['exp']-832)/(3547-832))*100,2);}
    if($account['lvl']=="5"){ $exp=round((($account['exp']-3547)/(9658-3547))*100,2);}
    if($account['lvl']=="6"){ $exp=round((($account['exp']-9658)/(15478-9658))*100,2);}
    if($account['lvl']=="7"){ $exp=round((($account['exp']-15478)/(18478-15478))*100,2);}
    if($account['lvl']=="8"){ $exp=round((($account['exp']-18478)/(30789-18478))*100,2);}
    if($account['lvl']=="9"){ $exp=round((($account['exp']-30789)/(72394-30789))*100,2);}
    if($account['lvl']=="10"){ $exp=round((($account['exp']-72394)/(138789-72394))*100,2);}
    if($account['lvl']=="11"){ $exp=round((($account['exp']-138789)/(214787-138789))*100,2);}
    if($account['lvl']=="12"){ $exp=round((($account['exp']-214787)/(398747-214787))*100,2);}
    if($account['lvl']=="13"){ $exp=round((($account['exp']-398747)/(587058-398747))*100,2);}
    if($account['lvl']=="14"){ $exp=round((($account['exp']-587058)/(824585-587058))*100,2);}
    if($account['lvl']=="15"){ $exp=round((($account['exp']-824585)/(1247858-824585))*100,2);}
    if($account['lvl']=="16"){ $exp=round((($account['exp']-1247858)/(1558789-1247858))*100,2);}
    if($account['lvl']=="17"){ $exp=round((($account['exp']-1558789)/(1985478-1558789))*100,2);}
    if($account['lvl']=="18"){ $exp=round((($account['exp']-1985478)/(2245857-1985478))*100,2);}
    if($account['lvl']=="19"){ $exp=round((($account['exp']-2245857)/(2785896-2245857))*100,2);}
    if($account['lvl']=="20"){ $exp=round((($account['exp']-2785896)/(3685478-2785896))*100,2);}
    if($account['lvl']=="21"){ $exp=round((($account['exp']-3685478)/(4169875-3685478))*100,2);}
    if($account['lvl']=="22"){ $exp=round((($account['exp']-4169875)/(5125478-4169875))*100,2);}
    if($account['lvl']=="23"){ $exp=round((($account['exp']-5125478)/(5999999-5125478))*100,2);}
    if($account['lvl']=="24"){ $exp=round((($account['exp']-5999999)/(7145877-5999999))*100,2);}
    if($account['lvl']=="25"){ $exp=round((($account['exp']-7145877)/(8791755-7145877))*100,2);}
    if($account['lvl']=="26"){ $exp=round((($account['exp']-8791755)/(10691755-8791755))*100,2);}
    if($account['lvl']=="27"){ $exp=round((($account['exp']-10691755)/(12791755-10691755))*100,2);}
    if($account['lvl']=="28"){ $exp=round((($account['exp']-12791755)/(15191755-12791755))*100,2);}
    if($account['lvl']=="29"){ $exp=round((($account['exp']-15191755)/(18091755-15191755))*100,2);}
    if($account['lvl']=="30"){ $exp=round((($account['exp']-18091755)/(21191755-18091755))*100,2);}
    if($account['lvl']=="31"){ $exp=round((($account['exp']-21191755)/(24491755-21191755))*100,2);}
    if($account['lvl']=="32"){ $exp=round((($account['exp']-24491755)/(27991755-24491755))*100,2);}
    if($account['lvl']=="33"){ $exp=round((($account['exp']-27991755)/(31691755-27991755))*100,2);}
    if($account['lvl']=="34"){ $exp=round((($account['exp']-31691755)/(35791755-31691755))*100,2);}
    if($account['lvl']=="35"){ $exp=round((($account['exp']-35791755)/(40391755-35791755))*100,2);}
    if($account['lvl']=="36"){ $exp=round((($account['exp']-40391755)/(45591755-40391755))*100,2);}
    if($account['lvl']=="37"){ $exp=round((($account['exp']-45591755)/(51491755-45591755))*100,2);}
    if($account['lvl']=="38"){ $exp=round((($account['exp']-51491755)/(58191755-51491755))*100,2);}
    if($account['lvl']=="39"){ $exp=round((($account['exp']-58191755)/(65791755-58191755))*100,2);}
    if($account['lvl']=="40"){ $exp=round((($account['exp']-65791755)/(74391755-65791755))*100,2);}
    if($account['lvl']=="41"){ $exp=round((($account['exp']-74391755)/(83991755-74391755))*100,2);}
    if($account['lvl']=="42"){ $exp=round((($account['exp']-83991755)/(94591755-83991755))*100,2);}
    if($account['lvl']=="43"){ $exp=round((($account['exp']-94591755)/(106191755-94591755))*100,2);}
    if($account['lvl']=="44"){ $exp=round((($account['exp']-106191755)/(118791755-106191755))*100,2);}
    if($account['lvl']=="45"){ $exp=round((($account['exp']-118791755)/(132391755-118791755))*100,2);}
    if($account['lvl']=="46"){ $exp=round((($account['exp']-132391755)/(146991755-132391755))*100,2);}
    if($account['lvl']=="47"){ $exp=round((($account['exp']-146991755)/(162591755-146991755))*100,2);}
    if($account['lvl']=="48"){ $exp=round((($account['exp']-162591755)/(179191755-162591755))*100,2);}
    if($account['lvl']=="49"){ $exp=round((($account['exp']-179191755)/(196791755-179191755))*100,2);}
    if($account['lvl']=="50"){ $exp=round((($account['exp']-196791755)/(215391755-196791755))*100,2);}

    Расчет % заполнения шкалы уровня в зависимости от опыта

    Запостил: EndoCrinolog, 20 Августа 2021

    Комментарии (26) RSS

    • Гу и как бы ты это сделал, мм? Что, не знаешь? А человек хотя бы попробовал, постарался.
      Ответить
      • Ну хотя бы сложить экспу для каждого уровня в массив, а потом в одну строчку по нему получать нужное значение...
        Ответить
      • очевидно, таблицей
        Ответить
    • А почему такие странные границы между левлами, их от балды руками писали что ли?

      До шестого левла видно рост, на каждый уровень нужно всё больше и больше экспы. И вдруг на седьмом-восьмом просадка, их получить легче чем шестой. Потом в районе 13-14 опять какая-то херня, выбивающаяся из графика...
      Ответить
      • Первая и вторая производные няобходимого опыта:
        >>> e = [x - y for (x, y) in zip(exp[1:], exp)]; e
        [83, 697, 2715, 6111, 5820, 3000, 12311, 41605, 66395,
         75998, 183960, 188311, 237527, 423273, 310931, 426689,
         260379, 540039, 899582, 484397, 955603, 874521, 1145878,
         1645878, 1900000, 2100000, 2400000, 2900000, 3100000, 3300000,
         3500000, 3700000, 4100000, 4600000, 5200000, 5900000, 6700000,
         7600000, 8600000, 9600000, 10600000, 11600000, 12600000, 13600000,
         14600000, 15600000, 16600000, 17600000]
        >>> e = [x - y for (x, y) in zip(e[1:], e)]; e
        [614, 2018, 3396, -291, -2820, 9311, 29294, 24790, 9603,
         107962, 4351, 49216, 185746, -112342, 115758, -166310, 279660,
         359543, -415185, 471206, -81082, 271357, 500000, 254122, 200000,
         300000, 500000, 200000, 200000, 200000, 200000, 400000, 500000,
         600000, 700000, 800000, 900000, 1000000, 1000000, 1000000, 1000000,
         1000000, 1000000, 1000000, 1000000, 1000000, 1000000]

        Видня, что в нячале уровни подбирались няобум, а с середины нячинаются какие-то разорванные куски степенных функций.
        Ответить
        • > няобум

          Попытка привязать к ранним квестам, чтобы нужные уровни вовремя набились по сюжету?
          Ответить
          • Скорее всего да. Баланс — дело тонкое.
            Ответить
            • >*100,2

              Проиграл с говноэпсилона в плавающем питухе.
              Вероятно чтобы результат был гарантировано больше 100.
              А ниже стоит $exp = min(100, $exp) или if ($exp >= 100)
              Ответить
              • > говноэпсилона

                Проценты же.

                (exp - level_exp[level]) / (level_exp[level + 1] - level_exp[level]) * 100
                Ответить
        • Даб Тэ Ба Ня?
          Ответить
    • что будет на уровне 51?
      Ответить
      • Мультик покажут.
        Ответить
      • Вот вам тут ха-ха, а я играл в игру, где был максимальный уровень прокачки (не помню, какой именно, пусть будет 30) и был предмет, требующий 30 уровня. Не помню, сколько времени я вдолбил на прокачку с 29 до 30 уровня, но в итоге оказалось, что из-за бага (или нет? :trollface: ) значение опыта просто пробегало мимо и 30 уровня не получалось.
        Ответить
    • if($account['lvl']==N){ $exp=round((($account['exp']-N*3935835.1)/(N*4307835.1-N*3935835.1))*100,2);}
      Ответить
      • Ну и что? Думаешь, это хороший код? Это типичный односторочник: ничего не понятно, да ещё и бага и есть, наверняка! Явное лучше неявного, вообще-то. Надо не лениться, а писать побольше, за это вообще-то зарплату платят.
        Ответить
      • Давайте в жопу ебаться
        Ответить
      • > /(N*4307835.1-N*3935835.1))*100,2
        N можно вынести как общий множитель и продолжить constant propagation
        Ответить
    • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
      Ответить
    • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
      Ответить
    • На краю кровати безжизненным телом лежала Настя ее всю в сенниках, ссадинах и кровоподтеках трахал какай-то пидар.
      Ответить
    • Мы забрызгивали Натку спермой с головы до ног! Буквально! Сперма была у нее на лице, на животе, на ногах, на волосах…
      Ответить
    • Мы забрызгивали Натку спермой с головы до ног! Буквально! Сперма была у нее на лице, на животе, на ногах, на волосах…
      Ответить

    Добавить комментарий