GetLocalPlayer, спасибо за помощь))
понял в чем ошибка, опять не все перенес. И из-за этого обрываются действия/потоки. И мне нужно print везде чекать от начала и до.
prog, в сети можно получить, но зачастую посылают учить матчасть. Где уже все изучено здесь GetLocalPlayer, а если я создаем локалки в процессе инициализации код, они будут существовать всю игру. Или только существуют в процессе инициализации? И уже перестанут существовать? пример локалка Table?
do -- создаём область видимости, чтоб не конфликтовать с другим кодом
local InitGlobalsOrigin = InitGlobals -- хукаем функцию InitGlobals
function InitGlobals()
InitGlobalsOrigin()
local Table = { {},{},{} }
end
end
ps просто че то не выполняется правильно. Поэтому ищу причину.
makkad, да но в том то и проблема, что при смене с SD на HD редактор выдает ошибку и закрывается. Открываешь заново, и в настройках опять SD. надо наверн перегрузить комп
biridius, спасибо) бывает невнимательнвм Bergi_Bear, воспользовался вашим советом
я еще нашел ошибку в самом ректе, у него размеры не те. Короче мб дело в инициализации.
надо
do -- создаём область видимости, чтоб не конфликтовать с другим кодом
local InitGlobalsOrigin = InitGlobals -- хукаем функцию InitGlobals
<а я инициализацию глобалок сюда запихал и ниче не работает поэтому. ректы неправильно инициируются>
function InitGlobals()
InitGlobalsOrigin()
-- в этом моменте прошла инициализация карты и можно смело работать
<надо сюда писать весь код>
end
end
по-моему, четность число определяется делением на число 2. если с целыми числами. нужно будет целое число перевести в реальное число
у четных чисел не бывает дроби.
10/2=5 8/2=4 и др
у не четных чисел бывает дроби.
5/2=2.5 31/2=15.5
Есть такая функция как R2I она отсекает дробную часть. Можно благодаря ей узнать есть ли дробная часть.
r = 25.5
r1 = R2I(r) получили 25
r2 = r - I2R(r1) = 0.5
с действительными (не целыми!!) числами можно делить до сих пор пока не станет равно 1.00 или меньше 1.00. Если 1.00 значит четная, иначе нечетная.
Или отделить дробную и целую часть, и попытаться сделать как с целыми числами.
Не нрав ну что делать, jass вообще ограниченная штука. Когда я спрашивал никто не хотел помогать, тогда и собственную библиотеку писал. В вашем способе можно было и по-другому сделать
посмотри у PT153 в либе мат функции мб есть че то.
с lua кодом с этим проблем нет. кроме метатаблиц, Есть функции математические. и там же рандом ывидел.
просто вы можете сохранить в рефорджете в режиме папки. Удобно работать с папкой, весь импорт туда пихать и работать прям там с кодом в спец программах. А когда завершите, можете открыть редактор рефорджета и сохранить в формате w3x
У вас папка открывается редактором, и программами. Запускаете тест-игру там
с импортом я в рефордже в режиме папки не пробовал. так что могу ошибаться
Vlod, мб там разные кнопки? там на мини-карте 5 кнопок. Возможно, к ним имеет какое то отношение. Хотя есть еще именные названия фреймов GetFrameByName
Fly123, нужно нажать Ctrl + F. пример UITile - InventoryCover вбиваешь в поиск. Пример: ниче не находит, возможно что то автор добавил. пробуем урезать название до InventoryCover. там несколько находит
возьми импорт и посмотри как он делается у создателей импорта интерфейса на сайте, у них должен быть путь прописан. еще можно извлечь файл ui/war3skins.txt и там посмотреть или таблицу в той папке ui
//размеры экрана
real WidthScreen = 0.544
real HeightScreen = 0.302
//размеры границ камеры GetCameraBoundMaxX и GetCameraBoundMaxY равны 2816x2816
//размеры обзора камеры GetCameraBoundMaxX*WidthScreen и GetCameraBoundMaxY*HeightScreen равны 1531.904x850.432
CameraMaxX = GetCameraBoundMaxX()*WidthScreen
CameraMaxY = GetCameraBoundMaxY()*HeightScreen
Кроме того нужны 3 угла для плоскости:
//эти три параметра alpha, beta, gamma поворачиваются относительно дефольтных размеров
//надо проверять разницу, т.е. изменения с чем-то. А то смотрите угол 360, он возмет и перевернет. Потом выпадет опять 360, снова перевернет
local real alpha = ModuloReal((GetCameraField(CAMERA_FIELD_ROTATION)-bj_CAMERA_DEFAULT_ROTATION* bj_DEGTORAD), bj_PI*2)
//вращение камеры аокруг оси X относительно дефолтного размера
local real beta = ModuloReal((GetCameraField(CAMERA_FIELD_ROLL)-bj_CAMERA_DEFAULT_ROLL* bj_DEGTORAD), bj_PI*2)
//наклоны камеры вокруг оси Y относительного дефолтного размера
local real gamma = ModuloReal((GetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK)-bj_CAMERA_DEFAULT_AOA* bj_DEGTORAD), bj_PI*2)
как не пытаюсь сам понять, так и не получается. Не верна это, то что написал выше. Верно работает только для одной оси поворот. Шарнирный замок.
нашел ее информацию здесьматрицу не понимаю от чего берут.
Короче, к фрейму прикрепляют второй фрейм backdrop.
Другой вариант, это отслеживать события входа/выхода курсора мыши в фрейм. Есть ли в этом мемзаке? Когда вы двигает курсор по кнопке, выскакивает подсказка. Когда вы покидаете, подсказка исчезает. Аналогично, когда и кнопка подсвечивается, когда курсор наводят.
Fly123, зачем создавать если можно дропнуть на землю или попробовать удалить инвентарь (мб вылеты). тфу опять туплю, нигде не написано что надо из инвентаря.
у меня есть координаты мыши - x,y. как применить их тут
-- Converts window coordinate to world coordinate
-- @param v Vector3 where x and y - window coords and z - overlay range
-- @return Vector3
windowToWorld = function(self, v)
return Vector3:new(
self.eye.x+self.axisZ.x*v.z+v.x*self.axisX.x*screenWidth*v.z+v.y*self.axisY.x*screenHeight*v.z,
self.eye.y+self.axisZ.y*v.z+v.x*self.axisX.y*screenWidth*v.z+v.y*self.axisY.y*screenHeight*v.z,
self.eye.z+self.axisZ.z*v.z+v.x*self.axisX.z*screenWidth*v.z+v.y*self.axisY.z*screenHeight*v.z
)
end,
-- Converts world coordinate to window coordinate
-- @param v Vector3
-- @return Vector3
worldToWindow = function(self, v)
v = v:transform4(self.view):transform4(self.projection)
v.z = math.abs(v.z)
return v
end
а вот
-- Create a new vector from coords. Skip the coords to create a zero vector
new = function(self, x, y, z)
local o = {}
setmetatable(o,self)
o.x = x or 0.
o.y = y or 0.
o.z = z or 0.
return o
end,
откуда берутся всякие точки, двоеточие, всякие self не понятно. еще setmetatable. похоже lua надо изучать
ну смотря как она у вас работает. Вы не пишите как у вас способность должна работать. большинство стандартных автокастов заточены под определенные условия срабатывания.
когда вас атаковали или ваших союзников, пример ярость. Всякие полезные баффы вешают на союзников, вредные дебаффы на врагов.
когда нету маны или запас здоровья не полный - хил колодца или жреца, повозка нежити, ремонт здании
когда вас бьют, уходим в астрал - у лесного дракончика
диспелы: когда вешают баффы, снимаем баффы. Некоторые пример ведьмаки, воруют баффы полезные и передают другим союзникам, а вредные передают врагам
требует трупы - поввозка
стрелы
атака с самоподрывом у гоблинов
короче, чтобы сработал под нестандартные условия, вам нужно тогда имитацию делать визуально. Помню башню бобла делали так: там создавали труп, подкидывая, и здание подбирало. Получался что автокаст срабатывал и все норм. Но никогда не знает, а вдруг пойдет что-то не так. Пример, если нескольким зданиями выбросить труп, то кто-же подберет его. Можно накостылявить и радиус задавать, и кидать. И прочие костыли.
Можно сделать на фреймах кнопки, там еще визуально рамки автокаст отобразить. И прописать код сработки. это намноооого лееегче
Ред. MpW
» WarCraft 3 / Опрос варкрафтеров XGM
» WarCraft 3 / зачем в lua нужны локальные функции?
понял в чем ошибка, опять не все перенес. И из-за этого обрываются действия/потоки. И мне нужно print везде чекать от начала и до.
Ред. MpW
» WarCraft 3 / зачем в lua нужны локальные функции?
GetLocalPlayer, а если я создаем локалки в процессе инициализации код, они будут существовать всю игру. Или только существуют в процессе инициализации? И уже перестанут существовать? пример локалка Table?
» WarCraft 3 / зачем в lua нужны локальные функции?
» WarCraft 3 / Изменение текстуры земли (не из основного tileset) - Reforged HD
Ред. MpW
» WarCraft 3 / Изменение текстуры земли (не из основного tileset) - Reforged HD
ой че-то картинка охренеть большая
Ред. MpW
» WarCraft 3 / цикл в lua
Bergi_Bear, воспользовался вашим советом
я еще нашел ошибку в самом ректе, у него размеры не те. Короче мб дело в инициализации.
» WarCraft 3 / Как работать с картой в виде папки?
Ред. MpW
» WarCraft 3 / Определение чётности числа и рандом
10/2=5 8/2=4 и др
у не четных чисел бывает дроби.
5/2=2.5 31/2=15.5
r = 25.5
r1 = R2I(r) получили 25
r2 = r - I2R(r1) = 0.5
Или отделить дробную и целую часть, и попытаться сделать как с целыми числами.
Ред. MpW
» WarCraft 3 / Как работать с картой в виде папки?
» WarCraft 3 / Текстура тайминдикатора
мб неправильно импортировали?
мб текстуру сжали?
мб надо альфа-каналом обвести, типа как рамкой? как в оригинале?
Ред. MpW
» WarCraft 3 / Memory hack API v1.4
» WarCraft 3 / Импорт интерфейса
ConsoleTexture02=UI\Console\NightElf\NightElfUITile02
ConsoleTexture03=UI\Console\NightElf\NightElfUITile03
ConsoleTexture04=UI\Console\NightElf\NightElfUITile04
ConsoleTexture05=UI\Console\NightElf\NightElfUITile05
ConsoleTexture06=UI\Console\NightElf\NightElfUITile06
ConsoleInventoryCoverTexture=UI\Console\NightElf\NightElfUITile-InventoryCover.blp
ConsoleTexture02=UI\Console\Undead\UndeadUITile02
ConsoleTexture03=UI\Console\Undead\UndeadUITile03
ConsoleTexture04=UI\Console\Undead\UndeadUITile04
ConsoleTexture05=UI\Console\Undead\UndeadUITile05
ConsoleTexture06=UI\Console\Undead\UndeadUITile06
ConsoleInventoryCoverTexture=UI\Console\Undead\UndeadUITile-InventoryCover.blp
ConsoleTexture02=UI\Console\Human\HumanUITile02
ConsoleTexture03=UI\Console\Human\HumanUITile03
ConsoleTexture04=UI\Console\Human\HumanUITile04
ConsoleTexture05=UI\Console\Human\HumanUITile05
ConsoleTexture06=UI\Console\Human\HumanUITile06
ConsoleInventoryCoverTexture=UI\Console\Human\HumanUITile-InventoryCover.blp
» WarCraft 3 / Импорт интерфейса
ConsoleTexture02=UI\Console\Orc\OrcUITile02
ConsoleTexture03=UI\Console\Orc\OrcUITile03
ConsoleTexture04=UI\Console\Orc\OrcUITile04
ConsoleTexture05=UI\Console\Orc\OrcUITile05
ConsoleTexture06=UI\Console\Orc\OrcUITile06
ConsoleInventoryCoverTexture=UI\Console\Orc\OrcUITile-InventoryCover.blp
Ред. MpW
» WarCraft 3 / Импорт интерфейса
» WarCraft 3 / Импорт интерфейса
Ред. MpW
» WarCraft 3 / Импорт интерфейса
Ред. MpW
» WarCraft 3 / World2Win Конвертирование мировых координат в экранные и обратно
у нас есть
» WarCraft 3 / Нарезалка LoadingScreen'а (теперь с интерфейсом!)
Ред. MpW
» WarCraft 3 / Бойся зомбей, по коридорам идущих...
Ред. MpW
» WarCraft 3 / Мемхак - возня с фреймами.
Ред. MpW
» WarCraft 3 / Переменный юнит и предмет выпадающий с него
Ред. MpW
» WarCraft 3 / World2Win Конвертирование мировых координат в экранные и обратно
-- Create a new vector from coords. Skip the coords to create a zero vector
new = function(self, x, y, z)
local o = {}
setmetatable(o,self)
o.x = x or 0.
o.y = y or 0.
o.z = z or 0.
return o
end,
Ред. MpW
» WarCraft 3 / Автокаст прожимных навыков