Добавлен
Можно ли имея handle узнать имя юнита без мемхака и прочих крутых штуковин?

Недавно отвечал на похожий вопрос, но там это не пригодилось(
Typecasting (cjass)
//////////////////////////////////////////
//       Typecasting 2.0
//       by kingking
//
//  This library provides some type
//  converting functions.
///////////////////////////////////////

library Typecasting {

    private hashtable Data = InitHashtable()
    
    define private Typecasting(ParentName, parenttype, TypeName, type) = 
    {
        type ParentName##2##TypeName(parenttype object) {
            Save##ParentName##Handle(Data,0,0,object)
            return Load##TypeName##Handle(Data,0,0)
        }
    }

    Typecasting(Agent, agent, Widget, widget)
    Typecasting(Agent, agent, Group, group)
    Typecasting(Agent, agent, Trigger, trigger)
    Typecasting(Agent, agent, Timer, timer)
    Typecasting(Agent, agent, Location, location)
    Typecasting(Agent, agent, Effect, effect)
    Typecasting(Agent, agent, Unit, unit)
    Typecasting(Agent, agent, Item, item)
    Typecasting(Agent, agent, Lightning, lightning)
    Typecasting(Widget, widget, Unit, unit)
    Typecasting(Widget, widget, Destructable, destructable)
    Typecasting(Widget, widget, Item, item)


    
    define private Typecasting_I2X(TypeName, type) = 
    {
        type Int2##TypeName(integer id) {
            SaveFogStateHandle(Data, 0, 0, ConvertFogState(id))
            return Load##TypeName##Handle(Data, 0, 0)
        }
    }

    Typecasting_I2X(Unit, unit)
    Typecasting_I2X(Effect, effect)
    Typecasting_I2X(Trigger, trigger)
    Typecasting_I2X(Timer, timer)
    Typecasting_I2X(Widget, widget)
    Typecasting_I2X(Lightning, lightning)
    Typecasting_I2X(Group, group)
    Typecasting_I2X(Location, location)
    Typecasting_I2X(Item, item)
    Typecasting_I2X(Destructable, destructable)
    Typecasting_I2X(Ability, ability)
    Typecasting_I2X(TriggerCondition, triggercondition)
    Typecasting_I2X(TriggerAction, triggeraction)
    Typecasting_I2X(Force, force)
    Typecasting_I2X(Rect, rect)
    Typecasting_I2X(Sound, sound)
    Typecasting_I2X(UnitPool, unitpool)
    Typecasting_I2X(ItemPool, itempool)
    Typecasting_I2X(Quest, quest)
    Typecasting_I2X(QuestItem, questitem)
    Typecasting_I2X(DefeatCondition, defeatcondition)
    Typecasting_I2X(TimerDialog, timerdialog)
    Typecasting_I2X(Leaderboard, leaderboard)
    Typecasting_I2X(Multiboard, multiboard)
    Typecasting_I2X(MultiboardItem, multiboarditem)
    Typecasting_I2X(Trackable, trackable)
    Typecasting_I2X(Dialog, dialog)
    Typecasting_I2X(Button, button)
    Typecasting_I2X(TextTag, texttag)
    Typecasting_I2X(Image, image)
    Typecasting_I2X(Ubersplat, ubersplat)
    Typecasting_I2X(Region, region)
    Typecasting_I2X(FogState, fogstate)
    Typecasting_I2X(FogModifier, fogmodifier)
}
Библиотека содержит функции перевода хендла в объект. В твоем случае нужна:
function Int2Unit takes integer id returns unit // берет хэндл -> возвращает юнита
Ну, а дальше узнаешь имя с помощью нативной функции:
native GetUnitName takes unit whichUnit returns string
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
В "key" есть функция "Load trigger Handle". Как ей воспользоваться, чтобы допустим получить хэндл начального и последнего триггера?
Так?
ответ
вариант №1 - не нулить переменные, оставляя утечки номеров хендлов. это безопасно, да, если знаешь, что делаешь.
№2 - ловить UNIT_DEATH и чистить за ним
ответ
Проверил, да
ответ
Функции, исполняемые при тиках таймеров не должны принимать параметров. Для передачи данных нужно пользоватся хеш-таблицами.

7
Недавно отвечал на похожий вопрос, но там это не пригодилось(
Typecasting (cjass)
//////////////////////////////////////////
//       Typecasting 2.0
//       by kingking
//
//  This library provides some type
//  converting functions.
///////////////////////////////////////

library Typecasting {

    private hashtable Data = InitHashtable()
    
    define private Typecasting(ParentName, parenttype, TypeName, type) = 
    {
        type ParentName##2##TypeName(parenttype object) {
            Save##ParentName##Handle(Data,0,0,object)
            return Load##TypeName##Handle(Data,0,0)
        }
    }

    Typecasting(Agent, agent, Widget, widget)
    Typecasting(Agent, agent, Group, group)
    Typecasting(Agent, agent, Trigger, trigger)
    Typecasting(Agent, agent, Timer, timer)
    Typecasting(Agent, agent, Location, location)
    Typecasting(Agent, agent, Effect, effect)
    Typecasting(Agent, agent, Unit, unit)
    Typecasting(Agent, agent, Item, item)
    Typecasting(Agent, agent, Lightning, lightning)
    Typecasting(Widget, widget, Unit, unit)
    Typecasting(Widget, widget, Destructable, destructable)
    Typecasting(Widget, widget, Item, item)


    
    define private Typecasting_I2X(TypeName, type) = 
    {
        type Int2##TypeName(integer id) {
            SaveFogStateHandle(Data, 0, 0, ConvertFogState(id))
            return Load##TypeName##Handle(Data, 0, 0)
        }
    }

    Typecasting_I2X(Unit, unit)
    Typecasting_I2X(Effect, effect)
    Typecasting_I2X(Trigger, trigger)
    Typecasting_I2X(Timer, timer)
    Typecasting_I2X(Widget, widget)
    Typecasting_I2X(Lightning, lightning)
    Typecasting_I2X(Group, group)
    Typecasting_I2X(Location, location)
    Typecasting_I2X(Item, item)
    Typecasting_I2X(Destructable, destructable)
    Typecasting_I2X(Ability, ability)
    Typecasting_I2X(TriggerCondition, triggercondition)
    Typecasting_I2X(TriggerAction, triggeraction)
    Typecasting_I2X(Force, force)
    Typecasting_I2X(Rect, rect)
    Typecasting_I2X(Sound, sound)
    Typecasting_I2X(UnitPool, unitpool)
    Typecasting_I2X(ItemPool, itempool)
    Typecasting_I2X(Quest, quest)
    Typecasting_I2X(QuestItem, questitem)
    Typecasting_I2X(DefeatCondition, defeatcondition)
    Typecasting_I2X(TimerDialog, timerdialog)
    Typecasting_I2X(Leaderboard, leaderboard)
    Typecasting_I2X(Multiboard, multiboard)
    Typecasting_I2X(MultiboardItem, multiboarditem)
    Typecasting_I2X(Trackable, trackable)
    Typecasting_I2X(Dialog, dialog)
    Typecasting_I2X(Button, button)
    Typecasting_I2X(TextTag, texttag)
    Typecasting_I2X(Image, image)
    Typecasting_I2X(Ubersplat, ubersplat)
    Typecasting_I2X(Region, region)
    Typecasting_I2X(FogState, fogstate)
    Typecasting_I2X(FogModifier, fogmodifier)
}
Библиотека содержит функции перевода хендла в объект. В твоем случае нужна:
function Int2Unit takes integer id returns unit // берет хэндл -> возвращает юнита
Ну, а дальше узнаешь имя с помощью нативной функции:
native GetUnitName takes unit whichUnit returns string
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.