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

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

Ответ
 
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
ScorpioT1000, веришь нет, вчера проверял - ну не запускалось, вот сейчас проверил - все работает... Наверно я ночью что-то намудрил =) Мой пример никак не повлияет на это. НО! Встает вопрос: почему этот кусок кода работает нормально в 1.23, а карта в 1.24 с ним не запускается:
library TerrainPathability initializer Initialization
//******************************************************************************
//* BY: Rising_Dusk
globals
    constant integer TERRAIN_PATHING_DEEP                           = 1
    constant integer TERRAIN_PATHING_SHALLOW                        = 2
    constant integer TERRAIN_PATHING_LAND                           = 3
    constant integer TERRAIN_PATHING_WALKABLE                       = 4
    
    private unit Dummy                                               = null
    private constant integer DUMMY_UNIT_ID                          = 'h00C'
    private constant integer DUMMY_WINDWALK_ID                      = 'win&'
    private constant player OWNING_PLAYER                           = Player(15)
    
    //* These variables shouldn't be adjusted
    private real WorldMinX                                          = 0.
    private real WorldMinY                                          = 0.
endglobals

////! external ObjectMerger w3a ANwk win& anam "Collision Ability" ansf "" Owk3 1 0.0 Owk4 1 0 Owk2 1 0.0 Owk1 1 0.0 acdn 1 0.0 ahdu 1 0.0 adur 1 0. aher 0 amcs 1 0


function IsTerrainPathingType takes real x, real y, integer terrainPathingType returns boolean
    local boolean b = false
    if terrainPathingType == TERRAIN_PATHING_DEEP then
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    elseif terrainPathingType == TERRAIN_PATHING_SHALLOW then
        return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    elseif terrainPathingType == TERRAIN_PATHING_LAND then
        return IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY)
    elseif terrainPathingType == TERRAIN_PATHING_WALKABLE then
        call SetUnitPosition(Dummy, x, y)
        set b = GetUnitX(Dummy) == x and GetUnitY(Dummy) == y and not (not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY))
        call SetUnitX(Dummy, WorldMinX)
        call SetUnitY(Dummy, WorldMinY)
        // если убрать нижеследующий коммент, то карта запустится
        //return b
    endif
    return b
endfunction

private function Initialization takes nothing returns nothing
    set WorldMinX = GetRectMinX(bj_mapInitialPlayableArea)
    set WorldMinY = GetRectMinY(bj_mapInitialPlayableArea)
    set Dummy = CreateUnit(OWNING_PLAYER, DUMMY_UNIT_ID, 0., 0., 0.)
    call UnitAddAbility(Dummy, DUMMY_WINDWALK_ID)
    call UnitAddAbility(Dummy, 'Avul')
    call IssueImmediateOrderById(Dummy, 852129)
endfunction
endlibrary
Проверял на чистой карте, JassNewGenPack 5d, JassHelper 0.9.I.2 нормальный, файлы blizzard.j и common.j от версии 1.24.
Старый 06.08.2009, 11:08
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Wa_rg:
Нде, придётся теперь делать бэкап карты и переписовать всё, а потом выпускать под 2 версии?
Муторно это, но лучше делать заранье чтобы потом не торопится делать.
не труъ , лучше всё делать так чтобы работало и там и там
Старый 06.08.2009, 12:38
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
ELDAR, Не возможно все карты сделать такими, так как некоторые крутые фичи требуют H2I
Если только какая-нибудь GUI карта... ну это понятное дело... в них ничего интересного
PS: Кстати... кто-то говорил, что в гарене не будут обновляться?) Да ладно вам, в доту уже рубятся на 1.24 патче, я же говорил, что с новой версией доты все будут обновлять свой варик xD
Старый 06.08.2009, 12:41
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Ranger21, не правда. Нет такой фичи с H2I, которую нельзя было бы сделать без нее.
Старый 06.08.2009, 12:45
NCrashed

offline
Опыт: 13,553
Активность:
MF, зато с ней можно на таймер повесить все что душе угодно, а не мучать с массивами, для меня это единственное полезное применение return bug
Старый 06.08.2009, 12:55
Toadcop

offline
Опыт: 53,013
Активность:
Цитата:
Нет такой фичи с H2I, которую нельзя было бы сделать без нее.
T_T и поэтому мы юзаем h2i... бред не пиши то.
Старый 06.08.2009, 14:43
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
зато с ней можно на таймер повесить все что душе угодно, а не мучать с массивами, для меня это единственное полезное применение return bug
Я не верю что у тебя на карте будет настолько много таймеров (ну например 5000) при которых ты будешь ощутимо замечать пробежку по циклу. Зато если делать так, то карты работают на обеих версиях ^_^
T_T и поэтому мы юзаем h2i... бред не пиши то.
а использование бага это не бред?
Старый 06.08.2009, 14:53
Toadcop

offline
Опыт: 53,013
Активность:
Цитата:
а использование бага это не бред?
а это баг ? почему все такие конченые...
Старый 06.08.2009, 14:55
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Toadcop, хорошо, это фича, но все кто ее юзал идут в пень (уже полгарены перелезло на 1.24). Тебе легче? ^_^
Старый 06.08.2009, 14:57
ZeToX2007

offline
Опыт: 7,009
Активность:
Теперь даже гуишники смогут юзать аналог Рб+Кеш... ток пока показывают мои наблюдения, что больше половины новичков не понимают, для какой главной цели нужна Хештаблица.


Цитата:
Сообщение от MF
а использование бага это не бред?


=/
Старый 06.08.2009, 17:17
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Ковыряя очередную карту в поисках того, из-за чего она может не запускаться в варе, наткнулся на следующую вещь (я это уже упоминал здесь, но не придал этому какого-то собого значения):
globals
  dialog d = null
endglobals

// . . .

function Register takes unit u returns nothing
  local unit d = null
  // . . .
endfunction
То есть нельзя назвать глобалку и локалку одинаково.
Эту особенность следует учитывать при переводе карты на совместимость с патчем 1.24
Старый 06.08.2009, 20:27
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
ShadoW_DaemoN, это - то, что они назвали "“Shadowing” global variables with local variables no longer is possible." Они использовали самый тупой и брутальный способ, что и требовалось доказать.
Старый 06.08.2009, 21:11
ScorpioT1000
Работаем
online
Опыт: отключен
я думал, что теперь глобалсы будут затенять локалки про совпадении имен(хотя во всех норм языках наоборот младшее заменяет старшее), а тут совсем ололо, они рехнулись, там прутся сидят наверное)
Старый 06.08.2009, 23:13
Gam_Over
Изучаю SC2 Editor
offline
Опыт: 7,892
Активность:
у меня такое ощущение что близы угарают над всеми картостроителями. повезло новичкам что они не знают историю РБ и SCV :) им легче начать изучать новое, чем переходить со старого на новое.

баги как я и думал будут
Старый 11.08.2009, 19:27
Daemonik

offline
Опыт: 5,084
Активность:
Ой спасибо тебе ShadoW_DaemoN. Я бы долго пытался найти проблему...
Старый 12.08.2009, 00:24
MupaMaX
Мой статус
offline
Опыт: 1,495
Активность:
Хочу сказать что хэш таблица далеко не святая... если использовать луповый таймер, и внутри него луп, и общатся с хэш таблицей... она начинает путать ячейки... причем очень жостко путать...
Старый 14.08.2009, 00:31
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
MupaMaX, Если одеть рубашку шиворот-навыворот, то тебе тоже будет неудобно.
Так же относиться и к хэш-таблицам, ты что-то делаешь не правильно, вот ячейки и путаются.
Старый 14.08.2009, 00:49
MupaMaX
Мой статус
offline
Опыт: 1,495
Активность:
Ranger21, Да вроде уже пару часов убил... причем решал проблему... уже сделал так что конфликтов не должно быть никаких... но тут как тут новая проблема... и все ходит вокруг одной таблицы...
Старый 14.08.2009, 01:46
MupaMaX
Мой статус
offline
Опыт: 1,495
Активность:
ScorpioT1000, FREEZE_ball, Ranger21, Я все таки потратил 3 дня, в голове не одну сотню раз прокрутил принцип работы своего скрипта, и пришел в выводу что я болван, и с таблицей все ок, а мне необходимо впереть быть еще внимательней... Я записывал количество юнитов в переменную, это количество не должно было меняться, но под воздействием неких факторов оно менялось... такой фактор использование способности более чем 3 раза за 2 - 3 сек... оно менялось, в итоге таблица перезаписывала значения... Кто понял тому спасибо ))
Приношу свои извинения за то что ввел вас в заблуждение !
MupaMaX добавил:
Totraz, Учи Jass когда находишь такого рода ошибку... настроение сразу так поднимается...
Старый 15.08.2009, 13:53
Monoroh
Don't look at me!
offline
Опыт: 2,777
Активность:
Я делал карту свою, но после того, как я пропатчил игру до 1.24 она не запускается в игре:( Загрузка не появляется, просто в меню вылетает... в чем проблема?
Старый 19.08.2009, 12:28
Ответ

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

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

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

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



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