CustomGames.ru - Dota 2 пользовательские игры

Приручение крипа

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
Приручение крипа
« : 01-11-2016, 17:15:46 »
Пытаюсь приручить крипа, но он отказывается выполнять "приказы", контрол сделал, не понимаю, чего не хватает?

Код
	local caster = self:GetCaster()
local target = self:GetCursorTarget()
local health = self:GetSpecialValueFor("health")
local speed = self:GetSpecialValueFor("speed")
if not self.dominated_units then
self.dominated_units = {}
end

for k,v in pairs(self.dominated_units) do
if v and IsValidEntity(v) then
v:ForceKill(false)
end
end

self.dominated_units = {}

table.insert(self.dominated_units, target)

target:AddNewModifier(caster, self, "modifier_kill", {duration = self:GetSpecialValueFor("duration")})
target:SetControllableByPlayer(caster:GetEntityIndex(),true)
--[[target:SetOwner(caster)]]--
target:SetTeam(caster:GetTeamNumber())

if target:GetMaxHealth() < health then
print("Set Health to "..health)
target:SetMaxHealth(health)
end

if target:GetBaseMoveSpeed() < speed then
print("Set Movespeed to "..speed)
target:SetBaseMoveSpeed(speed)
end
« Последнее редактирование: 01-11-2016, 17:50:12 от Danis »
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн CryDeS

  • Друзья CG
  • 1208
  • Мощь: 12
Re: Приручение крипа
« Ответ #1 : 01-11-2016, 17:51:55 »
Пытаюсь приручить крипа, но он отказывается выполнять "приказы", контрол сделал, не понимаю, чего не хватает?

Код
	local caster = self:GetCaster()
local target = self:GetCursorTarget()
local health = self:GetSpecialValueFor("health")
local speed = self:GetSpecialValueFor("speed")
if not self.dominated_units then
self.dominated_units = {}
end

for k,v in pairs(self.dominated_units) do
if v and IsValidEntity(v) then
v:ForceKill(false)
end
end

self.dominated_units = {}

table.insert(self.dominated_units, target)

target:AddNewModifier(caster, self, "modifier_kill", {duration = self:GetSpecialValueFor("duration")})
target:SetControllableByPlayer(caster:GetEntityIndex(),true)
--[[target:SetOwner(caster)]]--
target:SetTeam(caster:GetTeamNumber())

if target:GetMaxHealth() < health then
print("Set Health to "..health)
target:SetMaxHealth(health)
end

if target:GetBaseMoveSpeed() < speed then
print("Set Movespeed to "..speed)
target:SetBaseMoveSpeed(speed)
end
caster:GetEntityIndex
замени на
caster:GetPlayerOwnerID

И в следующий раз не путай ID игрока и Entity Index игрока.

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
Re: Приручение крипа
« Ответ #2 : 01-11-2016, 17:54:51 »
caster:GetEntityIndex
замени на
caster:GetPlayerOwnerID

И в следующий раз не путай ID игрока и Entity Index игрока.
И так тоже делал. не работало.

Код
target:SetControllableByPlayer(caster:GetPlayerOwnerID(),true)
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]

Оффлайн Danis

  • Продвинутый
  • 268
  • Мощь: 2
Re: Приручение крипа
« Ответ #3 : 01-11-2016, 19:27:59 »
Собственно получается сам спросил, сам ответил.
Вот код, может кому пригодится.
Код
	local caster = self:GetCaster()
local target = self:GetCursorTarget()
local health = self:GetSpecialValueFor("health")
local speed = self:GetSpecialValueFor("speed")
if not target:IsAncient() or not target:IsMagicImmune() or not IsBoss(target) or not target.dominated then

if not self.dominated_units then
self.dominated_units = {}
end

for k,v in pairs(self.dominated_units) do
if v and IsValidEntity(v) then
v.disable_drop = true
v:ForceKill(false)
end
end

self.dominated_units = {}

local t_health = target:GetHealth()
local t_max_health = target:GetMaxHealth()
local t_speed = target:GetBaseMoveSpeed()
target.disable_drop = true
target:ForceKill(false)
local unit = CreateUnitByName(target:GetUnitName(), target:GetAbsOrigin(), false, caster, caster, caster:GetTeamNumber() )
unit:SetHealth(t_health)
unit:AddNewModifier(caster, self, "modifier_kill", {duration = self:GetSpecialValueFor("duration")})
unit:SetControllableByPlayer(caster:GetPlayerOwnerID(),true)
unit:SetOwner(caster)

if t_max_health < health then
print("Set Health to "..health)
unit:SetMaxHealth(health)
end

if t_speed < speed then
print("Set Movespeed to "..speed)
unit:SetBaseMoveSpeed(speed)
end

table.insert(self.dominated_units, unit)

target.dominated = true
end
Создай Героя
Мод  - steamcommunity.com/...ils/?id=750146414
[свернуть]