Сейчас 10:31:46 Пятница, 3 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Общалка кодеров (Обмен опытом | Обсуждение проблем)
[ВАЖНО] Общалка кодеров
SirNikolasДата: Суббота, 11 Мая 2013, 18:29:20 | Сообщение # 226
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Что ты подразумеваешь под словом "оптимизировать"? И в какую еще переменную nxd?

 

ВолчачкаДата: Суббота, 11 Мая 2013, 18:49:52 | Сообщение # 227
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата (SirNikolas)
Что ты подразумеваешь под словом "оптимизировать"? И в какую еще переменную nxd?

Не nxd, а n сокращение null'a типа не батрачить null <- 4 символа, n<- один символ супер xd
 

Ty3uKДата: Суббота, 11 Мая 2013, 22:51:39 | Сообщение # 228
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Напиши свой парсер с преферансом и поэтессами.
Хотя можно сделать хитрые дефайны для cJASS.


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

ВолчачкаДата: Суббота, 11 Мая 2013, 22:58:50 | Сообщение # 229
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Ty3uK, ага типа
Код

globals
integer n = 0
endglobals

и сравнивать к примеру это
Код
   
   loop
          set p = FirstOfGroup(udg_G)
          if IsUnitEnemy(c,GetOwningPlayer(p)) == true then
              call UnitDamageTarget(c,p,100,true,true,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_NORMAL,null)
              call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportCaster.mdl", p, "origin" ))
          endif
          call GroupRemoveUnit(udg_G,p)
          exitwhen p == n
      endloop
      call GroupClear(udg_G)


Код

//===================================
//====Custom Scripts=================
globals

integer n = 0

endglobals
/====================
//===================================
function Trig_BlinkNoTarget_Conditions takes nothing returns boolean
      return GetSpellAbilityId() == 'AOws'
endfunction
function Trig_BlinkNoTarget_Actions takes nothing returns nothing
      local unit c = GetSpellAbilityUnit()
      local real x = GetUnitX(c)
      local real y = GetUnitY(c)
      local unit p
      call SetUnitX( c, x + 700 * Cos( GetUnitFacing(c) * bj_DEGTORAD ) )
      call SetUnitY( c, y + 700 * Sin( GetUnitFacing(c) * bj_DEGTORAD ) )
      set x = GetUnitX(c)
      set y = GetUnitY(c)
      call GroupEnumUnitsInRange(udg_G,x,y,450,null)
      loop
          set p = FirstOfGroup(udg_G)
          if IsUnitEnemy(c,GetOwningPlayer(p)) == true then
              call UnitDamageTarget(c,p,100,true,true,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_NORMAL,null)
              call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportCaster.mdl", p, "origin" ))
          endif
          call GroupRemoveUnit(udg_G,p)
          exitwhen p == n
      endloop
      call GroupClear(udg_G)
      call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl", x, y))
      set c = null
      set x = 0
      set y = 0
endfunction
//===========================================================================
function InitTrig_BlinkNoTarget takes nothing returns nothing
      set gg_trg_BlinkNoTarget = CreateTrigger( )
      call TriggerAddAction( gg_trg_BlinkNoTarget, function Trig_BlinkNoTarget_Actions )
      call TriggerAddCondition( gg_trg_BlinkNoTarget, Condition( function Trig_BlinkNoTarget_Conditions ) )
      call TriggerRegisterPlayerUnitEvent( gg_trg_BlinkNoTarget, Player(0), EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
endfunction


Сообщение отредактировал Волчачка - Суббота, 11 Мая 2013, 22:59:09
 

Ty3uKДата: Суббота, 11 Мая 2013, 23:02:09 | Сообщение # 230
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
А как же совместимость? Слишком просто. Напиши четкий дефайн, который позволит использовать переменную n, но в нужном контексте будет передавать null.

Добавлено (11 Мая 2013, 23:02:09)
---------------------------------------------

Цитата (Волчачка)
bj_DEGTORAD

Ай-ай-ай


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

ВолчачкаДата: Суббота, 11 Мая 2013, 23:21:51 | Сообщение # 231
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата (Ty3uK)
Ай-ай-ай

Это не Ая-яй-яй, это классика.
Для сравнения пойдёт, а дефайнов никаких писать не буду. Почему? Просто, честно говоря, я не люблю вообще язык C. Уж прости. :)
И да, мне лень. Ах вот ещё, давай кидай урок по джассу 4-ый. Условия кажется, а не то ух какой горазд трындеть, школа уже пустеет без урока на тему "условия". Jass Lesson погибает, братан.
 

Ty3uKДата: Воскресенье, 12 Мая 2013, 00:15:50 | Сообщение # 232
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Дуос в аське говорил, что пишет. Жду.

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

BruДата: Воскресенье, 12 Мая 2013, 10:17:41 | Сообщение # 233
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Код
function Trig_periodicCheck_Actions takes nothing returns nothing
  local real lx
     local real ly  
     local integer i = 1  
     local integer pnum = 1
     loop  
         set lx = GetWidgetX(udg_wisp[pnum])  
         set ly = GetWidgetY(udg_wisp[pnum])
         if (lx < GetRectMaxX(udg_r[i]) and lx > GetRectMinX(udg_r[i])) and (ly < GetRectMaxY(udg_r[i]) and ly > GetRectMinY(udg_r[i])) then  
             call RemoveUnit( udg_wisp[pnum] )  
             set udg_hero[pnum] = udg_h[i]  
             call SetUnitOwner( udg_hero[pnum], GetOwningPlayer(udg_wisp[pnum]), true )  
             call SetUnitPositionLoc( udg_hero[pnum], Location(GetRectCenterX(udg_spawnrect[pnum]), GetRectCenterY(udg_spawnrect[pnum])))   
         endif  
         set i = i + 1  
   call BJDebugMsg("I - " + I2S(i))
         set pnum = pnum + 1
   call BJDebugMsg("I2 - " + I2S(pnum))
         if pnum == 12 then  
             set pnum = 1
         endif
         exitwhen i == 100
     endloop  
endfunction

//===========================================================================
function InitTrig_periodicCheck takes nothing returns nothing
     set gg_trg_periodicCheck = CreateTrigger()
  call TriggerRegisterTimerEvent( gg_trg_periodicCheck, 2.00, true )
     call TriggerAddAction( gg_trg_periodicCheck, function Trig_periodicCheck_Actions )
endfunction

Короче один раз он проганяет цикл и всё. Больше не выводится ничего.
Что самое интересное
Чего я могу выбрать первого героя? И почему цикл не запускается снова?
 

IIAXAHДата: Воскресенье, 12 Мая 2013, 14:33:19 | Сообщение # 234
3 уровень
Группа: Проверенные
Сообщений: 72
Награды: 0
Репутация: 26
Блокировки:
Bru, цикл для Чеков (по pnum) не весь.
Высший совет 4 года назад


Сообщение отредактировал IIAXAH - Воскресенье, 12 Мая 2013, 14:33:44
 

BruДата: Воскресенье, 12 Мая 2013, 15:51:35 | Сообщение # 235
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Цитата (IIAXAH)
Bru, цикл для Чеков (по pnum) не весь.

То есть?
 

SirNikolasДата: Воскресенье, 12 Мая 2013, 16:40:58 | Сообщение # 236
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (Bru)
call SetUnitPositionLoc( udg_hero[pnum], Location(GetRectCenterX(udg_spawnrect[pnum]), GetRectCenterY(udg_spawnrect[pnum])))
call SetUnitX(udg_hero[pnum], GetRectCenterX(udg_spawnrect[pnum]))
call SetUnitY(udg_hero[pnum], GetRectCenterY(udg_spawnrect[pnum]))
В крайнем случае call SetUnitPosition(udg_hero[pnum], GetRectCenterX(udg_spawnrect[pnum]), GetRectCenterY(udg_spawnrect[pnum])), но никак не с созданием точки.

У тебя массивы действительно индексуются с единицы, а не с нуля?


 

BruДата: Воскресенье, 12 Мая 2013, 18:15:28 | Сообщение # 237
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Цитата (SirNikolas)
У тебя массивы действительно индексуются с единицы, а не с нуля?

да

Добавлено (12 Мая 2013, 18:15:28)
---------------------------------------------
а что?

 

ВолчачкаДата: Понедельник, 13 Мая 2013, 02:21:41 | Сообщение # 238
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Ty3uK, пока он урок напишет, столетия пройдут.
 

bornikkenyДата: Среда, 15 Мая 2013, 08:59:48 | Сообщение # 239
5 уровень
Группа: Проверенные
Сообщений: 107
Награды: 0
Репутация: 81
Блокировки:
Парни, если я забыл функции на GUI и т.п. штуки - это плохо?
 

ВолчачкаДата: Среда, 15 Мая 2013, 09:03:53 | Сообщение # 240
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
bornikkeny, делай себе карту памятку, с комментариями. Ничего не забудешь)
 

bornikkenyДата: Среда, 15 Мая 2013, 09:50:22 | Сообщение # 241
5 уровень
Группа: Проверенные
Сообщений: 107
Награды: 0
Репутация: 81
Блокировки:
Волчачка, ну, вроде бы я все знаю, но на ГУИ ничегошеньки не получается. А как "конвентну в текст" - сразу мысли проясняются, и идет дело. :o
 

BruДата: Воскресенье, 26 Мая 2013, 11:49:59 | Сообщение # 242
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Скажите, а группа - это по сути своей всё равно что массив юнита?
 

Ty3uKДата: Воскресенье, 26 Мая 2013, 12:07:08 | Сообщение # 243
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Нет

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

SirNikolasДата: Воскресенье, 26 Мая 2013, 12:28:33 | Сообщение # 244
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Массив прежде всего подразумевает последовательное хранение и доступ по индексу. Как хранятся юниты в группе - неизвестно, и индексы нам недоступны.

 

ВолчачкаДата: Воскресенье, 26 Мая 2013, 14:42:34 | Сообщение # 245
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Мб отряд - это указатель, хотя бред. Это может быть и объектом или классом.
 

Ty3uKДата: Воскресенье, 26 Мая 2013, 15:05:26 | Сообщение # 246
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Волчачка, классом или объектом класса?

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

ВолчачкаДата: Воскресенье, 26 Мая 2013, 15:29:20 | Сообщение # 247
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Ty3uK, больше классом, а юниты объектами этого класса. Скорее всего так.
 

SirNikolasДата: Воскресенье, 26 Мая 2013, 18:17:29 | Сообщение # 248
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
^ Человек не разбирается в ООП.

 

Капитан_ОчевидностьДата: Воскресенье, 26 Мая 2013, 18:53:55 | Сообщение # 249
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
^Вот так вот, взял и оскорбил вандала.î
А еще модератор.
 

Ty3uKДата: Воскресенье, 26 Мая 2013, 19:10:58 | Сообщение # 250
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Цитата (Волчачка)
больше классом, а юниты объектами этого класса. Скорее всего так.

Класс - это описание типа, объект которого потом можно создать. Нельзя говорить про класс, говоря про объекты.
Хотя возможно я и сам глуп и несу несуразицу.


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

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Общалка кодеров (Обмен опытом | Обсуждение проблем)
Поиск:

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