Сейчас 21:48:56 Суббота, 27 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » Уголок библиотек (Библиотеки проекта Simple Shooter)
Уголок библиотек
Ty3uKДата: Пятница, 11 Января 2013, 20:29:33 | Сообщение # 1
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
В данной теме я буду выкладывать библиотеки, разработанные ( trollface ) для моего проекта Simple Shooter. Говорю сразу - библиотеки ни о чем, просто являются теоретически полезными для тех, кому лень (или просто жалко времени) писать аналогичные библиотеки. В первом посте я буду выкладывать ссылки на посты с каждой библиотекой. Всем спасибо и всем добра! :)

И, как всегда, большое спасибо Николаю aka SirNikolas за отлов ошибоки недоработок!


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Ty3uKДата: Пятница, 11 Января 2013, 20:33:35 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:

Библиотека Multiboard


[code=jass]/**************************************  
*  
*   Multiboard Class
*       v1.0  
*   By Max Karelov aka Ty3uK  
*  
*   -Класс-обертка над API для типа Multiboard.
*  
*   Требуется:  
*   -------------  
*  
*        Jass New Gen Pack 5d с последними AdicHelper и JassHelper  
*            Ссылка на загрузку:  
*                http://www.mediafire.com/?aqfwy8wmrcuf67k  
*  
*   API:  
*   ----  
*  
*        Методы:
*   destroy() - уничтожает экземпляр класса.
*   Clear() - очищает доску.
*   create(rows, columns) - создает экземпляр класса (но не показывает саму доску) с указанным количеством строк и столбцов.
*   Maximize(value) - сворачивает или разворачивает доску.
*   SetColor(row, column, red, green, blue, transparent) - устанавливает цвет (красный, зеленый, синий) и прозрачность элемента доски.
*   SetDecoration(row, column, value, ico) - устанавливает значение и/или иконку элемента доски. В качестве значения можно задавать null.
*   SetStyle(row, column, value, ico) - устанавливает стиль отображения элемента доски.
*   SetTitleColor(red, green, blue, transparent) - устанавливает цвет (красный, зеленый, синий) и прозрачность заголовка доски.
*   SetWidth(row, column, width) - устанавливает ширину (задается в процентах) элемента доски.
*   
*  
*        Свойства:
*    Columns - возвращает количество столбцов доски.
*   Columns= - устанавливает количество столбцов доски.
*   Display - отображается доска или нет.
*   Display= - показывает или скрывает доску.
*    Rows - возвращает количество строк доски.
*   Rows= - устанавливает количество строк доски.
*   Title - возвращает заголовок доски.
*   Title= - устанавливает заголовок доски.
*   Maximized - развернута доска или нет.
*
*
*  Ваше здоровье, SirNikolas!
*  
**************************************/  
library_once MultiboardLibrary {
  #include "cj_types_priv.j";
  #define <trigger gg_trg_Multiboard_Library = null>;
   
  struct Multiboard {
/*
   Публичные
    переменные
        */
   readonly bool Maximized;
/*
   Приватные
    переменные
        */
   private multiboard M;
   private static multiboarditem m;
   private int ROWS;
   private int COLUMNS;
   private bool DISPLAY;
/*
   Операторы
        */
   public int operator Columns() {
    return COLUMNS;
   }
    
   public void operator Columns= (int count) {
    COLUMNS = count;
    MultiboardSetColumnCount(M, count);
   }
    
   public bool operator Display() {
    return DISPLAY;
   }
    
   public void operator Display= (bool value) {
    DISPLAY = value;
    MultiboardDisplay(M, value);
   }
      
   public int operator Rows() {
    return ROWS;
   }
    
   public void operator Rows= (int count) {
    ROWS = count;
    MultiboardSetRowCount(M, count);
   }
      
   public string operator Title() {
    return MultiboardGetTitleText(M);
   }
    
   public void operator Title= (string title) {
    MultiboardSetTitleText(M, title);
   }
/*
   Публичные
    методы
        */
   public void Clear() {
    MultiboardClear(M);
   }

   public void Maximize(bool maximize) {
    Maximized = maximize;
    MultiboardMinimize(M, !maximize);
   }
    
   public void SetColor(int row, int column, int red, int green, int blue, int transparent) {
    m = MultiboardGetItem(M, row, column);
    MultiboardSetItemValueColor(m, red, green, blue, transparent);
    MultiboardReleaseItem(m);
   }
    
   public void SetDecoration(int row, int column, string value, string ico) {
    m = MultiboardGetItem(M, row, column);
    if (value != "" && value != null) {
     MultiboardSetItemValue(m, value);
    }
    if (ico != "" && ico != null) {
     MultiboardSetItemIcon(m, ico);
    }
    MultiboardReleaseItem(m);
   }
    
   public void SetStyle(int row, int column, bool value, bool ico) {
    m = MultiboardGetItem(M, row, column);
    MultiboardSetItemStyle(m, value, ico);
    MultiboardReleaseItem(m);
   }
    
   public void SetTitleColor(int red, int green, int blue, int transparent) {
    MultiboardSetTitleTextColor(M, red, green, blue, transparent);
   }
    
   public void SetWidth(int row, int column, float width) {
    m = MultiboardGetItem(M, row, column);
    MultiboardSetItemWidth(m, width / 100.);
    MultiboardReleaseItem(m);
   }
/*
   Конструктор,
    деструктор
        */
   public static thistype create(int rows, int columns) {
    thistype self = thistype.allocate();
    self.ROWS = rows;
    self.COLUMNS = columns;
     
    self.M = CreateMultiboard();
    MultiboardSetColumnCount(self.M, columns);
    MultiboardSetRowCount(self.M, rows);
     
    return self;
   }
    
   public void destroy() {
    MultiboardDisplay(M, false);
    DestroyMultiboard(M);
    this.deallocate();
   }

  }  
}[/code]


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Ty3uKДата: Понедельник, 14 Января 2013, 14:36:54 | Сообщение # 3
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:

Библиотека Dummy


[code=jass]/**************************************    
*    
*   Dummy Class
*       v1.0    
*   By Max Karelov aka Ty3uK    
*    
*   -Класс универсального дамми.
*    
*   Требуется:    
*   -------------    
*    
*        Jass New Gen Pack 5d с последними AdicHelper и JassHelper    
*            Ссылка на загрузку:    
*                 http://www.mediafire.com/?aqfwy8wmrcuf67k    
*
*        Модель универсального дамми
*            Ссылка на загрузку:
*                http://www.mediafire.com/?635lbbloxjbco24
*
*        Создать дамми с загруженной моделью
*        Указать в значение дефайна dummy_ID ИД вашего универсального дамми.
*    
*   API:    
*   ----    
*    
*        Методы:
*            destroy() - уничтожает экземпляр класса.
*            destroy(time) - уничтожает экзепляр класса через заданное время.
*            create(model, owner, x, y, face) - создает экземпляр класса.
*            Order(order) - заставляет дамми совершить действие без цели.
*            Order(order, target) - заставляет дамми совершить действие на цель.
*            Order(order, x, y) - заставляет дамми совершить действие в точку.
*           
*    
*        Свойства:
*             LastOrder - последнее совершенное действие.
*
*    
**************************************/    
library Dummy {
       #include "cj_types_priv.j";
       #define <trigger gg_trg_Dummy = null>;
          
       #define {
           dummy_ID = 'e000';
          
           Order(order) = immediateOrder(order);
           Order(order, target) = targetOrder(order, target);
           Order(order, x, y) = pointOrder(order, x, y);
           destroy(time) = destroyTimed(time);
       }
          
       struct Dummy {
           private unit dummy;
           private effect model;
           private int lastOrder = 0;
              
           public int operator LastOrder() {
               return lastOrder;
           }
              
           public void immediateOrder(int order) {
               IssueImmediateOrderById(dummy, order);
               lastOrder = order;
           }
              
           public void targetOrder(int order, widget target) {
               IssueTargetOrderById(dummy, order, target);
               lastOrder = order;
           }
              
           public void pointOrder(int order, float x, float y) {
               IssuePointOrderById(dummy, order, x, y);
               lastOrder = order;
           }
              
           public static thistype create(string model, player owner, float x, float y, float face) {
               thistype self = thistype.allocate();
               self.dummy = CreateUnit(owner, dummy_ID, x, y, face);
               self.model = AddSpecialEffectTarget(model, self.dummy, "chest");
               return self;
           }
              
           public void des##troy() {
               DestroyEffect(model);
               RemoveUnit(dummy);
               .deallocate();
           }
              
           public void destroyTimed(float time) {
               timer t = CreateTimer();
               TimerStart(t, I2R(this), false, null);
               PauseTimer(t);
               TimerStart(t, time, false, lambda void() {
                   timer t = GetExpiredTimer();
                   Dummy self = R2I(TimerGetRemaining(t)+.5);
                   self.des##troy();
                   DestroyTimer(t);
                   t = null;
               });
               t = null;
           }
       }
}[/code]
Внимательно читаем шапку библиотеки - важно скачать модель универсального дамми.


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Ty3uKДата: Четверг, 11 Апреля 2013, 18:43:41 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:

Библиотека Players


[code=jass]/**************************************  
*  
*   Player Class
*       v1.0  
*   By Max Karelov aka Ty3uK  
*  
*   -Класс игроков.
*  
*   Требуется:  
*   -------------  
*  
*        Jass New Gen Pack 5d с последними AdicHelper и JassHelper  
*            Ссылка на загрузку:  
*                 http://www.mediafire.com/?aqfwy8wmrcuf67k  
*  
*   API:  
*   ----  
*  
*        Свойства:
*            Player[index] - возвращает игрока с указанным номером. Нумерация начинается с 0.
*  
**************************************/  
library Players {
     player Player[16];
      
     callback onInit() {
         #for i(0, 15)
             Player[i] = Pla##yer(i);
         #endfor
     }
}[/code]


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Четверг, 11 Апреля 2013, 19:43:37 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Давненько пилил такое на дефайнах с инъекцией в main. Даже темка осталась (смотреть последний пост).

 

Ty3uKДата: Четверг, 11 Апреля 2013, 19:56:40 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, а у меня в майне не заработали. Вот так вот.

Добавлено (11 Апреля 2013, 19:56:40)
---------------------------------------------
Теперь понял почему :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Четверг, 11 Апреля 2013, 19:57:12 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Последний пост точно прочитал? :)

Добавлено (11 Апреля 2013, 19:57:12)
---------------------------------------------
Цитата (Ty3uK)
Теперь понял почему
Ясно, теперь прочитал. :)


 

Ty3uKДата: Четверг, 11 Апреля 2013, 19:57:42 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Но меня мой вариант вполне устраивает. :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Четверг, 11 Апреля 2013, 19:59:25 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Дело в том, что у меня на руках была карта, больше чем наполовину сделанная на GUI. И мне надо было заменить сразу везде, так что дефайны подошли как нельзя лучше.

 

Ty3uKДата: Четверг, 11 Апреля 2013, 19:59:58 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, да, я это понял.

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

BorodachДата: Суббота, 13 Апреля 2013, 10:00:56 | Сообщение # 11
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Ty3uK, Полезная тема. Только надо больше библиотек на все случаи жизни :)

Karamba
 

Ty3uKДата: Суббота, 13 Апреля 2013, 13:35:12 | Сообщение # 12
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Borodach, пишутся пропорционально нуждам. :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ThehakkerДата: Воскресенье, 22 Июня 2014, 02:07:03 | Сообщение # 13
1 уровень
Группа: Пользователи
Сообщений: 10
Награды: 0
Репутация: 0
Блокировки:
Ехухуу класс
 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » Уголок библиотек (Библиотеки проекта Simple Shooter)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz