если использовать этот способ то надо создавать больше 30 областей и это только в одной такой зоне
можно только кодом упростить (не создавать лишние 30), но все равно это только сократит число областей до 11 в вашем случае.
код
x,y - координаты центра текстуры (центр картинки смещают каждые 128 координаты, если задать координату 90, он автоматом находит ближайшую координату = 128. то есть центр не всегда там где хочешь). помогает такая функция
функция нахождения координаты
находит ближайшую координату
function RealCoord128 takes real a returns real
local real c
local integer b
local real e
local real coord = 0
if a != 0 then
set c = a/128.0
set b = R2I(c) отсекает дробь, например 1.7 равно 1
set e = c-b запись дроби, например 1.7 запишем 0.7
if a>0 and e > 0.5 then если координата положительна, и дробь больше 1/2
set b = b + 1
elseif a<0 and e < -0.5 then если координата отрицательна, и дробь меньше 1/2
set b = b - 1
endif
set coord = 128.0*b
endif
return coord
endfunction
set x =RealCoord128(x)
set y =RealCoord128(y)
terrainType - тип ланда
variation - вариация тайла (-1 = рандом)
area - размер (размер принимается в виде числа текстур (клеток), 1 - клетка, 2 - радиус круга или сторона квадрата имеет 1+2 клетки). текстура распространяется на клетку 128x128
shape - форма (квадратная круглая)
native SetTerrainType takes real x, real y, integer terrainType, integer variation, integer area, integer shape returns nothing
зная это можно написать код для больших прямоугольных (не квадратных) областей, где смещается центр
Сами взломайте, есть руки и голова.
Но учтите
триггеры не восстановить, только jass (вручную)
данные ро могут не отобразиться (могут не восстановиться как надо), смотрите в импорте, храняться в slk и текстовиках (вручную или спец программой восстановления)
Можно как и раньше, есть особые моменты:
1 ) при отдаче приказа на стройку, строитель имеет приказ здания
current_order = 'htow', 'hhou' и др (числовой приказ) юнит может изменить приказ. Пока добежит до точки, может изменить приказы
можно было бы строителю сохранять координаты приказа
2 ) когда строитель ставит здание (это событие "юнит начинает строительство", по факту в этот момент здание GetTriggerUnit() еще не поставлено, но можно узнать координаты, и тип здания и лр данные)
в этот момент можно было группой выбрать вокруг будущего здания строителя. У каждого здания разный размер площадки (квадрата), я вот беру диагональ квадрата +32. Выбирают строителя с особым условием.
Можно было проверять текущий приказ строителя. Однако, это не всегда работает. Пример:
Хуман и нежить в момент начала стройки (событие "юнит начинает строить") имеют приказ здания (этих легче найти). Возможно еще можно проверить повернут ли строитель в сторону здания (но этот вариант че то отпал)
рабочий орков и эльфов в момент стройки пропадает (как бы раб внутри здания строит) и приказ пустует (этих можно найти с помощью проверки: спрятан ли юнит, совпадают ли координаты строителя и строющего здания и приказ чекать). Но мне че то не удалось найти строителя орков и эльфов по тому условию в момент стройки, тк условие не работает, работает только спустя 0.00 сек после начала стройки
Еще один важный факт: все юниты не могут находится внутри площадки (квадрата). Поскольку мешающие юниты, даже летающие, разбегаются. Можно было это использовать для орков и эльфов, у них раб внутри остается.
Vlod, либо обнуляйте до return (полезно использовать когда boolean (например узнать пуста ли группа) или число (как пример узнать кол-во юнитов в группе).
используешь группу (объявляем локи создаем пикаем)
записываешь временные локалки например число юнитов в группе set c = ... (циклом перечитываешь)
удаляешь группу DestroyGroup(g), локи обнуляешь set g = null,
возвращаешь
boolean: return c>0 или FirstOfGroup(g) == null (если g это аргумент функции, обнулять ниче не надо тогда. можно тогда отдельную обертку написать и boolean локалку завернуть)
или integer: return c)
или как в этом случае вместо локалки используйте темповые глобалки
хотя если использовать даймика, что можно намутить конструктор танка (кто играл на сонька Warzone 2100 поймет): меняешь корпус или меняешь пушку. Это же классно. а вот с моделью танка наверн тяжелее?
неправильно подумал. я думал там два юнита: сам корпус и перемещающая за корпусом пушка. а там значит целиком один юнит
еще помню констр-страйк в варкрафте от первого лица, мб делать снайперские выстрелы из танка
идея очень хорошая, возьму на вооружению (хотя что то такое и предлагал ранее)
а нельзя ли сделать без даймика, мб модель танка с вращающей пушкой (пример) сделать?
хотя если использовать даймика, что можно намутить конструктор танка (кто играл на сонька Warzone 2100 поймет): меняешь корпус или меняешь пушку. Это же классно. а вот с моделью танка наверн тяжелее?
у тебя пушка может подниматься наверх (горизонтальные наклоны нативка делает)? стрельба по возвышенным противникам или артиллерия
Hate, ранее та функция юзала именно ретурн. можно найти а просторах интернета копию этого чуда. просто кто то из админов подтер. можно ли недоработку выставлять то? хотя мне алгоритм понрав тк интуинтивно понятный и короткий код, на ней учился разбираться, жалко не заработало
NazarPunk, там устарела, и ретурн баг не работает.
из-за
function S2Ix takes string s returns integer
//return GetHandleId(s) // changed, 20.03.2012
//return StringHash(s) // changed by ScorpioT1000, 03.04.2012
// wrong fixes =(
return s
return 0
endfunction
StringHash возвращает слишком большие числа, а массив в патче 1.26 вмещает 8192. поэтому вам эта функция в массив ничего не запишет никогда. придется переделывать. это я проходил.
карта прикольная, но ее надо дорабатывать, добавлять новое. Делайте интереснее
тут футбол чем то гандбола напоминает. Кто получил, тот и тащит мячик (ногами даже и близко не играют, свечение бегает за юнитами). Интересно тут мяч как отбирают? Тоже посредством рандома? Если находишься рядом с мячиком, автоподкат? И наверн у каждого игрока есть свои маг способности: кто-то станы кидает, заморозку, замедление, а кто то телепортацией вперед прыгает.
есть и такие карты с прыжками сальтухами навесами, но в них боятся играть, много кнопок и просчетов нужно
стрелочки (влево вправо, вверх, вниз) у них есть события зажаты кнопки или отпущены? к примеру зажата клавиша вниз, а если в этот момент используют пас (клавиша S), то пас вниз. я думаю можно фифа на варике реализовать. свою систему
PT153, не знал что можно добавлять. только потом где это все сохраненное найти
а понял, это звездочки (закладки), только они че то криво редактируются. Я только что много раз нажимал "добавить в избранное", и теперь в закладках одна и та же тема повторяется (аж 5 раз). Хочу удалить, нажимая на крестик, но открывает страницу вместо удаления. это тоже самое как удалять сообщения на почте, отмечаешь сообщения на странице, удаляешь.
сколько закладок может вместить? жалко нельзя редактировать: подписывать заметки (а то бывает через месяц не вспомнишь для чего добавил), группировать, смещать
Sheec, это легко сделать.
это нельзя строить на темных каменных участках так? почему они имеют ромбовидную форму (наверн там квадрат)? как они вообще создаются (покажи пример триггера)?
вообще то я работал только с прямоугольными и квадратными формами, можно попробовал теорию, которая уже исправно работает: при создании ромбовидных областей, создавай четырехугольник (рект под углом) и добавляй в регион. Только вот сомневаюсь, что ромб можно добавить как рект, придется поделить ромб диагоналями на треугольники и проверять точки лежит в треугольниках, далее можно точечно добавлять в регион
триггер
при событии - юнит отдает приказ точку
условие = приказ твоя ферма
проверяем лежит ли область 128x128 квадратной фермы в регионе, циклом со смещение 32 пробегаем и проверяем лежит ли ваша точка в регионе
или
есть простой способ: проверить 5 точек: центр и 4 крайние лежат ли точки регионе
затем отменить приказ и выдать системную ошибку
можно еще использовать тип текстуры = камень, в одном из slk лежат настройки этого камня
Ельнур, ни в чем разницы нет, только как это реализовано. здесь берется точка, вместо координат. так отдай приказ, в чем проблема? есть разные нативки (координаты и точка).
ну вроде все правильно. это почти что станд реализация смещения от точки под углом. пока, что все норм, единственное, что с углом у тебя проблема. во первых, у тебя утечка, угол создает точку Position of Caster. во-вторых, можно было заранее перевести в радианы и не надо было бы пихать это udg_Angle*bj_DEGTORAD в косинусы и синусы
Ред. MpW
» WarCraft 3 / Поменять тип текстуры релиефа в области.
function RealCoord128 takes real a returns real
local integer b
local real e
local real coord = 0
set b = R2I(c) отсекает дробь, например 1.7 равно 1
set e = c-b запись дроби, например 1.7 запишем 0.7
set b = b + 1
elseif a<0 and e < -0.5 then если координата отрицательна, и дробь меньше 1/2
set b = b - 1
endif
set coord = 128.0*b
endif
return coord
endfunction
set x =RealCoord128(x)
set y =RealCoord128(y)
variation - вариация тайла (-1 = рандом)
area - размер (размер принимается в виде числа текстур (клеток), 1 - клетка, 2 - радиус круга или сторона квадрата имеет 1+2 клетки). текстура распространяется на клетку 128x128
shape - форма (квадратная круглая)
Ред. MpW
» WarCraft 3 / депротект карты (за плату)
Но учтите
триггеры не восстановить, только jass (вручную)
данные ро могут не отобразиться (могут не восстановиться как надо), смотрите в импорте, храняться в slk и текстовиках (вручную или спец программой восстановления)
Ред. MpW
» WarCraft 3 / Отследить строителя (1.32+) Возможно ли?
1 ) при отдаче приказа на стройку, строитель имеет приказ здания
current_order = 'htow', 'hhou' и др (числовой приказ)
юнит может изменить приказ. Пока добежит до точки, может изменить приказы
можно было бы строителю сохранять координаты приказа
в этот момент можно было группой выбрать вокруг будущего здания строителя. У каждого здания разный размер площадки (квадрата), я вот беру диагональ квадрата +32. Выбирают строителя с особым условием.
Хуман и нежить в момент начала стройки (событие "юнит начинает строить") имеют приказ здания (этих легче найти). Возможно еще можно проверить повернут ли строитель в сторону здания (но этот вариант че то отпал)
рабочий орков и эльфов в момент стройки пропадает (как бы раб внутри здания строит) и приказ пустует (этих можно найти с помощью проверки: спрятан ли юнит, совпадают ли координаты строителя и строющего здания и приказ чекать). Но мне че то не удалось найти строителя орков и эльфов по тому условию в момент стройки, тк условие не работает, работает только спустя 0.00 сек после начала стройки
Ред. MpW
» WarCraft 3 / UnitGroup течет (DestroyGroup не помогает)
или integer: return c)
или как в этом случае вместо локалки используйте темповые глобалки
Ред. MpW
» WarCraft 3 / [Lua] Поворачиваем башню танка за курсором
» WarCraft 3 / [Lua] Поворачиваем башню танка за курсором
Ред. MpW
» WarCraft 3 / [Lua] Поворачиваем башню танка за курсором
а нельзя ли сделать без даймика, мб модель танка с вращающей пушкой (пример) сделать?
хотя если использовать даймика, что можно намутить конструктор танка (кто играл на сонька Warzone 2100 поймет): меняешь корпус или меняешь пушку. Это же классно. а вот с моделью танка наверн тяжелее?
у тебя пушка может подниматься наверх (горизонтальные наклоны нативка делает)? стрельба по возвышенным противникам или артиллерия
Ред. MpW
» WarCraft 3 / FourCC как собрать integer обратно?
Ред. MpW
» WarCraft 3 / FourCC как собрать integer обратно?
» WarCraft 3 / FourCC как собрать integer обратно?
Ред. MpW
» WarCraft 3 / Magic football
тут футбол чем то гандбола напоминает. Кто получил, тот и тащит мячик (ногами даже и близко не играют, свечение бегает за юнитами). Интересно тут мяч как отбирают? Тоже посредством рандома? Если находишься рядом с мячиком, автоподкат? И наверн у каждого игрока есть свои маг способности: кто-то станы кидает, заморозку, замедление, а кто то телепортацией вперед прыгает.
Ред. MpW
» WarCraft 3 / Кто знает как встроить картинку в карту?
вот
Ред. MpW
» Администрация XGM / в блоге у меня не опубликованы материалы?
Ред. MpW
» Администрация XGM / в блоге у меня не опубликованы материалы?
Ред. MpW
» WarCraft 3 / запретить постройку в точке областью
это нельзя строить на темных каменных участках так? почему они имеют ромбовидную форму (наверн там квадрат)? как они вообще создаются (покажи пример триггера)?
создавай четырехугольник (рект под углом) и добавляй в регион. Только вот сомневаюсь, что ромб можно добавить как рект, придется поделить ромб диагоналями на треугольники и проверять точки лежит в треугольниках, далее можно точечно добавлять в регионусловие = приказ твоя ферма
проверяем лежит ли область 128x128 квадратной фермы в регионе, циклом со смещение 32 пробегаем и проверяем лежит ли ваша точка в регионе
или
есть простой способ: проверить 5 точек: центр и 4 крайние лежат ли точки регионе
затем отменить приказ и выдать системную ошибку
» WarCraft 3 / Ищу разработчика для карты Лорды Европы за оплату!
» WarCraft 3 / Где в карте хранится значок Blizzard ?
» WarCraft 3 / Ищу разработчика для карты Лорды Европы за оплату!
» WarCraft 3 / Ищу разработчика для карты Лорды Европы за оплату!
» WarCraft 3 / x y?
Ред. MpW
» WarCraft 3 / x y?
» WarCraft 3 / Точка со смещением, конус и т.п.
» WarCraft 3 / x y?
Ред. MpW
» WarCraft 3 / x y?
у тебя утечка, угол создает точку Position of Caster
» WarCraft 3 / x y?