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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » EDS
EDS
SmartarosДата: Вторник, 20 Ноября 2012, 21:24:39 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
я добавил функцию определения, воин ближнего боя или дальнего в систему по такому же принципу как там определяется типы атаки и урона, в любом тригге на получение любым воином урона если в условие поставить допустим воин дальнего боя, то триггер все равно срабатывает если дамажит ближний бой и наоборот, вообще не понимаю почему это игнорится
 

Ty3uKДата: Вторник, 20 Ноября 2012, 21:54:46 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Пиши свою систему с бледжеком и шлюхами

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

SmartarosДата: Вторник, 20 Ноября 2012, 22:23:26 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
да зачем, и кстати это условие не выполняется даже в триггере на получение любым воином урона, это больше на баг похоже, не системы

Добавлено (20 Ноября 2012, 22:23:26)
---------------------------------------------
т.е. если там поставить проверку, а не в самой системе устанавливать тип юнита

 

NaturekidДата: Вторник, 20 Ноября 2012, 22:40:17 | Сообщение # 4
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Smartaros,


 

SmartarosДата: Вторник, 20 Ноября 2012, 22:50:58 | Сообщение # 5
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
Ty3uK, там структуры, я их не курю, к тому же смысл делать свою если есть эта рабочая, сам не знаешь почему такое происходит?
 

Ty3uKДата: Среда, 21 Ноября 2012, 00:11:52 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
надо код смотреть. Если Ник раньше не поможет - завтра после универа гляну.

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

SmartarosДата: Среда, 21 Ноября 2012, 01:31:15 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
Система
Триггер
 

НаклзДата: Среда, 21 Ноября 2012, 08:56:07 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Народ я не навижу триггеры , но увы вынужден признать что на них нет более 50% функций... как сделать свою функцию ? это возможно? заменить какой-то фаил... в котором бонус ко всему строчи ещё одной функции , там много писать , и мне она часто понадобится , так что думаю лучше один раз написать... а потом работать в своём любимом гуи) Так как можно сделать?
 

Ty3uKДата: Среда, 21 Ноября 2012, 09:00:39 | Сообщение # 9
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
можно

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

SmartarosДата: Среда, 21 Ноября 2012, 14:11:40 | Сообщение # 10
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
а по теме? я ж скинул код
 

ExtrematorДата: Среда, 21 Ноября 2012, 14:15:58 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
хз... у меня робит окок...

юнит ближник = да, то ололо
юнит дальник = да, то трололо


вот пример - Sange.w3x
тут канешно кое-что иное... наверно... но суть в том что стандартное логическое условие по типу ранжирования атаки юнита отвечает мне верно...


Сообщение отредактировал Extremator - Среда, 21 Ноября 2012, 14:16:06
 

SirNikolasДата: Среда, 21 Ноября 2012, 14:19:52 | Сообщение # 12
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Наклз, [duos]Как изменять Редактор триггеров World Editor'а.[/duos]

Добавлено (21 Ноября 2012, 14:19:52)
---------------------------------------------

Quote (Smartaros)
Code
private bool Con()
{
    return GetUnitAbilityLevel(GetDamaged(), ABILITY) > 0 || GetEventDamagerType() == UNIT_TYPE_RANGED_ATTACKER || GetEventDamageType() != DAMAGE_TYPE_MAGIC || GetEventDamageType() != DAMAGE_TYPE_POISON || GetEventDamageType() != DAMAGE_TYPE_FIRE || GetEventDamageType() != DAMAGE_TYPE_WATER || GetEventDamageType() != DAMAGE_TYPE_AIR || GetEventDamageType() != DAMAGE_TYPE_EARTH || GetEventDamageType() != DAMAGE_TYPE_ELECTRISITY || GetEventDamageType() != DAMAGE_TYPE_UNKNOWN
}
А ничего, что || - это or?


 

SmartarosДата: Среда, 21 Ноября 2012, 14:29:39 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
лол, это краш)

Добавлено (21 Ноября 2012, 14:29:39)
---------------------------------------------
ща приеду исправлю, ох как это забавно......а and это && ?

 

SirNikolasДата: Среда, 21 Ноября 2012, 14:34:52 | Сообщение # 14
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Да.

Добавлено (21 Ноября 2012, 14:34:52)
---------------------------------------------
Нечего гнать на хорошую систему! :)


 

SmartarosДата: Четверг, 22 Ноября 2012, 12:51:02 | Сообщение # 15
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
сорри, пресловутый or зарешал, закрывайте, и ту тему с волной, там та же песня

Добавлено (22 Ноября 2012, 03:06:25)
---------------------------------------------
стоять, есть еще проблема, завтра отпишусь

Добавлено (22 Ноября 2012, 12:51:02)
---------------------------------------------
короче код же есть, вообщем если дамажить типом нормал в моей функции то поток прерывается

 

Ty3uKДата: Четверг, 22 Ноября 2012, 13:03:58 | Сообщение # 16
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
в чем выражается прерывание потока?

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

SmartarosДата: Четверг, 22 Ноября 2012, 13:18:31 | Сообщение # 17
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
сама ф-я не выполняется и все другие после нее
 

SirNikolasДата: Четверг, 22 Ноября 2012, 16:31:54 | Сообщение # 18
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
В каком именно месте происходит прерывание? И можно всю функцию?

 

SmartarosДата: Четверг, 22 Ноября 2012, 17:21:41 | Сообщение # 19
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
Code
void UnitSpecialDamageTarget(unit u, unit t, float r, damagetype d)
{
     if d == DAMAGE_TYPE_MAGIC or d == DAMAGE_TYPE_POISON or d == DAMAGE_TYPE_FIRE or d == DAMAGE_TYPE_WATER or d == DAMAGE_TYPE_AIR or d == DAMAGE_TYPE_EARTH or d == DAMAGE_TYPE_ELECTRISITY
     {
         UnitDamageTarget(u, t, r, false, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
     } elseif d == DAMAGE_TYPE_NORMAL {
         UnitDamageTarget(u, t, r, false, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
     } elseif d == DAMAGE_TYPE_UNKNOWN {
         UnitDamageTarget(u, t, r, false, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNKNOWN, WEAPON_TYPE_WHOKNOWS)
     } elseif d == DAMAGE_TYPE_CRITICAL {
         UnitDamageTarget(u, t, r, false, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_UNKNOWN, WEAPON_TYPE_WHOKNOWS)
     }
}

void UnitDamageTargetByType(unit u, unit t, float r, damagetype d)
{
     unit c
     if d == DAMAGE_TYPE_NORMAL
     {
         c = CreateUnit(GetOwningPlayer(u), NORMAL, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_NORMAL)
     } elseif d == DAMAGE_TYPE_MAGIC {
         c = CreateUnit(GetOwningPlayer(u), MAGIC, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_MAGIC)
     } elseif d == DAMAGE_TYPE_POISON {
         c = CreateUnit(GetOwningPlayer(u), POISON, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_POISON)
     } elseif d == DAMAGE_TYPE_FIRE {
         c = CreateUnit(GetOwningPlayer(u), FIRE, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_FIRE)
     } elseif d == DAMAGE_TYPE_WATER {
         c = CreateUnit(GetOwningPlayer(u), WATER, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_WATER)
     } elseif d == DAMAGE_TYPE_AIR {
         c = CreateUnit(GetOwningPlayer(u), AIR, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_AIR)
     } elseif d == DAMAGE_TYPE_EARTH {
         c = CreateUnit(GetOwningPlayer(u), EARTH, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_EARTH)
     } elseif d == DAMAGE_TYPE_ELECTRISITY {
         c = CreateUnit(GetOwningPlayer(u), ELECTRISITY, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_ELECTRISITY)
     } elseif d == DAMAGE_TYPE_UNKNOWN {
         c = CreateUnit(GetOwningPlayer(u), PURE, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_UNKNOWN)
     } elseif d == DAMAGE_TYPE_CRITICAL {
         c = CreateUnit(GetOwningPlayer(u), CRITICAL, GetWidgetX(t), GetWidgetY(t), 0)
         UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_CRITICAL)
     }
     UnitApplyTimedLife(c, 'BTLF', 1.0)
     c = null
}


работает только magic
 

SirNikolasДата: Четверг, 22 Ноября 2012, 17:58:48 | Сообщение # 20
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (SirNikolas)
В каком именно месте происходит прерывание?


 

SmartarosДата: Четверг, 22 Ноября 2012, 18:15:19 | Сообщение # 21
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
там где дамажишь через UnitDamageTargetByType не magic'ом
 

SirNikolasДата: Четверг, 22 Ноября 2012, 18:19:15 | Сообщение # 22
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Это я понял. Определи место точнее.

 

SmartarosДата: Четверг, 22 Ноября 2012, 18:42:36 | Сообщение # 23
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
куда точнее? вот допустим тригг:
call blablabla (робит)
call UnitDamageTargetByType (не робит)
call ololo (не робит)

сто раз смотрел функцию, не могу понять где там че не так, даммики исправны, условия сходятся
 

SirNikolasДата: Четверг, 22 Ноября 2012, 19:32:39 | Сообщение # 24
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Smartaros)
elseif d == DAMAGE_TYPE_NORMAL {
//Работает?
UnitDamageTarget(u, t, r, false, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
//Работает?
Quote (Smartaros)
void UnitDamageTargetByType(unit u, unit t, float r, damagetype d)
{
unit c
if d == DAMAGE_TYPE_NORMAL
{
//Работает?
c = CreateUnit(GetOwningPlayer(u), NORMAL, GetWidgetX(t), GetWidgetY(t), 0)
//Работает?
UnitSpecialDamageTarget(c, t, r, DAMAGE_TYPE_NORMAL)
//Работает?
Quote (Smartaros)
UnitApplyTimedLife(c, 'BTLF', 1.0)
//Работает?


 

SmartarosДата: Четверг, 22 Ноября 2012, 20:11:50 | Сообщение # 25
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
нашел, если удалить в проверке
Code
or d ==
DAMAGE_TYPE_POISON or d ==
DAMAGE_TYPE_FIRE or d ==
DAMAGE_TYPE_WATER or d ==
DAMAGE_TYPE_AIR or d ==
DAMAGE_TYPE_EARTH or d ==
DAMAGE_TYPE_ELECTRISITY
то все работает

Добавлено (22 Ноября 2012, 20:11:50)
---------------------------------------------
короче, я эти константы просто создавал, поэтому ничего не работало. я назначил эти новые типы урона равными старыми, которые не исп в игре (cold, death итд) и все стало норм.

 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » EDS
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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