XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Советуем ознакомиться со всей базой статей по триггерам редактора (и не только).

Закрытая тема
 
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
DioD,
1. set pr.hand=null ты про это в первом пункте говорил?
3. просто делал триг двигающий большое кол-во дамми, значит группой выгоднее?
4. читаю
2. как только найду OnDestroy как им манипулировать в мануале так и начну пользоватся

ScorpioT1001, =\ тяжко vjass понять, ну а cjass для меня пока что-то недосягаемое
Старый 28.03.2010, 19:03
DioD

offline
Опыт: 45,134
Активность:
вот не поверишь, я vJass учил по мануалу, после третьего прочтения ушли все вопросы, попробуй, это доставляет.
для поиска надо нажать ф3
Старый 28.03.2010, 19:29
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
последнее в чем хотел удостовериться это удаление структуры
Код:
struct channel
unit c
unit t
    method onDestroy takes nothing returns nothing
    call BJDebugMsg("Destroy Struct")
    endmethod
endstruct

function Channel_Actions takes nothing returns nothing
local channel ch
local timer t
local integer i
if GetTriggerEventId()==ConvertPlayerUnitEvent(276) then
set ch=LoadInteger(udg_Hash,GetHandleId(GetTriggerUnit()),2)
call ch.destroy()
elseif GetTriggerEventId()==ConvertPlayerUnitEvent(273) then
set ch=channel.create()
call SaveInteger(udg_Hash,i,0,ch)
endif

теперь то все удалится или я опять не так понял

Цитата:
имхо не стоит его юзать,т.к для него создаётся отдельный триггер

а как подругому очищать тогда?
Старый 01.04.2010, 20:43
XOR

offline
Опыт: 38,159
Активность:
Свой метод удаления в конце которого вызывается .destroy
Старый 01.04.2010, 21:34
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
XimikS, всмысле свой, можеш пожалуйста написать небольшим кодом?
Старый 02.04.2010, 14:02
ScorpioT1000
Работаем
offline
Опыт: отключен
ты её даже не сконструировал. если нету своего метода New, надо вызывать .create() читай мануал. буду варны за такое давать
ScorpioT1001 добавил:
всмысле свой, можеш пожалуйста написать небольшим кодом?
xgm.ru/p/wc3/w3_special_programming последний блок кода
то, что надо я думаю ты поймешь
Старый 02.04.2010, 14:06
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
Цитата:
Сообщение от ScorpioT1001
я думаю ты поймешь

Эх непонял =\, я мего тугодум, никак не понял из мануала как правильно удалять
Объясните пожалуйста тугодуму, как удалять структуры.

Вот что попытался сделать, но эт не правильно,
Код:
struct attacktaile
real a
real tempA
unit c
unit array d[100]
integer i
location l
group gr
method onDestroy takes attacktaile returns nothing
set a=attacktaile
call RemoveLocation(a.l)
call DestroyGroup(a.gr)
set a.l=null
set a.gr=null
set a.c=null
endmethod
endstruct
Старый 08.04.2010, 16:14
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Код:
struct attacktaile
real a
real tempA
unit c
unit array d[100]
integer i
location l
group gr

method onDestroy takes nothing returns nothing
local integer i=0
set .a=0.00
set .tempA=0.00
set .c=null
loop
exitwhen i>100
set .d[i]=null
set i=i+1
endloop
set .i=0
call RemoveLocation(.l)
set .l=null
call DestroyGroup(.gr)
set .gr=null
call .destroy()
endmethod
endstruct


сначала обнуляем все переменные структуры (хотя это не обязательно, так как это глобалки, но для избежаний неприятностей есть смысл так делать), а потом уничтожаем ее. Вызывать так:
Код:
call <имя локалки; тип - attacktaile>.onDestroy()
например:
call data.onDestroy()
Старый 08.04.2010, 16:51
Hanabishi
COOL STATUS
offline
Опыт: отключен
AlexKARASb, лучше не используй onDestroy, а удаляй всё вручную:
struct attacktaile
    real a
    real tempA
    unit c
    unit array d[100]
    integer i
    location l
    group gr
endstruct

function ABC takes nothing returns nothing
    local attacktaile a = attacktaile.create()
    ...
    call RemoveLocation(a.l)
    call DestroyGroup(a.gr)
    set a.l=null
    set a.gr=null
    set a.c=null //также нужно очистить a.d циклом
    attacktaile.destroy(a)
    set a=0 //понимаю, что это строка вгонит некоторых в шок, но это тоже освобождает память
endfunction
Старый 08.04.2010, 16:59
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
bee, то-есть не надо принимать структуру она сама войдет?
Hanabishi, то-есть когда я закончу с ней(структурой) работать то мне просто вручную надо все обнулить и потом attacktaile.destroy(a) удалить ее?

в любом случае спасибо большое.
Старый 08.04.2010, 17:25
ScorpioT1000
Работаем
offline
Опыт: отключен
Hanabishi, деструктор-полезная вещь)
Старый 08.04.2010, 17:31
XOR

offline
Опыт: 38,159
Активность:
bee
не буду тебе говорить куда запихнуть эти 8192х8192
Случай примерно тот же. Ибо структуры = параллельные массивы.
Старый 08.04.2010, 17:35
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
Благодарен всем за объяснения.
Тему можно закрыть.
Старый 08.04.2010, 17:45
ScorpioT1000
Работаем
offline
Опыт: отключен
AlexKARASb, что у тебя там за массив юнитов? в структуре. это неправильно организованный жасс-код, я сразу говорю
Старый 08.04.2010, 17:49
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
ScorpioT1001, ну создавал просто цепь из юнитов(похоже на крюк мясника), воспользовался массивом
теперь буду думать как реализовать без массива в структуре.
Старый 08.04.2010, 18:08
XOR

offline
Опыт: 38,159
Активность:
unit 0x..
unit 0x1..
Итп
Старый 08.04.2010, 18:27
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
XimikS, если у тебя время будет то напиши пожалуйста по-информативнее,
говорю же только начинаю понимать язык и оч многого не знаю.
Старый 08.04.2010, 19:18
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Цитата:
то-есть не надо принимать структуру она сама войдет?

я не уверен, но если method не static, и если он ничего не принимает, то обращяться вот так:
Код:
struct
unit u

method mtd takes nothing returns nothing
set .u = null
endmethod
endstruct
Старый 08.04.2010, 19:39
Hanabishi
COOL STATUS
offline
Опыт: отключен
AlexKARASb, вот взгляни, хороший пример работы со структурами
Старый 08.04.2010, 19:53
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
реклама, само пиар
Старый 08.04.2010, 20:49
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:56.