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

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

Ответ
 
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Hellfim
Вперед и назад? Хех. Я про него знаю. Борьба с ним без утяжеления кода не удалась... Он не такой досадный, по сравнению с остальными системами (попробуй взять систему с главной и зажать обе кнопки ) если получиться убью и этот баг, пока цель номер один: камера.
Старый 04.02.2009, 19:00
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
  • У тебя утечка. Да, ты не ослышался:
    Код:
    // GetUnitLoc создает объект типа location
    set l = GetUnitLoc(Units[i])
    set Z1 = GetLocationZ(l)
    // PolarProjectionBJ создает объект типа location и перезаписывает переменную l
    set l = PolarProjectionBJ(l,-400,GetUnitFacing(Units[i]))
    set Z2 = GetLocationZ(l)
    // . . .
    call RemoveLocation(l)
    set l=null

  • Продолжение предыдущего пункта - рекомендую юзать глобальную переменную для определения высоты рельефа. Возможно, лучше будет вынести это в отдельную функцию:
    Код:
    globals
      private location temp_loc = Location(0, 0)
    endglobals
    
    function GetTerrainZ takes real x, real y returns real
      call MoveLocation(temp_loc, x, y)
      return GetLocationZ(temp_loc)
    endfunction

  • Убрать все убираемые BJ функции:
    Код:
    set l = PolarProjectionBJ(l,-400,GetUnitFacing(Units[i]))
    // . . .
    call TriggerRegisterPlayerKeyEventBJ( UpDown, Player(Count), bj_KEYEVENTTYPE_DEPRESS, bj_KEYEVENTKEY_UP )
    // . . .

  • Зачем выносить триггеры в глобальные переменные, если они юзаются в одном месте и при инициализации?
    Код:
    local trigger UpDown = CreateTrigger()
    local trigger UpUp = CreateTrigger()
    // . . .

  • Я думаю, что лучше использовать таймеры, нежели периодические триггеры.
    Код:
    private function init takes nothing returns nothing
    // >> ненене, в топку
      // call TriggerRegisterTimerEvent( Move, 0.05,true )
      // call TriggerRegisterTimerEvent( Animation, 0.2,true )
      // call TriggerRegisterTimerEvent( Camera,0.04,true )
    
    // >> вот так-то лучше
      call TimerStart(CreateTimer(), 0.05, true, function Move_Actions)
      call TimerStart(CreateTimer(), 0.2,  true, function Animation_Actions)
      call TimerStart(CreateTimer(), 0.04, true, function Camera_Actions)
    
    endfunction

  • Камера дергается при движении вперед или назад, здесь оставляю решение проблемы на тебя =)
Старый 04.02.2009, 20:08
CeraRalaz
...
offline
Опыт: 48,115
Активность:
MF_Andreich,всё здорово.Камера действительно не дёргается при столкновении с каким-либо объектом.
Но изображение ДИКО стробит(кроме телающих юнитов)
Я луче буду играть в карту с системой Алекса.
В его системе не дёргалось.
З.Ы.:В ИОРПГ систему не вставлять,пока стробить не перестанет.
Старый 04.02.2009, 20:16
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
ShadoW DaemoN
За утечку спасибо, проглядел! От бж избавляться все равно собирался, в этой версии главное было чтоб алгоритм работал... хотя эвенты пока расскрывать не раскрывал, но раскрою, локацию глобальной делать не буду (ввиду того чтоб каждый поток тянул на себя свое одеяло, а не утягивал чужое (редко но такое бывает, не в Jass'овой практике я с таким даже встречался)), триггеры в локалки вынес до того как ты отписал , а про таймеры, не думал об этом, честно, спасибо за идею.
CeraRalaz
В системе которая была в ИОРПГ и которая есть сейчас камеры почти идентичны (кстати та которая была вызывала десинки, а та которая есть нет, в этом их и разница, изображение стробит и в той которая была)
Старый 05.02.2009, 06:35
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Обновлены вложения, удалены бж функции (в разумных пределах), удалена утечка, камера вроде не трясеться, добавлены новые возможности. Версию с прыжком не стоит воспринимать всерьез, просто демонстрация идеи о том, что формулы при расчетах парабол совсем не обязательны ;):
Старый 05.02.2009, 11:05
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Вторая версия круть... Никаких багов не нашел! )
Старый 05.02.2009, 11:37
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Gres
Старался!!!

Для тех кто поймет, в версии с прыжком идея не ради прыжков, а ради движения под действием сил. (3х мерные вектора, смещения вдоль них, сферические координаты и так далее) может кому станет интересно, тот что нибудь наваяет.
Старый 05.02.2009, 12:17
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
MF_Andreich оч рулез тока! летающий юнит тож трясется :( и еще я перенес триги на другую карту и когда запустил! то вар выдал мне главное меню а не игру. Хотя вроде я перекопировал переменные и триггеры (2 главных). Что не так?
Старый 05.02.2009, 12:23
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Gam_Over
Читаем первый пост, нужен JNGP. Просто тестом не запустишь, карту нужно будет сохранить именно в JNGP.
Старый 05.02.2009, 12:38
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
MF_Andreich явсе делал с JNGP копировал. щас попробую по-другому.
Кста триггер у тебя где Init там ты задаешь индекс анимации для хотьбы?
Старый 05.02.2009, 12:42
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Gam_Over
да. именно там. пример весьма прозрачен. узнать индекс можно в моем примере с помощью безымянного тригера номер 1
Старый 05.02.2009, 12:56
alexkill

offline
Опыт: 18,872
Активность:
Цитата:
Сообщение от MF_Andreich
не в Jass'овой практике я с таким даже встречался

сомневаюсь, что в этом случае может возникуть проблема с потоками. делай глобалкой, зачем загружать память?
Старый 05.02.2009, 13:21
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
alexkill
Ну можно сделать по просьбе трудящихся, это не так сложно... Просто возможны косяки, мне 4 годы вбивали что нельзя так использовать глобалки это против моей натуры.
Старый 05.02.2009, 13:29
CeraRalaz
...
offline
Опыт: 48,115
Активность:
О,мне с прыжком понравилось.Только жаль не напрыгаться в сласть.Разве нельзя сделать менюшую паузу между прыжками?
Старый 05.02.2009, 13:31
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
CeraRalaz
Хех, можно. Сделай. Я не буду. Это просто демонстрация идеи, не более.
Старый 05.02.2009, 13:36
alexkill

offline
Опыт: 18,872
Активность:
Цитата:
Сообщение от MF_Andreich
alexkill
Ну можно сделать по просьбе трудящихся, это не так сложно... Просто возможны косяки, мне 4 годы вбивали что нельзя так использовать глобалки это против моей натуры.

косяков не будет.

еще совет: вынеси все проверки в инлайн-функцию. хотя бы те, что проверяют статы и баффы.
Старый 05.02.2009, 13:37
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
alexkill
Да сделаю я, сделаю!
Старый 05.02.2009, 13:43
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
MF_Andreich все равно не работает :( не знаю почему, но вообще никак :(
Старый 05.02.2009, 14:33
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Gam_Over
Карту покажи, я не телепат , хотя бы в личку, неразглашение гарантирую.
Старый 05.02.2009, 14:54
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
MF_Andreich хорошо тока ты мне скажешь выход через лс
Старый 05.02.2009, 14:57
Ответ

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

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

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

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



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