Сейчас 18:53:42 Среда, 24 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Custom Script (Что это? Наработки или заложенные в Редактор функции?)
Custom Script
FkoFFДата: Среда, 27 Апреля 2011, 04:20:21 | Сообщение # 26
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Так я решил проблему

"У меня болела рука - я отрезал её, так я решил проблему"
Quote (FatalBlade)
Unit Group - Remove all units from UnitGroup разве не то же самое что call DestroyGroup(udg_ug)

Одно из них удаляет всех юнитов из группы, другое удаляет саму группу, тоесть объект. Это два абсолютно разных действия.
Quote (FatalBlade)
И как мне удалять точки, если у меня идёт цикл, а сама точка постоянно равна X = X + Y (например), или Point = Point + I итд итп.... Я ведь не могу вписать внутрь цикла вот это вот: - call DestroyGroup(udg_переменная), посколько это испортит всё уровнение.

точки не надо спамить через цикл - создал точку, сделал действия ,удалил точку, так же как с спецэффектами. Группу можно удалять когда доделаешь все действия.


 

FatalBladeДата: Среда, 27 Апреля 2011, 04:31:14 | Сообщение # 27
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (FkoFF)
точки не надо спамить через цикл - создал точку, сделал действия ,удалил точку, так же как с спецэффектами.

Типа создавать отдельный триггер?

Добавлено (27-04-2011, 04:31)
---------------------------------------------
И как удалять группы игроков?


 

FkoFFДата: Среда, 27 Апреля 2011, 07:46:43 | Сообщение # 28
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Типа создавать отдельный триггер?

нет.
вообще с точками лучше не работать, координаты всяко лучше.
Quote (FatalBlade)
И как удалять группы игроков?

call DestroyForce(forcehandle)


 

FatalBladeДата: Среда, 27 Апреля 2011, 10:23:27 | Сообщение # 29
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Move Unit (Instantly) ведь не создаёт новую точку при использовании?

И как удалять массив (юнитов, точек)?


 

SirNikolasДата: Среда, 27 Апреля 2011, 12:33:17 | Сообщение # 30
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Если ты хочешь узнать, как что нужно удалять, вот статья.

Добавлено (27-04-2011, 12:33)
---------------------------------------------

Quote (FkoFF)
Удалять надо все объекты, группы, группыигроков, точки, юниты, области - все, что не реальные, целочисленные, були и стринги.
Забыл про code.




Сообщение отредактировал SirNikolas - Среда, 27 Апреля 2011, 12:34:18
 

rixt7956Дата: Среда, 27 Апреля 2011, 14:32:23 | Сообщение # 31
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
SirNikolas, и про player
 

FkoFFДата: Среда, 27 Апреля 2011, 17:23:34 | Сообщение # 32
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Move Unit (Instantly) ведь не создаёт новую точку при использовании?

создает
Quote (FatalBlade)
И как удалять массив (юнитов, точек)?

руками все по индексам. или через цикл.

Добавлено (27-04-2011, 17:14)
---------------------------------------------

Quote (rixt7956)
player

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

Добавлено (27-04-2011, 17:23)
---------------------------------------------
что бы автор темы понял правильно.

set w = null это не удаление и избавляет лишь от части утечки
call DestroyWidget(w) удаляет с карты сам объект

обе эти операции требуется совершать каждый раз когда ты создаешь переменную и по совместительству объект.
точка (location) является объектом состоящим всего то из двух реалов и номера хэндла, но проблема с ними (почему о них так много известно) - они создаются в половине функций на GUI, вернее во всех требующих указать точку. И когда ты пишешь set p[1] = GetUnitPositionLoc(u) ты создаешь точку которая записывается в переменную p[1], тогда как если ты просто в гуи указываешь Позиция Юнита - точка создается но никуда не записывается и у тебя даже нет возможности её удалить в последствии.

и вот на самом деле одна функция Polar Offset может создавать до 10 точек одновременно при сложных формулах аля
offset by distance(p1,p2)\40+30 toward angle(p1,p2)-(90-Distance(p1,p2)\10))
Еще одну точку функция возвращает. И это далеко не предел.
На джассе мы не пользуемся точками, координаты однозначно быстрее и удобнее.




Сообщение отредактировал FkoFF - Среда, 27 Апреля 2011, 17:15:03
 

lawsonДата: Среда, 27 Апреля 2011, 17:42:15 | Сообщение # 33
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Я испоьзую области если есть возможность с ними проблем меньше и ими легче оперировать.

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FkoFFДата: Среда, 27 Апреля 2011, 18:08:21 | Сообщение # 34
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (lawson)
Я испоьзую области если есть возможность с ними проблем меньше и ими легче оперировать.

области тоже утечны, наслаждайся )


 

FatalBladeДата: Среда, 27 Апреля 2011, 20:01:39 | Сообщение # 35
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (FkoFF)
set w = null это не удаление и избавляет лишь от части утечки
call DestroyWidget(w) удаляет с карты сам объект

Это ты про какой тип переменных?

Добавлено (27-04-2011, 20:01)
---------------------------------------------

Quote (FkoFF)
координаты однозначно быстрее и удобнее.

А координаты не оставляют точки? Хоть это и 2 Реала, вместе то они - точка. Когда я например пишу X of (Position of (Unit))... Position of Unit это и есть уже существующая точка. Нет?




Сообщение отредактировал FatalBlade - Среда, 27 Апреля 2011, 20:03:17
 

FkoFFДата: Среда, 27 Апреля 2011, 20:12:32 | Сообщение # 36
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Это ты про какой тип переменных?

это пример
Quote (FatalBlade)
А координаты не оставляют точки? Хоть это и 2 Реала, вместе то они - точка. Когда я например пишу X of (Position of (Unit))... Position of Unit это и есть уже существующая точка. Нет?

X of (Position of Unit) создает точку всегда. Вообще Position of Unit создает точку.


 

FatalBladeДата: Среда, 27 Апреля 2011, 20:28:50 | Сообщение # 37
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Bash Knock Norm
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Unit - Move BashUnit instantly to ((Position of BashUnit) offset by 5.00 towards (BashAngle + 20.00) degrees)
Set Temp = (Position of BashUnit)
Custom script: call RemoveLocation(udg_Temp)

Так правльно удаляется точка?


 

FkoFFДата: Среда, 27 Апреля 2011, 20:39:20 | Сообщение # 38
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Bash Knock Norm
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Unit - Move BashUnit instantly to ((Position of BashUnit) offset by 5.00 towards (BashAngle + 20.00) degrees)
Set Temp = (Position of BashUnit)
Custom script: call RemoveLocation(udg_Temp)

Так правльно удаляется точка?


нет

set temp[1] = Position of BashUnit
set temp[2] = temp[1] offset by 5 toward bashangle+20 degrees
unit - move insantly BashUnit to temp[2]
call RemoveLocation(udg_temp[1])
call RemoveLocation(udg_temp[2])


 

lawsonДата: Среда, 27 Апреля 2011, 22:58:13 | Сообщение # 39
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (FkoFF)
области тоже утечны, наслаждайся )

Как скажешь с таких кодером как ты спорить не буду.

Добавлено (27-04-2011, 22:58)
---------------------------------------------

Quote (FatalBlade)
Так правльно удаляется точка?

Так удаляеться не точка а область call RemoveLocation()


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FkoFFДата: Четверг, 28 Апреля 2011, 02:15:41 | Сообщение # 40
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
lawson, location == точка, rect == область

 

lawsonДата: Четверг, 28 Апреля 2011, 08:27:21 | Сообщение # 41
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Если ты об этом то и region что тогда?

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FkoFFДата: Четверг, 28 Апреля 2011, 08:54:28 | Сообщение # 42
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (lawson)
Если ты об этом то и region что тогда?

почти тоже самое только с меньшим функционалом и служит для работы с эвентами и разрушаемыми объектами + в отличии от ректа имеет фиксированные размеры равные х64 ед. расстояния (клетка). Вообщем это не то чем ты каждый раз пользуешься? Однако для событий используется регион на rect'e, абракадабра с ними.


 

FatalBladeДата: Четверг, 28 Апреля 2011, 08:59:13 | Сообщение # 43
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Если я использую Cause unit Damage Area... Надо удалять регион?

 

SirNikolasДата: Четверг, 28 Апреля 2011, 11:42:16 | Сообщение # 44
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Насколько я помню, эта функция дамажит всех в радиусе, а окружность не является утечным объектом (она вообще не является объектом). В UnitDamagePointLoc нужно только позаботиться о точке (центре окружности). И лучше бы делал через pick юнитов и UnitDamageTarget, тогда урон (по желанию) не будет наноситься союзникам и зданиям.
Quote (FkoFF)
call DestroyWidget(w)
Это просто пример или действительно есть такая функция?
Quote (FkoFF)
не создается новый игрок, а лишь используются ссылки на существующего игрока, по этой причине нет повода их подтирать.
А в каких случаях создается?
Quote (FkoFF)
почти тоже самое, только с меньшим функционалом и служит для работы с эвентами и разрушаемыми объектами, + в отличии от ректа, имеет фиксированные размеры, равные х64 ед. расстояния (клетка). В общем, это не то, чем ты каждый раз пользуешься? Однако для событий используется регион на rect'e, абракадабра с ними.
А мне всегда казалось, что region - это совокупность областей (rect).

