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

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

Закрытая тема
 
Extremator

offline
Опыт: 39,428
Активность:
Мой первый триггер на Jass'е
Ну собс-но это он - мой первый триггер на Jass'е.
Он совсем простенький, при событии под юнитом меняет тайл (снег/трава) + спецэффект
Что тут лишнее? что можно сделать иначе/лучше/по-другому?
...и... нужно ли обнулять переменные? (я ведь их обнулил? хД)
» код
function Trig_d_Actions takes nothing returns nothing

    local unit Unit = gg_unit_hrif_0005
    local real Unit_X = GetUnitX(Unit)
    local real Unit_Y = GetUnitY(Unit)
    local integer TerType = GetTerrainType(Unit_X,Unit_Y)
    local integer TerType_new
    local integer TerVariation
    local string SFX
    
    if ( TerType != 1466397299 ) then
        set TerType_new = 1466397299
        set TerVariation = 16
        set SFX = "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl"
    else
        set TerType_new = 1467182711
        set TerVariation = 4
        set SFX = "Abilities\\Weapons\\Bolt\\BoltImpact.mdl"
    endif
    
    call SetTerrainType(Unit_X,Unit_Y,TerType_new,TerVariation,1,0)
    call DestroyEffect(AddSpecialEffect(SFX, Unit_X, Unit_Y))
    
    set Unit = null
    set Unit_X = 0
    set Unit_Y = 0
    set TerType = 0
    set TerType_new = 0
    set TerVariation = 0
    set SFX = null
    
endfunction
Старый 05.10.2013, 20:10
Hanabishi
COOL STATUS
offline
Опыт: отключен
Да вроде всё нормально, только вот real, integer и string обнулять не нужно
Hanabishi добавил:
А вообще полезно xgm.ru/p/wc3/articles
Старый 05.10.2013, 20:35
adic3x

offline
Опыт: 108,439
Активность:
TerType != 1466397299
Лучше писать в формате 'A000'.
Да вроде всё нормально, только вот real, integer и string обнулять не нужно
Можно поставить cJass и вообще ничего из локальных переменных не обнулять (и при этом писать на обычном jass).
Старый 05.10.2013, 21:49
Extremator

offline
Опыт: 39,428
Активность:
ADOLF:
TerType != 1466397299
Лучше писать в формате 'A000'.
Да я хотел, но... как? просто написать 'A000'. ?
Я просто не знаю ... в глобалках есть типы "спелл (abllcode)" / "тип юнита (unitcode)"...
В локалках они тоже есть? (я не знаю как их типы правильно пишутся)

Отредактировано Extremator, 05.10.2013 в 22:44.
Старый 05.10.2013, 22:37
MpW

offline
Опыт: 49,815
Активность:
Extremator, типы юнита, типы спелы короче равкоды - целое (integer). можешь в приват стучать, если что не понятно, отвечу.
local integer id = 'A000'
есть же типы и другие
Steal nerves добавил:
вот
Миниатюры
Кликните на картинку для увеличения
Название:  Типы переменных.JPG
Просмотров: 81
Размер:  64.5 Кбайт  
Старый 05.10.2013, 22:59
ScorpioT1000
Работаем
online
Опыт: отключен
Да я хотел, но... как? просто написать 'A000'. ?
Старый 06.10.2013, 04:37
DioD

offline
Опыт: 45,134
Активность:
1) Никогда не играйтесь с регистром, пишите все переменные в нижнем, а все глобальные в верхнем регистре, а вот вход методов следует писать типа x_name, какнибудь потом вы пожалеете о своей любви к регистру и неправильному названию переменных. (shadowlocals)

2) Никогда не оптимизируйте то что не следует оптимизировать, касается в первух очередь dec256

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

4) Если бы не байтодрочили можно было бы вообще ничего не обнулять и не думать об этом, как смешно бы это не звучало, правильно написанный код вообще обнулять не надо, он не течёт сам по себе.
Старый 06.10.2013, 06:06
Карточка
Kicked by SSrunX
offline
Опыт: 2,017
Активность:
gg_unit_hrif_0005 - прямая ссылка на юнита, никакой необходимости в создании локалки и в последующем обнулении не имеется
правильно написанный код вообще обнулять не надо, он не течёт сам по себе
толсто
мой первый триггер на Jass'е
парься только с обнулением, высокие уровни оптимизации где байтодрочинг нужен - это очень очень очень очень редкий случай, когда это действительно нужно
Старый 06.10.2013, 16:42
DioD

offline
Опыт: 45,134
Активность:
не совсем, я могу написать почти любой код на JASS без обнуления и вычищения объектов используя различные формы кеширования данных, от того и потому что все объекты будут перманентрыми, соответственно и очищать на них ссылки не потребуется.
Старый 06.10.2013, 17:34
ScorpioT1000
Работаем
online
Опыт: отключен
пишите все переменные в нижнем
как делают все нормальные люди msdn.microsoft.com/ru-ru/library/system.net.sockets.socket.aspx
КАК ДЕЛАЮ Я:
мы любим линукс! аве 95 год!
Старый 06.10.2013, 17:56
DioD

offline
Опыт: 45,134
Активность:
вы все еретики, неймспейс глобалок, локалок и параметров не должен совпадать.
Старый 07.10.2013, 13:29
ScorpioT1000
Работаем
online
Опыт: отключен
Всегда думал, что неймспейс распространяется на весь класс, а не на отдельные его части...
Старый 07.10.2013, 13:47
DioD

offline
Опыт: 45,134
Активность:
в джаз всего ОДИН класс, не заметили?

при чём этот клас синглетрон и не может быть переадресован, всё остальное методы одного класса, именно по этой причине неймспейс не должен совпадать.
Старый 08.10.2013, 04:46
ScorpioT1000
Работаем
online
Опыт: отключен
Мы же про нормальный язык jngp, а не jass =) причем тут то, что внутри?
Старый 08.10.2013, 14:15
DioD

offline
Опыт: 45,134
Активность:
действительно закрасить слово мусор на мусорном баке сделает из него конфетку, так держать.
Старый 08.10.2013, 16:21
ScorpioT1000
Работаем
online
Опыт: отключен
Старый 08.10.2013, 17:20
Карточка
Kicked by SSrunX
offline
Опыт: 2,017
Активность:
жду тему про второй его триггер на джассе, но сколько времени прошло, а её всё нет :(
Старый 11.10.2013, 14:06
Hanabishi
COOL STATUS
offline
Опыт: отключен
Карточка, зима не будет
Старый 11.10.2013, 14:34
Закрытая тема

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

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

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

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



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