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

Статус
В этой теме нельзя размещать новые ответы.

almazist1

Продвинутый
Код:
"nevermore_necromastery_datadriven"
{
    // General
    //-------------------------------------------------------------------------------------------------------------
    "BaseClass"                "ability_datadriven"
    "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
    "OnCastbar"                    "0"
    "AbilityTextureName"            "nevermore_necromastery"

    // Special
    //-------------------------------------------------------------------------------------------------------------
    "AbilitySpecial"
    {
        "01"
        {
            "var_type"                        "FIELD_INTEGER"
            "necromastery_damage_per_soul"    "2"
        }
        "02"
        {
            "var_type"                        "FIELD_INTEGER"
            "necromastery_max_souls"    "15 22 29 36"
        }
        "03"
        {
            "var_type"                        "FIELD_FLOAT"
            "necromastery_soul_release"        "0.5"
        }
        "04"
        {
            "var_type"                        "FIELD_INTEGER"
            "necromastery_souls_hero_bonus"    "11"
        }       
    }

    "precache"
    {
        "particle"  "particles/units/heroes/hero_nevermore/nevermore_souls.vpcf"
        "particle"  "particles/units/heroes/hero_nevermore/nevermore_necro_souls.vpcf"
        "soundfile" "soundevents/game_sounds_heroes/game_sounds_nevermore.vsndevts"
    }

    "OnOwnerDied"
    {
        "RunScript"
        {
            "ScriptFile"    "heroes/hero_nevermore/necromastery.lua"
            "Function"        "NecromasteryDeath"
            "modifier"        "modifier_necromastery"
        }
    }

    "Modifiers"
    {
        "modifier_soul_collector"
        {
            "Passive"            "1"
            "IsHidden"            "1"
    
            "EffectName"        "particle_name"
            "EffectAttachType"    "follow_origin"

            "OnKill"
            {
                "FireEffect"
                {
                    "EffectName"        "particles/units/heroes/hero_nevermore/nevermore_necro_souls.vpcf"
                    "EffectAttachType"  "follow_origin"
                    "Target"            "TARGET" //DEADFLAG?
                }

                "RunScript"
                {
                    "ScriptFile"    "heroes/hero_nevermore/necromastery.lua"
                    "Function"        "NecromasteryStack"
                    "modifier"        "modifier_necromastery"
                }
            }
        }

        "modifier_necromastery"
        {
            "Attributes"        "MODIFIER_ATTRIBUTE_MULTIPLE | MODIFIER_ATTRIBUTE_PERMANENT"

            "EffectName"        "particles/units/heroes/hero_nevermore/nevermore_souls.vpcf"
            "EffectAttachType"    "follow_origin"

            "Properties"
            {
                "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE"        "%necromastery_damage_per_soul"
            }
        }
    }
}
Код:
--[[
    Author: Noya
    Date: April 5, 2015
    Lose some of the modifier charges stored
    TODO: Check if floor or ceil
]]
function NecromasteryDeath( event )
    local caster = event.caster
    local ability = event.ability
    local modifier = event.modifier
    local necromastery_soul_release = ability:GetLevelSpecialValueFor( "necromastery_soul_release", ability:GetLevel() - 1 )

    local current_stack = caster:GetModifierStackCount( modifier, ability )
    if current_stack then
        target:SetModifierStackCount( modifierName, ability, math.ceil(current_stack * necromastery_soul_release) )
    end
end

--[[
    Author: Noya
    Date: April 5, 2015
    Adds to the modified stacks when a unit is killed, limited by a max_souls.
    TODO: Confirm that SetModifierStackCount adds the damage instances without the need to apply shit
]]
function NecromasteryStack( event )
    local caster = event.caster
    local target = event.unit
    local modifier = event.modifier
    local ability = event.ability
    
    local souls_hero_bonus = ability:GetLevelSpecialValueFor( "necromastery_souls_hero_bonus", ability:GetLevel() - 1 )
    local max_souls = ability:GetLevelSpecialValueFor( "necromastery_max_souls", ability:GetLevel() - 1 )

    -- Check how many stacks can be granted
    local souls_gained = 1
    if target:IsRealHero() then
        souls_gained = souls_gained + souls_hero_bonus
    end

    -- Check if the hero already has the modifier
    local current_stack = caster:GetModifierStackCount( modifier, ability )
    if not current_stack then
        ability:ApplyDataDrivenModifier(caster, caster, modifier, {})
        current_stack = 0
    end

    -- Set the stack up to max_souls
    if (current_stack + souls_gained) <= max_souls then
        caster:SetModifierStackCount( modifier, ability, current_stack + souls_gained )
    else
        caster:SetModifierStackCount( modifier, ability, max_souls )
    end
