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

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

Закрытая тема
 
Ethernet
Я Impereon
offline
Опыт: 8,529
Активность:
Вопрос связан с Л.переменными.
Код:
function Trig_ViperSwordG1j_Func002Func005Func001C takes nothing returns boolean
   
if ( not ( IsUnitInGroup(GetEnumUnit(), udg_groupViper[1]) == false ) ) then
        return false
    endif
    if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_ViperswordUnit[1])) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_ViperSwordG1j_Func002Func005A takes nothing returns nothing
    if ( Trig_ViperSwordG1j_Func002Func005Func001C() ) then
        call CreateNUnitsAtLoc( 1, 'h006', GetOwningPlayer(udg_ViperswordUnit[1]), GetUnitLoc(udg_ViperUnit[1]), bj_UNIT_FACING )
        call UnitApplyTimedLifeBJ( 0.70, 'Brai', GetLastCreatedUnit() )
        call UnitAddAbilityBJ( 'A00B', GetLastCreatedUnit() )
        call SetUnitAbilityLevelSwapped( 'A00B', GetLastCreatedUnit(), GetUnitAbilityLevelSwapped('A00A', udg_ViperswordUnit[1]) )
        call IssueTargetOrderBJ( GetLastCreatedUnit(), "shadowstrike", GetEnumUnit() )
        call DisplayTextToForce( GetPlayersAll(), I2S(GetConvertedPlayerId(GetOwningPlayer(udg_ViperUnit[1]))) )
        call GroupAddUnitSimple( GetEnumUnit(), udg_groupViper[1] )
    else
        call DoNothing(  )
    endif
endfunction

function Trig_ViperSwordG1j_Func002C takes nothing returns boolean
    if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_ViperUnit[1]), udg_PointEndViper[1]) >= 100.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_ViperSwordG1j_Actions takes nothing returns nothing
    local integer X=udg_GamerViper1
    if ( Trig_ViperSwordG1j_Func002C() ) then....
(Далее не важно)

В конце кода есть local integer X=udg_GamerViper1///Интегр =Целочисленная?
Так вот. Выше local integer X=udg_GamerViper1 есть еще функции, но мне надо что бы там была задействована переменная X. Там где цифра 1 в значение массива.
Это че в каждую функцию вставлять local integer X=udg_GamerViper1??
Тема такая, что в тригерах создание переменной и присваивание стоит в перовй строчке действий. Не шарю ппц. Хелп.
Старый 20.05.2011, 20:18
Nekit1234007

offline
Опыт: 11,916
Активность:
«Прочитайте чёртово руководство» по джассу и научитесь им пользоваться как белый человек.
Nekit1234007 добавил:
То, что имеется сейчас, принято называть «говнокод».
Старый 20.05.2011, 20:27
Hanabishi
COOL STATUS
offline
Опыт: отключен
Интегр =Целочисленная?
-_- translate.google.ru/#en|ru|integer
Старый 20.05.2011, 20:31
Ethernet
Я Impereon
offline
Опыт: 8,529
Активность:
Nekit1234007, все притензии к близам,Ога?%)
По делу есть че? Хоть чем то помогите, чтоль.
Напомню. Куда поставить local integer X=udg_GamerViper1, чтобы не вылеталос критом и не видел ошибок.
Старый 20.05.2011, 20:45
Hanabishi
COOL STATUS
offline
Опыт: отключен
Ethernet, из кода можно сделать вывод, что эта переменная - массив
тогда где указание на элемент?
local integer X=udg_GamerViper1[?]
Hanabishi добавил:
и да, код ужасен, ты не шаришь - претензии к тебе, а не к близзам
Старый 20.05.2011, 20:57
Ethernet
Я Impereon
offline
Опыт: 8,529
Активность:
Вообщем еще более подробно раскрываю тему.
Делаю Муи Спелл.
И хочется облегчить свою жизнь при создание, а точнее копирование уже готового триггера, для каждого игрока. И что бы при копирование не изменять в каждом параметре одну и туже цифру на другую, я сделал так.
1 Триггер(Юнит приводит способность в действие)
Тут определяем какой игрок использует способность. Добавлю
Есть 8 глобалок(это было сделать мне не лень)ЖВ
от GamerViper1 до GamerViper8, к каждой глобалке задается номер игрока.
Вот эту глобалку я хочу задать локальной переменной Х, которая используется уже в 2-10 тригере(это тригеры движения/перемещения юнита), чтобы при копирование тригера/сценария/cкрипта. Я только поменял 1 цифру в название глобально переменной и не парился.
да,да сейчас я жестко парюсь. Но в дальнейшем я думаю мне это упростит жизнь.

Ethernet добавил:
Hanabishi, я конвертировал тригеры в код, я не шарю:) Но близы же мне это выдали.

Ethernet добавил:
Спасибо, сделал как дурак, вставил во все функции. Проще видимо никак?
Старый 20.05.2011, 21:50
DotaMaster666
Silenced by GadenbIsh
offline
Опыт: 1,259
Активность:
Проще видимо никак?
Для человека, который не в состоянии прочитать пару страниц текста из статей видимо никак.
DotaMaster666 добавил:
call DoNothing( )
Вот уж внезапно - так внезапно. В коде есть memory leaks (перевод не использую, ибо после его звучания все сразу начинают обнулять любые возможные int, real и bool)
Старый 20.05.2011, 23:25
Ethernet
Я Impereon
offline
Опыт: 8,529
Активность:
Про локальные переменные я читал. Про функции я читал. А толку я для себя не увидел.
Ethernet добавил:
Рано пока с утечками разбиратся(но думаю скоро темы появятся:))
я предпологаю, что утечки от позиции юнита где создается дами?
Ethernet добавил:
Ах да, еще группы чистить
Старый 21.05.2011, 00:07
Закрытая тема

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

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

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

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



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