 |
|
 |
|
[ВАЖНО] Jass: Полезные функции |
newbee-bee | Дата: Суббота, 02 Июнь 2012, 21:17:06 | Сообщение # 201 |
5 уровень
Группа: Проверенные
Сообщений: 101
Награды: 0
Репутация: 12
Блокировки: 
| Понубить разрешите? Разве собственные функции можно вызывать только если они в коде карте? Т.е. если они просто в триггере без событий, то их нельзя вызывать?
|
|
|
| |
Ty3uK | Дата: Суббота, 02 Июнь 2012, 21:23:36 | Сообщение # 202 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| если триггер выше всех, то можно можно еще либу сделать для таких функций
|
|
|
| |
newbee-bee | Дата: Суббота, 02 Июнь 2012, 21:41:12 | Сообщение # 203 |
5 уровень
Группа: Проверенные
Сообщений: 101
Награды: 0
Репутация: 12
Блокировки: 
| Quote (Ty3uK) если триггер выше всех, то можно Был выше всех, но при попытке вызова функции выдавал, что не объявленная функцияQuote (Ty3uK) можно еще либу сделать для таких функций А вот тут поподробнее
|
|
|
| |
Ty3uK | Дата: Суббота, 02 Июнь 2012, 22:33:46 | Сообщение # 204 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| vjass Code library Funcs function test takes nothing returns nothing endfunction endlibrary либа вставляется выше всего кода, сразу после глобалокДобавлено (02 Июнь 2012, 22:33:46) --------------------------------------------- но для этого нужен жнгп да и чем тебя не устраивает нестандартный код карты?
|
|
|
| |
newbee-bee | Дата: Воскресенье, 03 Июнь 2012, 11:46:36 | Сообщение # 205 |
5 уровень
Группа: Проверенные
Сообщений: 101
Награды: 0
Репутация: 12
Блокировки: 
| Quote (Ty3uK) да и чем тебя не устраивает нестандартный код карты? Просто если этих функций много, то это ведь громоздко, много проще использовать триггеры, которые содержат только функции. Имхо, конечно
|
|
|
| |
Ty3uK | Дата: Воскресенье, 03 Июнь 2012, 16:44:57 | Сообщение # 206 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| тогда ты вынужден юзать жнгп
|
|
|
| |
newbee-bee | Дата: Воскресенье, 03 Июнь 2012, 18:02:31 | Сообщение # 207 |
5 уровень
Группа: Проверенные
Сообщений: 101
Награды: 0
Репутация: 12
Блокировки: 
| Quote (Ty3uK) тогда ты вынужден юзать жнгп Он есть, итак его юзаю, просто хотел узнать есть ли варианты как использовать функции без нестандартного кода. В принципе вроде удовлетворен ответом
|
|
|
| |
Dreii | Дата: Воскресенье, 03 Июнь 2012, 18:57:34 | Сообщение # 208 |
10 уровень
Группа: Проверенные
Сообщений: 4992
Награды: 0
Репутация: 603
Блокировки: 
| Тузик иди готовься к матану=)
|
|
|
| |
Ty3uK | Дата: Воскресенье, 03 Июнь 2012, 19:09:54 | Сообщение # 209 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| чуствую математику я напишу ахово хотя у меня на нее есть "белый билет" (:
|
|
|
| |
SirNikolas | Дата: Среда, 06 Июнь 2012, 09:52:57 | Сообщение # 210 |
Группа: Модераторы
Сообщений: 6557
Награды: 1
Репутация: 1784
Блокировки: 
| Немного оптимизации.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 | Сообщение # 211 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| и что это дает?
|
|
|
| |
SirNikolas | Дата: Среда, 06 Июнь 2012, 17:01:27 | Сообщение # 212 |
Группа: Модераторы
Сообщений: 6557
Награды: 1
Репутация: 1784
Блокировки: 
| Замену констант нулем, небольшой выигрыш в производительности.
|
|
|
| |
Ty3uK | Дата: Среда, 06 Июнь 2012, 17:04:17 | Сообщение # 213 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| серьезно? :0 а из-за чего не знаешь?
|
|
|
| |
SirNikolas | Дата: Четверг, 21 Июнь 2012, 14:12:09 | Сообщение # 214 |
Группа: Модераторы
Сообщений: 6557
Награды: 1
Репутация: 1784
Блокировки: 
| Из-за отсутствия обращения к оперативной памяти.
Небольшая системка, позволяющая кое-где не юзать периодики.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 | Сообщение # 215 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| SirNikolas, можно поинтересоваться, а для чего это?
|
|
|
| |
SirNikolas | Дата: Четверг, 21 Июнь 2012, 15:06:14 | Сообщение # 216 |
Группа: Модераторы
Сообщений: 6557
Награды: 1
Репутация: 1784
Блокировки: 
| Позволяет определить время, прошедшее между двумя событиями.
|
|
|
| |
bubliq | Дата: Вторник, 10 Июль 2012, 00:49:58 | Сообщение # 217 |
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки: 
| Абсолютно бесполезная библиотека, также как и абсолютное бесполезный выигрыш по времени при обращение к КОНСТАНТАМ. Если значение Null - то идёт обращение к 0 ячейке памяти пустой, в любом случае. Константа же, задаёт обращение к ячейке памяти например 0x99999. В общем, тупите братец.
|
|
|
| |
Ty3uK | Дата: Вторник, 10 Июль 2012, 08:13:15 | Сообщение # 218 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| на хайве замеры по скорости делают, это не пустые буквы
|
|
|
| |
bubliq | Дата: Четверг, 12 Июль 2012, 18:06:04 | Сообщение # 219 |
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки: 
| Quote (Ty3uK) на хайве замеры по скорости делают, это не пустые буквы Это пустые буквы. Наносекунду, которую ты получишь, никто не увидит. Даже играя в доту ты не увидешь там конструкций по типу if UnitAddAbility then UnitRemoveAbility endif Оно быстрее надёжнее, но ОНО не НУЖНО, потому что полученная скорость от этих скриптов - минимальная. Посмотри тот же код TcX - который обрабатывается множество раз.
В общем что я тут распинаюсь, вам нужно псевдооптимизация которая не даст никакого видимого эффекта даже на слабейших машинах
|
|
|
| |
Ty3uK | Дата: Пятница, 13 Июль 2012, 15:16:46 | Сообщение # 220 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| тсх написан грамотно, не надо да и пиши как хочешь, я не мешаю
|
|
|
| |
Faion | Дата: Суббота, 14 Июль 2012, 22:37:25 | Сообщение # 221 |
10 уровень
Группа: Проверенные
Сообщений: 1895
Награды: 0
Репутация: 430
Блокировки: 
| bubliq, я смотрю у вас богатый опыт разработки, линк на проект плз в студию Добавлено (14 Июль 2012, 22:37:25) ---------------------------------------------
Quote (Ty3uK) серьезно? :0 а из-за чего не знаешь? у флоатов запятая бтв решает целый такт
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
Сообщение отредактировал Faion - Суббота, 14 Июль 2012, 22:35:52 |
|
|
| |
Ty3uK | Дата: Суббота, 14 Июль 2012, 23:21:44 | Сообщение # 222 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
|
|
|
|
| |
Faion | Дата: Понедельник, 16 Июль 2012, 14:24:49 | Сообщение # 223 |
10 уровень
Группа: Проверенные
Сообщений: 1895
Награды: 0
Репутация: 430
Блокировки: 
| В общем, для хомячков и чайников проясню на счет этого: Quote (bubliq) if UnitAddAbility then UnitRemoveAbility endif Оно быстрее надёжнее, но ОНО не НУЖНО, потому что полученная скорость от этих скриптов - минимальная. Посмотри тот же код TcX - который обрабатывается множество раз.
Думаю многие знают что ТСХ достаточно старый проект, который разрабатывался до 1.24. Так вот, раньше попытка удалению абилки которой нету у юнита приводило к фаталу. Это касается и многих других моментов. Так же подчеркну, что есть ситуации которые требуют проверок, в противном случае будут существенные потери в производительности(Те кто работал достаточно с МБ думаю сталкивались с подобным моментом).
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
|
|
|
| |
bubliq | Дата: Понедельник, 30 Июль 2012, 17:18:11 | Сообщение # 224 |
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 | Сообщение # 225 |
Группа: Ветераны
Сообщений: 6175
Награды: 2
Репутация: 1617
Блокировки: 
| на хайве и видел такие трюки с иф зен для абилок
|
|
|
|
|
|
 |
|
 |
|
|