destructioN
Пользователь
- 16 Сен 2018
- 68
- 0
- Проект
- Great Labyrinth
pak01_dir/scripts/npc/unitsГде найти файлы с дефолтными значениями всех юнитов?
...me\dota_addons\THUNDERSCOTRPG\scripts\vscripts\units.lua:4: attempt to index a nil value
stack traceback:
...me\dota_addons\THUNDERSCOTRPG\scripts\vscripts\units.lua:4: in function <...me\dota_addons\THUNDERSCOTRPG\scripts\vscripts\units.lua:1>
Script Runtime Error: ...me\dota_addons\THUNDERSCOTRPG\scripts\vscripts\units.lua:4: attempt to index a nil value
stack traceback:
...me\dota_addons\THUNDERSCOTRPG\scripts\vscripts\units.lua:4: in function <...me\dota_addons\THUNDERSCOTRPG\scripts\vscripts\units.lua:1>
[BAREBONES] OnLastHit
{
EntKilled = 421 (number)
FirstBlood = 0 (number)
TowerKill = 0 (number)
HeroKill = 0 (number)
PlayerID = 0 (number)
splitscreenplayer = -1 (number)
}
[BAREBONES] OnEntityKilled Called
{
entindex_attacker = 449 (number)
entindex_killed = 421 (number)
damagebits = 0 (number)
splitscreenplayer = -1 (number)
}
Юнитс :Какой именно код у тебя скинь !
Блин , короче всё работает я просто поинт забыл поставить , но все же для боссов такой метод подойдет , но как же быть если я хочу расставлять кастомные кемпинги и сделать около 300 крипов по всей карте ?Какой именно код у тебя скинь !
Энтити на мапе существует?Юнитс :
function Respawn (keys )
local caster= keys.caster
local team= caster:GetTeamNumber()
local caster_respoint = Entities:FindByName(nil,"respawn_point"):GetAbsOrigin()
local name= caster:GetUnitName()
Timers:CreateTimer(5,function()
local unit = CreateUnitByName(name, caster_respoint + RandomVector( RandomFloat( 0, 50)), true, nil, nil, team)
end)
end
Ставь энтити,на них спавнить крипов,они нужны как минимум для нахождения точки респауна.Блин , короче всё работает я просто поинт забыл поставить , но все же для боссов такой метод подойдет , но как же быть если я хочу расставлять кастомные кемпинги и сделать около 300 крипов по всей карте ?
Не , я щас попытался 5 крипов одинаковых заспавнить на разных поинтах , но выходят после смерти из одногоЭнтити на мапе существует?
что ты ищешь один энтити,а надо все и через цикл для каждого спавнить.Не , я щас попытался 5 крипов одинаковых заспавнить на разных поинтах , но выходят после смерти из одного
https://customgames.ru/forum/threads/Дополнение-Гайд-как-возродить-крипов.1440/Блин , короче всё работает я просто поинт забыл поставить , но все же для боссов такой метод подойдет , но как же быть если я хочу расставлять кастомные кемпинги и сделать около 300 крипов по всей карте ?
Если ты проделал все этапы правильно то проблем возникнуть не должно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
всем привет.
напишите кто нить пример как указывать путь. все сделал кроме этого. не совсем ясно как и откуда брать и указывать пути к мобу айди и все такое
крип в начале появляется (красный медведь), но после убийства он не возрождается.Если ты проделал все этапы правильно то проблем возникнуть не должно
Содержимое npc_abilities_custom и npc_units_customкрип в начале появляется (красный медведь), но после убийства он не возрождается.
делал все по гайду вроде, вот файлы которые я создал по гайду+ в проге указал имя таргету respawn_point.
Еще хотелось бы чтоб у них уровень повышался с каждым разом появления ну и соответственно опыт, золото от них. (((решил сделать build по новому крип перестал появляться)))
содержимое скопировал и вставил отсюда, как здесь, так и тамСодержимое npc_abilities_custom и npc_units_custom
Подскажите пожалуйста, как изменить время респауна героя. Например сделать стандартным 5 секунд?
И, если можно, второй вопрос, как сделать при возрождении героя автоматическое срабатывание способности (проблема в том, что я делаю кастомку типо арены и там очень легко подловить человека на респауне и убить, я не знаю как это исправить, возможно бессмертие при воскрешении на пару секунд помогло бы, ну либо как-то еще)
Добавить в слушатель смертиНужно отлавливать появление игрока в ТвойМодТут:InitGameMode() добавь строку:
ListenToGameEvent( "npc_spawned", Dynamic_Wrap( ТвойМодТут, "OnNPCSpawned" ), self )
-- Когда он уловил, сработает следующее:
function ТвойМодТут:OnNPCSpawned( event )
local spawnedUnit = EntIndexToHScript( event.entindex ) -- тут ты пальцем тыкаешь в появившегося игрока-энтити
if spawnedUnit ~= nil then -- тут проверяешь если палец не уткнулся в пустоту случайно
if spawnedUnit:IsRealHero() then -- прощупываешь если не иллюзия
-- Выдаёшь бессмертие:
spawnedUnit:AddNewModifier( spawnedUnit, nil, "modifier_invulnerable", { duration = 5.25 } )
return
end
end
end
С респауном я не могу помочь, пока не было необходимости решать такую задачу.
if killedUnit:IsRealHero() and killedUnit:IsReincarnating() == false then
killedUnit:SetTimeUntilRespawn( HERO_RESPAWN_TIME )
end
ъуъ, оффтоперыПодскажите пожалуйста, как изменить время респауна героя. Например сделать стандартным 5 секунд?
И, если можно, второй вопрос, как сделать при возрождении героя автоматическое срабатывание способности (проблема в том, что я делаю кастомку типо арены и там очень легко подловить человека на респауне и убить, я не знаю как это исправить, возможно бессмертие при воскрешении на пару секунд помогло бы, ну либо как-то еще)