я не понимаю куда это написать тк как за основу скила у меня взят скил из дотыя бы сделал что-то типо такого, вроде должно работать
Код:function suicid (keys) local unit= keys.caster local kill = RandomInt(1,100) if kill == 1 then unit:forcekill(true) end end
И опять же скажу, что и с дотовским скиллом это можносо стандартным ничего не выйдет,
пиши скил с 0 или используй spelllibrary
можно мне пример?И опять же скажу, что и с дотовским скиллом это можно
есть фильтры, мне не надо вот это квможно мне пример?
"luna_lucent_beam"
{
// General
//-------------------------------------------------------------------------------------------------------------
"ID" "5222" // unique ID number for this ability. Do not change this once established or it will invalidate collected stats.
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
"SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_NO"
"SpellDispellableType" "SPELL_DISPELLABLE_YES_STRONG"
"FightRecapLevel" "1"
"AbilitySound" "Hero_Luna.LucentBeam.Target"
// Casting
//-------------------------------------------------------------------------------------------------------------
"AbilityCastRange" "800"
"AbilityCastPoint" "0.4"
// Time
//-------------------------------------------------------------------------------------------------------------
"AbilityCooldown" "6.0 6.0 6.0 6.0"
// Cost
//-------------------------------------------------------------------------------------------------------------
"AbilityManaCost" "90 100 110 120"
// Stats
//-------------------------------------------------------------------------------------------------------------
"AbilityModifierSupportValue" "0.5" // Mostly about the damage
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"stun_duration" "0.8"
}
"02"
{
"var_type" "FIELD_INTEGER"
"beam_damage" "75 150 225 300"
"LinkedSpecialBonus" "special_bonus_unique_luna_1"
}
}
"AbilityCastAnimation" "ACT_DOTA_CAST_ABILITY_1"
}
слив защитан )) спс за вниманиеесть фильтры, мне не надо вот это кв
А зачем делать какие-то кастомки, если можно писать свою доту?зачем добавлять чтото к стандартным скилам если можно писать свои? и да фильтры первое что приходит в голову
dota_player_used_ability
- вроде то, что нужно. Там на сайте еще типо список аргументов прилагается, но лучше распечать таблицу самому и посмотреть, что там.ListenToGameEvent( 'dota_player_used_ability', function( kv )
table.foreach( kv, print )
end, nil )
abilityname mars_spear
caster_entindex 745
game_event_listener 1585446915
game_event_name dota_player_used_ability
PlayerID 0
splitscreenplayer -1
abilityname
[без комментариев]caster_entindex
- 'entindex' в доте всегда обозначает индекс (уникальный идентификатор) сущности. В данном случае это индекс кастера (того, кто применил способность). Чтобы по индексу получить саму сущность, существует функция EntIndexToHScript
ListenToGameEvent( 'dota_player_used_ability', function( kv )
if kv.caster_entindex ~= nil and kv.abilityname == 'mars_spear' then
local caster = EntIndexToHScript( kv.caster_entindex )
if caster and not caster:IsNull() then
if RandomFloat(0,100) <= 1 then
caster:ForceKill( true )
end
end
end
end, nil )