вообщем все знают систему убийств карты дота)
я хочу сделать типа такого,
как мне распределить золото за убийства врага вместе союзниками по ровну?

Принятый ответ

В Bounty[1, 2, 3, 4, 5...] можно сунуть стандартную награду за определенных юнитов, дальше при выдаче этой голды учитывай всякие проверки, меняя эту награду и занося ее в локальную переменную. В конце просто выдаешь каждому LocalBounty / Количество игроков

function Bounty takes player whichplayer, integer bounty, real x, real y returns nothing   
  local texttag t=CreateTextTag()   
  local string s="+"   
  call AdjustPlayerStateBJ( bounty, whichplayer, PLAYER_STATE_RESOURCE_GOLD )   
  if bounty<0 then   
  set s=""   
  endif   
  call SetTextTagText(t,s+I2S(bounty),0.025)   
  call SetTextTagPos(t,x,y, 0.00)   
  call SetTextTagColor(t,255,220,0,255)   
  call SetTextTagVelocity(t,0,0.03)   
  if (GetLocalPlayer()==whichplayer) then   
  call SetTextTagVisibility(t,true)   
  set s="UI\\Feedback\\GoldCredit\\GoldCredit.mdl"   
  else   
  call SetTextTagVisibility(t,false)   
  set s=""   
  endif   
  call DestroyEffect(AddSpecialEffect(s,x,y))   
  call SetTextTagFadepoint(t,2)   
  call SetTextTagLifespan(t,3)   
  call SetTextTagPermanent(t,false)   
  set t=null   
  endfunction 
call Bounty(Игрок, Награда, GetUnitX(Юнит, за которого дают награду),GetUnitY(Юнит, за которого дают награду))
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
13
8 лет назад
Отредактирован NekoriDes
0
В Bounty[1, 2, 3, 4, 5...] можно сунуть стандартную награду за определенных юнитов, дальше при выдаче этой голды учитывай всякие проверки, меняя эту награду и занося ее в локальную переменную. В конце просто выдаешь каждому LocalBounty / Количество игроков

function Bounty takes player whichplayer, integer bounty, real x, real y returns nothing   
  local texttag t=CreateTextTag()   
  local string s="+"   
  call AdjustPlayerStateBJ( bounty, whichplayer, PLAYER_STATE_RESOURCE_GOLD )   
  if bounty<0 then   
  set s=""   
  endif   
  call SetTextTagText(t,s+I2S(bounty),0.025)   
  call SetTextTagPos(t,x,y, 0.00)   
  call SetTextTagColor(t,255,220,0,255)   
  call SetTextTagVelocity(t,0,0.03)   
  if (GetLocalPlayer()==whichplayer) then   
  call SetTextTagVisibility(t,true)   
  set s="UI\\Feedback\\GoldCredit\\GoldCredit.mdl"   
  else   
  call SetTextTagVisibility(t,false)   
  set s=""   
  endif   
  call DestroyEffect(AddSpecialEffect(s,x,y))   
  call SetTextTagFadepoint(t,2)   
  call SetTextTagLifespan(t,3)   
  call SetTextTagPermanent(t,false)   
  set t=null   
  endfunction 
call Bounty(Игрок, Награда, GetUnitX(Юнит, за которого дают награду),GetUnitY(Юнит, за которого дают награду))
Принятый ответ
0
24
8 лет назад
0
В доте вещь, называемая bonus gold, выдаётся стоящим рядом с убитым врагом союзникам, неважно, делали они что-то или нет. А те, кто помогал убивать - если в момент смерти врага находятся не рядом с ним - ничего не получают. Алсо, если ассистент умирает, то он тоже ничего не получает) Хотя мб последний пункт и исправили, я месяц в доту не играл. Но навряд ли.
Если тебе такое нужно - считай враждебных умершему в радиусе 1400 от его позиции, умножай его уровень на 20 и прибавляй 30. Потом дели на всех посчитанных юнитов, точнее на владельцев их. Если их было 3, то например (5*20+30)/3
эта формула - твоё число, как делать тексттаг с числом, я думаю ты знаешь.
0
17
8 лет назад
0
Melissa, так значит в доте если ты не помогал убивать вражеского героя и ты находишься ближе убиваюшему герою союзнику то ты становишься ассистентом?
0
24
8 лет назад
0
Zeuz, ты получаешь бонусное золото, ассиста не получаешь.
За сами ассисты в доте ничего не дают.
0
28
8 лет назад
0
отлавливать всех кто надамажил
а потом использовать оператор деления
Чтобы оставить комментарий, пожалуйста, войдите на сайт.