Добавлен  mogu_umeyu 
                            
                            
                            
                            
                            
                            
                        
                        
                    Здравствуйте! Столкнулся с проблемой, прошу помощи!
Ситуация: в карте есть герои с одинаковыми способностями: Мина и Ловушка.
Т.к. модели мины и ловушки не особо пестрят тим колором то отличить свою мину от чужой визуально не получается (не берем в расчет посмотреть на миникарту, навести мышку и т.д.).
Цель: Что-бы Игрок мог визуально различать свои мины ,мины союзников и чужие.
Мины и ловушки невидимы. Герой их видит только при наличии вардов, гема и т.д.
Уповаю на великие умы ХГМ"а! Помогите :)
Сам я не силен в джасе :(
Ситуация: в карте есть герои с одинаковыми способностями: Мина и Ловушка.
Т.к. модели мины и ловушки не особо пестрят тим колором то отличить свою мину от чужой визуально не получается (не берем в расчет посмотреть на миникарту, навести мышку и т.д.).
Цель: Что-бы Игрок мог визуально различать свои мины ,мины союзников и чужие.
Мины и ловушки невидимы. Герой их видит только при наличии вардов, гема и т.д.
Уповаю на великие умы ХГМ"а! Помогите :)
Сам я не силен в джасе :(
Ниже то что есть на данный момент (сделано не мной), но к сожалению создаваемый спецэффект виден для всех игроков. 
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 чтоб твой код тестить, заюзай эту функцию
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



 
                    
                
А на счет 2-го : можешь сделать? я дам карту.
ты прикалываешься? основы не знаешь, зато пишешь на cjasse, иди в статьях поищи как использовать нестандартные функции.
quq_CCCP: ну как?
Ред. Mexaz
Да, это не кодерский метод, но он гарантированно не создаст утечек и багов, да и не сильно обременит карту весом.
насколько я знаю только в cjass можно писать дефайны и обходиться без set и call
но в сиджасе не надо писать globals а функции описываются как в сишке
поэтому это :
путь импорта для измененной текстуры:
g.blp