Сейчас 02:27:30 Суббота, 2 июля, 2022 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 9 из 10
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
  • 10
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Jass: Полезные функции
[ВАЖНО] Jass: Полезные функции
Ty3uKДата: Воскресенье, 03 Июня 2012, 16:44:57 | Сообщение # 201
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
тогда ты вынужден юзать жнгп

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

newbee-beeДата: Воскресенье, 03 Июня 2012, 18:02:31 | Сообщение # 202
5 уровень
Группа: Проверенные
Сообщений: 101
Награды: 0
Репутация: 12
Блокировки:
Quote (Ty3uK)
тогда ты вынужден юзать жнгп

Он есть, итак его юзаю, просто хотел узнать есть ли варианты как использовать функции без нестандартного кода.
В принципе вроде удовлетворен ответом
 

DreiiДата: Воскресенье, 03 Июня 2012, 18:57:34 | Сообщение # 203
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Тузик иди готовься к матану=)

 

Ty3uKДата: Воскресенье, 03 Июня 2012, 19:09:54 | Сообщение # 204
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
чуствую математику я напишу ахово
хотя у меня на нее есть "белый билет" (:


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

SirNikolasДата: Среда, 06 Июня 2012, 09:52:57 | Сообщение # 205
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Немного оптимизации.
Code
define {
    PLAYER_COLOR_RED = null
    PLAYER_GAME_RESULT_VICTORY = null
    ALLIANCE_PASSIVE = null
    VERSION_REIGN_OF_CHAOS = null
    ATTACK_TYPE_NORMAL = null
    DAMAGE_TYPE_UNKNOWN = null
    WEAPON_TYPE_WHOKNOWS = null
    PATHING_TYPE_ANY = null
    MAP_CONTROL_USER = null
    MAP_PLACEMENT_RANDOM = null
    MAP_LOC_PRIO_LOW = null
    MAP_DENSITY_NONE = null
    MAP_DIFFICULTY_EASY = null
    MAP_SPEED_SLOWEST = null
    PLAYER_SLOT_STATE_EMPTY = null
    SOUND_VOLUMEGROUP_UNITMOVEMENT = null
    GAME_STATE_DIVINE_INTERVENTION = null
    PLAYER_STATE_GAME_RESULT = null
    UNIT_STATE_LIFE = null
    AI_DIFFICULTY_NEWBIE = null
    PLAYER_SCORE_UNITS_TRAINED = null
    EVENT_GAME_VICTORY = null
    LESS_THAN = null
    UNIT_TYPE_HERO = null
    ITEM_TYPE_PERMANENT = null
    CAMERA_FIELD_TARGET_DISTANCE = null
    BLEND_MODE_NONE = null
    BLEND_MODE_DONT_CARE = null
    RARITY_FREQUENT = null
    TEXMAP_FLAG_NONE = null
    EFFECT_TYPE_EFFECT = null
    SOUND_TYPE_EFFECT = null
}
Составитель списка - Bribe.


 

Ty3uKДата: Среда, 06 Июня 2012, 15:39:33 | Сообщение # 206
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
и что это дает?

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

SirNikolasДата: Среда, 06 Июня 2012, 17:01:27 | Сообщение # 207
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Замену констант нулем, небольшой выигрыш в производительности.

 

Ty3uKДата: Среда, 06 Июня 2012, 17:04:17 | Сообщение # 208
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
серьезно? :0
а из-за чего не знаешь?


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

SirNikolasДата: Четверг, 21 Июня 2012, 14:12:09 | Сообщение # 209
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Из-за отсутствия обращения к оперативной памяти.

Небольшая системка, позволяющая кое-где не юзать периодики.
Code
library_once Time {
    private constant timer T = CreateTimer();

    define {
        Time_Mark() = Time_##Mark();
        Time_Mark(r) = (Time_Mark() - (r));
    }

    public real Mark() {
        return TimerGetElapsed(T);
    }

    callback onInit() {
        TimerStart(T, 9000., true, null);
    }
}


 

Ty3uKДата: Четверг, 21 Июня 2012, 14:17:53 | Сообщение # 210
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, можно поинтересоваться, а для чего это?

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

SirNikolasДата: Четверг, 21 Июня 2012, 15:06:14 | Сообщение # 211
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Позволяет определить время, прошедшее между двумя событиями.

 

bubliqДата: Вторник, 10 Июля 2012, 00:49:58 | Сообщение # 212
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
Абсолютно бесполезная библиотека, также как и абсолютное бесполезный выигрыш по времени при обращение к КОНСТАНТАМ. Если значение Null - то идёт обращение к 0 ячейке памяти пустой, в любом случае. Константа же, задаёт обращение к ячейке памяти например 0x99999. В общем, тупите братец.
 

Ty3uKДата: Вторник, 10 Июля 2012, 08:13:15 | Сообщение # 213
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
на хайве замеры по скорости делают, это не пустые буквы

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

bubliqДата: Четверг, 12 Июля 2012, 18:06:04 | Сообщение # 214
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
Quote (Ty3uK)
на хайве замеры по скорости делают, это не пустые буквы

Это пустые буквы. Наносекунду, которую ты получишь, никто не увидит. Даже играя в доту ты не увидешь там конструкций по типу
if UnitAddAbility then
UnitRemoveAbility
endif
Оно быстрее надёжнее, но ОНО не НУЖНО, потому что полученная скорость от этих скриптов - минимальная. Посмотри тот же код TcX - который обрабатывается множество раз.

В общем что я тут распинаюсь, вам нужно псевдооптимизация которая не даст никакого видимого эффекта даже на слабейших машинах ;)
 

Ty3uKДата: Пятница, 13 Июля 2012, 15:16:46 | Сообщение # 215
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
тсх написан грамотно, не надо
да и пиши как хочешь, я не мешаю


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

FaionДата: Суббота, 14 Июля 2012, 22:37:25 | Сообщение # 216
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
bubliq, я смотрю у вас богатый опыт разработки, линк на проект плз в студию

Добавлено (14 Июль 2012, 22:37:25)
---------------------------------------------

Quote (Ty3uK)
серьезно? :0
а из-за чего не знаешь?

у флоатов запятая бтв решает целый такт :D


О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL


Сообщение отредактировал Faion - Суббота, 14 Июля 2012, 22:35:52
 

Ty3uKДата: Суббота, 14 Июля 2012, 23:21:44 | Сообщение # 217
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
lol

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

FaionДата: Понедельник, 16 Июля 2012, 14:24:49 | Сообщение # 218
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
В общем, для хомячков и чайников проясню на счет этого:
Quote (bubliq)
if UnitAddAbility then
UnitRemoveAbility
endif
Оно быстрее надёжнее, но ОНО не НУЖНО, потому что полученная скорость от этих скриптов - минимальная. Посмотри тот же код TcX - который обрабатывается множество раз.


Думаю многие знают что ТСХ достаточно старый проект, который разрабатывался до 1.24. Так вот, раньше попытка удалению абилки которой нету у юнита приводило к фаталу. Это касается и многих других моментов. Так же подчеркну, что есть ситуации которые требуют проверок, в противном случае будут существенные потери в производительности(Те кто работал достаточно с МБ думаю сталкивались с подобным моментом).


О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

bubliqДата: Понедельник, 30 Июля 2012, 17:18:11 | Сообщение # 219
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
Quote (Faion)
В общем, для хомячков и чайников проясню на счет этого:
Quote (bubliq)
if UnitAddAbility then
UnitRemoveAbility
endif
Оно быстрее надёжнее, но ОНО не НУЖНО, потому что полученная скорость от этих скриптов - минимальная. Посмотри тот же код TcX - который обрабатывается множество раз.

Думаю многие знают что ТСХ достаточно старый проект, который разрабатывался до 1.24. Так вот, раньше попытка удалению абилки которой нету у юнита приводило к фаталу. Это касается и многих других моментов. Так же подчеркну, что есть ситуации которые требуют проверок, в противном случае будут существенные потери в производительности(Те кто работал достаточно с МБ думаю сталкивались с подобным моментом).


дада, фаталы, ага. Можно хоть десять несуществующих абилок было удалять, кому ты тут несёшь.

Ну и по фактам. Мне не нужно, давать ссылки на проекты. Мне достаточно знать что вы страдает хернёй.

1. Оптимизация ваша не даёт вообще никакого выигрыша в FPS даже при 100 тактах в секунду.
2. Чтобы в карте не лагало, нужно просто грамотно запрелоадить нужные тебе данные. Не более.
3. Оптимизация многих моментов достигается достаточно умным распределением загрузки. Например динамичным подгружением героев. (что в принципе реализовано в доте, что позволяет карте на сильных машинах грузиться не более 3 секунд)

