1. Список говнокодов пользователя kyzi007

    Всего: 128

  2. Python / Говнокод #12514

    −102

    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
    static PyNumberMethods __pyx_tp_as_number_DMetaphone = {
      0, /*nb_add*/
      0, /*nb_subtract*/
      0, /*nb_multiply*/
      0, /*nb_divide*/
      0, /*nb_remainder*/
      0, /*nb_divmod*/
      0, /*nb_power*/
      0, /*nb_negative*/
      0, /*nb_positive*/
      0, /*nb_absolute*/
      0, /*nb_nonzero*/
      0, /*nb_invert*/
      0, /*nb_lshift*/
      0, /*nb_rshift*/
      0, /*nb_and*/
      0, /*nb_xor*/
      0, /*nb_or*/
      0, /*nb_coerce*/
      0, /*nb_int*/
      0, /*nb_long*/
      0, /*nb_float*/
      0, /*nb_oct*/
      0, /*nb_hex*/
      0, /*nb_inplace_add*/
      0, /*nb_inplace_subtract*/
      0, /*nb_inplace_multiply*/
      0, /*nb_inplace_divide*/
      0, /*nb_inplace_remainder*/
      0, /*nb_inplace_power*/
      0, /*nb_inplace_lshift*/
      0, /*nb_inplace_rshift*/
      0, /*nb_inplace_and*/
      0, /*nb_inplace_xor*/
      0, /*nb_inplace_or*/
      0, /*nb_floor_divide*/
      0, /*nb_true_divide*/
      0, /*nb_inplace_floor_divide*/
      0, /*nb_inplace_true_divide*/
      #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
      0, /*nb_index*/
      #endif
    };

    kyzi007, 31 Января 2013

    Комментарии (12)
  3. ActionScript / Говнокод #12405

    −94

    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
    if (!Player.instance.friendMode && (this._complete || (this._wait == 0
            && !this._actionProgress
            && this.data.step
            && this.data.step.tags.find(BSequenceStep.TAG_INDICATOR)
            && this.data.step.waitTimeMs > 0
            )
            )
            ) {
        if (!this._ico) {
            if (!this._complete && (this.buildable.tags.find(Buildable.TAG_CREATURE) ||
                    this.buildable.tags.find(Buildable.TAG_BUSH) ||
                    this.buildable.tags.find(Buildable.TAG_CROP))) {
                this._ico = new GameObjectIco(GameObjectIco.TYPE_TALK, this);
            }
            else {
                this._ico = new GameObjectIco(GameObjectIco.TYPE_REWARD, this);
            }
            alignIco();
        }
    }
    else {
        this.removeIco();
    }

    kyzi007, 10 Января 2013

    Комментарии (19)
  4. ActionScript / Говнокод #12395

    −170

    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
    public function getDIDInventory():DIDInventory{
        if (!_didiDefined) {
            if (this.tags.find(TAG_INVENTORY)) {
                didi = new DIDInventory();
                didi.id = this.name;
                didi.icon = this.icon;
                didi.title = this.title;
                didi.ttTitle = this.title;
                didi.ttDescription = this.description;
                didi.type = DisplayedItemData.RESOURCE;
                didi.sortOrder = this.sort;
                this._didi = didi;
            } else {
                var b:Buildable = BuildableCollection.instance.getProxy(this.name) as Buildable;
                var didi:DIDInventory;
                if (b) {
                    didi = new DIDInventory();
                    didi.id = this.name;
                    didi.icon = b.icon;
                    didi.title = b.label;
                    didi.ttTitle = b.label;
                    didi.ttDescription = b.desc;
                    didi.type = DisplayedItemData.BUILDABLE;
                    didi.sortOrder = b.sortOrder;
                    this._didi = didi;
                } else {
                    var c:Consumable = ConsumableCollection.instance.getProxy(this.name) as Consumable;
                    if (c && c.tags.find(Consumable.TAG_INVENTORY)) {
                        didi = new DIDInventory();
                        didi.id = this.name;
                        didi.icon = c.icon;
                        didi.title = c.label;
                        didi.ttTitle = c.label;
                        didi.ttDescription = c.desc;
                        didi.type = DisplayedItemData.RESOURCE;
                        didi.sortOrder = c.sortOrder;
                        this._didi = didi;
                    }
                }
            }
        }
        if (this._didi) {
            this._didi.description = invMax?(this.quantity+"/"+invMax):("x"+this.quantity);
        }
        return this._didi;
    }

    К саге о ресурсах.

    kyzi007, 06 Января 2013

    Комментарии (6)
  5. ActionScript / Говнокод #12338

    −86

    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
    public class DRemoveNPC extends Directive {
        static public const NAME : String = "RemoveNPC";
    
        override public function get directiveName() : String {
            return NAME;
        }
    
        override public function validate() : Boolean {
            if (Player.instance.friendMode) {
                return false;
            }
            return super.validate();
        }
    
        //signature_args = {"id":"str"}
        override public function run() : void {
            var id : String = this.args['id'];
            var level : Level = Level.instance;
            for (var i : int = 0; i < level.npc.length; i++) {
                var id2 : String = level.npc[i];
                var npc : GameObjectDataProxy = this.facade.retrieveProxy(id2) as GameObjectDataProxy;
                if (npc.id == id2) {
                    level.npc.splice(i, 1);
                    this.sendNotification(ObjectNotifications.DELETE, npc);
                    break;
                }
            }
            this.finish();
        }
    }

    Побило все рекорды по соотношению времени / нервов. Главным образом потому что воспроизводилось раз в 10 минут потестить - обычно первый попавшийся объект и был нужным.

    kyzi007, 23 Декабря 2012

    Комментарии (10)
  6. ActionScript / Говнокод #12289

    −116

    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
    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
    public static function giveReward (
                    rewardVector : Vector.<ResourceData>,
                    mediator : GameObjectMediator,
                    collectionItem : GnomeCollectionItem = null,
                    sendAddItems : Boolean = false,
                    moneySyncCategory:String = "reward",
                    moneySyncItemId:String = null) : void
            {
                var facade : IFacade = Facade.getInstance();
                for each (var resourceData : ResourceData in rewardVector) {
                    var resourceType : String = resourceData.resourcetype;
                    if (SoundFileCollection.instance.getEntry(resourceType)) {
                        facade.sendNotification(SoundNotifications.SOUND_PLAY, resourceType);
                    }
                    else if (NoticeCollection.instance.getEntry(resourceType)) {
                        facade.sendNotification(UINotifications.SHOW_NOTICE, resourceType);
                    }
                    else if (Quests.instance.getEntry(resourceType)) {
                        var quest : Quest = Quests.instance.getProxy(resourceType) as Quest;
                        if (quest.status != QuestData.ACTIVE && quest.status != QuestData.COMPLETE) {
                            Player.instance.runDirective(DQuestActivate.NAME, {id : resourceType});
                        }
                    }
                    else if (RewardCollection.instance.getEntry(resourceType)) {
                        var rewardProxy : Reward = RewardCollection.instance.getProxy(resourceType) as Reward;
                        Reward.giveReward(rewardProxy.reward, mediator, null, sendAddItems, moneySyncCategory, moneySyncItemId);
                    }
                    else if (BehaviorCollection.instance.getEntry(resourceType)) {
                        var behavior : Behavior = BehaviorCollection.instance.getProxy(resourceType) as Behavior;
                        behavior.process();
                    }
                    else {
                        if (sendAddItems) {
                            Player.instance.runDirective(DAddItem.NAME, { 'id' : resourceType, 'value' : resourceData.quantity });
                        }
                        var consumable : Consumable = ConsumableCollection.instance.getProxy(resourceType) as Consumable;
                        if (consumable) {
                            if (consumable.tags.find(Consumable.TAG_WORKER)) {
                                Player.instance.runDirective(DPlaceHelper.NAME, {asset : consumable.flex, x : mediator.cell.cx, y : mediator.cell.cy});
                            }
                            else if (CharacterDefinitionCollection.instance.getEntry(consumable.flex)) {
                                if (resourceData.quantity > 0) {
                                    Player.instance.runDirective(DPlaceNPC.NAME, { id : consumable.id, asset: consumable.flex } );
                                } else if (resourceData.quantity < 0) {
                                    Player.instance.runDirective(DRemoveNPC.NAME, {id : consumable.id});
                                }
                            }
                        } else {
                            var charDef : CharacterDefinition = CharacterDefinitionCollection.instance.getProxy(resourceType) as CharacterDefinition;
                            if (charDef) {
                                if (charDef.tags.find(CharacterDefinition.TAG_NPC)) {
                                    if (resourceData.quantity > 0) {
                                        Player.instance.runDirective(DPlaceNPC.NAME, {id : charDef.id});
                                    } else if (resourceData.quantity < 0) {
                                        Player.instance.runDirective(DRemoveNPC.NAME, {id : charDef.id});
                                    }
                                } else {
                                    Player.instance.runDirective(DPlaceHelper.NAME, {asset : charDef.id, x : mediator.cell.cx, y : mediator.cell.cy});
                                }
                            } else {
                                Player.instance.setResource(resourceType, resourceData.quantity, true);
                                if (!moneySyncItemId && mediator) {
                                    moneySyncItemId = mediator.id;
                                }
                                var moneySync : MoneySync = new MoneySync(moneySyncCategory, moneySyncItemId, resourceType, resourceData.quantity);
                                Player.instance.sendNotification(GameNotifications.MONEY_SYNC, moneySync);
                            }
                        }
    
                        if (resourceType.indexOf('GOTO') != -1) {
                            // goto world
                            var wordId : String = resourceType.split('-')[1];
                            var uiMed:UIMediator = Facade.getInstance().retrieveMediator(UIMediator.NAME) as UIMediator;
                            uiMed.hide();
                            Player.instance.runDirective(DSetLocation.NAME, {id : wordId});
                        }
                    }
                }
                var lootObject : Object = { container : mediator.view, loot : rewardVector };
                if (collectionItem != null) {
                    lootObject.additionalItem = collectionItem;
                }
                facade.sendNotification(MidLayNotifications.ML_LOOT_OBJECT, lootObject);
                Player.instance.runDirective(CheckIn.NAME);
            }

    А вот и получение награды.

    kyzi007, 14 Декабря 2012

    Комментарии (14)
  7. ActionScript / Говнокод #12288

    −118

    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
    public function get trueReward() : Vector.<ResourceData> {
        if (!_trueReward) {
            _trueReward = new Vector.<ResourceData>;
            for (var i : int = 0; i < reward.length; i++) {
                var res : ResourceData = reward[i];
                if (res.resourcetype != 'RANDOM_COLLECTION_ITEM') {
                    _trueReward.push(res);
                } else {
                    for (var j : int = 0; j < res.quantity; j++) {
                        _trueReward.push(new ResourceData(CollectsCollection.instance.getRandomItem().id, 1));
                    }
                }
            }
        }
        return _trueReward;
    }

    CollectsCollection :)
    А еще у нас парсинг выданной награды телепортирует в другие миры и в них хранятся любые данные (см ниже).

    kyzi007, 14 Декабря 2012

    Комментарии (0)
  8. ActionScript / Говнокод #12283

    −107

    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
    private function init() : void {
        _player.runDirective(DAddItem.NAME, { 'id' : LAST_BONUS_DAY, 'value' : 0 });
        _player.runDirective(DAddItem.NAME, { 'id' : LAST_BONUS_TIME, 'value' : getTime()});
        _player.runDirective(CheckIn.NAME);
    }
    
    private function setBonusDay(day : uint) : void {
        // йобанный инкремент
        // нет, по другому записать нельзя данные на сервер
        // отрицательные значения записать тоже нельзя
    
        if (day == 0 && _lastDay > 0) {
            _player.runDirective(DAddItem.NAME, { 'id' : LAST_BONUS_DAY, 'value' : -_lastDay})
        }
        else {
            _player.runDirective(DAddItem.NAME, { 'id' : LAST_BONUS_DAY, 'value' : 1 });
        }
    
        if (day > 0) {
            sendNotification(UINotifications.SHOW_DAILY_BONUS, {level : _player.level, today : day - 1});
        }
    
        _player.runDirective(DAddItem.NAME, { 'id' : LAST_BONUS_TIME, 'value' : getTime() - _lastBonusTime });
        _player.runDirective(CheckIn.NAME);
    }

    kyzi007, 13 Декабря 2012

    Комментарии (4)
  9. ActionScript / Говнокод #12258

    −90

    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
    public static function findNeighbourEmpty(cx:int, cy:int, checkDebris:Boolean = true):Cell {
        var cell:Cell = Cell.getCell(cx, cy);
        var i:int = 0;
        var distance:int = 1;
        var n:int = 8;
        while(!cell || !cell.accessible || (checkDebris && !isEmptyTile(cell))) {
            if (i < n * distance / 4) {
                cell = Cell.getCell(cx + Math.min(i, distance), cy + Math.min(distance * 2 - i, distance));
            } else if (i < n * distance / 2) {
                cell = Cell.getCell(cx + Math.min(distance * 2 - i + n * distance / 4, distance), cy + Math.max(n * distance / 4 - i, -distance));
            } else if (i < 3 * n * distance / 4) {
                cell = Cell.getCell(cx + Math.max(n * distance / 2 - i, -distance), cy + Math.max(-distance * 2 + i - n * distance / 2, -distance));
            } else if (i < n * distance) {
                cell = Cell.getCell(cx + Math.max(-distance * 2 + i - 3 * n * distance / 4, -distance), cy + Math.min(i - 3 * n * distance / 4, distance));
            } else {
                i = 0;
                distance++;
                if (distance > MAX_NEIGHBOUR_CELL_DISTANCE) {
                    return findNeighbourEmpty(cx, cy, false);
                }
                continue;
            }
            i++;
        }
        return cell;
    }

    Какой милый метод...

    kyzi007, 06 Декабря 2012

    Комментарии (14)
  10. ActionScript / Говнокод #11937

    −121

    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
    for (var cx : int = this.cell.cx - distance; cx <= this.cell.cx + distance; cx++) {
                    for (var cy : int = this.cell.cy - distance; cy <= this.cell.cy + distance; cy++) {
                        var cell : Cell = Cell.getCell(cx, cy);
                        if (cell) {
                            for each (var object : GameObject in cell.objects) {
                                if (object.buildable &&
                                    object.buildable.tags.find(Buildable.TAG_DEBRIS) &&
                                    deletedDebris.indexOf(object.id) == -1) {
                                    deletedDebris.push(object.id);
                                }
                            }
                        }
                    }
                }

    Игра с пространством имен просто добила....
    Любителям this посвящается.

    kyzi007, 16 Октября 2012

    Комментарии (6)
  11. ActionScript / Говнокод #11841

    −95

    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
    private var _disabled:int = 0;
            public function set enabled(v:Boolean):void {
                if (!v) {
                    this._disabled ++;
                } else {
                    this._disabled --;
                }
                this.run();
            }
    
            public function get enabled():Boolean {
                return !this._disabled;
            }

    Интересно что будет если _disabled внезапно примет значение -1.

    kyzi007, 27 Сентября 2012

    Комментарии (13)