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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Заказ] Улучшить (оптимизировать) код
[Заказ] Улучшить (оптимизировать) код
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
Блокировки:
Раскрывать бж эвента- новая мода? Зачем? О.о

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

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
Блокировки:
Лавс, цитату на пост с раскрытием бж эвента. Иначе помолчи, ок? <_<

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

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
Блокировки:
Еах, тут согласен, я тоже таким был. И, да, я тоже раньше раскрывал бж эвента :D

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

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
Блокировки:
Эвент- событие

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

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
Блокировки:
Облегчает первое создание эффекта. Со звуками помогает решить траблу с отсутствием самого звука при создании (воспроизведение происходит при повторном действии)

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

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
Блокировки:
При инициализации подгружаешь часто используемые эффекты и все отлично

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

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
Блокировки:
Это уже начинка жасса

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

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
Блокировки:
Ну это понятно. Но я не думаю, что найдутся энтузиасты для взлома движка из-за такой мелочи

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

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)
---------------------------------------------
Эвенты (инитфунка) срабатывают один раз, ведь по-сути он указывает, какой триггер должен обрабатывать это событие


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

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


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Заказ] Улучшить (оптимизировать) код
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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