итд. вот в этом направлении должна идти оптимизация, а не попытки с экономить наносекунды, которые ВООБЩЕ погоды не делают. Делать нужно на конечного пользователя, а не для самоудовлетворения.

что в принципе и отличает качество наработок хайва и wc3c.net где в принципе (во втором) не смотрят на мелкие аспекты по типу давайте и тут выиграем милисекунду, и вполне нормой считается там абуз того Table (что просто надстройка над хэштаблицей для удобства кодинга)
 

Ty3uKДата: Воскресенье, 19 Августа 2012, 21:32:02 | Сообщение # 220
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
на хайве и видел такие трюки с иф зен для абилок dunno

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

bubliqДата: Понедельник, 20 Августа 2012, 11:01:01 | Сообщение # 221
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
Quote (Ty3uK)
на хайве и видел такие трюки с иф зен для абилок

На самом деле, открою тайну, OrderIssue - тоже через if then нужно юзать, недавно столкнулся с таким неприятным багом, что дамми юнит (невидимка создаваемый на секунду), при попытке атаки по врагу, не просто не атаковал его когда тот неуязвимый, но и перекидывался на ближайшего соседа, что просто ломало всю концепцию спелла.

Выход: заюзал через if, при возвращении false - уничтожал Dummy очищал стэк.
 

HexingДата: Вторник, 28 Августа 2012, 15:29:59 | Сообщение # 222
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (SirNikolas)
Немного оптимизации.
Code
define {
    PLAYER_COLOR_RED = null
    PLAYER_GAME_RESULT_VICTORY = null
    ALLIANCE_PASSIVE = null
    VERSION_REIGN_OF_CHAOS = null
    ATTACK_TYPE_NORMAL = null
    DAMAGE_TYPE_UNKNOWN = null
    WEAPON_TYPE_WHOKNOWS = null
    PATHING_TYPE_ANY = null
    MAP_CONTROL_USER = null
    MAP_PLACEMENT_RANDOM = null
    MAP_LOC_PRIO_LOW = null
    MAP_DENSITY_NONE = null
    MAP_DIFFICULTY_EASY = null
    MAP_SPEED_SLOWEST = null
    PLAYER_SLOT_STATE_EMPTY = null
    SOUND_VOLUMEGROUP_UNITMOVEMENT = null
    GAME_STATE_DIVINE_INTERVENTION = null
    PLAYER_STATE_GAME_RESULT = null
    UNIT_STATE_LIFE = null
    AI_DIFFICULTY_NEWBIE = null
    PLAYER_SCORE_UNITS_TRAINED = null
    EVENT_GAME_VICTORY = null
    LESS_THAN = null
    UNIT_TYPE_HERO = null
    ITEM_TYPE_PERMANENT = null
    CAMERA_FIELD_TARGET_DISTANCE = null
    BLEND_MODE_NONE = null
    BLEND_MODE_DONT_CARE = null
    RARITY_FREQUENT = null
    TEXMAP_FLAG_NONE = null
    EFFECT_TYPE_EFFECT = null
    SOUND_TYPE_EFFECT = null
}
Составитель списка - Bribe.

немного продолжил, до конца доделать - сил нет


 

SirNikolasДата: Среда, 29 Августа 2012, 07:13:35 | Сообщение # 223
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Hexing, я выложил те константы, которые можно безопасно заменять на null. Если ты вместо PLAYER_COLOR_BLUE напишешь null, это будет интерпретировано как PLAYER_COLOR_RED.

 

HexingДата: Среда, 29 Августа 2012, 13:05:23 | Сообщение # 224
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (SirNikolas)
Hexing, я выложил те константы, которые можно безопасно заменять на null. Если ты вместо PLAYER_COLOR_BLUE напишешь null, это будет интерпретировано как PLAYER_COLOR_RED.

а это где-то используется? в смысле лично я никогда не использую playercolor, так какая разница?


 

SirNikolasДата: Среда, 29 Августа 2012, 13:33:38 | Сообщение # 225
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Я про то, что с твоими дефайнами код приобретает совсем другой смысл. Это как
Code
define true = (GetRandomInt(0, 1) == 1)
- компилятор проглотит, а исполняться будет непонятно как.


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Jass: Полезные функции
  • Страница 9 из 10
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
  • 10
  • »
Поиск:

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