Урок Гайд , как возродить крипов

destructioN

Пользователь
16 Сен 2018
68
0
Проект
Great Labyrinth
Где найти файлы с дефолтными значениями всех юнитов?
 

Thunder Lane

Активный
30 Сен 2018
87
16
Проект
Thunder's COT RPG
Что не так ?
Сделал все по гайду , также есть баребонесы , таймерс , гейммод переписал

Ошибка в консоли :
Код:
...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)

}
 

Вложения

  • error.png
    error.png
    300.8 KB · Просмотры: 23
Последнее редактирование модератором:

Thunder Lane

Активный
30 Сен 2018
87
16
Проект
Thunder's COT RPG
Какой именно код у тебя скинь !
Юнитс :
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
 

Thunder Lane

Активный
30 Сен 2018
87
16
Проект
Thunder's COT RPG
Какой именно код у тебя скинь !
Блин , короче всё работает я просто поинт забыл поставить , но все же для боссов такой метод подойдет , но как же быть если я хочу расставлять кастомные кемпинги и сделать около 300 крипов по всей карте ?
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Юнитс :
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
Энтити на мапе существует?
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Блин , короче всё работает я просто поинт забыл поставить , но все же для боссов такой метод подойдет , но как же быть если я хочу расставлять кастомные кемпинги и сделать около 300 крипов по всей карте ?
Ставь энтити,на них спавнить крипов,они нужны как минимум для нахождения точки респауна.
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Не , я щас попытался 5 крипов одинаковых заспавнить на разных поинтах , но выходят после смерти из одного
что ты ищешь один энтити,а надо все и через цикл для каждого спавнить.
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
195
www.dotabuff.com
Проект
Roshan defense
Блин , короче всё работает я просто поинт забыл поставить , но все же для боссов такой метод подойдет , но как же быть если я хочу расставлять кастомные кемпинги и сделать около 300 крипов по всей карте ?
https://customgames.ru/forum/threads/Дополнение-Гайд-как-возродить-крипов.1440/
 

art

Новичок
21 Ноя 2018
3
0
Проект
111
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

всем привет.
напишите кто нить пример как указывать путь. все сделал кроме этого. не совсем ясно как и откуда брать и указывать пути к мобу айди и все такое
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
195
www.dotabuff.com
Проект
Roshan defense
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

всем привет.
напишите кто нить пример как указывать путь. все сделал кроме этого. не совсем ясно как и откуда брать и указывать пути к мобу айди и все такое
Если ты проделал все этапы правильно то проблем возникнуть не должно
 

art

Новичок
21 Ноя 2018
3
0
Проект
111
Если ты проделал все этапы правильно то проблем возникнуть не должно
крип в начале появляется (красный медведь), но после убийства он не возрождается.

делал все по гайду вроде, вот файлы которые я создал по гайду+ в проге указал имя таргету respawn_point.
Еще хотелось бы чтоб у них уровень повышался с каждым разом появления ну и соответственно опыт, золото от них. (((решил сделать build по новому крип перестал появляться)))
 

Вложения

  • Безымянный.png
    Безымянный.png
    85.3 KB · Просмотры: 12
  • Безымянный2.png
    Безымянный2.png
    95.2 KB · Просмотры: 10
  • Безымянный3.png
    Безымянный3.png
    197.3 KB · Просмотры: 11
  • Безымянный4.png
    Безымянный4.png
    222.6 KB · Просмотры: 12
  • Безымянный5.png
    Безымянный5.png
    226.1 KB · Просмотры: 11
Последнее редактирование:

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
195
www.dotabuff.com
Проект
Roshan defense
крип в начале появляется (красный медведь), но после убийства он не возрождается.

делал все по гайду вроде, вот файлы которые я создал по гайду+ в проге указал имя таргету respawn_point.
Еще хотелось бы чтоб у них уровень повышался с каждым разом появления ну и соответственно опыт, золото от них. (((решил сделать build по новому крип перестал появляться)))
Содержимое npc_abilities_custom и npc_units_custom
 

VadDos

Пользователь
19 Апр 2020
10
0
Проект
reilgun_custom
Подскажите пожалуйста, как изменить время респауна героя. Например сделать стандартным 5 секунд?
И, если можно, второй вопрос, как сделать при возрождении героя автоматическое срабатывание способности (проблема в том, что я делаю кастомку типо арены и там очень легко подловить человека на респауне и убить, я не знаю как это исправить, возможно бессмертие при воскрешении на пару секунд помогло бы, ну либо как-то еще)
 

.фи

Активный
21 Мар 2018
108
13
Подскажите пожалуйста, как изменить время респауна героя. Например сделать стандартным 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

С респауном я не могу помочь, пока не было необходимости решать такую задачу.
 

Вложения

  • 1587703880186.png
    1587703880186.png
    1.9 MB · Просмотры: 9
  • Нравится
Реакции: VadDos

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,137
195
www.dotabuff.com
Проект
Roshan defense
Нужно отлавливать появление игрока в ТвойМодТут: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
 
  • Нравится
Реакции: VadDos

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Подскажите пожалуйста, как изменить время респауна героя. Например сделать стандартным 5 секунд?
И, если можно, второй вопрос, как сделать при возрождении героя автоматическое срабатывание способности (проблема в том, что я делаю кастомку типо арены и там очень легко подловить человека на респауне и убить, я не знаю как это исправить, возможно бессмертие при воскрешении на пару секунд помогло бы, ну либо как-то еще)
ъуъ, оффтоперы
 
Реклама: