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

  • Автор темы Автор темы ZLOY
  • Дата начала Дата начала
Хай пипл, крч ребят вот такой трабл, крипочки после спавна через for не хотят попать по маршруту
Код:
for i=1, 3 do
            local unit = CreateUnitByName("aboba", caster:GetAbsOrigin() + RandomVector( RandomFloat( 0, 200)), true, nil, nil, caster:GetTeam())

            local unitPos = unit:GetAbsOrigin()
            if unit:GetTeamNumber() == DOTA_TEAM_GOODGUYS then
                local distanceToPoint1 = (unitPos - Entities:FindByName( nil, "good_path_left"):GetAbsOrigin()):Length2D()
                local distanceToPoint2 = (unitPos - Entities:FindByName( nil, "good_path_right"):GetAbsOrigin()):Length2D()

                if distanceToPoint1 < distanceToPoint2 then
                    unit:SetInitialWaypoint( "good_path_left" )
                else
                    unit:SetInitialWaypoint( "good_path_right" )
                end
            else
                local distanceToPoint1 = (unitPos - Entities:FindByName( nil, "bad_path_left"):GetAbsOrigin()):Length2D()
                local distanceToPoint2 = (unitPos - Entities:FindByName( nil, "bad_path_right"):GetAbsOrigin()):Length2D()

                if distanceToPoint1 < distanceToPoint2 then
                    unit:SetInitialWaypoint( "bad_path_left" )
                else
                    unit:SetInitialWaypoint( "bad_path_right" )
                end
            end
        end
 
Подскажите пожалуйста дурачку, как сделать так что бы пассивка мк работала и на крипов и на героев
 
Подскажите пожалуйста дурачку, как сделать так что бы пассивка мк работала и на крипов и на героев
ну для начала бы код, ну а так "AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

Да и на будущее, chatGPT решает такие простые вопросы)
 

Вложения

  • 1695293636611.png
    1695293636611.png
    39.8 KB · Просмотры: 18
ну для начала бы код, ну а так "AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

Да и на будущее, chatGPT решает такие простые вопросы)
Спасибо, я вроде задавал вопрос ChatGPT он мне фигню говорил, что параметр "SpellImmunityType" отвечает за это
Буду чётче задавать вопрос нейронке
 
ну для начала бы код, ну а так "AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

Да и на будущее, chatGPT решает такие простые вопросы)
Можете помочь, я не понимаю почему оно не работает на крипов
Код:
"monkey_king_passive"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                        "ability_lua"                                                       
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityUnitDamageType"            "DAMAGE_TYPE_PHYSICAL"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"
        "SpellDispellableType"            "SPELL_DISPELLABLE_NO"
        "FightRecapLevel"                "1"
        "AbilitySound"                    "Hero_MonkeyKing.IronCudgel"
        "AbilityCastAnimation"            "ACT_INVALID"
        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

        // Time       
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"                "0"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilityValues"
        {
                "required_hits"               
                {
                    "value"            "2"
                    "special_bonus_unique_monkey_king_11"    "-1"
                }
                "counter_duration"            "7 8 9 10"
                "charges"    "4"
                "bonus_damage"
                {
                    "value"                        "40 80 120 160"
                    "LinkedSpecialBonus"        "special_bonus_unique_monkey_king_2"
                    "CalculateSpellDamageTooltip"    "0"
                }
                "lifesteal"                    "20 40 60 80"
                "max_duration"                "35"
        }
    }
 
Можете помочь, я не понимаю почему оно не работает на крипов
Код:
"monkey_king_passive"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                        "ability_lua"                                                      
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityUnitDamageType"            "DAMAGE_TYPE_PHYSICAL"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"
        "SpellDispellableType"            "SPELL_DISPELLABLE_NO"
        "FightRecapLevel"                "1"
        "AbilitySound"                    "Hero_MonkeyKing.IronCudgel"
        "AbilityCastAnimation"            "ACT_INVALID"
        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

        // Time      
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"                "0"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilityValues"
        {
                "required_hits"              
                {
                    "value"            "2"
                    "special_bonus_unique_monkey_king_11"    "-1"
                }
                "counter_duration"            "7 8 9 10"
                "charges"    "4"
                "bonus_damage"
                {
                    "value"                        "40 80 120 160"
                    "LinkedSpecialBonus"        "special_bonus_unique_monkey_king_2"
                    "CalculateSpellDamageTooltip"    "0"
                }
                "lifesteal"                    "20 40 60 80"
                "max_duration"                "35"
        }
    }
Покажи код на lua
 
