карта - Nature's Call - Circle Defense
жанр - Tower Defence
автор - Darky27
Размер 1 МБ - www.epicwar.com/maps/331361
листфайл - 100%
запускается на патчах 1.14 - 1.21b, а на патче 1.26 не запускается
что нужно сделать, чтобы адаптировать под патч 1.26 ?
большая ли это вообще работа?
с чего надо начать? или там поменять пару параметров в нативках?

вот 4 ошибки из pjass:
pjass
:992: Cannot convert returned value from item to unit
:1073: Cannot convert returned value from integer to unit
:4936: Cannot convert returned value from unit to integer
:5082: Cannot convert returned value from integer to unit

function Trig_W2U takes item w returns unit
    return w
    return null //992
endfunction

function Trig_I2U takes integer i returns unit
    return i
    return null //1073
endfunction

function Trig_Nerubian_Tower_Unit takes unit u returns integer
    return u
    return 0 //4936
endfunction

function Trig_Kill_Tower_Unit takes integer i returns unit
    return i
    return null //5082
endfunction
занулил так: на 1.26 стало запускаться:

function Trig_W2U takes item w returns unit
//    return w
    return null //992
endfunction

function Trig_I2U takes integer i returns unit
//    return i
    return null //1073
endfunction

function Trig_Nerubian_Tower_Unit takes unit u returns integer
//    return u
    return 0 //4936
endfunction

function Trig_Kill_Tower_Unit takes integer i returns unit
//    return i
    return null //5082
endfunction
правильная ли это адаптация 4 функций под 1.26?

также есть баг (может есть и другие):
вышка Giant Pillar - Hurl Boulder - бросок камня (атака) - сломанная анимация кулдауна
на 1.14 - анимация кулдауна нормальная
на 1.21 - без фикса запускается - но даже в ней сломана анимация кулдауна
на 1.26 - без фикса не запускается
на 1.26 - после фикса запускается - но анимация сломана как в 1.21
видео 1.14 - анимация кулдауна работает как и задумано
видео 1.21 / 1.26 - анимация кулдауна не показывается

два вопроса:
  1. как правильно вылечить 4 ошибки pjass (выше по коду) (т.е. чтобы карта запускалась на 1.26 варике)
  2. как починить анимацию кулдауна?
весь код карты - pastebin.com/YyZxtgEZ

Поробовал поменять на хеш-таблицы и карта запустилась на рефордже (не знаю про 1.26, но скорее всего тоже будет работать). Менял все чере мпк редактор, ибо если менять редактор мира, в из карты выидывает с поражением, не стал с этим заморачиваться, да и через блокнот редактировать код в данном случае удобней. Кстати эта защита видимо забытые технологии древних. По крайней мере я ничего подобного не видел. Да и то что в карте есть такая защита и саму карту не прогоняли через оптимизаторы, говорит о том что она мега древняя. Ну это так отступление.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
14
протестировать работу 4 функций можно так:
Trig_W2U --- проверка: не требуется
Trig_I2U --- проверка: продажа вышки другому игроку - CancelSellRequest Trig_Worker_Stats_Group Trig_Buy_Tower_Player_Actions Trig_Itemify_Tower_Actions Trig_Sell_Tower_Actions Trig_Sell_Tower_Player_Actions
Trig_Nerubian_Tower_Unit --- проверка: хз - Trig_Build_Tower_Timer_Actions - Trig_U2I [BaHeK] - строка call SetUnitUserData( udg_ConstructionBuilding[playernum], Trig_Nerubian_Tower_Unit (udg_ConstructionWorker[playernum]) )
Trig_Kill_Tower_Unit --- проверка: килы в мультиборде - Trig_Kill_Tower_Actions - Trig_I2U [BaHeK]
кек, ведь можно заменить local unit worker = Trig_I2U(GetUnitUserData(u)) на local unit worker = u
сработало только для килов, остальные функции не стали работать, что говорит о неправильном способе решения
Поробовал поменять на хеш-таблицы и карта запустилась
ты красава
релиз тут xgm.guru/p/wc3/NCCD126
14
итоговый короткий код от BaHeK
конвертация return bug для UNIT <-> INTEGER
globals
    hashtable ht = InitHashtable()
endglobals

function Trig_U2I takes unit u returns integer
    local integer id = GetHandleId(u)
    call SaveUnitHandle(ht, 0, id, u)
    return id
endfunction

function Trig_I2U takes integer i returns unit
    return LoadUnitHandle(ht, 0, i)
endfunction
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.