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

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

Ответ
 
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность: 376
Участник проектов:
-Мастерская girvel-а
DaeDR, можно вопрос как ты выучил джасс тут на хгм или есть другие источники?
Старый 10.04.2012, 16:21
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Cosonic5, джасс, скоро будет и гуи...
что тебя именно интересует?
Старый 10.04.2012, 16:35
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность: 376
Участник проектов:
-Мастерская girvel-а
quq_CCCP, понять язык джасс, локальные переменные более менее понятны а вот jass нет
Старый 10.04.2012, 16:42
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Cosonic5, а в системе опыта, знания jass ненужны, копируеш триггер и ставиш нстаройки, де написано...
Там комментарии, а втот в системе респа надо знать про хешталицу... ну ка её инициализировать, всё стальное так же просто как гуи (ну чтобы работало)
Старый 10.04.2012, 16:49
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP,
надо знать про хешталицу... ну ка её инициализировать,
Так можно же автоматически инициализировать ее. Как я писал тут
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 16:51
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность: 376
Участник проектов:
-Мастерская girvel-а
quq_CCCP, ок спс надеюсь пригодится укажу в титрах обязательно!
Старый 10.04.2012, 16:58
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR, щяс исправлю...
Старый 10.04.2012, 17:01
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность: 376
Участник проектов:
-Мастерская girvel-а
quq_CCCP, а еще вопрос, если скопировать то в константах нужно убрать распределение опыта?
Старый 10.04.2012, 17:06
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP, меня смущает вот эта функция(условие триггера распределения)
function Trig_Hero_Exp_Conditions takes nothing returns boolean
    return IsUnitType( GetKillingUnit(), UNIT_TYPE_HERO ) and IsHeroLevelRequired(GetKillingUnit(),GetDyingUnit())
endfunction
А если врага убьет не герой, то опыта никто не получит? Это лучше поправить
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 17:11
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Народ а как насчёт этого решения с хеш таблицей?
» вот код инита хештаблицы и юниов
function Bolexp_UnitFiler_Conditions takes nothing returns boolean
   return GetOwningPlayer(GetFilterUnit()) == Player(PLAYER_NEUTRAL_AGGRESSIVE)
endfunction

function Group_SaveCrepsPos_Actions takes nothing returns nothing
   local unit uNeutralCreep = GetEnumUnit()
   local location CreepGuardPos = GetUnitLoc(uNeutralCreep)
   local integer hashId = GetHandleId(uNeutralCreep)
   call SaveReal(bj_lastCreatedHashtable,hashId,0,GetUnitX(uNeutralCreep))
   call SaveReal(bj_lastCreatedHashtable,hashId,1,GetUnitY(uNeutralCreep))
   call SaveReal(bj_lastCreatedHashtable,hashId,2,GetUnitFacing(uNeutralCreep))
   set uNeutralCreep = null
endfunction

function Trig_Init_Creps_Actions takes nothing returns nothing
   local group grp = CreateGroup()
   local boolexpr NeutralFilter = Condition( function Bolexp_UnitFiler_Conditions )
   set bj_lastCreatedHashtable = InitHashtable() // инит хеш таблицы
   
   call GroupEnumUnitsInRect(grp, bj_mapInitialPlayableArea, NeutralFilter)
   call DestroyBoolExpr(NeutralFilter)
   call ForGroup(grp, function Group_SaveCrepsPos_Actions)
   call DestroyGroup(grp)
   set NeutralFilter = null
   set grp = null
   call TriggerClearActions(gg_trg_Init_Creps)
   call DestroyTrigger(gg_trg_Init_Creps)
   set gg_trg_Init_Creps = null
endfunction

//===========================================================================
function InitTrig_Init_Creps takes nothing returns nothing
    set gg_trg_Init_Creps = CreateTrigger(  )
    call TriggerRegisterTimerEvent(gg_trg_Init_Creps, 0.10, false)
    call TriggerAddAction( gg_trg_Init_Creps, function Trig_Init_Creps_Actions )
endfunction
Старый 10.04.2012, 17:12
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,833
Активность: 444
DaeDR, Если честно, юзать жнгп из за микро оптимизации для этой системы будет глупо т.к. не все им пользуются, а некоторые вообще в корне отвергают.....
Старый 10.04.2012, 17:14
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP, Нет. Вот так:
» Код
function Bolexp_UnitFiler_Conditions takes nothing returns boolean
   return GetOwningPlayer(GetFilterUnit()) == Player(PLAYER_NEUTRAL_AGGRESSIVE)
endfunction

function Group_SaveCrepsPos_Actions takes nothing returns nothing
   local unit uNeutralCreep = GetEnumUnit()
   local location CreepGuardPos = GetUnitLoc(uNeutralCreep)
   local integer hashId = GetHandleId(uNeutralCreep)
   call SaveReal(bj_lastCreatedHashtable,hashId,0,GetUnitX(uNeutralCreep))
   call SaveReal(bj_lastCreatedHashtable,hashId,1,GetUnitY(uNeutralCreep))
   call SaveReal(bj_lastCreatedHashtable,hashId,2,GetUnitFacing(uNeutralCreep))
   set uNeutralCreep = null
endfunction

function Trig_Init_Creps_Actions takes nothing returns nothing
   local group grp = CreateGroup()
   local boolexpr NeutralFilter = Condition( function Bolexp_UnitFiler_Conditions )
   
   call GroupEnumUnitsInRect(grp, bj_mapInitialPlayableArea, NeutralFilter)
   call DestroyBoolExpr(NeutralFilter)
   call ForGroup(grp, function Group_SaveCrepsPos_Actions)
   call DestroyGroup(grp)
   set NeutralFilter = null
   set grp = null
   call TriggerClearActions(gg_trg_Init_Creps)
   call DestroyTrigger(gg_trg_Init_Creps)
   set gg_trg_Init_Creps = null
endfunction

//===========================================================================
function InitTrig_Init_Creps takes nothing returns nothing
    set gg_trg_Init_Creps = CreateTrigger(  )
    call TriggerRegisterTimerEvent(gg_trg_Init_Creps, 0.10, false)
    call TriggerAddAction( gg_trg_Init_Creps, function Trig_Init_Creps_Actions )
    set bj_lastCreatedHashtable = InitHashtable() // инит хеш таблицы
    // тут же можно и запустить триггер сразу
endfunction
Vadik29, Пусть отвергают их проблемы. Но сделать 2 версии все же можно. Не так и сложно же "перевести"
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 17:21
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR, точно? хеш же нельзя инитить сразу? как мультиборд и лейблборд?
quq_CCCP добавил:
Vadik29, а где тут JGNP ? всё чисто jass, запустится без всяких надстроек, в любом варе версии выше 1.24а...
Я хочу написать на vJass и на сJass (на котором не умею) исключительно для удобства пользователей, а не для того чтобы было... Вдруг нужна наработка, а писать с 0 нужно тратить время, ну а тут готовые наработки, время тратить ненужно...
Даже те кто может это написать, всё это бы за 5 мин не сделали...

Отредактировано quq_CCCP, 10.04.2012 в 17:30.
Старый 10.04.2012, 17:24
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP, Кто тебе сказал, что нельзя? Всегда было можно
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 17:24
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR:
quq_CCCP, Кто тебе сказал, что нельзя? Всегда было можно
да вот просто раз баг был, с хештаблом, нечё не работало,...
щяс проверю...
Старый 10.04.2012, 17:26
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
мультиборд и лейблборд
Они создаются, но просто не могут показаться игроку во время инициализации.
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 17:26
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR, а как насчёт использования такой ситемы настроек респауна?
   local unit u = CreateUnit(Player(12), 'nanm',-292.00,-516.00,270.00)
    call StoreDataReal(u,"UnitSpawnX",-292.00)
    call StoreDataReal(u,"UnitSpawnY",-516.00)
    call StoreDataReal(u,"UnitSpawnA",270.00)
    call StoreDataReal(u,"RespTime",45.00)
    call StoreDataBoolean(u,"CreateDeathFX", false)
    call StoreDataString(u,"FxOfMobDeath","Objects\\Spawnmodels\\Human\\HumanLargeDeathExplode​\\HumanLargeDeathExplode.mdl")
    // и тд
    local handle h = ConvertFogState('nanm')
    call StoreDataReal(h,"RespTime",45.00)
    call StoreDataBoolean(h,"CreateDeathFX", false)
    call StoreDataString(h,"FxOfMobDeath","Objects\\Spawnmodels\\Human\\HumanLargeDeathExplode​\\HumanLargeDeathExplode.mdl")
    и так далее...
    set h = null
тут мы в триегере инициализации крепим конкретные параметры к конкретному юниту или типу юнита...
для простоты и читаемости используются функции похожие на функции из RB систем, но тут небудем об оптимальности так как код исполняется всего раз, так что удобство настройки важнее...
» список доп/функций
function StoreDataInteger takes handle pKey, string cKey, integer value returns nothing
   call SaveInteger(bj_lastCreatedHashtable, GetHandleId(pKey), StringHash(cKey), value )
endfunction

function StoreDataReal takes handle parentKey, string cKey, real value returns nothing
   call SaveReal(bj_lastCreatedHashtable, GetHandleId(parentKey), StringHash(cKey), value )
endfunction

function StoreDataBoolean takes handle parentKey, string cKey, boolean value returns nothing
   call SaveBoolean(bj_lastCreatedHashtable, GetHandleId(parentKey), S2I(cKey), value )
endfunction

function StoreDataString takes handle parentKey, string cKey, string value returns nothing
   call SaveStr(bj_lastCreatedHashtable, GetHandleId(parentKey), StringHash(cKey), value )
endfunction

function GetStoredDataInteger takes handle pKey, string cKey returns integer
   return LoadInteger(bj_lastCreatedHashtable, GetHandleId(pKey), StringHash(cKey))
endfunction
и так далее...
Старый 10.04.2012, 18:23
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP, Идею работать со string'овыми хендлами я считаю не очень хорошей, ибо очень медленная.
А зачем это вообще надо? Ведь нужно, чтобы любой (внесенный в список) моб был воскрешен на его первоначальном месте. Все остальное лишнее. ИМХО
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 18:47
quq_CCCP
Я белый и пушистый!
offline
Опыт: 64,896
Активность: 24840
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR, вдруг некоторым приодится, респаунить мобов с разными параметрами, временем, эффектом, или заменять, учитывать каике предметы выпадают из конкретного типа, но насчёт строк, как я уже написал тут это неважно, 1 раз за всю игру вызывается...
Зато намного выше читаемость и простота настройки, по строкам понятно за что отвечает значение...
Старый 10.04.2012, 18:55
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP, Разве 1 раз? Это запись производится 1 раз, а считывание то тоже будет при смерти юнита.
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 19:00
Ответ

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

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

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

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



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