22

» WarCraft 3 / как создать возможность проходить юнитам под платформой?

такая реализация сложная. Но фича есть и возможно но все это надо jass кодить с таймером. Так как я делал такой на 2D свою игру поэтому знаю как делать. Но в варкрафт сделаем изврашеным способом.
Делаеш облость где юнит может над аркой ходить. То если юнит вошел то запоминаем ему высоту. И переодически сверям в случаем если он покинул то сброс чтобы выглядел как он упал с арки. Короче не для слабых программирование. Учитивая там у вас в карте видимо мноо таких обьектов. не считай статичный рельеф с ровным размером 62 или 128 высоту чтобы фиксировать положение юнитов

если юнит вошел в облость внизу под аркой то вручаем абилку ворон и меняем высоту. То есть сохраняем текуший высота данного юнита. А если он покинул облость то ест где выделено ровно аркой то делаем сброс абилку ворот который может спустить вниз как падение юнита. А случае если он низу то падение не заметиш
22

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Для просмотр анимации не проще создать в редакторе и там есть левое просмотр героя и стрелка анимации
22

» WarCraft 3 / Simple Button & 4:3 Screen

SIMPLE Это готовый шаблон который автоматически создан и нарисован без jass
22

» WarCraft 3 / Перенос карты с 1.26 на 1.31

как бы не utf8 а другая кодировка устаревший вот и покуда перенос сломался в кракозябры
22

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Meddin:
Интересно, следы дождя на воде и всплески от попаданий артиллерии в воду завезут или нет?
Так в классике есть брызги от дождя в попадание в воде.
22

» WarCraft 3 / Заряды способности

8gabriel8, такая хитрость делаем 5 таких способностей. А в коде заполнять массив равкод
И каждый абилку по разному количеств. Например у тя было 5 заряд и он тратит с память кода количест данного равкода когда он имеет равно 1 то устанавливаем галочку заряд кончилось. Или при покупке сверяем равкод если это 5 зарядный и тратил 2 раза то 3 + (1 новый купленый) то удаляем равкод и вручаем равкод с 4 заряд.

если вы не планируетесь 100 заряд конечно
22

» WarCraft 3 / Заряды способности

Bergi_Bear, можно. При использывания удалить и вручить заного. Он востанавливает заряд.
22

» WarCraft 3 / Почему происходит ретаргет цели?

ну если юнит быстро бьет то цель не меняет. Но если его бьет кто то другой то он меняет цель так как оглушеный цель не бьет то теряет приоритет в случае если его не бьет другие мобы то он продолжает данного обьекта бить
22

» WarCraft 3 / Cannot find appropriate CD keys

обын~PT153:
Не знаю с чёрным дизайном сайта
С чёрным ссылки лучше выделяются.
Нет.
Да, жирным лучше видно.
Обычно делают его иконка на ссылку стрелку показывает чтобы легче понять где ссылка в тексте так как не все телефоны могут его видеть под яркостью =) Ну ббкод дописать добавить картинку маленкую рядом с ссылкой в тексте
22

» WarCraft 3 / Lua и ООП

какие вы фигни расказываете.

--
-- Реализация класса с наследованием
--

function Class(parent)
	local class = {}
	local mClass = {}

	-- Сам класс будет метатаблицей для объектов.
	-- Это позволит дописывать ему метаметоды.
	class.__index = class

	-- Поля объектов будут искаться по цепочке __index,
	-- и дотянутся, в том числе, до родительского класса.
	mClass.__index = parent

	-- Резервируем поле Super под родителя.
	class.Super    = parent


	-- Функция, которая будет вызываться при вызове класса
	function mClass:__call(...)
		local instance = setmetatable({}, class)

		-- Резервируем поле класса "init"
		if type(class.init) == 'function' then
			-- Возвращаем экземпляр и всё что он вернул функцией init
			return instance, instance:init(...)
		end

		-- Но если её нет - тоже ничего.
		return instance
	end

	return setmetatable(class, mClass)
end

-- Основной класс.
Shape = Class()

function Shape:init(x, y)
	-- в качестве self мы сюда передаём инстанс объекта.
	self.x = x or 0
	self.y = y or 0

	return '!!!'
end

function Shape:posArea()
	return self.x * self.y
end

-- Так как таблица Shape является метатаблицей для рождаемых ей объектов,
-- мы можем дописывать ей метаметоды.
function Shape:__tostring()
	return '[' .. self.x .. ', ' .. self.y ..']'
end

local foo, value = Shape(10, 20)

print('foo, value', foo, value) --> [10, 20] !!!

-- Наследник
Rectangle = Class(Shape)

function Rectangle:init(x, y, w, h)
	-- В данный момент, self - это пустая таблица,
	-- к которой прицеплена таблица Rectangle, как мета.

	-- Вызов родительских методов через Super.
	self.Super.init(self, x, y)
	-- Вызов собственных методов при инициализации - тоже возможен.
	self.w, self.h = self:getDefault(w, h)
end

function Rectangle:area()
	return self.w * self.h
end

function Rectangle:getDefault(w, h)
	return w or 10, h or 20
end

function Rectangle:__tostring()
	return '['..self.x..', '..self.y..', '..self.w .. ', '..self.h..']'
end

rect = Rectangle(10, 20, 30, 40)

print('rect',           rect)           --> [10, 20, 30, 40]

print('rect:area()'   , rect:area())    --> 30 * 40 = 1200

-- Вызов родительского метода
print('rect:posArea()', rect:posArea()) --> 10 * 20 = 200
22

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

tysch_tysch:
pro100master, можно договориться лично
Спасибо! Но жена купила рубашку CrossCode (игрушка) вполне достаточно =) Мб подумаю и закажу!
22

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

то есть переплюнуть правила кодирование на основе кода? У каждый код есть стандарт правильного кодирование. Это и есть прирост самооценки. Иначе говнокодеры будет тех кто учил у говнокодера =) Так и пораждает последователи. Например вы читаете у человека туториал освоили все азы его понимание так и вы клонируете его навыка. Ну обьяснять нет смысла когда тут 20% поймут о чем!