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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Почему не работает цикл?((
[Вопрос] Почему не работает цикл?((
TorianKelДата: Понедельник, 16 Апреля 2012, 13:16:49 | Сообщение # 1
3 уровень
Группа: Проверенные
Сообщений: 64
Награды: 0
Репутация: -13
Блокировки:
глобалки: СT = 2

local integer a = CT // количество массивов
loop
exitwhen a<0
set a = a - 1
if IUNIT[a]==GetTriggerUnit() then
set attack_target = IUNIT[a].attack
set defense_target = IUNIT[a].defense
set onhit_damage_target = IUNIT[a].onhit_damage
set armor_target = IUNIT[a].armor
set critical_chance_target = IUNIT[a].critical_chance
set critical_power_target = IUNIT[a].critical_power
set a = 0
endif
endloop

такая ошибка: comprasing two variables of different primitive types (except real and integer) is not allowed
 

FkoFFДата: Понедельник, 16 Апреля 2012, 14:04:23 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Ст возможно реальное число.
Хотя возможно и ниже напортачил, суть ошибки - несоответствие типов переменных.

Вообще странный какой то код


 

SirNikolasДата: Понедельник, 16 Апреля 2012, 14:08:43 | Сообщение # 3
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (TorianKel)
IUNIT[a]==GetTriggerUnit()
=> IUNIT - handle/widget/unit array
Quote (TorianKel)
IUNIT[a].
=> IUNIT - struct.


 

TorianKelДата: Понедельник, 16 Апреля 2012, 15:05:25 | Сообщение # 4
3 уровень
Группа: Проверенные
Сообщений: 64
Награды: 0
Репутация: -13
Блокировки:
спс, работает)
только вот цикл лагает и не работает, если проверяется количество массивов больше 1
просто не хочется писать под каждого ifelse. Есть альтернатива?
 

HexingДата: Понедельник, 16 Апреля 2012, 16:51:12 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (TorianKel)
спс, работает)
только вот цикл лагает и не работает, если проверяется количество массивов больше 1
просто не хочется писать под каждого ifelse. Есть альтернатива?

попробуй поменять set a = 0 на set a = -1


 

TorianKelДата: Понедельник, 16 Апреля 2012, 17:25:45 | Сообщение # 6
3 уровень
Группа: Проверенные
Сообщений: 64
Награды: 0
Репутация: -13
Блокировки:
У меня ща так:
глобалки: integer CT = 1 // так циклом проверяется 1 массив и он работает, не лагает (но и смысла в нем нет:D)
если CT= 2 // то есть хочу проверить 2 юнита - не пашет и лагает
как я понял на циклах не судьба, придется ifelse под каждого(
loop
local integer a = CT
set a = a - 1
if IUNIT[a].UNIT==GetTriggerUnit() then
set attack_target = IUNIT[a].attack
set defense_target = IUNIT[a].defense
set onhit_damage_target = IUNIT[a].onhit_damage
set armor_target = IUNIT[a].armor
set critical_chance_target = IUNIT[a].critical_chance
set critical_power_target = IUNIT[a].critical_power
endif
exitwhen a==0
endloop

loop
local integer b = CT
set b = b - 1
if IUNIT[b].UNIT==GetEventDamageSource() then
set attack_attacker = IUNIT[b].attack
set defense_attacker = IUNIT[b].defense
set onhit_damage_attacker = IUNIT[b].onhit_damage
set armor_attacker = IUNIT[b].armor
set critical_chance_attacker = IUNIT[b].critical_chance
set critical_power_attacker = IUNIT[b].critical_power
endif
exitwhen b==0
endloop
 

HexingДата: Понедельник, 16 Апреля 2012, 17:54:10 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
дело не в цикле а в структуре, у тебя там ошибка, ибо в цикле ошибок нет, лаги по другой причине.

 

TorianKelДата: Понедельник, 16 Апреля 2012, 18:56:52 | Сообщение # 8
3 уровень
Группа: Проверенные
Сообщений: 64
Награды: 0
Репутация: -13
Блокировки:
все забиваю. делаю на iflelse.Жаль нету switch как в с++(
 

Ty3uKДата: Понедельник, 16 Апреля 2012, 19:05:51 | Сообщение # 9
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Зато есть elseif buba

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

HexingДата: Понедельник, 16 Апреля 2012, 20:48:48 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Зато есть elseif

есть свитч на дефайнах <_<


 

Ty3uKДата: Понедельник, 16 Апреля 2012, 20:54:48 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Тут не задействуется подстановка на этапе препроцессинга, разве нет? Человек проверяет значение в функции что называется "по ходу дела". Тут и поможет элсеиф, ибо свитч, насколько я помню, это связка из нескольких иф зен, потому как оператора элсеиф там нет :)

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

HexingДата: Понедельник, 16 Апреля 2012, 20:58:39 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)

10 уровень

Группа: Проверенные
Сообщений: 4186
Награды: 0
Репутация: 584  ±
Блокировки:

Тут не задействуется подстановка на этапе препроцессинга, разве нет? Человек проверяет значение в функции что называется "по ходу дела". Тут и поможет элсеиф, ибо свитч, насколько я помню, это связка из нескольких иф зен, потому как оператора элсеиф там нет

хз как он устроен, надеюсь на elseif-ах ^_^


 

Ty3uKДата: Понедельник, 16 Апреля 2012, 21:01:40 | Сообщение # 13
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Кто он? :)

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

llkaДата: Понедельник, 16 Апреля 2012, 23:03:02 | Сообщение # 14
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 34
Блокировки:
TorianKel, а зачем вообще делать структуру массив? Нелегче просто создать локальную структуру и сохранить в хеш, или приаттачить к чему то?
 

HexingДата: Вторник, 17 Апреля 2012, 06:00:26 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (llka)
TorianKel, а зачем вообще делать структуру массив? Нелегче просто создать локальную структуру и сохранить в хеш, или приаттачить к чему то?

за весь мой опыт работы в cJass я разобрался в одном: структуры - зло, либо аттачить всё к хэшу, либо написать свой хэш с одним ключом типа хэт, либо ручками на глобалочках
...
думаю он её юзает т.к. использует чужую наработку, а может просто чтобы нагляднее код был


 

Ty3uKДата: Вторник, 17 Апреля 2012, 07:56:44 | Сообщение # 16
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Структуры и есть глобалки, Холмс buba

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

HexingДата: Вторник, 17 Апреля 2012, 08:17:54 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Структуры и есть глобалки, Холмс

+куча ненужных функций - бе


 

Ty3uKДата: Вторник, 17 Апреля 2012, 08:35:14 | Сообщение # 18
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ого, Холмс, да вы меня понимаете :3

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

HexingДата: Вторник, 17 Апреля 2012, 08:51:57 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Ого, Холмс, да вы меня понимаете :3

да, я изменился ^_^


 

Ty3uKДата: Вторник, 17 Апреля 2012, 09:24:22 | Сообщение # 20
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Это круто, дружище :3

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

DragoNДата: Вторник, 17 Апреля 2012, 13:12:22 | Сообщение # 21
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Quote (Hexing)
либо написать свой хэш с одним ключом типа хэт

XAT, кстати, на структурах


El Psy Congroo


Сообщение отредактировал DragoN - Вторник, 17 Апреля 2012, 13:12:37
 

Ty3uKДата: Вторник, 17 Апреля 2012, 13:21:45 | Сообщение # 22
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Что мешает написать свой и на хэше? dunno

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

HexingДата: Вторник, 17 Апреля 2012, 14:26:12 | Сообщение # 23
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (DragoN)
XAT, кстати, на структурах

беда) а мне казалось он на чистых макросах, ну да ладно
Quote (Ty3uK)
Что мешает написать свой и на хэше?

смысл писать упрощённый хэш на хэше, лол? ХАТ берёт одно значение, и тем он лучше хэша, но он наструктурах, и тем он хуже хэша, нужно написать на чистом jass хэш с одним ключом, полезная вещица будет, и чтобы с ограниченным колвом ячеек(сколько нужно для карты)


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Почему не работает цикл?((
  • Страница 1 из 1
  • 1
Поиск:

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