Кастую за чужие бабки.

  • Автор темы Автор темы FastSlow
  • Дата начала Дата начала

FastSlow

Пользователь
8 Янв 2017
12
0
Создал абилку с помощью lua, если играешь за редиант все норм золото тратиться, а за другие команды нет. В чем может быть проблема?
Код:
HP_UP = class ({})
x = {0,0,0,0,0}
function HP_UP:OnSpellStart()
  x[5]=x[5]+2
  local hCaster = self:GetCaster()
  local team = hCaster:GetTeamNumber()
  x[team-1] = x[team-1] + 5
end
function HP_UP:GetCooldown( nLevel )
return 0
end
function HP_UP:prost(i)
	return x[i]
end
function HP_UP:GetGoldCost()
  local baseGoldCost = 10
  local extraGoldPerLevel = 5
  local newGoldCost = baseGoldCost + x[5] * extraGoldPerLevel
  if newGoldCost >= 1000 then
    newGoldCost = 999
  end

  return (newGoldCost)
end
 
Последнее редактирование модератором:
А в чём прикол?
Зачем тебе узнавать комманду??
modifyGold на кастера и проблем ноль..
 
Так и не понял в чем была ошибка просто сделал немного по другому
Код:
HP_UP = class ({})
x = {0,0,0,0}
goldcost=0
lvl=0
function HP_UP:OnSpellStart()
  lvl=lvl+1
  goldcost=goldcost+5*lvl
  local hCaster = self:GetCaster()
  local team = hCaster:GetTeamNumber()
  x[team-1] = x[team-1] + 5
end
function HP_UP:GetCooldown( nLevel )
return 0
end
function HP_UP:prost(i)
	return x[i]
end
function HP_UP:GetGoldCost()
  return (goldcost)
end
 
Ну, как минимум, начиная с DOTA_TEAM_CUSTOM_1, который равен 6, у тебя будут ошибки: здесь
Код:
x[team-1]
так как у тебя минимальный номер в первом куске кода 0, а макс 4. Во втором от 0 до 3 вообще (если я правильно помню и у первого элемента массива нулевой индекс).
 
В луа начинается с 1 индекс. Я просто пока код накидал, а так да,DOTA_TEAM_CUSTOM_1 равен 6, но проблема была не в этом, потому что я проверял на dire и там ничего не работало.
Илья, как пройти 3 ночь вдвоем?
 
В консоли не было ошибок? Пробовал через принты ( print() ) смотреть, где код отрабатывает, а где нет?

Спектра, Девовер и рекомендуемый закуп.
 
Не стал заморачиваться и оставил все в таком виде. Работает, ну и ладно.
Код:
HP_UP = class ({})
x = {[2]=0,[3]=0,[6]=0,[7]=0} -- количество на сколько увеличиваю хп
goldcost={[2]=0,[3]=0,[6]=0,[7]=0} -- по чем грейд для каждой команды
lvl=0
function HP_UP:OnSpellStart()
  local hCaster = self:GetCaster()
  local player = hCaster:GetOwner()
  local team = player:GetTeamNumber()
  lvl=lvl+1
  goldcost[team]=goldcost[team]+5*lvl 
  x[team] = x[team] + 5
end
function HP_UP:GetCooldown( nLevel )
return 0
end
function HP_UP:prost(i) -- функция к которой я обращаюсь чтобы узнать на сколько увеличить хп
  if i == 1 then
	 return x[2]
  end
  if i == 2 then
   return x[3]
  end
  if i == 3 then
   return x[6]
  end
  if i == 4 then
   return x[7]
  end
end
function HP_UP:GetGoldCost() 
  local hCaster = self:GetCaster() -- находим кастера
  local player = hCaster:GetOwner() -- смотрим кто его батя
  local team = player:GetTeamNumber() -- смотрим в какой он команде
  return (goldcost[team]) -- ставим ценик для его команды
end
Спасибо, прошел с 1 раза)))
 
Реклама: