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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Как избавиться от cannot convert boolean to unit?
DeekeyДата: Среда, 15 Февраля 2012, 16:50:49 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Блокировки:
Всем привет. Вот решил попробовать поработать с Jass. Начал.. грубо говоря, "изучать" его буквально вчера. Так что можете называть нубом, крабом и т.д. хоть 100500 раз. Но всё же нужна помощь, ибо хочу понять в чём проблема.
Решил попробовать сделать спелл: Мнгновенный каст; во всех инитов в радиусе 500 летит сопля. Сделал через Dummу которому даётся предмет(сопля) и тот кастует его в одну из целей. И того создаётся столько Dummy-ков, сколько врагов в радиусе поражения. В общем по идее простой спелл.
Знаю, что у меня там 100500 лишних строк или ошибок. Прошу, по возможности, и их справить.
Code
function Trig_Scouch2_Conditions takes nothing returns boolean
     return GetSpellAbilityId() == 'A02G'       
endfunction           

function Trig_Scouch2_Func004C takes nothing returns boolean
      return IsPlayerEnemy( GetOwningPlayer( GetSpellAbilityUnit()), GetOwningPlayer( IsUnitInRangeLoc(GetTriggerUnit(), GetUnitLoc(GetTriggerUnit()), 500.00 ) )) == true      
endfunction

function Trig_Scouch2_Actions takes nothing returns nothing
     local unit target = IsUnitInRangeLoc(GetTriggerUnit(), GetUnitLoc(GetTriggerUnit()), 500.00 )  
     local real y = GetLocationY(GetUnitLoc(GetTriggerUnit()))
     local real x = GetLocationX(GetUnitLoc(GetTriggerUnit()))
     local unit cast = CreateUnit( GetOwningPlayer(GetTriggerUnit()), 'n006', x, y, bj_UNIT_FACING )
     local item spell = UnitAddItemById( cast, 'I00H' )
     if ( Trig_Scouch2_Func004C() ) then
         call UnitUseItemTarget( cast, spell, target )
         call TriggerSleepAction( 0.02 )
         call RemoveUnit( cast )
         set cast = null  
         set target = null
         set spell = null  
     else
     endif
endfunction

//===========================================================================
function InitTrig_Scouch2 takes nothing returns nothing
     set gg_trg_Scouch2 = CreateTrigger( )
     call TriggerRegisterAnyUnitEventBJ( gg_trg_Scouch2, EVENT_PLAYER_UNIT_SPELL_CAST )
     call TriggerAddCondition( gg_trg_Scouch2, Condition( function Trig_Scouch2_Conditions ) )
     call TriggerAddAction( gg_trg_Scouch2, function Trig_Scouch2_Actions )
endfunction

Ошибка "cannot convert boolean to unit" возникает в строках:
Code
   return IsPlayerEnemy( GetOwningPlayer( GetSpellAbilityUnit()), GetOwningPlayer( target )) == true   

и
Code
local real y = GetLocationY(GetUnitLoc(GetTriggerUnit()))
 

SirNikolasДата: Среда, 15 Февраля 2012, 17:10:05 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Deekey, на самом деле, твой код делает вовсе не то, что должен по описанию. Переписываю.

 

DeekeyДата: Среда, 15 Февраля 2012, 17:46:43 | Сообщение # 3
1 уровень
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Блокировки:
SirNikolas, даже так Оо мне аж страшно стало)
 

SirNikolasДата: Среда, 15 Февраля 2012, 19:24:32 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Для человека, который только вчера начал писать, это очень достойная попытка. Советую почитать вот эти статьи:
Теория скриптописания на языке JASS
Хэш-таблицы
Также рекомендую скачать редакторы кода: JNGP и/или JassCraft.
Ну и, разумеется, нужно смотреть код других людей и экспериментировать самому.

Добавлено (15 Февраль 2012, 19:24:32)
---------------------------------------------

Quote (Deekey)
GetOwningPlayer( IsUnitInRangeLoc(GetTriggerUnit(), GetUnitLoc(GetTriggerUnit()), 500.00 ) )
Кстати, здесь у тебя опечатка. Из-за нее и была ошибка.


 

DeekeyДата: Среда, 15 Февраля 2012, 19:26:21 | Сообщение # 5
1 уровень
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Блокировки:
Quote (SirNikolas)
Для человека, который только вчера начал писать, это очень достойная попытка. Советую почитать вот эти статьи:

Хех, спасибо) Честно говоря я просто пытался логически представить себе эту цепочку дейтвий и пытался подбирать подходящие функции. Но, как видно, не получилось)
Quote (SirNikolas)
Также рекомендую скачать редакторы кода: JNGP и/или JassCraft.

jngp у меня стоит уже очень долго, я раньше скачивал зачем-то. А джаскрафт ещё вчера скачал и пытался с помощью него ошибки исправлять.
Quote (SirNikolas)
Ну и, разумеется, нужно смотреть код других людей и экспериментировать самому.

Ну, вот я и эксперементировал) Да, и пытался посмотреть примеры, только как-то сразу не нашёл, потому сам попробовал написать.
А так спасибо большое=) Буду читать твои статьи и попытаюсь найти свои ошибки. Надеюсь не возникнет проблем) Хотя в это верится с трудом.
 

  • Страница 1 из 1
  • 1
Поиск:

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