Хех, у меня тоже есть мод выжить в тайге), я его так и не доделал до конца, хоть там и немного осталось
Последнее редактирование модератором:
Хех, у меня тоже есть мод выжить в тайге), я его так и не доделал до конца, хоть там и немного осталось
Этот файл отвечает за таймеры, которые без функции в timers.lua не будут работать. В файле должно быть это.привет
объясни для такого лоха как я ))
ты писал что без timers.lua это не работает, а че это вообще такое, что в этом файле должно быть.
А как поставить чтобы он спавнился в раз 8 минутДля того , чтобы возрадить крипов нам потребуется крип находящийся по адресу dota_addons/ваш_мод/scripts/npc/npc_units_custom :
И абилка : "Ability1" "Respawn" // Ability 1//=================================================================================
// Creature: Gnoll Assassin
//=================================================================================
"npc_dota_creature_gnoll_assassin"
{
// General
//----------------------------------------------------------------
"Model" "models/creeps/neutral_creeps/n_creep_gnoll/n_creep_gnoll_frost.vmdl" // Model.
"BaseClass" "npc_dota_creature"
"SoundSet" "n_creep_Ranged"
"GameSoundsFile" "soundevents/game_sounds_creeps.vsndevts"
"Level" "1"
"ModelScale" ".9"
// Abilities
//----------------------------------------------------------------
"Ability1" "Respawn" // Ability 1
"Ability2" "" // Ability 2
"Ability3" "" // Ability 3
"Ability4" "" // Ability 4
// Armor
//----------------------------------------------------------------
"ArmorPhysical" "1" // Physical protection.
// Attack
//----------------------------------------------------------------
"AttackCapabilities" "DOTA_UNIT_CAP_RANGED_ATTACK"
"AttackDamageMin" "30" // Damage range min.
"AttackDamageMax" "36" // Damage range max.
"AttackRate" "1.6" // Speed of attack.
"AttackAnimationPoint" "0.4" // Normalized time in animation cycle to attack.
"AttackAcquisitionRange" "800" // Range within a target can be acquired.
"AttackRange" "500" // Range within a target can be attacked.
"ProjectileModel" "particles/neutral_fx/gnoll_base_attack.vpcf" // Particle system model for projectile.
"ProjectileSpeed" "1500" // Speed of projectile.
// Bounds
//----------------------------------------------------------------
"RingRadius" "40"
"HealthBarOffset" "170"
// Bounty
//----------------------------------------------------------------
"BountyXP" "24" // Experience earn.
"BountyGoldMin" "21" // Gold earned min.
"BountyGoldMax" "29" // Gold earned max.
// Movement
//----------------------------------------------------------------
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_GROUND"
"MovementSpeed" "270" // Speed.
// Status
//----------------------------------------------------------------
"StatusHealth" "75" // Base health.
"StatusHealthRegen" "0.5" // Health regeneration rate.
"StatusMana" "0" // Base mana.
"StatusManaRegen" "0.0" // Mana regeneration rate.
// Vision
//----------------------------------------------------------------
"VisionDaytimeRange" "400" // Range of vision during day light.
"VisionNighttimeRange" "400" // Range of vision at night time.
// Team
//----------------------------------------------------------------
"TeamName" "DOTA_TEAM_NEUTRALS" // Team name.
"CombatClassAttack" "DOTA_COMBAT_CLASS_ATTACK_PIERCE"
"CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_BASIC"
"UnitRelationshipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
// Creature Data
//----------------------------------------------------------------
"Creature"
{
//Level Up
"HPGain" "50"
"DamageGain" "2"
"ArmorGain" "0.25"
"MagicResistGain" "0.1"
"MoveSpeedGain" "1"
"BountyGain" "3"
"XPGain" "15"
}
}
Которую вы создадите по адресу dota_addons/ваш_мод/scripts/npc/npc_abilites_custom.txt
Для работы следующего трюка потребуется базовый набор скриптов Barebones: "Addon_game_mode.lua", "timers.lua" и "Barenones.lua" , которые нужно сохранить по адресу : "dota_addons/ваш_мод/scripts/vscripts""Respawn"
{
"BaseClass" "ability_datadriven"
"AbilityTextureName" "ability_name"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE|DOTA_ABILITY_BEHAVIOR_HIDDEN"
"OnOwnerDied" //Когда юнит умирает
{
"RunScript" //Запускается скрипт
{
"ScriptFile" "scripts/vscripts/units.lua"
"Function" "Respawn"
}
}
}
https://github.com/MNoya/barebones/tree/source2/game/dota_addons/barebones/scripts/vscripts
Без репозитория "timers.lua" функция "Timers:CreateTimer()" не будет работать !
А также потребуется файл, который нужно создать по адресу dota_addons/ваш_мод/scripts/vscripts/
"units.lua"
Если вы хотите, чтобы юнит возрождался на том же самом месте,где собственно и был убит,то надо вставить в файл :
Однако ,если у юнита есть точка,куда нужно вернуть бедолагу , тогда в файл надо вставить следующее:Код:function Respawn (keys ) local caster= keys.caster --пробиваем IP усопшего local caster_position = caster:GetAbsOrigin() --Пробиваем адрес,где лежит жмурик local name= caster:GetUnitName() --Пробиваем имя покойного Timers:CreateTimer(5,function() --Через сколько секунд появится новый фраер(5) local unit = CreateUnitByName(name, caster_position + RandomVector( RandomFloat( 0, 50)), true, nil, nil, DOTA_TEAM_NEUTRALS) -- создаем нового пацыка по трем аргументам ( имя покойного ,адрес жмурика ,true,nil,nil,Команда_нейтралов) end) end
Точку "respawn_point" можно создать в Hammer_EdditorКод:function Respawn (keys ) local caster= keys.caster --пробиваем IP усопшего local team= caster:GetTeamNumber() --пробиваем команду терпилы local caster_respoint = Entities:FindByName(nil,"respawn_point"):GetAbsOrigin() --Пробиваем адрес дома local name= caster:GetUnitName() --Пробиваем имя покойного Timers:CreateTimer(5,function() --Через сколько секунд появится новый фраер(5) local unit = CreateUnitByName(name, caster_respoint + RandomVector( RandomFloat( 0, 50)), true, nil, nil, team) -- создаем нового пацыка по трем аргументам ( имя покойного ,адрес дома ,true,nil,nil,команда терпилы) end) end
Entity Tool - Entity Class:"info_target" - Properties:Name"respawn_point".
Вот собсна всё .
Дополнительный гайд по теме https://customgames.ru/forum/threads/Дополнение-Гайд-как-возродить-крипов.1440/
CreateTimerА как поставить чтобы он спавнился в раз 8 минут
Чё это? Можешь изменить тот код чтобы он ресался по кд а не сразу же когда его убилиCreateTimer
поставь время в таймере на стоко секунд сколько тебе нужно (прочитай код внимательней)Чё это? Можешь изменить тот код чтобы он ресался по кд а не сразу же когда его убили
Timers:CreateTimer(5,function() --Через сколько секунд появится новый фраер(5) эта строчка?поставь время в таймере на стоко секунд сколько тебе нужно (прочитай код внимательней)
Да, 5 секунд щас стоит, если 8 минут то 480 нужно ставитьTimers:CreateTimer(5,function() --Через сколько секунд появится новый фраер(5) эта строчка?
спасибоДа, 5 секунд щас стоит, если 8 минут то 480 нужно ставить