30

» Elven Union / Бета-версия Elven Union

Большинство делают на нём моды, потому что MME изначально создан для этого. Как ты думаешь, почему большинство используют Windows для игр, нежели Linux?
Можно так подумать, что виндовз изначально создавался для игр
30

» Администрация XGM / Нестареющая классика — футболки XGM

но есть Аквапарк!
В том же здании есть картинг, где можно наглядно сравнить скорость программистов)
30

» Администрация XGM / Нестареющая классика — футболки XGM

Главное, понять, сколько у нас людей в Киеве вообще есть.
Я пока ещё на галерах в Броварах)
30

» WarCraft 3 / Common.j

Принятый ответ
а из новых архивов вк3 я даже без понятия как вытащить...
CascView пробовали?
30

» WarCraft 3 / Серия стратегий "Войны древности"

В каждой игре есть свои недостатки, как, впрочем, и в людях.
Тоесть предлагается с этим просто мириться?
30

» WarCraft 3 / Изменение языка в редакторе

Принятый ответ
Если убрать из карты блоки кода, все триггеры с "custom code" и очистить "custom code" карты то сменить можно.
30

» WarCraft 3 / Серия стратегий "Войны древности"

В войнах древности отвратительно убогий "pathfinding", что никак не фиксится.
30

» WarCraft 3 / UnitGroup течет (DestroyGroup не помогает)

как быть в таком случае? как чистить аналогичные утечки?
В идеальном случае перейти на jass или подождать, пока ответят те, кто работают на GUI в 1.27.
И удостоверится, что течёт именно тот код.
30

» WarCraft 3 / Lua и ООП

поэтому лучше погуглить решения от спецов в Lua, которые ерунду не понапишут
Я конечно не спец, но ерунду напишу. Простейший пример метатаблиц
Unit = { x = 0, y = 0 }
function Unit:new (id, unitid, x, y, face)
	local data = {}
	setmetatable(data, self)
	self.__index = self
	data.unit    = CreateUnit(id, unitid, x, y, face)
	return data
end
function Unit:x(x)
	if x == nil then return GetUnitX(self.unit) end
	SetUnitX(self.unit, x)
	return self
end
function Unit:y(y)
	if y == nil then return GetUnitY(self.unit) end
	SetUnitY(self.unit, y)
	return self
end
function Unit:xy(x, y)
	if x == nil and y == nil then return GetUnitX(self.unit), GetUnitY(self.unit) end
	SetUnitX(self.unit, x)
	SetUnitY(self.unit, y)
	return self
end
function Unit:name(name)
	if name == nil then return GetUnitName(self.unit) end
	BlzSetUnitName(self.unit, name)
	return self
end

local u = Unit:new(Player(0), FourCC('hfoo'), 0, 0, 0)
u:x(13):y(3):name('OOP mazafaka')
30

» WarCraft 3 / UnitGroup течет (DestroyGroup не помогает)

Принятый ответ
Ваш код раскрывается в
function GetUnitsInRectMatching takes rect r, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsInRect(g, r, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction
Вот эта группа и течёт.
30

» WarCraft 3 / Lua и ООП

Избыточность информации усложняет и делает невозможным усваивание материала, нельзя начинать учить что-то, давая сразу всю инфу, нужно абстрагировать от глаз всё что происходит за кулисами и скормить лишь суть, как этим воспользоваться.
А потом пропускать мимо ушей критику вооружившись аргументом "работает же"
prog:
Drulia_san, фигню понаписал, у тебя методы создаются для каждого экземпляра, а должны для индексной таблицы создаваться один раз, иначе зачем тебе метатаблица и индексная таблица тогда...
30

» WarCraft 3 / В hashtable один массив на все handle?

Принятый ответ
Если кратко, то да. Если подробно, то функции Save*Handle являются ссылкой на SaveWidgetHandle и поэтому их нужно сохранять под разными индексами.
30

» WarCraft 3 / Lua и ООП

Потому что это удобно.
ООП не серебрянная пуля, чтоб пихать его всюду.
Не думай вообще что это такое, знание этого тебе ничего не даст, просто скопируй
И правильно, зачем думать? Просто копируй, потом копируй скопированное, потом на 100500 итерации копирования беги в QA и задавай вопросы в стиле "нииирабоотаит".
30

» WarCraft 3 / Lua и ООП

когда у тебя в руках молотов всё вокруг кажется гвоздями
Напоминает это
<?php
/********************************************************************
Model-View-Controller implementation according to POSA
(Pattern-Oriented Software Architecture
  http://www.hillside.net/patterns/books/Siemens/book.html)
********************************************************************/
 
class HelloWorldController {
    private $model;
    function __construct($model) {
        $this->model = $model;
    }
 
    function handleEvent($args) {
        $this->model->setStrategy($args[2]);
        $this->model->addText($args[1]);
    }
}
 
 
class HelloWorldModel {
    private $text;
    private $observers = array();
    private $strategy;
    
    function attach($observer) {
        $this->observers[] = $observer;
    }
 
    function getData() {
        $facade = new HelloWorldFacade($this->strategy);
        return $facade->getHelloWorld().$this->text."\n";
    }
 
    function addText($text='') {
        $this->text = $text;
        $this->notify();
    }
 
    function setStrategy($strategy) {
        $this->strategy = $strategy;
    }
    
    function notify() {
        foreach ($this->observers as $observer) {
            $observer->update();
        }
    }
}
 
class HelloWorldView {
    private $model;
 
    function initialize($model) {
        $this->model = $model;
        $model->attach($this);
        return $this->makeController();
    }
 
    function makeController() {
        return new HelloWorldController($this->model);
    }
 
    function update() {
        $this->display();
    }
 
    function display() {
        echo $this->model->getData();
    }
}
 
 
/*********************************************************************
"Business logic"
********************************************************************/
 
class HelloWorld {
   function execute() {
       return "Hello world";
   }
}
 
class HelloWorldDecorator {
   private $helloworld;
   function __construct($helloworld) {
       $this->helloworld = $helloworld;
   }
 
   function execute() {
       return $this->helloworld->execute();
   }
}
 
abstract class HelloWorldEmphasisStrategy {
    abstract function emphasize($string);
}
 
class HelloWorldBangEmphasisStrategy extends HelloWorldEmphasisStrategy {
    function emphasize($string) {
       return $string."!";
    }
}
 
class HelloWorldRepetitionEmphasisStrategy extends HelloWorldEmphasisStrategy {
    function emphasize($string) {
       return $string." and ".$string." again";
    }
}
 
class HelloWorldEmphasizer extends HelloWorldDecorator {
   private $strategy;
   function HelloWorldEmphasizer($helloworld,$strategy) {
       $this->strategy = $strategy;
       parent::__construct($helloworld);
   }
 
   function execute() {
       $string = parent::execute();
       return $this->strategy->emphasize($string);
   }
}
 
class HelloWorldStrategyFactory {
    static function make($type) {
        if ($type == 'repetition') return self::makeRepetitionStrategy();
        return self::makeBangStrategy();
    }
 
    static function makeBangStrategy() {
        return new HelloWorldBangEmphasisStrategy;
    }
    static function makeRepetitionStrategy() {
        return new HelloWorldRepetitionEmphasisStrategy;
    }
}
 
class HelloWorldFormatter extends HelloWorldDecorator {
   function execute() {
       $string = parent::execute();
       return $string."\n";
   }
}
 
class HelloWorldFacade {
    private $strategy;
    function __construct($strategyType) {
        $this->strategy = HelloWorldStrategyFactory::make($strategyType);
    }
 
    function getHelloWorld() {
        $formatter = new HelloWorldFormatter(
                new HelloWorldEmphasizer(
                    new HelloWorld,$this->strategy));
        return $formatter->execute();
    }
}
 
$model = new HelloWorldModel;
$view = new HelloWorldView;
$controller = $view->initialize($model);
$controller->handleEvent($_SERVER['argv']);
30

» WarCraft 3 / Lua и ООП

Почему все носятся с ООП как с писанной торбой и пытаются применить её ко всем ЯП?
30

» WarCraft 3 / Моя попытка создания системы отрядов, версия 1.26a

Hate, может имелось ввиду, что нужно сократить?
function patrol takes nothing returns nothing
    local unit f = GetEnumUnit()
    local real x = GetOrderPointX()
    local real y = GetOrderPointY()
    call IssuePointOrder( f, "patrol", x,y)
    set f = null
endfunction
function patrol takes nothing returns nothing
    call IssuePointOrder( GetEnumUnit(), "patrol", GetOrderPointX(),GetOrderPointY())
endfunction
30

» WarCraft 3 / [lua] Собираем lua с помощью lua

Странный у вас метод
Какой есть, конструктивные замечания принимаются.
Хотя я же на ноде пишу забудь...
Возьмите с полки пирожок. А пока будете это делать напишите, какое это имеет отношение к этой теме.
30

» Администрация XGM / Рейтинг на сайте

У тебя зацикленность на коде. Кроме разработчиков она никому не важна.
Это же пример. Таки примеров можно найти множество в других специализациях.
30

» Администрация XGM / Рейтинг на сайте

ИМХО думаю нужно изначально вывести правило - зачем нужен рейтинг. На данный момент рейтинг не показывает абсолютно ничего. Ведь все мнения неравнозначны. Простейший пример:
Кто-то выкладывает красивый спэлл с отвратительным утечным кодом. 10 кодеров ставят минус ибо код нелицеприятно пахнет, и 100 юзеров ставят плюс ибо на видео всё красиво. Рядовой юзер видет соотношение и решает что спэлл хорош и плодит распространение говнокода в массы.
30

» Администрация XGM / Рейтинг на сайте

но были реально перегибы, когда новичка незаслуженно гнобили.
Если новичёк не умеет пользоваться гуглом и читать буквы то это одно, а если спрашивает ньюанс, который знает 3.5 человека на сайте, то то другое. Грань тонка.