Можете помочь, я не понимаю почему оно не работает на крипов
Код:
"monkey_king_passive"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                        "ability_lua"                                                     
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityUnitDamageType"            "DAMAGE_TYPE_PHYSICAL"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"
        "SpellDispellableType"            "SPELL_DISPELLABLE_NO"
        "FightRecapLevel"                "1"
        "AbilitySound"                    "Hero_MonkeyKing.IronCudgel"
        "AbilityCastAnimation"            "ACT_INVALID"
        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

        // Time     
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"                "0"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilityValues"
        {
                "required_hits"             
                {
                    "value"            "2"
                    "special_bonus_unique_monkey_king_11"    "-1"
                }
                "counter_duration"            "7 8 9 10"
                "charges"    "4"
                "bonus_damage"
                {
                    "value"                        "40 80 120 160"
                    "LinkedSpecialBonus"        "special_bonus_unique_monkey_king_2"
                    "CalculateSpellDamageTooltip"    "0"
                }
                "lifesteal"                    "20 40 60 80"
                "max_duration"                "35"
        }
    }
И ещё тебе нужно добавить "ScriptFile" "Путь к lua файлу"
 
И ещё тебе нужно добавить "ScriptFile" "Путь к lua файлу"
аааааааааааа не пугай человека сложным кодом!
Давно я не использовал скил из доты, но вот тебе попробуй эту гадость )
Код:
    "monkey_king_jingu_mastery"
    {
        // General
        "BaseClass"                        "ability_datadriven"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"
        "FightRecapLevel"                "1"
        "AbilitySound"                    "Hero_MonkeyKing.IronCudgel"
        "AbilityCastAnimation"            "ACT_INVALID"

        // Time       
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"                "0"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                    "FIELD_INTEGER"
                "required_hits"                "4"
            }
            "02"
            {
                "var_type"                    "FIELD_INTEGER"
                "counter_duration"            "10"
            }
            "03"
            {
                "var_type"                    "FIELD_INTEGER"
                "charges"                    "4"
            }
            "04"
            {
                "var_type"                    "FIELD_INTEGER"
                "bonus_damage"                "60 90 120 150"
                "LinkedSpecialBonus"        "special_bonus_unique_monkey_king_2"
            }
            "05"
            {
                "var_type"                    "FIELD_INTEGER"
                "lifesteal"                    "15 30 45 60"
            }
            "06"
            {
                "var_type"                    "FIELD_INTEGER"
                "max_duration"                "35"
            }
        }
    }
 
аааааааааааа не пугай человека сложным кодом!
Давно я не использовал скил из доты, но вот тебе попробуй эту гадость )
Код:
    "monkey_king_jingu_mastery"
    {
        // General
        "BaseClass"                        "ability_datadriven"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"
        "FightRecapLevel"                "1"
        "AbilitySound"                    "Hero_MonkeyKing.IronCudgel"
        "AbilityCastAnimation"            "ACT_INVALID"

        // Time      
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"                "0"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                    "FIELD_INTEGER"
                "required_hits"                "4"
            }
            "02"
            {
                "var_type"                    "FIELD_INTEGER"
                "counter_duration"            "10"
            }
            "03"
            {
                "var_type"                    "FIELD_INTEGER"
                "charges"                    "4"
            }
            "04"
            {
                "var_type"                    "FIELD_INTEGER"
                "bonus_damage"                "60 90 120 150"
                "LinkedSpecialBonus"        "special_bonus_unique_monkey_king_2"
            }
            "05"
            {
                "var_type"                    "FIELD_INTEGER"
                "lifesteal"                    "15 30 45 60"
            }
            "06"
            {
                "var_type"                    "FIELD_INTEGER"
                "max_duration"                "35"
            }
        }
    }
ability_datadriven без указаний навешивания модификатора? Ты сейчас серьёзно?
 
Можете помочь, я не понимаю почему оно не работает на крипов
Код:
"monkey_king_passive"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                        "ability_lua"                                                     
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityUnitDamageType"            "DAMAGE_TYPE_PHYSICAL"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"
        "SpellDispellableType"            "SPELL_DISPELLABLE_NO"
        "FightRecapLevel"                "1"
        "AbilitySound"                    "Hero_MonkeyKing.IronCudgel"
        "AbilityCastAnimation"            "ACT_INVALID"
        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"

        // Time     
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"                "0"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilityValues"
        {
                "required_hits"             
                {
                    "value"            "2"
                    "special_bonus_unique_monkey_king_11"    "-1"
                }
                "counter_duration"            "7 8 9 10"
                "charges"    "4"
                "bonus_damage"
                {
                    "value"                        "40 80 120 160"
                    "LinkedSpecialBonus"        "special_bonus_unique_monkey_king_2"
                    "CalculateSpellDamageTooltip"    "0"
                }
                "lifesteal"                    "20 40 60 80"
                "max_duration"                "35"
        }
    }
глянь вот тут активная пассивка - если нужно написать с нуля, только на заказ :P
 