end
не работает пасивка на души сфа, в чем проблема?
 

Tekerey

Пользователь
15 Июл 2016
11
0
Как остановить музыку, запущенную с помощью EmitGlobalSound?
 

TRex

Пользователь
8 Авг 2018
38
0
Люди кто в панораме шарит, как активировать функцию в js из луа? чёт искал ничё не нащёл, видимо плохо искал.
function AddDebugQuest()
{
var panel = $.CreatePanel('Panel',$('#Quests'),'');
panel.BLoadLayoutSnippet("Quest");
SetMoney(panel, 1)
}

function SetMoney(quest, money)
{
var GoldZ = money;
quest.FindChildTraverse('QuestDescription').text = GoldZ;
}

function debug()
{
/*$.Msg("Debug");*/
AddDebugQuest()
}
debug()
Вот весь js, function SetMoney(quest, money) нужная функция.
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
Люди кто в панораме шарит, как активировать функцию в js из луа? чёт искал ничё не нащёл, видимо плохо искал.
function AddDebugQuest()
{
var panel = $.CreatePanel('Panel',$('#Quests'),'');
panel.BLoadLayoutSnippet("Quest");
SetMoney(panel, 1)
}

function SetMoney(quest, money)
{
var GoldZ = money;
quest.FindChildTraverse('QuestDescription').text = GoldZ;
}

function debug()
{
/*$.Msg("Debug");*/
AddDebugQuest()
}
debug()
Вот весь js, function SetMoney(quest, money) нужная функция.
Ищи в апи Send_ServerToPlayer
 

almazist1

Продвинутый
Что сложного прописать свой некрономикон? CreateUnitByName,а так глянь на spell library
я не умею писать абилки) слишком глуп в этом плане, и тм тем более еще как то надо сделать чтоб с повышеием уровня менялись некра)
 

TRex

Пользователь
8 Авг 2018
38
0
ну да чтото получается в консоли выдаёт что надо , тогда ещё 1 простенький вопрос
for k,v in pairs(event_data) как доставать определённые значения? local x = v[1]? например так?
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
ну да чтото получается в консоли выдаёт что надо , тогда ещё 1 простенький вопрос
for k,v in pairs(event_data) как доставать определённые значения? local x = v[1]? например так?
Ввёл дату по такому типу local data {}
Data.x = 212243,
Data.y = Qwest,
Достаёшь в функции.
Local x = keys.x
Local y = keys.y
 

TRex

Пользователь
8 Авг 2018
38
0
Не могу поменять игроку скорость атаки
player1 = PlayerResource:GetSelectedHeroEntity(0)
print(player1)
player1:SetMaximumAttackSpeed(2000)
player1:SetMinimumAttackSpeed(2000)

table: 0x0314fcb8
...dota_addons\m001_iw\scripts\vscripts\addon_game_mode.lua:145: attempt to call method 'SetMaximumAttackSpeed' (a nil value)
просто не могу решить и всё тут
 
20 Дек 2016
892
170
Не могу поменять игроку скорость атаки
player1 = PlayerResource:GetSelectedHeroEntity(0)
print(player1)
player1:SetMaximumAttackSpeed(2000)
player1:SetMinimumAttackSpeed(2000)

table: 0x0314fcb8
...dota_addons\m001_iw\scripts\vscripts\addon_game_mode.lua:145: attempt to call method 'SetMaximumAttackSpeed' (a nil value)
просто не могу решить и всё тут
SetMaximumAttackSpeed применяется к гейммоду и устанавливает максимально возможную скорость атаки для всех существ
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: