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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите мне в спеллах (Помощь)
Помогите мне в спеллах
Ty3uKДата: Среда, 30 Ноября 2011, 13:16:57 | Сообщение # 76
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Пикаем юнитов и при каждом касте спелла получаем утечку. Могу кинуть на жассе наработку, как домой приду

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DoomDemonДата: Среда, 30 Ноября 2011, 13:18:25 | Сообщение # 77
7 уровень
Группа: Проверенные
Сообщений: 332
Награды: 2
Репутация: 201
Блокировки:
Prokhor-andrew, досконально изучи РО, тогда ты будешь иметь представление о том что можно сделать без триггеров, а что с триггерами.
Знать все способности просто необходимо если хочешь делать триггерные спелы.
Например та же цепная хилка/дамаг делается очень просто если знаешь существующие спелы
Здесь нужно три способности:
- Заклинание которое кастует герой (пустышка делается на основе канала и никакого эффекта не имеет кроме как включение триггера)
- Цепное лечение (делается на основе заклинания ловца духов у орды)
- Цепной урон (делается на основе цепи молний у говорящего с духами у орды)
При применении заклинания проверяем врагом или другом является цель и создаём дамми применяющего соответствующее заклинание.


 

ExtrematorДата: Среда, 30 Ноября 2011, 13:25:51 | Сообщение # 78
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Ty3uK)
Пикаем юнитов и при каждом касте спелла получаем утечку.

удаляем группу + чистим точки ...
 

Ty3uKДата: Среда, 30 Ноября 2011, 13:48:03 | Сообщение # 79
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Лол. Бж на пик юнитов утекает локальной группой, с которой ты ничего не сделаешь, уже не единожды писали в этом треде

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Среда, 30 Ноября 2011, 14:07:27 | Сообщение # 80
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Ty3uK)
Бж на пик юнитов утекает локальной группой, с которой ты ничего не сделаешь

Я не однократно писал и спрашивал об этом на XGM, мне дали решение этой проблемы в качестве CS.
При этом все говорили что утечки теперь не будет и быть не может, ибо группа затирается сама...

Хочешь сказать мне там тупо херни нагородили? оО
 

BorodachДата: Среда, 30 Ноября 2011, 14:13:18 | Сообщение # 81
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Група не утекает, а вот локальная переменная...

Karamba
 

ExtrematorДата: Среда, 30 Ноября 2011, 14:17:45 | Сообщение # 82
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
ну я же раз 100 стам спросил, мне казали всё путём zomba
 

Ty3uKДата: Среда, 30 Ноября 2011, 14:18:20 | Сообщение # 83
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Вот так утекает группа (я имею в виду, как уже и писал выше, локалка):
Code
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
     local group g = CreateGroup()
     call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
     call DestroyBoolExpr(filter)
     return g
endfunction

где нет обнуления локалки через set g = null
я хз, какой тебе дали кастом код (скинь его), но способов отлова локалки из бж, кроме как ее раскрытия, я не знаю


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Среда, 30 Ноября 2011, 14:35:32 | Сообщение # 84
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
CS: set bj_wantDestroyGroup = true

ставить ДО функции пикка юнитов, т.е.
1. CS: set bj_wantDestroyGroup = true
2. Pick Units бла бла бла
 

Ty3uKДата: Среда, 30 Ноября 2011, 14:44:08 | Сообщение # 85
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Extremator, пхахахахахаха! Хочу тебя разачаровать, но глобалка set bj_wantDestroyGroup отвечает за выполнение команды call DestroyGroup(g), но не обнуляет локалку через set g = null buba
Например,
Code
function CountUnitsInGroup takes group g returns integer
     // If the user wants the group destroyed, remember that fact and clear
     // the flag, in case it is used again in the callback.
     local boolean wantDestroy = bj_wantDestroyGroup
     set bj_wantDestroyGroup = false

     set bj_groupCountUnits = 0
     call ForGroup(g, function CountUnitsInGroupEnum)

     // If the user wants the group destroyed, do so now.
     if (wantDestroy) then
         call DestroyGroup(g)
     endif
     return bj_groupCountUnits
endfunction

функа берет уже существующую группу без создания своей локальной. И вонтдестрой указывает, надо ли уничтожать твою группу или нет. И все, тут нет локальных групп


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Среда, 30 Ноября 2011, 14:46:01
 

ExtrematorДата: Среда, 30 Ноября 2011, 14:47:43 | Сообщение # 86
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Ty3uK)
И все, тут нет локальных групп

если нету локальных групп значит и нету утекающей локалки... верно?
 

Ty3uKДата: Среда, 30 Ноября 2011, 14:48:53 | Сообщение # 87
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Extremator, та функа, которую я написал последней не энумит юнитов, а считает их количетсво. А вот эта (как раз пик) утекает с локальной группой g
Code
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
      local group g = CreateGroup()
      call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
      call DestroyBoolExpr(filter)
      return g
endfunction


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Среда, 30 Ноября 2011, 14:51:16 | Сообщение # 88
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Ty3uK, короче я плохо тебя понимаю... ибо в коде не шарю вообще... и работаю с ним опираябсь только на то что мне говорили знающие люди...
Я делаю вот так... и как мне неоднократно говорили - утечки нету, спи спокойно ))

 

Ty3uKДата: Среда, 30 Ноября 2011, 15:02:34 | Сообщение # 89
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Extremator, утекает, бро, утекает. Своим КС ты ничего не добиваешься, ибо локалка у тебя не обнуляется

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Среда, 30 Ноября 2011, 15:19:58 | Сообщение # 90
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Т_Т я пошёл на XGM спрашивать...
опять...
 

YaNeZnauJassДата: Среда, 30 Ноября 2011, 15:40:25 | Сообщение # 91
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 15
Блокировки:
Ty3uK, У Extremator, нет локальной группы раз.
bj_wantdestroy == true разрушат группу,но не стирает оттуда обекты(или стирает)

Добавлено (30 Ноябрь 2011, 15:40:25)
---------------------------------------------

Quote (Ty3uK)
Extremator, пхахахахахаха! Хочу тебя разачаровать, но глобалка set bj_wantDestroyGroup отвечает за выполнение команды call DestroyGroup(g), но не обнуляет локалку через set g = null

разрушает и стирает группу из игры значит ссылки на обект нету значит null
 

Ty3uKДата: Среда, 30 Ноября 2011, 16:07:57 | Сообщение # 92
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Локалка остается, ибо после call DestroyGroup(g) все умные люди делают set g = null, и еще скажите мне, что так не надо, и одного уничтожения группы хватит =/

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Prokhor-andrewДата: Среда, 30 Ноября 2011, 16:08:39 | Сообщение # 93
6 уровень
Группа: Пользователи
Сообщений: 215
Награды: 0
Репутация: 0
Блокировки:
о_О часик не проверял форум называется))
Я ваще больше всего понял что мне думдемон сказал :D


(-_-)
 

DoomDemonДата: Среда, 30 Ноября 2011, 16:23:09 | Сообщение # 94
7 уровень
Группа: Проверенные
Сообщений: 332
Награды: 2
Репутация: 201
Блокировки:
Prokhor-andrew, да я вообще не знаю что они в этой теме забыли, им лишь бы место было, а о чём поспорить всегда найдётся

 

Ty3uKДата: Среда, 30 Ноября 2011, 16:59:50 | Сообщение # 95
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Я могу предложить свою помощь в жассе, не надо ля ля

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DoomDemonДата: Среда, 30 Ноября 2011, 17:33:45 | Сообщение # 96
7 уровень
Группа: Проверенные
Сообщений: 332
Награды: 2
Репутация: 201
Блокировки:
Quote (Ty3uK)
Я могу предложить свою помощь в жассе, не надо ля ля

Ты можешь только переманить на тёмную сторону силы :)


 

YaNeZnauJassДата: Среда, 30 Ноября 2011, 17:45:24 | Сообщение # 97
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 15
Блокировки:
Ty3uK, Ты не видиш разницу между существованием локалки и ее неимением
 

Prokhor-andrewДата: Среда, 30 Ноября 2011, 20:08:08 | Сообщение # 98
6 уровень
Группа: Пользователи
Сообщений: 215
Награды: 0
Репутация: 0
Блокировки:
Думдемон, ты меня покрил фразой :D

Добавлено (30 Ноябрь 2011, 20:08:08)
---------------------------------------------
Парни , как сделать такой спелл без джаза , я джаз не знаю.


(-_-)
 

BorodachДата: Среда, 30 Ноября 2011, 20:35:48 | Сообщение # 99
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
YaNeZnauJass, Добавь этот код в периодическое событие
Code
local group g=CreateGroup()
local integer id=GetHandleId(g)
     call BJDebugMsg(I2S(id))
     call DestroyGroup(g)

и этот:
Code
local integer id=GetHandleId(g)
     call BJDebugMsg(I2S(id))
     call DestroyGroup(g)
set g=null

Ты увидишь разницу

Добавлено (30 Ноябрь 2011, 20:35:48)
---------------------------------------------
Extremator, Утечка локалки это не утечка всей групы или эффектов... глобально для карты не повлияет


Karamba
 

lawsonДата: Среда, 30 Ноября 2011, 20:53:24 | Сообщение # 100
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Borodach)
Утечка локалки это не утечка всей групы или эффектов... глобально для карты не повлияет

Пример того что тузик прав:
local unit u = CreateUnit - создаем юнита записывая его в переменную
call RemoveUnit(u) - удаляем юнита, но ссылка на него отсанется так же и с группой. Когда ты прописываешь локальной группе как CreateGroup все ссылка на нее уже существует и удалением группы ссылку на нее не очистишь. ВОобще очень плохо что для жасса нет нормального сборщика мусора.

Добавлено (30 Ноябрь 2011, 20:53:24)
---------------------------------------------
Quote (Borodach)
глобально для карты не повлияет

Вместе с остальным ГУИ "кодом" + бж этого он точно не заметит.


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


Сообщение отредактировал lawson - Среда, 30 Ноября 2011, 20:56:54
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите мне в спеллах (Помощь)
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

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