Здравствуйте! Столкнулся с проблемой, прошу помощи!
Ситуация: в карте есть герои с одинаковыми способностями: Мина и Ловушка.
Т.к. модели мины и ловушки не особо пестрят тим колором то отличить свою мину от чужой визуально не получается (не берем в расчет посмотреть на миникарту, навести мышку и т.д.).
Цель: Что-бы Игрок мог визуально различать свои мины ,мины союзников и чужие.
Мины и ловушки невидимы. Герой их видит только при наличии вардов, гема и т.д.
Уповаю на великие умы ХГМ"а! Помогите :)
Сам я не силен в джасе :(
Ниже то что есть на данный момент (сделано не мной), но к сожалению создаваемый спецэффект виден для всех игроков.
scope MineVision initializer InitMineVision
    
    globals
    private integer mine_id[]
    private integer trap_id[]
    endglobals
    
    define{
    private sfx="Abilities\\Weapons\\WitchDoctorMissile\\WitchDoctorMissile.mdl"
    }
    
    private function MineVisionCondition takes nothing returns boolean
        group g=CreateGroup()
        integer i=1
        string s=" "
        loop
            exitwhen i>10
            GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,null)
            unit F=FirstOfGroup(g)
            loop
                exitwhen F==null
                if IsUnitVisible(F,Player(i-1))==true && IsUnitEnemy(F,Player(i-1))==true && /*
                */ (GetUnitTypeId(F)==mine_id[0] or GetUnitTypeId(F)==mine_id[1] or /*
                */ GetUnitTypeId(F)==mine_id[2] or GetUnitTypeId(F)==mine_id[3] or /*
                */ GetUnitTypeId(F)==trap_id[0] or GetUnitTypeId(F)==trap_id[1] or /*
                */ GetUnitTypeId(F)==trap_id[2] or GetUnitTypeId(F)==trap_id[3])
                    if GetLocalPlayer()==Player(i-1)
                        s=sfx
                    endif
                    AddEffectTarget(s,F,"origin",0.2)
                endif
                GroupRemoveUnit(g,F)
                F=FirstOfGroup(g)
            endloop
            i++
        endloop
        DestroyGroup(g)
        return false
    endfunction

    private function InitMineVision  takes nothing returns nothing
        trigger t=CreateTrigger()
        TriggerRegisterTimerEvent(t,0.5,true)
        TriggerAddCondition(t,function MineVisionCondition)
        mine_id[0]='n002'
        mine_id[1]='n003'
        mine_id[2]='n000'
        mine_id[3]='n007'
        trap_id[0]='o000'
        trap_id[1]='o002'
        trap_id[2]='o001'
        trap_id[3]='o003'
    endfunction
endscope

function AddLocalEffect takes string eff, unit u,player p,string a returns effect
if not IsPlayerAlly(GetLocalPlayer(),p) and GetPlayerState(GetLocalPlayer(),PLAYER_STATE_OBSERVER) == 0 then
set eff = " "
endif
return AddSpecialEffectTarget(eff,u,a)
endfunction
неохота качать JNGP чтоб твой код тестить, заюзай эту функцию
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
function AddLocalEffect takes string eff, unit u,player p,string a returns effect
if not IsPlayerAlly(GetLocalPlayer(),p) and GetPlayerState(GetLocalPlayer(),PLAYER_STATE_OBSERVER) == 0 then
set eff = " "
endif
return AddSpecialEffectTarget(eff,u,a)
endfunction
неохота качать JNGP чтоб твой код тестить, заюзай эту функцию
Принятый ответ
24
Тимколорный эффект создавай на мине) Или у мин нет точек крепления и ты создаёшь на позиции?
7
function AddLocalEffect takes string eff, unit u,player p,string a returns effect
if not IsPlayerAlly(GetLocalPlayer(),p) and GetPlayerState(GetLocalPlayer(),PLAYER_STATE_OBSERVER) == 0 then
set eff = " "
endif
return AddSpecialEffectTarget(eff,u,a)
endfunction
А скажи пожалуйста куда именно это закинуть? Я совсем с джассом не але.
Melissa:
Тимколорный эффект создавай на мине) Или у мин нет точек крепления и ты создаёшь на позиции?
Не совсем тебя понял
24
я про какую-нибудь модель, с минимумом отображающихся элементов, но при этом есть элемент, подсвечивающий цвет игрока-владельца
32
Как насчет локайльной смены цвета мины или создание дамми юнита с прикрепленной моделью флага нужного цвета?
7
quq_CCCP:
Как насчет локайльной смены цвета мины или создание дамми юнита с прикрепленной моделью флага нужного цвета?
1-е вряд ли прокатит - плохо видно будет.
А на счет 2-го : можешь сделать? я дам карту.
Загруженные файлы
32
mogu_umeyu:
А на счет 2-го : можешь сделать? я дам карту.
Ну попробую.
28
mogu_umeyu,
ты прикалываешься? основы не знаешь, зато пишешь на cjasse, иди в статьях поищи как использовать нестандартные функции.
7
16GB:
mogu_umeyu,
ты прикалываешься? основы не знаешь, зато пишешь на cjasse, иди в статьях поищи как использовать нестандартные функции.
с джассом в карте работал не я ;) , а тот кто работал - пропал.
quq_CCCP:
mogu_umeyu:
А на счет 2-го : можешь сделать? я дам карту.
Ну попробую.
ну как?
28
16GB, это не сиджасс это помесь сиджасса вджасса и джасса
7
Берем текстуру и модель мины, стираем до прозрачного (следим за альфой) на текстуре "крышки" красный (фотошоп в помощь, это легко делается), на модели добавляем в wc3ME новый материал с реплейсабл текстурой тим-колора под основной текстурой. Профит.
Да, это не кодерский метод, но он гарантированно не создаст утечек и багов, да и не сильно обременит карту весом.
7
Mexaz:
Берем текстуру и модель мины, стираем до прозрачного (следим за альфой) на текстуре "крышки" красный (фотошоп в помощь, это легко делается), на модели добавляем в wc3ME новый материал с реплейсабл текстурой тим-колора под основной текстурой. Профит.
Да, это не кодерский метод, но он гарантированно не создаст утечек и багов, да и не сильно обременит карту весом.
это круто когда разбираешься в моделинге. к сожалению не могу этим похвастаться. мб поможншь это сделать?
28
nvc123,
насколько я знаю только в cjass можно писать дефайны и обходиться без set и call
28
16GB, да
но в сиджасе не надо писать globals а функции описываются как в сишке
поэтому это :
помесь сиджасса вджасса и джасса
7
Не очень качественно, зато бесплатно
путь импорта для измененной текстуры:
g.blp
Загруженные файлы
7
Mexaz:
Не очень качественно, зато бесплатно
путь импорта для измененной текстуры:
g.blp
Спасибо большое, но к большому сожалению толку мало с этого. Темп игры очень высокий.
Но кстати моделька получилась даже получше базовой. Мб возьму её вместо той что была :)
2
quq_CCCP и Melissa предложили самые простые и эффективные варианты. С флагом будет хорошо заметно. Тимколорные флаги наверняка есть здесь на сайте в моделях. Сам флаг создать так, как написал 16GB.
Вроде на вид условие корявое. И все игроки в течение цикла попадают под GetLocalPlayer(). Хотя, может показалось. При создании просто создать эффект функцией, которую напечатали в первом сообщении. А в функции, которая предложена, перебираются все мины на карте.. Это периодик? Даже если мины создаются всего 1 раз за игру целой пачкой, всё равно проще отдельно каждой мине создавать спецэффект сразу при создании.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.