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

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

Закрытая тема
 
J
expert
offline
Опыт: 48,447
Активность:
PlayerDark неможет быть такого, а какие у тебя действия с юнитами?
Старый 28.06.2007, 11:10
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
PlayerDark
Может у тебя ошибка, что не проинициализировал переменную ppp?
Т.е. забыл:
Код:
local group gr = CreateGroup()
local unit u
local <YourType> ppp
//Сдесь включай нужных...
Старый 28.06.2007, 13:47
J
expert
offline
Опыт: 48,447
Активность:
DFlyer он наоборот сказал, что с этой переменой, т.е. с этим if-ом у него все получается.. а без - нет.
Старый 28.06.2007, 13:58
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Jon
Цитата:
Сообщение от PlayerDark
Вот эта конструкция у мене не работает. А без иф-ов работает.

C if'ом не работает, а без него работает.

PlayerDark
Попробуй это:
Код:
local group gr = CreateGroup()
local unit u
local integer ppp = 0
//Сдесь включай нужных тебе юнтов в группу
//Например с помощью функции call GroupEnumUnitsInRange (gr, X, Y, радиус, Фильтр функция), хотя Можно и иначе
call GroupEnumUnitsInRange (gr, 0, 0, 200, null )
    loop
        set u = FirstOfGroup(gr)
        exitwhen u == null
         if ppp == ppp then
        //Твои действия над юнитом "u"
         endif
        call GroupRemoveUnit (gr, u)
    endloop
call DestroyGroup(gr)
Старый 28.06.2007, 20:20
DearFear

offline
Опыт: 1,299
Активность:
Люди, подскажите быстренько, и я отвяну.
Если использовать не "Move" а "Issue order" двигаться "point with polar ofset" то будет утечка?
Старый 28.06.2007, 20:22
J
expert
offline
Опыт: 48,447
Активность:
DearFear утекает одна точка
Старый 28.06.2007, 20:22
DearFear

offline
Опыт: 1,299
Активность:
Jon тогда надо что писать в custom script?
Старый 28.06.2007, 20:25
J
expert
offline
Опыт: 48,447
Активность:
DearFear но одна точка ниче незначит.. можеш необращать на это внимания...
Старый 28.06.2007, 20:25
DearFear

offline
Опыт: 1,299
Активность:
Триггер:
Код:
Время - Every 0.05 seconds of game time

If ((FW[1] равно 1.00) and ((Current order of HeroPLAY[1]) не равно (Order(move)))) then do (Боевая еденица - Order HeroPLAY[1] to двигаться ((Position of HeroPLAY[1]) offset by 300.00 towards (Facing of HeroPLAY[1]) degrees)) else do (Do nothing)



Где:
FW - включаеться если зажета клавиша "вверх". Включаеться, тоесть равна еденице.
HeroPLAY - герой
Обе переменных являються массивными.
Номер массива - номер игрока. А если игроков 12, будет ли тогда заметно утечку?
Старый 28.06.2007, 20:33
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Время - Every 0.05 seconds of game time

хм.. тогда это не одна точка
сохраняй сначало точку в переменую, потом используй и потом удаляй через cs: RemoveLocation()

Jon добавил:
однако повторю... с помощью координат это можно сделать в одну строчку
Старый 28.06.2007, 20:35
DearFear

offline
Опыт: 1,299
Активность:
Jon ну близарды придумали! Чтоб их. Хотя всё равно они молодцы.

DearFear добавил:
Вот например создал переменную u-точка.
Она меняеться каждые 0.05 секунд где я использую "polar offset".
Юнит движеться к ней(даёться команда), и сразу же RemoveLocation(udg_u)
тогда не будет утечки?
Старый 28.06.2007, 20:41
J
expert
offline
Опыт: 48,447
Активность:
DearFear вот как это будет на джазе буз утечек
Код:
if (udg_FW[1] == 1) and (GetUnitCurrentOrder(udg_HeroPLAY[1]) == String2OrderIdBJ("move")) then
    call IssuePointOrder( udg_HeroPLAY[1], "move", GetUnitX(udg_HeroPLAY[1])+300*Cos(GetUnitFacing(udg_HeroPLAY[1])*bj_DEGTORAD), GetUnitY(udg_HeroPLAY[1])+300*Sin(GetUnitFacing(udg_HeroPLAY[1])*bj_DEGTORAD))
endif
Старый 28.06.2007, 20:42
DearFear

offline
Опыт: 1,299
Активность:
Jon ты читаеш мои мысли.
Как я понял это три cs?

P.S: Джазз писать не умею, только cs. Так что мне пиши по строчкам.
Старый 28.06.2007, 20:44
J
expert
offline
Опыт: 48,447
Активность:
DearFear cs это и есть джаз
да.. просто 3 строчки...
Старый 28.06.2007, 20:45
DearFear

offline
Опыт: 1,299
Активность:
Да я знаю что это джаз.
А чтобы его всунуть в карту(написать, ибо сам он не пишеться), надо допустить ошибку в cs, и тогда при сохранении можно увидеть весь код. Правильно говорю?

DearFear добавил:
Блин, не идёт. Глянь где не так.
Прикрепленные файлы
Тип файла: w3x h.w3x (88.9 Кбайт, 21 просмотров )
Старый 28.06.2007, 20:58
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Если значение локалки получено путём создания объекта, то надоо её удалять:
Код:
function MyFunc takes nothing returns nothing
  local unit u = CreateUnit(...)
  ...
  set u = null
endfunction


А надо ли обнулять локалу, если при её иницилизации объект был создан, но её значение в процессе выполнения функции было изменено:
Код:
// 1-ый случай:
function OneFunc takes nothing returns nothing
  local unit u = CreateUnit(...)
  ...
  set u = udg_CasterUnit
  ...
  set u = null  // <- надо?
endfunction


// 2-ой случай:
function OneFunc takes nothing returns nothing
  local unit u = CreateUnit(...)
  ...
  set u = CreateUnit(...)
  ...
  set u = null  // <- надо?
endfunction
Старый 11.07.2007, 15:02
XFaNT
Злобный Модер
offline
Опыт: 4,328
Активность:
У меня вот какая проблема, вот функция для выведения флоатинг текста:
function Iron takes string st, location p, integer n returns nothing
local texttag t
call CreateTextTagLocBJ( st, p, 64.00, 10, 10, 10, 80, 0 )
set t = GetLastCreatedTextTag()
call SetTextTagVelocityBJ( t, 64, 90 )
call ShowTextTagForceBJ( false, t, GetPlayersAll() )
call ShowTextTagForceBJ( true, t, GetForceOfPlayer(Player(n-1)) )
call TriggerSleepAction(1.00)
call DestroyTextTagBJ( t )
call RemoveLocation( p )
set t = null
endfunction
Сама по себе она работает, но почему её нельзя запустить ещё раз пока она работает ? и что нада исправить ?
Старый 11.07.2007, 21:11
Markiz

offline
Опыт: 11,432
Активность:
Цитата:
call TriggerSleepAction(1.00)
Старый 11.07.2007, 22:46
XFaNT
Злобный Модер
offline
Опыт: 4,328
Активность:
Markiz и на что его исправить ?
Старый 11.07.2007, 23:18
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
XFaNT
Что ты имеешь в виду под
Цитата:
её нельзя запустить ещё раз пока она работает

???
Старый 12.07.2007, 02:35
Закрытая тема

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

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

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

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



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