глянь вот тут активная пассивка - если нужно написать с нуля, только на заказ :p
Сейчас бы за lua абилку которая делается за 10 минут (из которых скачать кастомку и отредактировать) из исходника кастомки любой с подобной механикой , брать деньги
Дочего дошли люди ...
 
Сейчас бы за lua абилку которая делается за 10 минут (из которых скачать кастомку и отредактировать) из исходника кастомки любой с подобной механикой , брать деньги
Дочего дошли люди ...
Ой да забей, люди давно перестали воевать за идею, лишь малому количеству людей нужно что б ру челы делали свои кастомки.
 
подскажите пожалуйста, я в префабах нашел нейтральный кемп крипов, как изменить время респавна и вообще можно ли это сделать не прибегая к коду?
 
подскажите пожалуйста, я в префабах нашел нейтральный кемп крипов, как изменить время респавна и вообще можно ли это сделать не прибегая к коду?
В хаммере вроде нельзя, зато в скриптах это делается одной строчкой, нет никаких трудностей.
Заходишь в scripts/vscripts/addon_game_mode.lua, находишь функцию function CAddonTemplateGameMode:InitGameMode(), и внутрь вписываешь команду
Convars:SetFloat("dota_neutral_spawn_interval", 10) -- где 10 - интервал спавна нейтралов в секундах
 
Вопросик по js:
Код:
let localPLayerId = Players.GetLocalPlayer()
function uwu(){
     let AllPLayers = Game.GetAllPlayerIDs()
    let Playerid = AllPLayers.find(pid => pid != localPLayerId)
     if (Playerid){
        let Enemyplayerinfo = Game.GetPlayerInfo( Playerid )
        $.Msg(Enemyplayerinfo.player_steamid)
    }
}
вообщем я использую это для отображения второго игрока, но второй игрок не видит первого в чем проблема может быть?
 
Вопросик по js:
Код:
let localPLayerId = Players.GetLocalPlayer()
function uwu(){
     let AllPLayers = Game.GetAllPlayerIDs()
    let Playerid = AllPLayers.find(pid => pid != localPLayerId)
     if (Playerid){
        let Enemyplayerinfo = Game.GetPlayerInfo( Playerid )
        $.Msg(Enemyplayerinfo.player_steamid)
    }
}
вообщем я использую это для отображения второго игрока, но второй игрок не видит первого в чем проблема может быть?
Проблема может быть связана с неправильным использованием функции Game.GetPlayerInfo(). По умолчанию, эта функция возвращает информацию о других игроках только для владельца комнаты (lobby host). Непривилегированные игроки получают ограниченную информацию о других игроках, поэтому второй игрок не видит первого.

Чтобы решить эту проблему, рекомендую вам использовать GameEvents.Subscribe() для подписки на событие изменения информации о игроке (PlayerInfoChangedEvent), а затем обновлять информацию о других игроках при возникновении этого события. Вот пример, как это можно сделать:


JavaScript:
let localPlayerId = Players.GetLocalPlayer()



function OnPlayerInfoChanged(event) {

    let playerID = event.player_id

    if (playerID != localPlayerId) {

        let enemyPlayerInfo = Game.GetPlayerInfo(playerID)

        $.Msg(enemyPlayerInfo.player_steamid)

    }

}



GameEvents.Subscribe("player_info_changed", OnPlayerInfoChanged)


Теперь при изменении информации о другом игроке, второй игрок сможет видеть первого.


От ChatGPT ответ.
 
Проблема может быть связана с неправильным использованием функции Game.GetPlayerInfo(). По умолчанию, эта функция возвращает информацию о других игроках только для владельца комнаты (lobby host). Непривилегированные игроки получают ограниченную информацию о других игроках, поэтому второй игрок не видит первого.

Чтобы решить эту проблему, рекомендую вам использовать GameEvents.Subscribe() для подписки на событие изменения информации о игроке (PlayerInfoChangedEvent), а затем обновлять информацию о других игроках при возникновении этого события. Вот пример, как это можно сделать:


JavaScript:
let localPlayerId = Players.GetLocalPlayer()



function OnPlayerInfoChanged(event) {

    let playerID = event.player_id

    if (playerID != localPlayerId) {

        let enemyPlayerInfo = Game.GetPlayerInfo(playerID)

        $.Msg(enemyPlayerInfo.player_steamid)

    }

}



GameEvents.Subscribe("player_info_changed", OnPlayerInfoChanged)


Теперь при изменении информации о другом игроке, второй игрок сможет видеть первого.


От ChatGPT ответ.
Тоже самое получил от gpt но чет не work, ладно если найду способ отпишусь. а так спасибо.
 
Да бот хуйню написал, у него галюны
 
Реклама: