30

» WarCraft 3 / createunit at loc custom script

Принятый ответ
это луа
На двух последних картинках вполне себе джасс, только Ельнур вместо чтения статей пытается из нативки получить bj_lastCreatedUnit.


об шикарнейших скриншотах рабочего стола я уже промолчу
30

» WarCraft 3 / createunit at loc custom script

я создал с помощью нативки но переменная last created unit - не читает его собственнно этот созданный юнит не двигается и триггер ломается
Жаль кроме картинок у меня не осталось выразительных средств
Загруженные файлы
30

» WarCraft 3 / createunit at loc custom script

нихера не догнал
Попытаюсь объяснить картинками, если так не доходит
Загруженные файлы
30

» WarCraft 3 / createunit at loc custom script

что делать?
Использовать мозг
---@param id player
---@param unitid integer
---@param whichLocation location
---@param face real
---@return unit
function CreateUnitAtLoc(id, unitid, whichLocation, face) end    -- (native)
---@param count integer
---@param unitId integer
---@param whichPlayer player
---@param loc location
---@param face real
---@return group
function CreateNUnitsAtLoc(count, unitId, whichPlayer, loc, face)
	GroupClear(bj_lastCreatedGroup)
	while true do
		count = count - 1
		if count < 0 then break end
		CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
		GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
	end
	return bj_lastCreatedGroup
end
30

» AzaZzell / Веб-разработка без фреймворков

ты видимо проспал релиз HTTP/2 где большое кол-во маленьких запросов приветствуется
Кем приветствуется? Если там появилось мультиплексирование, то это не значит, что его нужно юзать гденипопадя.


Если бы оно так сильно приветствовалось, то я бы каждый селектор css вынес бы в отдельный файл и грузил бы их скопом, но что-то так никто не делает.
30

» AzaZzell / Веб-разработка без фреймворков

Один только jquery весит 87 Кб, функций которые ты почти не используешь
Я смотрю просто адские размеры без gzip, что ни один браузер их не потянет,
лучше делать 100500 GET запросов на каждый чих
30

» AzaZzell / Веб-разработка без фреймворков

Ну как сказать... Разница не велика по написанию кода, а просадка по производительности и времени первого рендера и дополнительный сетевой трафик для мобилок обеспечен
Причём тут первый рендер, если для него нужен только html и css.
ты не учел, что в результата компиляции свелт ты получаешь 2 чистых файла (js + css) или 1 (js, стили вшиваются), которые самодостаточные и ничего дополнительного не надо подключать.
Префиксы он тоже сам добавляет? Я при сборке проэкта тоже получаю всего два файла .js и .css, которые успешно попадают в кэш.
30

» AzaZzell / Веб-разработка без фреймворков

jquery устарел уже в реалиях современных браузеров и просто предоставляет бесполезные обертки над стандартными функциями JS
Обёртки над js всёравно нужно писать ибо таже работа с DOM на чистом js то ещё удовольствие, а единый синтаксис для них это удобно. Да и в глобальное пространство имён он вводит всего две переменные, что не мешает писать на чистом js сколько душе угодно. Да и не забывайте, что в ТЗ всегда может быть строчка о поддержке старых браузеров.
фуу
Аргументация уровня бог
Для этого придумали IDE, которая все делает за тебя
Autoloading уже всё сделал за меня, зачем мне ещё в каждом файле протыкивать инклуды?


alexprey, посмотрел я на Svelte и вы ещё ругаете jQuery в лишних обёртках
Притом абсолютно то же самое умеет smarty, притом одни и теже шаблоны он может собирать как на бэке, так и на фронте.
Загруженные файлы
30

» WarCraft 3 / Что я забыл?

Если бы он обновил pjass.exe, то такой ошибки не было бы.
Новый pjass удалил бы лишний return?
30

» WarCraft 3 / урон от ловкости

извините моя ошибка я в триггере где даммик умирает обнулил кастера а надо обнулять когда redmoonslashintegerskip - 1 равно 0
Я же говорил - обыкновенная невнимательность, а вы и дальше будете каждую ошибку в Q/A постить?
30

» WarCraft 3 / урон от ловкости

Ельнур, нафиг мне скриншот всего редактора? я не собирась собирать пазл из вашего триггера
30

» WarCraft 3 / урон от ловкости

там переменные все правильно стоят
А я вот не вижу, где находится присвоение этой переменной
Загруженные файлы
30

» WarCraft 3 / урон от ловкости

Принятый ответ
а если к делу - дебаг где?
Зачем, если можно спамить в QA каждую ошибку?


может ли это быть лимит операции?
Лимит операций может быть всегда, но скорее всего здесь виновата обыкновенная невнимательность.
30

» WarCraft 3 / не импортируются файлы (JNGP)

Coruxx, ну дык эта фишка в 1.31 появилась то и как говорилось выше
Hate:
смысла оставаться на 1.26 тоже нет
30

» WarCraft 3 / не импортируются файлы (JNGP)

то есть в 1.31 можно делать карты размером под 480 и по 10к декораций ляпать?
декораций вродибы 30к лимит, но это неточно
Загруженные файлы
30

» WarCraft 3 / не импортируются файлы (JNGP)

Coruxx, карту можно сохранить как папку и все файлы внутри будут читаться редактором импорта
Загруженные файлы
30

» WarCraft 3 / не импортируются файлы (JNGP)

Ну я думаю, что, наверное, есть и другие способы решения подобной проблемы
Притом очень простые - 1.31 патч и работа с картой в виде папки.
30

» AzaZzell / Веб-разработка без фреймворков

Хоть подходы и разные, по сути все они передают тебе в руки заготовки архитектуры в обмен на те проблемы что я описал.
Архитектурой в приведённых мной фрэймворках и не пахнет. Они просто позволяют делать некоторые банальные вещи проще и быстрее.

Я вообще в php херачу всё на классах со статическими методами ибо мне лень писать инклуды или запоминать нэймспэйсы. Архитектурой в этом случаем можно вертеть в любом направлении, а фрэймворки только делают банальные вещи проще.

Дешёвый роутер
index.php
ini_set("display_errors", 1);
error_reporting(E_ALL);

(function () {
	include 'include/config.php';
	include 'include/autoloader.php';
	include 'include/defines.php';
	include 'include/class/vendor/Smarty/Smarty.class.php';

	define('IS_AJAX', false);

	header::cache(false);

	comet::connect();

	try {
		router::route();
	} catch (Throwable $e) {
		http_response_code(404);
		echo '<pre>';
		echo $e->getMessage();
		echo str_repeat(chr(13) . chr(10), 2);
		var_dump($e->getTrace());
		echo '</pre>';
	}
})();
router.php
class router {
	public static function uri() {
		static $out = null;
		if (is_array($out)) return $out;

		$uri = (stripos($_SERVER['REQUEST_URI'], '?')) ? stristr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI'];
		$out = explode('/', substr($uri, 1));

		for ($i = 0; $i <= 10; $i++) {
			$out[$i] = array_key_exists($i, $out) ? trim($out[$i]) : '';
		}

		if (!preg_match('/^[a-z0-9_-]+$/i', $out[0])) $out[0] = 'home';
		return $out;
	}

	public static function route() {
		$uri = self::uri()[0];

		if (in_array($uri, ['signout', 'sign-out', 'logout'])) user::signOut();

		$folder = $uri === 'root' ? '/admin/page' : '';
		$path   = SMARTY_TEMPLATE_DIR . "/page$folder/$uri/$uri.php";

		if (is_readable($path)) {
			include $path;
			return;
		}

		header::noFound(true);
	}
}