ДействиеСценарий / Говнокод #5004 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
package _3d
{

    public class Vector extends Object
    {
        private var xx:Number;
        public var z:Number;
        private var L:Number;
        private var zz:Number;
        private var yy:Number;
        private var c:Number;
        public var x:Number;
        public var y:Number;
        private var s:Number;

        public function Vector(param1:Number = 0, param2:Number = 0, param3:Number = 0)
        {
            x = param1;
            y = param2;
            z = param3;
            return;
        }// end function

        public function mul(param1:Number) : void
        {
            x = x * param1;
            y = y * param1;
            z = z * param1;
            return;
        }// end function

        public function normalize() : void
        {
            var _loc_1:* = length;
            L = length;
            if (_loc_1 > 0)
            {
                x = x / L;
                y = y / L;
                z = z / L;
            }
            return;
        }// end function

        public function revolutiony(param1:Number) : void
        {
            c = Math.cos(param1);
            s = Math.sin(param1);
            zz = z;
            xx = x;
            z = zz * c - xx * s;
            x = zz * s + xx * c;
            return;
        }// end function

        public function revolutionz(param1:Number) : void
        {
            c = Math.cos(param1);
            s = Math.sin(param1);
            xx = x;
            yy = y;
            x = xx * c - yy * s;
            y = xx * s + yy * c;
            return;
        }// end function

        public function toString() : String
        {
            return "(" + x + "," + y + "," + z + ")";
        }// end function

        public function clone() : Vector
        {
            return new Vector(x, y, z);
        }// end function

        public function revolutionx(param1:Number) : void
        {
            c = Math.cos(param1);
            s = Math.sin(param1);
            yy = y;
            zz = z;
            y = yy * c - zz * s;
            z = yy * s + zz * c;
            return;
        }// end function

        public function add(param1:Vector) : void
        {
            x = x + param1.x;
            y = y + param1.y;
            z = z + param1.z;
            return;
        }// end function

        public function crossProduct(param1:Vector) : Vector
        {
            return new Vector(y * param1.z - z * param1.y, z * param1.x - x * param1.z, x * param1.y - y * param1.x);
        }// end function

Запостил: Lure Of Chaos Lure Of Chaos, (Updated )

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

  • этот код шедевр, но всю гениальность столь не тревиального решения тупым приматам не понять
    Ответить
  • public function revolutiony
    public function revolutionx
    public function revolutionz
    Возможно объединить?..
    --
    var _loc_1:* - это Вы так названия переменным даёте?
    (очень похоже на дебаг swf)...
    Ответить
    • это не я, это я флеш-игруху декомпилил.
      меня смущает другое: полное отсутствие каких-либо структур и массивов. Че, неужто экшонскрипт не обзавелся такими вещами?
      Ответить
        • а вот это че?
          private var xx:Number;
                  public var z:Number;
                  private var L:Number;
                  private var zz:Number;
                  private var yy:Number;
                  private var c:Number;
                  public var x:Number;
                  public var y:Number;
                  private var s:Number;

          по-моему, и здесь можно было использовать то же самое
          Ответить
          • Это - описание свойств класса Vector. Прямого аналога сишного struct нет, т.к. в нём нет смысла в AS. Массивы/хэши есть в полном объёме. В том числе и типизированные (Vector), которые автор кода неосторожно переопределил. Видать, не пользуется. Или использует классы по полному имени.
            Ответить
          • Это объявление тех самых полей, к которым обращаются через точку. Вы просто запостили сюда непонятный Вам код, да?
            Ответить
      • Кстати при декомпиляции, есть такие декомпиляторы, которые лезут в библиотеки и декомпилируют библиотечные фукнции тоже...
        Ответить
        • sothink swf decompiler. Среди поделок этого жанра мне как-то этот показался более адекватным... Вам не приходилось таким заниматься?
          Ответить
          • Да, SourceTec'овская тулза наиболее адекватная. Но я при вскрытии swf'ок применяю гибридный метод: частично вскрываю нативным дебаггером (OllyDBG).
            Ответить
          • > sothink swf decompiler
            это он... точно он...

            А вот OllyDBG юзать пока не приходилось...
            Ответить
            • Olly не для отладки swf, если что. Это дизассемблер/дебаггер нативного кода. Я его использую хитро: загоняю swf в standalone Flash Player (который exe, а не плагин к браузеру или ActiveX) и "олькой" дебажу сам Flash Player. Фишка в том, что Flash Player наиболее адекватно распаковывает swf, поскольку они для него родные.

              SourceTec'овская софтина, кстати, использует схожий подход: заставляет флэшевский ActiveX загрузить swf и вытягивает распакованные им ресурсы. На простых флэшках работает отлично. А вот на хитростях с использованием недокументированных AVM-опкодов или на попытках защитить swf от декомпиляции, часто валится.

              В общем, не нужно заставлять машину делать человеческую работу. И наоборот. 😉
              Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8