И да, FatalBlade, вот полный список, как что удаляется:

Code
native DestroyBoolExpr  takes boolexpr e returns nothing
native DestroyCondition  takes conditionfunc c returns nothing
native DestroyDefeatCondition takes defeatcondition whichCondition returns nothing
native DestroyFilter   takes filterfunc f returns nothing
native DestroyFogModifier  takes fogmodifier whichFogModifier returns nothing
native DestroyForce   takes force whichForce returns nothing
native DestroyImage  takes image whichImage returns nothing
native DestroyItemPool  takes itempool whichItemPool returns nothing
native DestroyLeaderboard  takes leaderboard lb returns nothing
native DestroyMultyboard  takes multyboard lb returns nothing
native DestroyQuest  takes quest whichQuest returns nothing
native DestroyTimerDialog  takes timerdialog whichDialog returns nothing
native DestroyTrigger  takes trigger whichTrigger returns nothing
native DestroyUbersplat  takes ubersplat whichSplat returns nothing
native DestroyUnitPool  takes unitpool whichPool returns nothing
native RemoveDestructable  takes destructable d returns nothing
native RemoveItem   takes item whichItem returns nothing
native RemovePlayer  takes player whichPlayer, playergameresult gameResult returns nothing
native RemoveRect   takes rect whichRect returns nothing
native RemoveRegion  takes region whichRegion returns nothing
native RemoveUnit   takes unit whichUnit returns nothing
native RemoveWeatherEffect  takes weathereffect whichEffect returns nothing


 

FatalBladeДата: Четверг, 28 Апреля 2011, 13:19:04 | Сообщение # 45
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Loop - Actions
Set ThunderPoint[ThunderIndex] = (ThunderCast offset by (Random real number between 1.00 and 300.00) towards (Random angle) degrees)
Special Effect - Create a special effect at ThunderPoint[ThunderIndex] using war3mapImported\CloudOfFog.mdx
Set ThunderEffect[ThunderIndex] = (Last created special effect)
Custom script: call RemoveLocation(udg_ThunderPoint[ThunderIndex])
Set ThunderIndex = (ThunderIndex + 1)

Вроде так норм. Почему же на строке Custom Script он пишет "Expected a name" ?




Сообщение отредактировал FatalBlade - Четверг, 28 Апреля 2011, 14:54:08
 

FkoFFДата: Четверг, 28 Апреля 2011, 15:19:01 | Сообщение # 46
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (SirNikolas)
А в каких случаях создается?

когда речь идет о функциях, создающих объекты, таких как GetxxLoc(), GetxxRect(), ForGroup(). еще невероятно злой утечкой являются булэкспры.

FatalBlade, udg_ThunderIndex


 

lawsonДата: Четверг, 28 Апреля 2011, 17:43:19 | Сообщение # 47
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (SirNikolas)
А мне всегда казалось, что region - это совокупность областей (rect).

call RegionAddRect(regin, rect) так и есть, просто
FkoFF, очень себя переоценил.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Четверг, 28 Апреля 2011, 17:43:28
 

FkoFFДата: Пятница, 29 Апреля 2011, 03:33:35 | Сообщение # 48
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
lawson, ага, внимательно присмотрись к остальным функциям

native RegionAddCell takes region whichRegion, real x, real y returns nothing
native RegionAddCellAtLoc takes region whichRegion, location whichLocation returns nothing

И да, научись таки читать.

Quote (FkoFF)
почти тоже самое

Quote (FkoFF)
с меньшим функционалом

Quote (FkoFF)
служит для работы с эвентами и разрушаемыми объектами

Quote (FkoFF)
в отличии от ректа имеет фиксированные размеры равные х64 ед. расстояния (клетка

Quote (FkoFF)
Однако для событий используется регион на rect'e, абракадабра с ними.

И где я себя переоценил?


 

lawsonДата: Пятница, 29 Апреля 2011, 08:40:22 | Сообщение # 49
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (FkoFF)
И где я себя переоценил?

Quote (lawson)
Если ты об этом то и region что тогда?

знаю про эти region, я спросил если rect это область а location по твоему это точки, то что тогда region, а ты мне начал лекции писать из чего состоит region и с чем его ипсользовать.
Quote (FkoFF)
И да, научись таки читать.

Будет свободное время таки научусь.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Пятница, 29 Апреля 2011, 08:45:12
 

rixt7956Дата: Пятница, 29 Апреля 2011, 11:38:01 | Сообщение # 50
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
и правда, что такое регион?
 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Custom Script (Что это? Наработки или заложенные в Редактор функции?)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz