ProjectileManager и damageTable

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Ребят кто знает как совместить ProjectileManager:CreateLinearProjectile (снаряд, частица которая летит по траектории) и damageTable чтобы снаряд попадал по npc и отнимал урон через damageTable ? библиотеку Projectiles не очень хочется использовать от Noya
 
Спасибо, я нашёл что искал только немного другое, но концепция таже OnProjectileHitUnit)
 
всё работает как надо, но пишет в консоле TARGET is not a recognized target name in item_wea.

код в луа

Код:
function food(args)
  local caster = args.caster
  local target = args.target
  local ability = args.ability

	local point = caster:GetCursorPosition()
	local direction = point - caster:GetOrigin()
	direction.z = 0.0
	direction = direction:Normalized()
	
	local info = {
		Ability = args.ability,
    EffectName = "particles/units/heroes/hero_mirana/mirana_spell_arrow.vpcf",
    vSpawnOrigin = caster:GetAbsOrigin(),
    fDistance = 2000,
    fStartRadius = 40,
    fEndRadius = 40,
    Source = caster,
		iUnitTargetTeam = DOTA_UNIT_TARGET_TEAM_ENEMY,
    iUnitTargetType = DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC,
		iUnitTargetFlags = DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES,
		vVelocity = direction * 1000,
		bProvidesVision = true,
		iVisionRadius = 400,
		iVisionTeamNumber = caster:GetTeamNumber()
	}

	projectile = ProjectileManager:CreateLinearProjectile(info)
end

и в дд

Код:
	"item_wea"
	{
		"ID"							"9401"
		"BaseClass"						"item_datadriven"
		"AbilityTextureName"			"wea"
		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_DIRECTIONAL | DOTA_ABILITY_BEHAVIOR_POINT | DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING"
		"AbilityUnitTargetTeam"			"DOTA_UNIT_TARGET_TEAM_ENEMY"
		"AbilityUnitTargetType"			"DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
		"AbilityUnitDamageType"			"DAMAGE_TYPE_PURE"
		"AbilityCastAnimation"			"ACT_DOTA_ATTACK"

		"Model"							"models/props_gameplay/red_box.vmdl" //Green
		"Effect" 						"particles/generic_gameplay/dropped_item.vpcf"
		
		"ItemSellable"		 			"0"
		"ItemStackable"					"1"
		"ItemShareability"				"ITEM_FULLY_SHAREABLE_STACKING"
		"ItemPermanent"					"0"
		"ItemInitialCharges"			"5"
		"AbilityCooldown"     		"1"
		"AbilityDamage"					"40"
	
		"AbilitySpecial"
		{
			"01"
			{
				"var_type"				"FIELD_INTEGER"
				"start_radius"			"30"
			}
			"02"
			{
				"var_type"				"FIELD_INTEGER"
				"end_radius"			"40"
			}
		}

		"OnSpellStart"
		{
			"RunScript" 
			{
				"ScriptFile"		"rif.lua"
				"Function"			"food" 
				"Target"			"TARGET"
			}	
			"SpendCharge"
			{}		
		}
		
		"OnProjectileHitUnit"
		{
		  "Damage"
			{
				"Type"			"DAMAGE_TYPE_PURE"
				"Damage"		"40"
				"Target"
				{
						"Center"	"TARGET"
						"Teams"		"DOTA_UNIT_TARGET_TEAM_ENEMY"
						"Types"		"DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC | DOTA_UNIT_TARGET_OTHER"
						"Flags"   "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
				}
			}
		}
		"OnEquip"
	  {
	    "RunScript"
	 	  {
	 	    "ScriptFile"	  "droper_table.lua"
	 	    "Function"		"droper_weapon"
	 	  }	  
    }
  }
 
Последнее редактирование модератором:
Походу я лишнее вписал в OnSpellStart, убрал таргет и сейчас ничего не вылезает

Код:
		"OnSpellStart"
		{
			"RunScript" 
			{
				"ScriptFile"		"rif.lua"
				"Function"			"food" 
			}	
			"SpendCharge"
			{}		
		}
 
Последнее редактирование модератором:
нужно ли прописывать DeleteOnHit 1 для OnProjectileHitUnit ???
 
Ты хочешь чтобы он удалялся при первом столкновении с юнитом?
 
Ты хочешь чтобы он удалялся при первом столкновении с юнитом?
Он по сути сталкивается наносит урон и удаляется но мб в памяти как то сидеть будет я хз или так норм без DeleteOnHit ?
 
Последнее редактирование модератором:
У тебя сейчас работает так как тебе нужно?
 
Реклама: