[Заказ] Улучшить (оптимизировать) код
|
|
MindSmiLe | Дата: Четверг, 05 Января 2012, 16:52:15 | Сообщение # 1 |
1 уровень
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Блокировки:
| Это код переведенный с GUI please улутшите его или оптимизируйте или как там) чтоб без BJ
Quote function Trig_Trigger_Conditions takes nothing returns boolean return GetInventoryIndexOfItemTypeBJ(GetTriggerUnit(), 'bspd') > 0 endfunction
function Trig_Trigger_Func004Func001C takes nothing returns boolean if ( not ( GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(), udg_ItemLoop[1])) == 'bspd' ) ) then return false endif return true endfunction
function Trig_Trigger_Func005C takes nothing returns boolean if ( not ( udg_Owned[1] > 1 ) ) then return false endif if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), 'bspd') == true ) ) then return false endif return true endfunction
function Trig_Trigger_Actions takes nothing returns nothing set udg_Owned[1] = 0 set udg_Removed[1] = 0 set udg_ItemLoop[1] = 1 loop exitwhen udg_ItemLoop[1] > 6 if ( Trig_Trigger_Func004Func001C() ) then set udg_Owned[1] = ( udg_Owned[1] + 1 ) else call DoNothing( ) endif set udg_ItemLoop[1] = udg_ItemLoop[1] + 1 endloop if ( Trig_Trigger_Func005C() ) then call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'bspd') ) call RemoveItem( GetItemOfTypeFromUnitBJ(GetTriggerUnit(), 'bspd') ) call UnitAddItemByIdSwapped( 'brac', GetTriggerUnit() ) call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Items\\AIsm\\AIsmTarget.mdl", GetTriggerUnit(), "origin")) else call DoNothing( ) endif endfunction
//=========================================================================== function InitTrig_Trigger takes nothing returns nothing local trigger t = CreateTrigger( ) local integer i set i = 0 loop call TriggerRegisterPlayerUnitEvent( t, Player(i), EVENT_PLAYER_UNIT_PICKUP_ITEM, null ) set i = i + 1 exitwhen i == 16 endloop call TriggerAddCondition( t, Condition( function Trig_Trigger_Conditions ) ) call TriggerAddAction( t, function Trig_Trigger_Actions ) endfunction
|
|
|
|
Ty3uK | Дата: Четверг, 05 Января 2012, 16:56:58 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Раскрывать бж эвента- новая мода? Зачем? О.о
|
|
|
|
lawson | Дата: Четверг, 05 Января 2012, 17:19:16 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) Раскрывать бж эвента- новая мода? Зачем? О.о Навязанная кем? Не тобой ли и дуосоподобным!?
Добавлено (05 Январь 2012, 17:19:16) --------------------------------------------- MindSmiLe, В общем исправлять очень много, может кто-то займется твоим бредо-кодом.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 05 Января 2012, 17:20:29 |
|
|
|
Ty3uK | Дата: Четверг, 05 Января 2012, 17:38:48 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Лавс, цитату на пост с раскрытием бж эвента. Иначе помолчи, ок?
|
|
|
|
SirNikolas | Дата: Четверг, 05 Января 2012, 17:39:19 | Сообщение # 5 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (lawson) В общем, исправлять очень много, может, кто-то займется твоим бредо-кодом. Не так уж и много. Больше напрягает то, что автор запостил это в теге quote, а не code - из-за отсутствия пробелов логику понять становится сложновато.Добавлено (05 Январь 2012, 17:39:19) --------------------------------------------- Ладно, сейчас займусь.
|
|
|
|
lawson | Дата: Четверг, 05 Января 2012, 18:30:40 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SirNikolas, надо бы только логическую последовательно сделать болле "логичной" так как код читать трудно, а таксогласен не так уже и много, наверное просто первое впечатление было обманчиво. Добавлено (05 Январь 2012, 18:30:40) ---------------------------------------------
Quote (Ty3uK) Лавс, цитату на пост с раскрытием бж эвента. Иначе помолчи, ок? Да ладно я пошутил, а ты воспринял всерьез. Часто вижу у начинающий жассеров которые стремятся все подряд оптимизировать без исключения, даже строки и интегеры.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 05 Января 2012, 18:28:56 |
|
|
|
Ty3uK | Дата: Четверг, 05 Января 2012, 19:18:49 | Сообщение # 7 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Еах, тут согласен, я тоже таким был. И, да, я тоже раньше раскрывал бж эвента
|
|
|
|
SirNikolas | Дата: Пятница, 06 Января 2012, 09:27:24 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code function Trig_Trigger_Conditions takes nothing returns boolean return GetItemTypeId(GetManipulatedItem()) == 'bspd' endfunction
function Trig_Trigger_Actions takes nothing returns nothing local unit u = GetTriggerUnit() local item temp = null local item it local integer i = 0 loop set it = UnitItemInSlot(u, i) if GetItemTypeId(it) == 'bspd' then if temp != null then call RemoveItem(temp) call RemoveItem(it) call UnitAddItemById(u, 'brac') call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Items\\AIsm\\AIsmTarget.mdl", u, "origin")) exitwhen true endif set temp = it endif exitwhen i == 5 set i = i + 1 endloop set u = null set temp = null set it = null endfunction
//=========================================================================== function InitTrig_Trigger takes nothing returns nothing local trigger trig = CreateTrigger() local integer i = 0 loop call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_PICKUP_ITEM, null) exitwhen i == 15 set i = i + 1 endloop call TriggerAddCondition(trig, Condition(function Trig_Trigger_Conditions)) call TriggerAddAction(trig, function Trig_Trigger_Actions) set trig = null call Preload("Abilities\\Spells\\Items\\AIsm\\AIsmTarget.mdl") endfunction
|
|
|
|
MindSmiLe | Дата: Пятница, 06 Января 2012, 11:32:21 | Сообщение # 9 |
1 уровень
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Блокировки:
| Code Не так уж и много. Больше напрягает то, что автор запостил это в теге quote, а не code - из-за отсутствия пробелов логику понять становится сложновато.
я первый раз на сайте не знал
Code Еах, тут согласен, я тоже таким был. И, да, я тоже раньше раскрывал бж эвента
что такое эвент?
Спасибо SirNikolas очень помог
|
|
|
|
Ty3uK | Дата: Пятница, 06 Января 2012, 11:41:42 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Эвент- событие
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:24:17 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SirNikolas) call Preload("Abilities\\Spells\\Items\\AIsm\\AIsmTarget.mdl") Ник а прелоад сильно снимает нагрузку?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 06 Января 2012, 14:45:52 |
|
|
|
Ty3uK | Дата: Пятница, 06 Января 2012, 14:29:42 | Сообщение # 12 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Облегчает первое создание эффекта. Со звуками помогает решить траблу с отсутствием самого звука при создании (воспроизведение происходит при повторном действии)
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:33:47 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) Облегчает первое создание эффекта Эт я знаю поэтому спрашиваю как сильно оно помагает. Я думаю будет полезней его использовать когда надо загрузить кучу эффектов в одном триггере.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Пятница, 06 Января 2012, 14:35:21 | Сообщение # 14 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| При инициализации подгружаешь часто используемые эффекты и все отлично
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:38:41 | Сообщение # 15 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) При инициализации подгружаешь часто используемые эффекты и все отлично Мда было бы хорошо если бы можно было подгрузить юнитоа, а то когда создаешь героя для опр. игрока начинает подглючивать(ну изза присваивания героя игроку и все такое), хотелось бы решить проблему с торможением.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Пятница, 06 Января 2012, 14:47:01 | Сообщение # 16 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Это уже начинка жасса
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:48:49 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) Это уже начинка жасса Решается вскрытием движка.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Пятница, 06 Января 2012, 14:51:33 | Сообщение # 18 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ну это понятно. Но я не думаю, что найдутся энтузиасты для взлома движка из-за такой мелочи
|
|
|
|
SirNikolas | Дата: Пятница, 06 Января 2012, 14:54:27 | Сообщение # 19 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (lawson) Решается вскрытием движка. Решается изначальной постановкой героя на карту и удалением при ините.
|
|
|
|
FatalBlade | Дата: Пятница, 06 Января 2012, 14:57:41 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| А почему не нужно раскрыть БЖ эвента? Он ведь может срабатывать много раз в игре?
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 15:02:25 | Сообщение # 21 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SirNikolas) Решается изначальной постановкой героя на карту и удалением при ините. Хмм Не пробовал, поможет?
Добавлено (06 Январь 2012, 15:02:25) --------------------------------------------- Quote (FatalBlade) А почему не нужно раскрыть БЖ эвента? А смысл его раскрывать? Тебе не говорят "не нужно" хочешь можешь раскрывать если тебе нравится лишний код в триггере.Quote (FatalBlade) Он ведь может срабатывать много раз в игре? НЕ понял.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 06 Января 2012, 15:04:16 |
|
|
|
SirNikolas | Дата: Пятница, 06 Января 2012, 15:04:32 | Сообщение # 22 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (lawson) Ник, а прелоад сильно снимает нагрузку? В зависимости от компьютера. На своем я считаю нужным его использовать. FatalBlade, как раз наоборот. Оно срабатывает один раз, поэтому в раскрытии не особенно нуждается. Никто же не раскрывает InitBlizzard, правильно?Добавлено (06 Январь 2012, 15:04:32) ---------------------------------------------
Quote (lawson) Не пробовал, поможет? Чисто по логике, должно.
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 15:09:52 | Сообщение # 23 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SirNikolas, Слушай я сейчас посмотрел на прелоадер в function list там они всякие разные и start и finish, а что делает тогда вообще preloder? И еще маленький вопрос: с предметами также делать? Когда я покупаю предмет в первый раз меня тоже глючит, а когда боты покупают вообще ни чего делать не возможно.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 06 Января 2012, 15:14:02 |
|
|
|
Ty3uK | Дата: Пятница, 06 Января 2012, 15:13:25 | Сообщение # 24 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Прелоад, кстати, иногда дает баги. Дуос придет и расскажет, как у него в игре улетели стандартные эффекты Добавлено (06 Январь 2012, 15:13:25) --------------------------------------------- Эвенты (инитфунка) срабатывают один раз, ведь по-сути он указывает, какой триггер должен обрабатывать это событие
|
|
|
|
SirNikolas | Дата: Пятница, 06 Января 2012, 15:40:18 | Сообщение # 25 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code native Preload takes string filename returns nothing//Подгружает в память указанную модель/текстуру/звук. native PreloadEnd takes real timeout returns nothing//Не знаю
//Не знаю native PreloadStart takes nothing returns nothing native PreloadRefresh takes nothing returns nothing native PreloadEndEx takes nothing returns nothing
//Функции для генерации списков подгрузки. native PreloadGenClear takes nothing returns nothing//Очищает буфер записи native PreloadGenStart takes nothing returns nothing//Начинает запись в буфер. Функция Preload в данном режиме не грузит файлы в память, а пишет в буфер. native PreloadGenEnd takes string filename returns nothing//Выводит список из буфера в указанный файл native Preloader takes string filename returns nothing//Запускает функцияю PreloadFiles в указанном файле Например:Code call PreloadGenClear() call PreloadGenStart() call Preload("abc") call Preload("def") call PreloadGenEnd("preload\\script1.j") Создает в директории игры папку preload, а в ней - файл script1.j, содержащий следующий код:Code function PreloadFiles takes nothing returns nothing call Preload( "abc" ) call Preload( "def" ) call PreloadEnd( 0.1 ) endfunction На этом работает система под названием "Data manager":Code call PreloadGenClear() call PreloadGenStart() call Preload("\")\ncall SetPlayerName(Player(15), \"Любая строка\")//") call Preload("\")\nendfunction\nfunction recyclebin takes nothing returns nothing//") call PreloadGenEnd("file.txt") Code function PreloadFiles takes nothing returns nothing call Preload( "") call SetPlayerName(Player(15), "Любая строка")//" ) call Preload( "") endfunction function recyclebin takes nothing returns nothing//" ) call PreloadEnd( 0.1 ) endfunction
|
|
|
|