Помогите

  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

makc45tlist

Активный
24 Янв 2018
87
5
steamcommunity.com
Проект
Enfo's Survival
Что нужно убрать из кода ,чтобы респавнились только крипы, а не все что есть на карте. Ресаются даже герои, которые умирают,в виде нейтралов.Времени на изучение луа нет, а для друзей и себя карту охото сделать,помогите!И да я скопипастил с инета респавн, не надо мне этого говорить.

_G.nNEUTRAL_TEAM = 4
_G.nCREATURE_RESPAWN_TIME = 60

if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end

require('internal/util')
require('gamemode')

function Precache( context )
DebugPrint("[BAREBONES] Performing pre-load precache")
PrecacheResource("particle", "particles/econ/generic/generic_aoe_explosion_sphere_1/generic_aoe_explosion_sphere_1.vpcf", context)
PrecacheResource("particle_folder", "particles/test_particle", context)
PrecacheResource("model_folder", "particles/heroes/antimage", context)
PrecacheResource("model", "particles/heroes/viper/viper.vmdl", context)
PrecacheModel("models/heroes/viper/viper.vmdl", context)
PrecacheResource("soundfile", "soundevents/game_sounds_heroes/game_sounds_gyrocopter.vsndevts", context)
PrecacheItemByNameSync("example_ability", context)
PrecacheItemByNameSync("item_example_item", context)
PrecacheUnitByNameSync("npc_dota_hero_ancient_apparition", context)
PrecacheUnitByNameSync("npc_dota_hero_enigma", context)
end

function OnEntityKilled (event)
local killedEntity = EntIndexToHScript(event.entindex_killed)
local sCreatureName = killedEntity:GetUnitName()
local vSpawnLoc = killedEntity.vSpawnLoc
if (vSpawnLoc == nil) then
print ("location not found")
vSpawnLoc = killedEntity:GetOrigin()
end
local vSpawnVector = killedEntity.vSpawnVector

if (sCreatureName ~= "npc_dota_neutral_mud_golem") then
GameRules:GetGameModeEntity():SetContextThink (string.format( "CreatureThink_%d", event.entindex_killed ), function () SpawnUnit(sCreatureName, vSpawnLoc) end, nCREATURE_RESPAWN_TIME)
else
local newItem = CreateItem("item_flask", nil, nil)
newItem:SetPurchaseTime(0)
CreateItemOnPositionSync(killedEntity:GetOrigin(), newItem)
newItem:LaunchLoot(false, 300, 0.75, killedEntity:GetOrigin() + RandomVector(RandomFloat(50, 350)))
end
end

function SpawnUnit (sCreatureName, vSpawnLoc, vSpawnVector)
local hUnit = CreateUnitByName(sCreatureName, vSpawnLoc, true, nil, nil, nNEUTRAL_TEAM )
hUnit.vSpawnLoc = vSpawnLoc
hUnit.vSpawnVector = vSpawnVectorfunction SpawnUnit
end

-- Create the game mode when we activate
function Activate()
GameRules.GameMode = GameMode()
GameRules.GameMode:_InitGameMode()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
ListenToGameEvent("entity_killed", OnEntityKilled, nil)

local allUnits = FindUnitsInRadius(nNEUTRAL_TEAM,
Vector(0, 0, 0),
nil,
FIND_UNITS_EVERYWHERE,
DOTA_UNIT_TARGET_TEAM_FRIENDLY,
DOTA_UNIT_TARGET_ALL,
DOTA_UNIT_TARGET_FLAG_NONE,
FIND_ANY_ORDER,
false)
print (allUnits)
for k, hUnit in pairs( allUnits ) do
hUnit.vSpawnLoc = hUnit:GetOrigin()
hUnit.vSpawnVector = hUnit:GetForwardVector()
print (hUnit.vSpawnVector)
end
end

function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
--print( "Template addon script is running." )
elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
return nil
end
return 1
end
 
"if (sCreatureName ~= "npc_dota_neutral_mud_golem") then"
замени на
"if ( killedEntity:IsRealHero == false) then"
 
  • Нравится
Реакции: Илья
Вопрос то не тривиальный. Если тебе достаточно, чтобы только герои не респались нейтралами, то вон, тебе ответили. А вот если еще какие-то объекты не должны ресаться, то тут тебе нужно ограничения ставить осмысленные, вроде того же комментария выше. Другое дело, если тебе нужно ресать только конкретных крипов, допустим, тут всего одно условие нужно поставить, опять же в духе комменатрия выше.
 
Реклама: