Простые вопросы #2

Статус
В этой теме нельзя размещать новые ответы.
Нужна помощь с Юнитом не юзает скиллы

C++:
"Creature"
        {
            "DefaultState"    "Invade"
            "States"
            {
                "Invade"
                {
                    "Name"    "Invade"
                    "Agression"    "100.0"
                    "Avoidance"    "60.0"
                    "Support"    "0.0"
                    "RoamDistance"    "560"

                    "OffensiveAbilities"
                    {
                        "Ability1"               
                             {               
                            "Name"                "ursa_overpower"
                           }
                          "Ability2"               
                        {
                            "Name"                "ursa_enrage"
                           }
                            "Ability3"               
                        {
                            "Name"                "ursa_earth_shock"
                            "AOE"                "1"
                            "Radius"             "275"
                            "MinimumTargets"     "2"
                        }
                        "Ability4"
                        {
                            "Name"        "clinkz_wind_walk"
                        }
                    }   
                }
            }
 
тебе не кажется что тут чего-то не хватает?)
 
Как узнать кейбинд игрока для какой-либо дефолтной команды? Мне надо узнать, на какую клавишу у игрока стоит "Выбрать курьера"
 
Так у меня юнит нейтрал и ему надо использовать но он не хочет
 
Как узнать кейбинд игрока для какой-либо дефолтной команды? Мне надо узнать, на какую клавишу у игрока стоит "Выбрать курьера"
Попробуй это, может быть найдешь способ.
key_findbinding dota_select_courier
показывает в консоле
[Player 0] : "F2" = "dota_select_courier"
и еще можно попробовать пропарсить через panorama debugger, до панельки с кнопкой и вытащить её, но это не точно.
keybind.jpg
 
ищу хороший гайд или хорошего человека, который объяснит принципы построения и работы с сеткой.
 
ну тип сетка как в element td, сама система как строит сетку и как объекты создает\перемещает по ней
это GridNav и кастомный партикл сетки. Найди либу Builder Helper от Noya. У него там есть принцип работы.
Карта по стандарту разделена на кусочки со своими координатами X и Y , через GridNav работают с этими кусочками, от них и пляшут.
 
это GridNav и кастомный партикл сетки. Найди либу Builder Helper от Noya. У него там есть принцип работы.
Карта по стандарту разделена на кусочки со своими координатами X и Y , через GridNav работают с этими кусочками, от них и пляшут.
да, я открывал исходники, но разбирать файл в 1.5к+ строк чет не осмелился) ну посмотрю как работает GridNav, спасибо за наводку
 
да, я открывал исходники, но разбирать файл в 1.5к+ строк чет не осмелился) ну посмотрю как работает GridNav, спасибо за наводку
Я как-то писал растановку юнитов ровно по сетке, один юнит в одном кусочке GridNav , написано так себе - но работает, может поможет:
Код:
if ZoneGrid == nil then
  ZoneGrid = class({})
end

function ZoneGrid:GetPosForUnit(vLocation)
  local tGridPos = ZoneGrid:GetGridPos(vLocation)
  local validPos
  if tGridPos.x%3 ~= 0 then
    tGridPos.x = ZoneGrid:GetValidX(tGridPos.x)
  end
  if tGridPos.y%3 ~= 0 then
    tGridPos.y = ZoneGrid:GetValidY(tGridPos.y)
  end
  validPos = ZoneGrid:GetPosFromGrid(tGridPos.x, tGridPos.y)
  return validPos
end

function ZoneGrid:GetGridPos(vLocation)
  if not vLocation then
    return nil
  end
  local x = GridNav:WorldToGridPosX(vLocation.x)
  local y = GridNav:WorldToGridPosY(vLocation.y)
  local gridPos = {}
  gridPos.x = x
  gridPos.y = y
  return gridPos
end

function ZoneGrid:GetValidX(fPointX)
  if fPointX%3 == 1 then
    fPointX = fPointX - 1
    return fPointX
  elseif fPointX%3 == 2 then
    fPointX = fPointX + 1
    return fPointX
  end
end

function ZoneGrid:GetValidY(fPointY)
  if fPointY%3 == 1 then
    fPointY = fPointY - 1
    return fPointY
  elseif fPointY%3 == 2 then
    fPointY = fPointY + 1
    return fPointY
  end
end

function ZoneGrid:GetPosFromGrid(fPointX, fPointY)
  if not fPointX or not fPointY then
    return nil
  end

  local xPoint = GridNav:GridPosToWorldCenterX(fPointX)
  local yPoint = GridNav:GridPosToWorldCenterY(fPointY)
  local vector = Vector(xPoint, yPoint, 128)
  return vector
end

function ZoneGrid:IsGridBlocked(vLocation)
  DebugPrint(vLocation)
  local tCheck = FindUnitsInRadius(DOTA_TEAM_NOTEAM,
                                    vLocation,
                                    nil,
                                    96,
                                    DOTA_UNIT_TARGET_TEAM_BOTH,
                                    DOTA_UNIT_TARGET_ALL,
                                    DOTA_UNIT_TARGET_FLAG_NONE,
                                    FIND_ANY_ORDER,
                                    false)
  if #tCheck > 0 then
    return true
  else
    return false
  end
end
 
Что нужно сделать так чтобы урон наносился чистым
ну это так

Код:
local damage_table = {}
        damage_table.victim = keys.target
        damage_table.attacker = keys.caster
        damage_table.ability = keys.ability
        damage_table.damage = keys.caster:GetAttackDamage()
        damage_table.damage_type = DAMAGE_TYPE_MAGICAL

    ApplyDamage( damage_table )
Но оно показывает этот урон. Но это не то что я хочу
Что нужно сделать так чтобы урон героя стал чистым или другим типом?
А то наносит, 46 урона физического и 46 магического
А нужно так чтобы наносило только 46 магического
 
Последнее редактирование:
Что нужно сделать так чтобы урон наносился чистым
ну это так

Код:
local damage_table = {}
        damage_table.victim = keys.target
        damage_table.attacker = keys.caster
        damage_table.ability = keys.ability
        damage_table.damage = keys.caster:GetAttackDamage()
        damage_table.damage_type = DAMAGE_TYPE_MAGICAL

    ApplyDamage( damage_table )
Но оно показывает этот урон. Но это не то что я хочу
Что нужно сделать так чтобы урон героя стал чистым или другим типом?
А то наносит, 46 урона физического и 46 магического
А нужно так чтобы наносило только 46 магического
Есть несколько вариантов, через модификатор или через DamageFilter. Скорей всего есть еще способы, нужно просто подумать.
 
Есть несколько вариантов, через модификатор или через DamageFilter. Скорей всего есть еще способы, нужно просто подумать.
Если, у вас есть примеры буду, благодарен.
Но у меня только не Луа абилка а DD абилка
 
Последнее редактирование:
Как узнать, где находятся звуки доты. Через GCFScape. Но а как узнать название этого звука
Они же используются так Hero_ability1
Может я тупой
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: