shesmu
Продвинутый
- 22 Фев 2018
- 158
- 22
Используй лучше Obstructionкак закрыть вижен зданием?
local knockback = {
duration = 0.4,
knockback_duration = 0.4,
knockback_distance = 400,
knockback_height = 900,
center_x = self.target:GetAbsOrigin().x,
center_y = self.target:GetAbsOrigin().y,
center_z = self.target:GetAbsOrigin().z,
should_stun = 0,
}
unit:AddNewModifier( self:GetCaster(), self, "modifier_boss_kotl_blinding_light_knockback", knockback )
Почему юнит не толкается? Модифиер на 0.4 сек накладывается и ничего не проиcходит
а чтобы само здание вообще никак тип?Используй лучше Obstruction
Можно прямо в здании сделать CreateTempTree и заменить ему модель на пустую. Правда тут есть две проблемы: CreateTempTree не возвращает ссылки на созданное дерево, и его скорее всего можно будет срубить (но в этом я не уверен, если модель будут пустая)а чтобы само здание вообще никак тип?
Да у меня они и так давно созданыТы создай ещё дополнительные папки в spellicons и items для предотвращения дальнейших багов. И в них пихай картинки.
проблема в том, что все эти способы блокируют вижен и на само здание и его становится невозможно атаковать с одной из сторон, а в моей ситуации сторон для атаки всего двеМожно прямо в здании сделать CreateTempTree и заменить ему модель на пустую. Правда тут есть две проблемы: CreateTempTree не возвращает ссылки на созданное дерево, и его скорее всего можно будет срубить (но в этом я не уверен, если модель будут пустая)
Возможно есть и адекватные способы.
Как прописать доп. урон с руки как у МКБ
// Rewrite of Monkey King Bar
// Author: Rook
// Date: January 30, 2015
"item_monkey_king_bar_datadriven"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "item_datadriven"
"ID" "1135" //Valve's version of this item uses the ID "135".
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"Model" "models/props_gameplay/red_box.vmdl"
"Effect" "particles/generic_gameplay/dropped_item.vpcf"
"AbilityTextureName" "item_monkey_king_bar"
// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "5400"
"ItemShopTags" "damage;attack_speed;hard_to_tag"
"ItemQuality" "epic"
"ItemAliases" "mkb;monkey king bar"
"ItemDeclarations" "DECLARE_PURCHASES_TO_TEAMMATES | DECLARE_PURCHASES_IN_SPEECH | DECLARE_PURCHASES_TO_SPECTATORS"
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_damage" "88"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_attack_speed" "15"
}
"03"
{
"var_type" "FIELD_INTEGER"
"bash_chance" "35"
}
"04"
{
"var_type" "FIELD_INTEGER"
"bash_damage" "100"
}
"05"
{
"var_type" "FIELD_FLOAT"
"bash_stun" "0.01"
}
}
"Modifiers"
{
"modifier_item_monkey_king_bar_datadriven"
{
"Passive" "1"
"IsHidden" "1"
"Attributes" "MODIFIER_ATTRIBUTE_MULTIPLE"
"Properties"
{
"MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE" "%bonus_damage"
"MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%bonus_attack_speed"
}
"States"
{
"MODIFIER_STATE_CANNOT_MISS" "MODIFIER_STATE_VALUE_ENABLED" //When attacking uphill, cannot miss units but can still miss buildings.
}
"OnAttackLanded"
{
"Random"
{
"Chance" "%bash_chance"
"PseudoRandom" "DOTA_PSEUDO_RANDOM_ITEM_MKB"
"OnSuccess"
{
"Damage"
{
"Target" "TARGET"
"Type" "DAMAGE_TYPE_MAGICAL"
"Damage" "%bash_damage"
}
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_monkey_king_bar_datadriven_bash"
}
"FireSound"
{
"EffectName" "DOTA_Item.MKB.Minibash"
"Target" "TARGET"
}
}
}
}
}
"modifier_item_monkey_king_bar_datadriven_bash"
{
"Duration" "%bash_stun"
"Passive" "0"
"IsHidden" "0"
"IsBuff" "0"
"IsDebuff" "1"
"IsPurgable" "1"
"EffectName" "particles/generic_gameplay/generic_stunned.vpcf"
"EffectAttachType" "follow_overhead"
"OverrideAnimation" "ACT_DOTA_DISABLED"
"States"
{
"MODIFIER_STATE_STUNNED" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}
}
Как временную заплатку можно использовать SetModifyGoldFilterБрал скрипт создания иллюзий со скилла наги в SpellLibrary. Проблема в том, что когда убивают кастера, голда, которую получают при смерти кастера, увеличивается в столько раз, сколько находится в живых его иллюзий. Как это исправить?
illusion:SetPlayerID(caster:GetPlayerID())
Это итерация (цикл). После каждого цикла i будет увеличиваться на 1.Как прописать кастомное кол-во опыта на каждый уровень в баребонесах , я просто не могу понять
Вот код который там
-- Fill this table up with the required XP per level if you want to change it
XP_PER_LEVEL_TABLE = {}
for i=1,MAX_LEVEL do
XP_PER_LEVEL_TABLE = i * 600
end
И еще одно почему то на первый уровень нужно 1200 опыта , а потом на все остальные 600 (надо что бы с первого было 600)
USE_CUSTOM_HERO_LEVELS = true
MAX_LEVEL = 50
USE_CUSTOM_XP_VALUES = true
XP_PER_LEVEL_TABLE = {}
XP_PER_LEVEL_TABLE[1] = 0
XP_PER_LEVEL_TABLE[2] = 30
XP_PER_LEVEL_TABLE[3] = 50
XP_PER_LEVEL_TABLE[4] = 50
XP_PER_LEVEL_TABLE[5] = 50
XP_PER_LEVEL_TABLE[6] = 50
XP_PER_LEVEL_TABLE[7] = 125
XP_PER_LEVEL_TABLE[8] = 150
XP_PER_LEVEL_TABLE[9] = 175
XP_PER_LEVEL_TABLE[10] = 200
XP_PER_LEVEL_TABLE[11] = 250
XP_PER_LEVEL_TABLE[12] = 300
XP_PER_LEVEL_TABLE[13] = 350
XP_PER_LEVEL_TABLE[14] = 400
XP_PER_LEVEL_TABLE[15] = 500
XP_PER_LEVEL_TABLE[16] = 600
XP_PER_LEVEL_TABLE[17] = 700
XP_PER_LEVEL_TABLE[18] = 800
XP_PER_LEVEL_TABLE[19] = 900
XP_PER_LEVEL_TABLE[20] = 1000
XP_PER_LEVEL_TABLE[21] = 1200
XP_PER_LEVEL_TABLE[22] = 1400
XP_PER_LEVEL_TABLE[23] = 1600
XP_PER_LEVEL_TABLE[24] = 1800
XP_PER_LEVEL_TABLE[25] = 2000
XP_PER_LEVEL_TABLE[26] = 2200
XP_PER_LEVEL_TABLE[27] = 2400
XP_PER_LEVEL_TABLE[28] = 2600
XP_PER_LEVEL_TABLE[29] = 2800
XP_PER_LEVEL_TABLE[30] = 3000
XP_PER_LEVEL_TABLE[31] = 3200
XP_PER_LEVEL_TABLE[32] = 3400
XP_PER_LEVEL_TABLE[33] = 3600
XP_PER_LEVEL_TABLE[34] = 3800
XP_PER_LEVEL_TABLE[35] = 4000
XP_PER_LEVEL_TABLE[36] = 4200
XP_PER_LEVEL_TABLE[37] = 4400
XP_PER_LEVEL_TABLE[38] = 4600
XP_PER_LEVEL_TABLE[39] = 4800
XP_PER_LEVEL_TABLE[40] = 5000
XP_PER_LEVEL_TABLE[41] = 5500
XP_PER_LEVEL_TABLE[42] = 6000
XP_PER_LEVEL_TABLE[43] = 6500
XP_PER_LEVEL_TABLE[44] = 7000
XP_PER_LEVEL_TABLE[45] = 7500
XP_PER_LEVEL_TABLE[46] = 8000
XP_PER_LEVEL_TABLE[47] = 8500
XP_PER_LEVEL_TABLE[48] = 9000
XP_PER_LEVEL_TABLE[49] = 9500
XP_PER_LEVEL_TABLE[50] = 10000
Это итерация (цикл). После каждого цикла i будет увеличиваться на 1.
1: 1*600 = 600
2: 2*600 = 1200
3: 3*600 = 1800
Чтобы работало, надо дописать в settings.lua
Код:USE_CUSTOM_HERO_LEVELS = true MAX_LEVEL = 50 USE_CUSTOM_XP_VALUES = true
Или можешь просто использовать массивы, заполнив таблицу
Код:XP_PER_LEVEL_TABLE = {} XP_PER_LEVEL_TABLE[1] = 0 XP_PER_LEVEL_TABLE[2] = 30 XP_PER_LEVEL_TABLE[3] = 50 XP_PER_LEVEL_TABLE[4] = 50 XP_PER_LEVEL_TABLE[5] = 50 XP_PER_LEVEL_TABLE[6] = 50 XP_PER_LEVEL_TABLE[7] = 125 XP_PER_LEVEL_TABLE[8] = 150 XP_PER_LEVEL_TABLE[9] = 175 XP_PER_LEVEL_TABLE[10] = 200 XP_PER_LEVEL_TABLE[11] = 250 XP_PER_LEVEL_TABLE[12] = 300 XP_PER_LEVEL_TABLE[13] = 350 XP_PER_LEVEL_TABLE[14] = 400 XP_PER_LEVEL_TABLE[15] = 500 XP_PER_LEVEL_TABLE[16] = 600 XP_PER_LEVEL_TABLE[17] = 700 XP_PER_LEVEL_TABLE[18] = 800 XP_PER_LEVEL_TABLE[19] = 900 XP_PER_LEVEL_TABLE[20] = 1000 XP_PER_LEVEL_TABLE[21] = 1200 XP_PER_LEVEL_TABLE[22] = 1400 XP_PER_LEVEL_TABLE[23] = 1600 XP_PER_LEVEL_TABLE[24] = 1800 XP_PER_LEVEL_TABLE[25] = 2000 XP_PER_LEVEL_TABLE[26] = 2200 XP_PER_LEVEL_TABLE[27] = 2400 XP_PER_LEVEL_TABLE[28] = 2600 XP_PER_LEVEL_TABLE[29] = 2800 XP_PER_LEVEL_TABLE[30] = 3000 XP_PER_LEVEL_TABLE[31] = 3200 XP_PER_LEVEL_TABLE[32] = 3400 XP_PER_LEVEL_TABLE[33] = 3600 XP_PER_LEVEL_TABLE[34] = 3800 XP_PER_LEVEL_TABLE[35] = 4000 XP_PER_LEVEL_TABLE[36] = 4200 XP_PER_LEVEL_TABLE[37] = 4400 XP_PER_LEVEL_TABLE[38] = 4600 XP_PER_LEVEL_TABLE[39] = 4800 XP_PER_LEVEL_TABLE[40] = 5000 XP_PER_LEVEL_TABLE[41] = 5500 XP_PER_LEVEL_TABLE[42] = 6000 XP_PER_LEVEL_TABLE[43] = 6500 XP_PER_LEVEL_TABLE[44] = 7000 XP_PER_LEVEL_TABLE[45] = 7500 XP_PER_LEVEL_TABLE[46] = 8000 XP_PER_LEVEL_TABLE[47] = 8500 XP_PER_LEVEL_TABLE[48] = 9000 XP_PER_LEVEL_TABLE[49] = 9500 XP_PER_LEVEL_TABLE[50] = 10000
Читай здесь: https://customgames.ru/forum-old/index.php?topic=790.0 я там подробнее объяснял
Вот этот вставьXP_PER_LEVEL_TABLE = {}
for i=1,MAX_LEVEL do
XP_PER_LEVEL_TABLE = i * 600
end
XP_PER_LEVEL_TABLE = {}
XP_PER_LEVEL_TABLE[1] = 0
for i=2,MAX_LEVEL do
XP_PER_LEVEL_TABLE[i] = XP_PER_LEVEL_TABLE[i-1] + i * 600
end
В той теме оказывается не для Barebones была инфа.А через функцию SetCustomHeroMaxLevel я не понял как делать
MODIFIER_PROPERTY_MOVESPEED_MAXКак сделать пассивный скилл, который снимает ограничение по макс. скорости передвижения?
MODIFIER_PROPERTY_MOVESPEED_MAX
Работает вроде только для луа
modifier_movespeed_cap = class({})
function modifier_movespeed_cap:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_MOVESPEED_MAX,
}
return funcs
end
function modifier_movespeed_cap:GetModifierMoveSpeed_Max( params )
return 1000
end
function modifier_movespeed_cap:IsHidden()
return true
end