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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Вопросы по Jass
romaN-1998Дата: Четверг, 06 Января 2011, 01:59:30 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Зачем обнулять переменные?
Просто я новичок в Jass'е и когда конвертирую Триггеры в Jass, ничего в конце про обнуление переменных нет. И обязательна ли строка с //-------------------------------------------------- после Условий и Действий ???

И ещё, как скачать прикреплённые к статье файлы на XGM ?? ^^

Добавлено (06-01-2011, 01:59)
---------------------------------------------
И вообще как там файлы скачать, написано, то что вылжено ниже, а я найти не могу

 

DreiiДата: Четверг, 06 Января 2011, 02:00:46 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (romaN-1998)
//--------------------------------------------------

НЕ обязательная,
Обнуление пермеенных служит удалением утечек
Если будет много утечек карта будет лагать

Добавлено (06-01-2011, 02:00)
---------------------------------------------

Quote (romaN-1998)
И вообще как там файлы скачать, написано, то что вылжено ниже, а я найти не могу

Возможно редактирвоали сообщение и убрали ссылку


 

romaN-1998Дата: Четверг, 06 Января 2011, 02:01:16 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
спс, я на тебя и надеялся )) Ты тут типо крутой, на форуме ??
 

MihaaДата: Четверг, 06 Января 2011, 02:01:23 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1070
Награды: 0
Репутация: 330
Блокировки:
Quote (romaN-1998)
И ещё, как скачать прикреплённые к статье файлы на XGM ?? ^^

если картинки копипастни, если карта то в конце должо написано "к статье прикреплен файл"
Quote (romaN-1998)
Зачем обнулять переменные? Просто я новичок в Jass'е и когда конвертирую Триггеры в Jass, ничего в конце про обнуление переменных нет. И обязательна ли строка с //-------------------------------------------------- после Условий и Действий ???

джасом не владею
 

romaN-1998Дата: Четверг, 06 Января 2011, 02:01:44 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Просто, ты видимо неплохо шаришь в Jass
 

DreiiДата: Четверг, 06 Января 2011, 02:01:50 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (romaN-1998)
Ты тут типо крутой, на форуме ??

Нет я тут типо нупъ^^


 

DenialsanДата: Четверг, 06 Января 2011, 02:02:07 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1225
Награды: 0
Репутация: 48
Блокировки:
Quote (romaN-1998)
Зачем обнулять переменные?
Просто я новичок в Jass'е и когда конвертирую Триггеры в Jass, ничего в конце про обнуление переменных нет. И обязательна ли строка с //-------------------------------------------------- после Условий и Действий ???

некоторые умы утверждают что если не обнулить переменную то это будет "страшная при страшная" утечка памяти!!! строка //---------------------------------------// это разделяющая строка, она ничего не означает, просто так проще просматривать "сложные" триггеры.
 

DreiiДата: Четверг, 06 Января 2011, 02:02:52 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (Denialsan)
утверждают что если не обнулить переменную то это будет "страшная при страшная" утечка памяти!!!

Оно так и есть,
точки,группы,юниты,текстаги текут еще как


 

romaN-1998Дата: Четверг, 06 Января 2011, 02:03:31 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Quote (Denialsan)
некоторые умы утверждают что если не обнулить переменную то это будет "страшная при страшная" утечка памяти!!! строка //---------------------------------------// это разделяющая строка, она ничего не означает, просто так проще просматривать "сложные" триггеры.

Ясно, то есть, когда мало переменных, можно не обнулять, а когда много можно обнулить (дабы избежать утечки) или вообще можно не обнулять ??
 

DenialsanДата: Четверг, 06 Января 2011, 02:03:37 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1225
Награды: 0
Репутация: 48
Блокировки:
Quote (Dreii)
Оно так и есть,
точки,группы,юниты,текстаги текут еще как

как они текут? может мне ведро подставить под системник?
 

DreiiДата: Четверг, 06 Января 2011, 02:04:34 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Подробнее в замечательной статье Уменьшаем лаги в карте by [DUOS]

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

Quote (Denialsan)
как они текут? может мне ведро подставить под системник?

Не знаешь не говори

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

Quote (romaN-1998)
Ясно, то есть, когда мало переменных, можно не обнулять, а когда много можно обнулить (дабы избежать утечки) или вообще можно не обнулять ??

Обнулять нужно все переменные котрые вызывают утечки


 

romaN-1998Дата: Четверг, 06 Января 2011, 02:05:11 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Dreii, спс, просто что-то я озадачился с Jass'ом....А можешь ты привести пример, то что можно сделать на Jass, но на триггерах вообще нереально ?? (в прямом смысле)
 

DenialsanДата: Четверг, 06 Января 2011, 02:05:37 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 1225
Награды: 0
Репутация: 48
Блокировки:
Quote (romaN-1998)
Ясно, то есть, когда мало переменных, можно не обнулять, а когда много можно обнулить (дабы избежать утечки) или вообще можно не обнулять ??

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

DreiiДата: Четверг, 06 Января 2011, 02:06:19 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (romaN-1998)
то что можно сделать на Jass

Даже не знаю ^^Я могу дать пример с утечкой))


 

DenialsanДата: Четверг, 06 Января 2011, 02:06:21 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1225
Награды: 0
Репутация: 48
Блокировки:
Quote (Dreii)
Обнулять нужно все переменные котрые вызывают утечки

и почему это они должны вызывать утечки? я впервые такой бред слышу.
 

romaN-1998Дата: Четверг, 06 Января 2011, 02:08:05 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Dreii, есть у тебя какие-нибудь лёгкие наработки Jass для новчиков ^^ чтобы поучиться там.. немного.
 

DreiiДата: Четверг, 06 Января 2011, 02:16:08 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
romaN-1998, вот маленький пример способности, когда герой применяет молот бурь, то юнит на которого применли мгновенно движеться к применяющему юниту
Code
function Trig_trig_Actions takes nothing returns nothing
local unit c//Создаем локальную переменную типа юнит,почему не задаем сразу?Потому-чтоона должна задаваться когда выполняеться условие
local unit t//Создаем локальную переменную типа юнит,почему не задаем сразу?Потому-чтоона должна задаваться когда выполняеться условие
local location loc//Создаем локальную переменную типа точка,аналогично выше сказанному не задаем
if GetSpellAbilityId() == 'AHtb' then//Проверяем какая способность была применена
set c=GetSpellAbilityUnit()//Устанавливаем кастера
set t=GetSpellTargetUnit()//Устанваливаем цель
set loc=GetUnitLoc(c)//Устанаваливаем локацию (Позиция юнита(с))
       call SetUnitPositionLoc(t,loc)//Двигаем t  в позицию loc
endif//Конец условия
//Обнулять переменныее только полсле endif
call RemoveLocation(loc)//Удаляем точку
set c=null//обнуляем с
set t=null// обнуляем t
endfunction

//===========================================================================
function InitTrig_trig takes nothing returns nothing
local integer index=0
       local trigger trig=CreateTrigger()// созадем локальный триггер т.к он занимает меньше места в памяти
      loop//начало цикла
      // результат раскрытия BJ  функции TriggerRegisterAnyUnitEventBJ
           call TriggerRegisterPlayerUnitEvent(trig, Player(index), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)//Реакция на событие применения способности
           set index = index + 1
           exitwhen index == 15//количество игроков
       endloop//конец цикла
       call TriggerAddAction(trig, function Trig_trig_Actions)
       set trig=null//Обнуляем триггер
endfunction

Опытные кодеры могут возразить что нужно удалять юнита call RemoveUnit© и call RemoveUnit(t)




Сообщение отредактировал Dreii - Четверг, 06 Января 2011, 02:17:57
 

romaN-1998Дата: Четверг, 06 Января 2011, 02:18:41 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
ОК!
Не все надо переменные обнулять, ведь так ? Просто вычитал токо что, только Глобальные, т.к. Локальные сами удаляются при завершении триггера, ведь так ?

Добавлено (06-01-2011, 02:17)
---------------------------------------------

Quote (Dreii)
Опытные кодеры могут возразить что нужно удалять юнита call RemoveUnit© и call RemoveUnit(t)

Расскажи разницу..

Добавлено (06-01-2011, 02:18)
---------------------------------------------
Думаю, этот топик, будет служить Справочником по Jass.. Возможно ли такое ?? Если тема разрастётся, можно будет тему закрепить попросить ?

 

DreiiДата: Четверг, 06 Января 2011, 02:18:57 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (romaN-1998)
Расскажи разницу..

Ну в этом случае вроде не нужно,вообще не знаю ^^Видел гдето в крутых нарарботка ремували юнитов,но в этом случаее бред


 

romaN-1998Дата: Четверг, 06 Января 2011, 02:21:11 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Вообще, интересно, если разобраться, всё не сложнее триггеров... даже легче..
 

DreiiДата: Четверг, 06 Января 2011, 02:21:16 | Сообщение # 21
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
romaN-1998, чем хорош Jass тем что можно не создовать кучу тригегров чтобы каждую секунду двигать юнита кудато,достаточно просто юзать хеш и таймер ^^
+ Есть локлальные переменные




Сообщение отредактировал Dreii - Четверг, 06 Января 2011, 02:21:42
 

romaN-1998Дата: Четверг, 06 Января 2011, 02:22:30 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Да! Локальные переменные - это хорошая вещь, этого нету в триггерах..А локалки облегчают работу )
 

DreiiДата: Четверг, 06 Января 2011, 02:22:52 | Сообщение # 23
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Так же в Jass глобальные переменные пишуться с удродливой приставкой udg_
например set udg_hero=GetTriggerUnit()


 

romaN-1998Дата: Четверг, 06 Января 2011, 02:24:08 | Сообщение # 24
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Ппц.. Какой же примитив ^^

Создаём локалку

Проверяем...
Устанавлием переменную

мм...

Добавлено (06-01-2011, 02:24)
---------------------------------------------

Quote (Dreii)
Так же в Jass глобальные переменные пишуться с удродливой приставкой udg_
например set udg_hero=GetTriggerUnit()

Скоко ты Jass учился ? Ему надо долго поклоняться? ^^
 

DreiiДата: Четверг, 06 Января 2011, 02:26:13 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Локальные переменные работатют в пределах одной функции
например
function Trig_trig_Actions takes nothing returns nothing
local unit u=GetTriggerUnit()
endfunction
function Trig_trig2_Actions takes nothing returns nothing
//тут переменная u не будет работать
ее можно перенести с помощью хеша
endfunction

Добавлено (06-01-2011, 02:24)
---------------------------------------------

Quote (romaN-1998)
Скоко ты Jass учился ? Ему надо долго поклоняться? ^^

скоро буде 10 дней

Добавлено (06-01-2011, 02:26)
---------------------------------------------
когда есть возможность то лучше сразу установить локалку
например
local unit u=GetTriggerUnit()
call KillUnit( u)
set u=null


 

  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Поиск:

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