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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Проблема с кодом (Дубль 2) (Продолжаем)
[Вопрос] Проблема с кодом (Дубль 2)
mazahanДата: Понедельник, 20 Мая 2013, 22:28:01 | Сообщение # 1
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Цитата

Цитата (mazahan)
Буду использовать , вообще мне нужны даммики в линию и чтобы они кастовали скилл ( станяющий скилл по области у героя орды , забыл как называется).
Легко могу написать в триггерах , но 'Недавно начал осваивать jass '.

Код
function Trig_looptrg_Actions takes nothing returns nothing
local integer i = 200
local unit c = GetSpellAbilityUnit()
local real x
local real y
local real F = GetUnitFacing©
local real cF = Cos(F * bj_DEGTORAD)
local real sF = Sin(F * bj_DEGTORAD)
local player p = GetOwningPlayer©
local unit d
// ^Начальные настройки

loop
exitwhen i > 1200
set F = I2R(i) // конверт из целого в реальное
x = GetUnitX© + F * cF
y = GetUnitY© + F * sF
set d = CreateUnit(p 'h00F', x, y, 270.)
call IssueImmediateOrder(d, "stomp") // каста вложенного стана даммиком
call UnitApplyTimedLife(d,'BTLF',2.) // жизнь даммика
set i = i+200
endloop

// Обнуления v

set c = null
set p = null
set d = null
endfunction

function Trig_looptrg_Condition takes nothing returns boolean
return GetSpellAbilityId() == 'A00N'
endfunction

//===========================================================================
function InitTrig_looptrg takes nothing returns nothing
local integer i = 0
set gg_trg_looptrg = CreateTrigger( )
call TriggerAddAction( gg_trg_looptrg, function Trig_looptrg_Actions )
call TriggerAddCondition( gg_trg_looptrg, Condition(function Trig_looptrg_Condition) )
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_Regen, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop

Цитата

Код

set d = CreateUnit(p 'h00F', x, y, 270.)
call IssueImmediateOrder(d, "stomp") // каст способности вложенного стана даммиком
call UnitApplyTimedLife(d,'BTLF',2.) // жизнь даммика

Код данный Волчачкой не пашет , при его удалении всё норм.
Простенькие триггеры на Jass-е пашут.

Добавлено (20 Мая 2013, 22:28:01)
---------------------------------------------
И да вопрос по коду ,

loop
call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop

для чего?

И bj_DEGTORAD - это что?

 

ВолчачкаДата: Понедельник, 20 Мая 2013, 22:40:38 | Сообщение # 2
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата (mazahan)
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop

Эта часть?, сие сейчас проверим.
Цитата (mazahan)
j_DEGTORAD

Это радиана.
3.14159/180.0
Вообще так, вы с JNGP карту открываете?
 

BorodachДата: Понедельник, 20 Мая 2013, 22:42:21 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Цитата (mazahan)
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop

для чего?

Добавляет Событие Приминения способности для каждого игрока
Цитата (mazahan)
bj_DEGTORAD - это что?

Если образно.... то кажется превращает угол в радианы


Karamba
 

mazahanДата: Понедельник, 20 Мая 2013, 22:54:42 | Сообщение # 4
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Цитата (Волчачка)
Вообще так, вы с JNGP карту открываете?

Ведь простые триггеры на Jass работают.
Вообще использую jassnewgenpack5d , куда входит видимо ( судя по меню ) сJass , и JassHelper.
Так что проблема наверно именно в этом :)

Добавлено (20 Мая 2013, 22:47:53)
---------------------------------------------
Хотя не , глянул что такое JNGP , именно он у меня и стоит)

Добавлено (20 Мая 2013, 22:54:42)
---------------------------------------------
local real cF = Cos(F * bj_DEGTORAD)

Тогда может проблема в этой строке?

F- угол поворота кастера.
Или же перевод градусов в радианы надо писать знаком * ?
И вообще для чего надо в радианы переводить?

x = GetUnitX© + F * cF

И объясните плз эту строку)Как я понял это изначально положение кастера по оси х + его угол поворота умноженный на косинус угла поворота в радианах)

 

PocifikДата: Понедельник, 20 Мая 2013, 22:57:47 | Сообщение # 5
9 уровень
Группа: Проверенные
Сообщений: 1130
Награды: 1
Репутация: 495
Блокировки:
как минимум:
x =
y =
set x =
set y =


 

