XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Banzay89

offline
Опыт: 10,955
Активность:
Как отследить стоимость юнита?
Как триггерно отследить сколько стоит юнит? Можно ли это вообще?
Нужно сделать способность "Продажа", чтоб за проданные вышки давали 50% от их стоимости. Юзал поиск, нашел парочку подобных вопросов, но ответ на вопрос "как отследить стоимость" так и не нашел. Если я туплю и есть стандартная абила, то скажите что я туплю и есть стандартная абила =)
Старый 03.09.2010, 00:49
Alonix
*null*
offline
Опыт: 26,861
Активность:
Banzay89, вроде никак.Только если стоимость не будет равно какой-нибудь формуле например,кол-во жизней -400 и умглжить на броню или искать самому после покупки,то есть смотреть сколько было до и после покупки,потом высчитывать.
Старый 03.09.2010, 04:44
16GB
GhostOne User
offline
Опыт: 59,317
Активность:
Banzay89,
мб как то с трансмутацией химичить мб
Старый 03.09.2010, 08:16
Lевик
Cat Crusade!
offline
Опыт: 1,800
Активность:
сделать триггер. установить, чтобы когда "башня уровень 1" использовала способность "самопродажа", игроку (владелец башни) давалось 200 золотых.
и так для каждой башни. а тк хз
Старый 03.09.2010, 09:02
JassMan
свободен
offline
Опыт: 4,193
Активность:
Заранее создать базу на нужное кол-во юнитов (я думаю ты не на все типы юнитов хочешь)
Старый 03.09.2010, 09:05
Elf_Stratigo

offline
Опыт: 4,599
Активность:
» GetUnitGoldCostById

Код:
function GetRandomPathableLoc takes rect R, integer MaxAttempts returns location
  local location L
  local integer Index = 0
  if MaxAttempts < 1 then
    set MaxAttempts = 50
  endif
  loop
    exitwhen Index >= MaxAttempts
    set L = GetRandomLocInRect(R)
    if IsLocPathable(L) then
      return L
    endif
    set Index = Index + 1
  endloop
  return Location(0,0)
endfunction

function IsTempShop takes nothing returns boolean
  return GetUnitTypeId(GetSellingUnit()) == 'nshf'
endfunction

function RemoveTempShop takes nothing returns nothing
  call RemoveUnit(GetSellingUnit())
  call RemoveUnit(GetSoldUnit())
  call DestroyTrigger(GetTriggeringTrigger())
endfunction

function GetUnitGoldCostById takes integer Uid returns integer
  local string Temp = DebugIdInteger2IdString(Uid)
  local trigger Dispose = CreateTrigger()
  local integer Val = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
  local integer ValB = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER)
  local integer Cap = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP)
  local integer Diff
  local unit U
  set Temp = SubStringBJ(Temp,1,1)
  if Temp == "E" or Temp == "U" or Temp == "O" or Temp == "H" then
    return 425
  endif
  set U = CreateUnitAtLoc(Player(15),'nshf',GetRandomPathableLoc(GetPlayableMapRect(),1000  ),bj_UNIT_FACING)
  call AdjustPlayerStateBJ(50000,Player(15),PLAYER_STATE_RESOURCE_GOLD)
  call AdjustPlayerStateBJ(50000,Player(15),PLAYER_STATE_RESOURCE_LUMBER)
  call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP,200)
  set Diff = GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
  call TriggerRegisterAnyUnitEventBJ(Dispose,EVENT_PLAYER_UNIT_SELL)
  call TriggerAddCondition(Dispose,Condition(function IsTempShop))
  call TriggerAddAction(Dispose,function RemoveTempShop)
  call UnitAddAbilityBJ('Asud',U)
  call AddUnitToStockBJ(Uid,U,1,1)
  call IssueTrainOrderByIdBJ(U,Uid)
  set Diff = Diff - GetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD)
  call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_GOLD,Val)
  call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_LUMBER,ValB)
  call SetPlayerState(Player(15),PLAYER_STATE_RESOURCE_FOOD_CAP,Cap)
  return Diff
endfunction
Старый 03.09.2010, 10:29
Redykt
<(◕_^)>Няя!\\<(-_-")>
offline
Опыт: 7,026
Активность:
почитал комменты, улыбнуло
Banzay89,
Событие A unit завершает подготовку боевой единицы, или твой скилл там и тд
Условие- твой юнит или абилка
Действие- Игрок-Add (Point-value of (Triggering unit))to (Owner of (Triggering unit)) Золото (Текущ.)/2
всё елементарно просто :o
Миниатюры
Кликните на картинку для увеличения
Название:  sell.jpg
Просмотров: 50
Размер:  43.4 Кбайт  
Старый 03.09.2010, 15:16
Патиссончик
Time marches on
offline
Опыт: 9,855
Активность:
А чем не подходит способность рассеять здание у послушника?
Старый 04.09.2010, 14:55
FunkieFoO

offline
Опыт: 7,059
Активность:
тем что автор хочет сделать как во всех тдшках, ятп, т.е при юзании абилы давалось Н голды, а не рассеивать здания рабочими
Старый 04.09.2010, 16:34
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
лолчто? просто даете всем юнитам опр. кол-во жизней или маны и отслеживаете. также можна отследить по кастом валуи и по typeId
Старый 04.09.2010, 16:41
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:22.