SniperX
Друзья CG
- 26 Фев 2018
- 539
- 100
- Проект
- Dota 2x4
А за что это отвечает то?if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end
Вот же
я не силён в LUA
А за что это отвечает то?if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end
Вот же
Сложно объяснить, ибо сам новичок, но короче говоря, создает класс, после чего в нем можно сохранять переменные/таблицы, и вызывать в нем функции, если так можно сказать. Могу ошибатьсяА за что это отвечает то?я не силён в LUA
Так я не понял что с этим кодом делать который ты мне прислал в эту таблицу вставить?Сложно объяснить, ибо сам новичок, но короче говоря, создает класс, после чего в нем можно сохранять переменные/таблицы, и вызывать в нем функции, если так можно сказать. Могу ошибаться
Какой?Так я не понял что с этим кодом делать который ты мне прислал в эту таблицу вставить?
Какой?
function CAddonTemplateGameMode:OnEntityKilled( keys )
local killed_unit = EntIndexToHScript( keys.entindex_killed )
local killer = EntIndexToHScript( keys.entindex_attacker )
limit = 50
if killed_unit:IsRealHero() then
killed_unit:GetTeam()
local team_killer = killer:GetTeam()
if self.TableMayble == nil then
self.TableMayble = {}
end
if self.TableMayble[team_killer] == nil then
self.TableMayble[team_killer] = 1
else
self.TableMayble[team_killer] = self.TableMayble[team_killer] + 1
end
if self.TableMayble[team_killer] == limit then
GameRules:SetGameWinner( team_killer )
end
end
end
if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end
function Precache( context )
--[[
Precache things we know we'll use. Possible file types include (but not limited to):
PrecacheResource( "model", "*.vmdl", context )
PrecacheResource( "soundfile", "*.vsndevts", context )
PrecacheResource( "particle", "*.vpcf", context )
PrecacheResource( "particle_folder", "particles/folder", context )
]]
end
-- Create the game mode when we activate
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end
function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
ListenToGameEvent('game_rules_state_change', Dynamic_Wrap(CAddonTemplateGameMode, 'OnGameRulesStateChange'), self)
ListenToGameEvent('entity_killed', Dynamic_Wrap(CAddonTemplateGameMode, 'OnEntityKilled'), self)
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
function CAddonTemplateGameMode:OnGameRulesStateChange()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_HERO_SELECTION then
end
end
function CAddonTemplateGameMode:OnEntityKilled( keys )
local killed_unit = EntIndexToHScript( keys.entindex_killed )
local killer = EntIndexToHScript( keys.entindex_attacker )
--[[if killed_unit:GetUnitName() == "npc_dota_neutral_kobold" then
print(killer:GetTeam())
print(PlayerResource:GetPlayerCount())
for i = 0, PlayerResource:GetPlayerCount() - 1 do
local gold = 322 -- кол-во голды
local player = PlayerResource:GetSelectedHeroEntity(i)
if player:GetTeam() == killer:GetTeam() then
player:ModifyGold( 322, true, 0 )
end
end
end]]
limit = 50 --лимит, можно написать вне функции
if killed_unit:IsRealHero() then --Проверяет есть настоящий ли герой, либо иначе считаться будет каждый юнит
local team_killer = killer:GetTeam() --записывает команду убийцы
if self.TableMayble == nil then -- если нет таблицы
self.TableMayble = {} --то создает
end
if self.TableMayble[team_killer] == nil then --если в таблице нет переменной команды
self.TableMayble[team_killer] = 1 -- то записывает переменную команды = 1
else
self.TableMayble[team_killer] = self.TableMayble[team_killer] + 1 --иначе(если есть переменная) записывает ее + 1
end
if self.TableMayble[team_killer] == limit then -- если переменная команды = лимиту
GameRules:SetGameWinner( team_killer ) --то устанавливает победителя - команду которая набрала лимит
end
end
end
Огромное спасибо без тебя бы я не смог создать недомод Pudge Wars [1 hook = 1 kill] Modifired а может и другое название но мне это название пока что нравится))Короче, вот так выглядеть должен addon_game_mode.lua после создания и добавления этого кода
Lua:if CAddonTemplateGameMode == nil then CAddonTemplateGameMode = class({}) end function Precache( context ) --[[ Precache things we know we'll use. Possible file types include (but not limited to): PrecacheResource( "model", "*.vmdl", context ) PrecacheResource( "soundfile", "*.vsndevts", context ) PrecacheResource( "particle", "*.vpcf", context ) PrecacheResource( "particle_folder", "particles/folder", context ) ]] end -- Create the game mode when we activate function Activate() GameRules.AddonTemplate = CAddonTemplateGameMode() GameRules.AddonTemplate:InitGameMode() end function CAddonTemplateGameMode:InitGameMode() print( "Template addon is loaded." ) GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 ) ListenToGameEvent('game_rules_state_change', Dynamic_Wrap(CAddonTemplateGameMode, 'OnGameRulesStateChange'), self) ListenToGameEvent('entity_killed', Dynamic_Wrap(CAddonTemplateGameMode, 'OnEntityKilled'), self) 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 function CAddonTemplateGameMode:OnGameRulesStateChange() if GameRules:State_Get() == DOTA_GAMERULES_STATE_HERO_SELECTION then end end function CAddonTemplateGameMode:OnEntityKilled( keys ) local killed_unit = EntIndexToHScript( keys.entindex_killed ) local killer = EntIndexToHScript( keys.entindex_attacker ) --[[if killed_unit:GetUnitName() == "npc_dota_neutral_kobold" then print(killer:GetTeam()) print(PlayerResource:GetPlayerCount()) for i = 0, PlayerResource:GetPlayerCount() - 1 do local gold = 322 -- кол-во голды local player = PlayerResource:GetSelectedHeroEntity(i) if player:GetTeam() == killer:GetTeam() then player:ModifyGold( 322, true, 0 ) end end end]] limit = 50 --лимит, можно написать вне функции if killed_unit:IsRealHero() then --Проверяет есть настоящий ли герой, либо иначе считаться будет каждый юнит local team_killer = killer:GetTeam() --записывает команду убийцы if self.TableMayble == nil then -- если нет таблицы self.TableMayble = {} --то создает end if self.TableMayble[team_killer] == nil then --если в таблице нет переменной команды self.TableMayble[team_killer] = 1 -- то записывает переменную команды = 1 else self.TableMayble[team_killer] = self.TableMayble[team_killer] + 1 --иначе(если есть переменная) записывает ее + 1 end if self.TableMayble[team_killer] == limit then -- если переменная команды = лимиту GameRules:SetGameWinner( team_killer ) --то устанавливает победителя - команду которая набрала лимит end end end
Главное чтобы как обычно при изменение/создании .lua файл не читается npc_abilities_override такого чтобы не было надо надеятьсяОгромное спасибо без тебя бы я не смог создать недомод Pudge Wars [1 hook = 1 kill] Modifired а может и другое название но мне это название пока что нравится))
ни разу npc_abilities_override не использовал, тут ни чем не смогу помочьГлавное чтобы как обычно при изменение/создании .lua файл не читается npc_abilities_override такого чтобы не было надо надеяться
Тут я узнал что я сделал 52 килла и всё ещё никто не победил и что делать если не работает?ни разу npc_abilities_override не использовал, тут ни чем не смогу помочь
и кстати в npc_abilities_override ты вписываешь обычные абилки из доты и их редактируешь а в npc_abilities_custom создаются datadriven способности я себе урок сделал давно когда мемы начинал делать просто заглядывал в чужие картыни разу npc_abilities_override не использовал, тут ни чем не смогу помочь
А TEAM_KILLS_TO_WIN использовать не судьба?Тут я узнал что я сделал 52 килла и всё ещё никто не победил и что делать если не работает?
Надо ему дать способность necronomicon_warrior_sightПодскажите как сделать тру сайт у юнита? Просто дать гем в инвентарь?
//=================================================================================================================
// Ability: Necronomicon Warrior's Sight
//=================================================================================================================
"necronomicon_warrior_sight"
{
// General
//-------------------------------------------------------------------------------------------------------------
"ID" "5201" // unique ID number for this ability. Do not change this once established or it will invalidate collected stats.
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"radius" "1000"
}
}
"AbilityCastAnimation" "ACT_DOTA_CAST_ABILITY_3"
}
АА понял то что в твоём "events.lua" который ну сойдётА TEAM_KILLS_TO_WIN использовать не судьба?
язык английский сделай, по поводу камерыКак покрасить карту на которой уже имеются высоты и низины не изменяя их. Т.е. просто покрасить в другую текстуру. С+Lmouse не работает. А еще как сделать передвижение камеры на WASD, оно иногда работает, а иногда нет.