mazahanДата: Понедельник, 20 Мая 2013, 23:03:03 | Сообщение # 6
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Менял не помогло , вернул обратно.
Кстати при запуске карты в ВЕ выдаёт ошибку баз данных триггеров , и там их довольно много.Так с каждой картой.Может в этом проблема? И в принцепе привык уже , но хотелось бы её устранить)

Добавлено (20 Мая 2013, 23:02:18)
---------------------------------------------
Одни из них это SaveRealBJ и тоже самое с целочисленными

Добавлено (20 Мая 2013, 23:03:03)
---------------------------------------------
А также во всех начало или Save или Load а конец всегда BJ


Сообщение отредактировал mazahan - Понедельник, 20 Мая 2013, 23:03:17
 

PocifikДата: Понедельник, 20 Мая 2013, 23:03:29 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 1130
Награды: 1
Репутация: 495
Блокировки:
Цитата (mazahan)
Менял не помогло , вернул обратно.

Я же написал, "как минимум", зачем вернул то.

Цитата (mazahan)
Кстати при запуске карты в ВЕ выдаёт ошибку баз данных триггеров , и там их довольно много.Так с каждой картой.Может в этом проблема? И в принцепе привык уже , но хотелось бы её устранить)

С этого надо начинать было.


 

BorodachДата: Понедельник, 20 Мая 2013, 23:12:22 | Сообщение # 8
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
mazahan, Код полностью не работает или частично?

Karamba
 

mazahanДата: Понедельник, 20 Мая 2013, 23:14:14 | Сообщение # 9
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
И вообще делаю сейчас арену , начал на триггерах , т.к давно с ними работаю , стоит ли всё переписывать в Jass (сделано совсем немного).
И да, а реально найти модель Мойдодыра?

Добавлено (20 Мая 2013, 23:14:14)
---------------------------------------------

Цитата (Borodach)
mazahan, Код полностью не работает или частично?

Ща проверю , просто некоторые строки поудолять?Лучше вообще оставлю только создание триггера.
 

ВолчачкаДата: Понедельник, 20 Мая 2013, 23:24:42 | Сообщение # 10
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
mazahan, постой
function InitTrig_looptrg takes nothing returns nothing
local integer i = 0
set gg_trg_looptrg = CreateTrigger( )
call TriggerAddAction( gg_trg_looptrg, function Trig_looptrg_Actions )
call TriggerAddCondition( gg_trg_looptrg, Condition(function Trig_looptrg_Condition) )
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_Regen, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop
endfunction

Добавлено (20 Мая 2013, 23:23:37)
---------------------------------------------
Когда ты копировал, мб его не хватало?

Добавлено (20 Мая 2013, 23:24:42)
---------------------------------------------

Цитата (Pocifik)
x =
y =
set x =
set y =

Действительно, как так я проглядел.


Сообщение отредактировал Волчачка - Понедельник, 20 Мая 2013, 23:23:51
 

mazahanДата: Понедельник, 20 Мая 2013, 23:58:35 | Сообщение # 11
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
хахахаха

Нашёл ошибку , в коде событий нет окончания функции.

Теперь выпадает фатал :D :D

Добавлено (20 Мая 2013, 23:37:34)
---------------------------------------------
Оп , опередили :D

Добавлено (20 Мая 2013, 23:42:40)
---------------------------------------------
Насчёт копирования , ещё раз проверил твой исходный код , там нет :)

Добавлено (20 Мая 2013, 23:45:22)
---------------------------------------------
Удалил все действия , пашет , начну отбор по действиям.

Добавлено (20 Мая 2013, 23:47:17)
---------------------------------------------
Удалил действия, но оставил событие применения способности для каждого игрока ( в прошлый раз удалял) Уже без фатала , просто не пашет :D

Добавлено (20 Мая 2013, 23:49:58)
---------------------------------------------
Походу нашёл ещё ошибку

Добавлено (20 Мая 2013, 23:51:29)
---------------------------------------------
Убрал неработоспособность события
call TriggerRegisterPlayerUnitEvent( gg_trg_Regen, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )

Добавлено (20 Мая 2013, 23:51:48)
---------------------------------------------
Работаю с фаталом :D

Добавлено (20 Мая 2013, 23:53:23)
---------------------------------------------
Дело в изначальных лок переменных.

Добавлено (20 Мая 2013, 23:53:36)
---------------------------------------------
Пока-что

Добавлено (20 Мая 2013, 23:58:35)
---------------------------------------------
Фатал убрал , теперь опять не грузится , дело в самих действиях , лок переменные уже не при чём :D


Сообщение отредактировал Ty3uK - Вторник, 21 Мая 2013, 14:26:05
 

BorodachДата: Вторник, 21 Мая 2013, 00:03:37 | Сообщение # 12
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
mazahan, измени название триггера gg_trg_Regen на gg_trg_looptrg

Karamba
 

mazahanДата: Вторник, 21 Мая 2013, 00:05:45 | Сообщение # 13
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Теперь я вообще не понимаю , удалил всё . Не пашет.

Добавлено (21 Мая 2013, 00:04:09)
---------------------------------------------

Цитата (Borodach)
mazahan, измени название триггера gg_trg_Regen на gg_trg_looptrg


Уже :)

Добавлено (21 Мая 2013, 00:05:45)
---------------------------------------------

Цитата (mazahan)
Я ИМБА! КТО пишет © вместо (с) ??? Фатал убрал , теперь опять не грузится , дело в самих действиях , лок переменные уже не при чём


Когда я писал это , удалил только действия , загрузилось.Вставил удалил 1 , не грузилось , удалил на всякий случай все , т.е тоже самое что и в 1 раз , не загрузилось , WTF?
 

BorodachДата: Вторник, 21 Мая 2013, 00:06:16 | Сообщение # 14
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
mazahan, начало действий производится?

Karamba
 

mazahanДата: Вторник, 21 Мая 2013, 00:13:15 | Сообщение # 15
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Удалил ВЕСЬ код , не загрузилось , удалил триггер , всё норм.

Добавлено (21 Мая 2013, 00:09:03)
---------------------------------------------

Цитата (Borodach)
mazahan, начало действий производится?

Хз , карта вообще не открывается , при запуске вылетает в главное меню вара.

Добавлено (21 Мая 2013, 00:11:33)
---------------------------------------------
Короч , ещё в чужом коде разбираться это ппц .

Цитата
Буду использовать , вообще мне нужны даммики в линию и чтобы они кастовали скилл ( станяющий скилл по области у героя орды , забыл как называется).

Напишите плз...

Добавлено (21 Мая 2013, 00:12:57)
---------------------------------------------
И да ещё раз напишу

Цитата (mazahan)
КТО пишет © вместо (с) ???
это же ужс

Добавлено (21 Мая 2013, 00:13:15)
---------------------------------------------
Всем спокойной ночи...

 

BorodachДата: Вторник, 21 Мая 2013, 00:17:28 | Сообщение # 16
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Код

function Trig_looptrg_Actions takes nothing returns nothing
local integer i = 200
local unit c = GetTriggerUnit()
local real x
local real y
local real F = GetUnitFacing©
local real cF = Cos(F * bj_DEGTORAD)
local real sF = Sin(F * bj_DEGTORAD)
local player p = GetTriggerPlayer()
local unit d
// ^Начальные настройки

loop
exitwhen i > 1200
set F = I2R(i) // конверт из целого в реальное
set x = GetUnitX(c) + F * cF
set y = GetUnitY(c) + F * sF
set d = CreateUnit(p 'h00F', x, y, 270.)
      call IssueImmediateOrder(d, "stomp") // каста вложенного стана даммиком
      call UnitApplyTimedLife(d,'BTLF',2.) // жизнь даммика
set i = i+200
endloop

// Обнуления v

set c = null
set p = null
set d = null
endfunction

function Trig_looptrg_Condition takes nothing returns boolean
return GetSpellAbilityId() == 'A00N'
endfunction

//===========================================================================
function InitTrig_looptrg takes nothing returns nothing
local integer i = 0
set gg_trg_looptrg = CreateTrigger( )

      loop
              call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
              set i = i + 1
          exitwhen i > 11
      endloop
     call TriggerAddAction( gg_trg_looptrg, function Trig_looptrg_Actions )
     call TriggerAddCondition( gg_trg_looptrg, Condition(function Trig_looptrg_Condition) )
endfunction

Вот так должно работать


Karamba


