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

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

 
inoto
я буду крутым!
offline
Опыт: 6,891
Активность:
Состав сторонней библиотеки триггеров
На мапстере есть мод GAx3, там реализовано интересное действие для гуи: Мгновенно дать предмет юниту.
В моде есть библиотека триггеров.
Не могу понять, как просмотреть код галакси этого экшна. Кто-нибудь знает?
Прикрепленные файлы
Тип файла: sc2mod GAx3p1.SC2Mod (71.1 Кбайт, 2 просмотров )
Старый 15.04.2012, 18:04
Зевс
Адская Зверюга
offline
Опыт: 152,154
Активность:
=O на обычных нативках тоже можно...ведь.
Старый 15.04.2012, 21:34
inoto
я буду крутым!
offline
Опыт: 6,891
Активность:
Выслушаю вариант как это сделать =)
Старый 16.04.2012, 00:00
inoto
я буду крутым!
offline
Опыт: 6,891
Активность:
ну же, ребята, подкиньте идею :)
inoto добавил:
расковырял-таки либу
вопщем этот экшн делается такими манипулициями (думать особо не думал, просто копипастил):
string GAx3_UnitInventoryGet(unit u)
{
   int i=1;
   int c=UnitAbilityCount(u);
   string abil;
   string s="";
   while (i<=c)
   {
      abil=UnitAbilityGet(u,i);
      if(AbilityClass(abil)==c_classIdCAbilInventory)
      {
         s=abil;
         break;
      }
   }
   return s;
}
bool GAx3_UnitIssueItemOrderTargetPoint(unit u,int inCmdIndex,unit inItem,point inPoint,int inQueueType)
{
   string abil=GAx3_UnitInventoryGet(u);
   order ord=OrderTargetingItem(AbilityCommand(abil,inCmdIndex),inItem);
   OrderSetTargetPoint(ord,inPoint);
   return UnitIssueOrder(u,ord,inQueueType);
}
bool GAx3_UnitIssueItemOrderTargetUnit(unit u,int inCmdIndex,unit inItem,unit inUnit,int inQueueType)
{
   string abil=GAx3_UnitInventoryGet(u);
   order ord=OrderTargetingItem(AbilityCommand(abil,inCmdIndex),inItem);
   OrderSetTargetUnit(ord,inUnit);
   return UnitIssueOrder(u,ord,inQueueType);
}
bool GAx3_UnitInventoryGiveItem(unit u,unit inItem)
{
   point fallbackPoint=UnitGetPosition(inItem);
   GAx3_UnitIssueItemOrderTargetUnit(GAx3_God,c_abilInventoryCmdTake,inItem,inItem,c_orderQueueReplace)​; // GAx3_God это даммик
   GAx3_UnitIssueItemOrderTargetUnit(GAx3_God,c_abilInventoryCmdDrop,inItem,u,c_orderQueueAddToEnd);
   if(UnitInventoryUnit(inItem)==GAx3_God)
   {
      GAx3_UnitIssueItemOrderTargetPoint(GAx3_God,c_abilInventoryCmdDrop,inItem,fallbackPoint,c_orderQueue​Replace);
      return false;
   }
   return true;
}
победа наша! :3
Старый 17.04.2012, 00:16

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

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

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

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



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