Сообщение отредактировал Borodach - Вторник, 21 Мая 2013, 00:18:09
 

DiabfallДата: Вторник, 21 Мая 2013, 08:46:26 | Сообщение # 17
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Цитата (Borodach)
local player p = GetTriggerPlayer()

Цитата (Borodach)
set p = null

Зачем?
 

Ty3uKДата: Вторник, 21 Мая 2013, 09:14:11 | Сообщение # 18
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Diabfall, handle > player

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

lawsonДата: Вторник, 21 Мая 2013, 10:22:16 | Сообщение # 19
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
я вот так всегда обнуляю
set var = 1 * 0


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

DiabfallДата: Вторник, 21 Мая 2013, 10:50:10 | Сообщение # 20
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Цитата (ScorpioT1000)
Производные типы от handle
Все остальные типы, которые являются производными от handle (unit, item, player, code и др. См. common.j) – точно такие же ссылки. Но логически поделены на подтипы, у каждого из которых своя область применения.
Стоит упомянуть, что некоторые вобще не содержат никаких таблиц хендлов, например, тип player. В Starcraft 2 этот тип заменили на int.
 

SirNikolasДата: Вторник, 21 Мая 2013, 12:13:48 | Сообщение # 21
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
mazahan, если в пути к карте нет русских букв, то при сохранении включается альтернативный парсер, позволяющий использовать vJass и cJass и выдающий нормальные ошибки.

 

mazahanДата: Вторник, 21 Мая 2013, 13:54:36 | Сообщение # 22
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Цитата (SirNikolas)
mazahan, если в пути к карте нет русских букв, то при сохранении включается альтернативный парсер, позволяющий использовать vJass и cJass и выдающий нормальные ошибки.


Сменил , теперь путь на весь на англ , ничего не изменилось , и да что делать с ошибкой баз триггеров?

Добавлено (21 Мая 2013, 13:54:08)
---------------------------------------------

Цитата (Borodach)
Код

function Trig_looptrg_Actions takes nothing returns nothing
local integer i = 200
local unit c = GetTriggerUnit()
local real x
local real y
local real F = GetUnitFacing©
local real cF = Cos(F * bj_DEGTORAD)
local real sF = Sin(F * bj_DEGTORAD)
local player p = GetTriggerPlayer()
local unit d
// ^Начальные настройки

loop
exitwhen i > 1200
set F = I2R(i) // конверт из целого в реальное
set x = GetUnitX© + F * cF
set y = GetUnitY© + F * sF
set d = CreateUnit(p 'h00F', x, y, 270.)
      call IssueImmediateOrder(d, "stomp") // каста вложенного стана даммиком
      call UnitApplyTimedLife(d,'BTLF',2.) // жизнь даммика
set i = i+200
endloop

// Обнуления v

set c = null
set p = null
set d = null
endfunction

function Trig_looptrg_Condition takes nothing returns boolean
return GetSpellAbilityId() == 'A00N'
endfunction

//===========================================================================
function InitTrig_looptrg takes nothing returns nothing
local integer i = 0
set gg_trg_looptrg = CreateTrigger( )

      loop
              call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
              set i = i + 1
          exitwhen i > 11
      endloop
     call TriggerAddAction( gg_trg_looptrg, function Trig_looptrg_Actions )
     call TriggerAddCondition( gg_trg_looptrg, Condition(function Trig_looptrg_Condition) )
endfunction

Вот так должно работать


Не работает.

Добавлено (21 Мая 2013, 13:54:36)
---------------------------------------------
GetUnitFacing© поменял , если что.

 

SirNikolasДата: Вторник, 21 Мая 2013, 14:10:48 | Сообщение # 23
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (mazahan)
Сменил, теперь путь весь на англ., ничего не изменилось
Перед запуском сохраняешь карту (вручную)?


 

mazahanДата: Вторник, 21 Мая 2013, 14:21:58 | Сообщение # 24
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Да

Добавлено (21 Мая 2013, 14:21:58)
---------------------------------------------
E:\JNGP\jassnewgenpack5d Вот путь

 

Imba_pvLДата: Вторник, 21 Мая 2013, 14:24:44 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
Цитата (mazahan)
Буду использовать , вообще мне нужны даммики в линию и чтобы они кастовали скилл ( станяющий скилл по области у героя орды

Могу дать спел на гуи


 

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

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