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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Помогите плиз^_^
Shock-_-Дата: Понедельник, 24 Января 2011, 21:40:54 | Сообщение # 1
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
В общем создаю триггерную способность на ГУИ и чаще всего встречаюсь с одной и тойжей проблемой...
Когда я применяю способность в одиночной игре, все идет отлично, но когда идет речь о мультиплеере, то все меняется, например, когда люди одновременно используют одну и тужу способность, возникают баги с переменными и тд... Для примера вот ссылка на одну из способностей. Если её применят несколько юнитов в примерно одно и тоже время, то начнется путаница с переменными и тот, кто раньше заюзал способность, останется в воздухе, подобная проблема у меня со многими способностями...
Вот ссылка на карту, в которой есть одна такая способность, думаю по триггерам вам станет ясно где я вагоню. http://ifolder.ru/21519291
Я понимаю, что можно добавить кучу обработчиков, в которых будет проверка на такова-та игрока, допустим если кастует игрок красный, то триггер пошел с одними переменными, если синий, то с другими, но даже с такими обработчиками могут возникнуть баги, например, если один игрок двумя юнитами юзает подобную способность... Скорее всего я не шарю, но все же, шарющие люди, ПРЕДЛОЖИТЕ рациональный способ решения данной проблемы, а то по 12 обработчиков да куча сверху переменных даже не помогут:(
 

DreiiДата: Понедельник, 24 Января 2011, 21:42:07 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Делай MUI

 

Shock-_-Дата: Понедельник, 24 Января 2011, 21:56:32 | Сообщение # 3
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
"Делай MUI "
я бы с радостью делал, но я не знаю что это :DDDDDDD
 

moped555Дата: Понедельник, 24 Января 2011, 21:57:15 | Сообщение # 4
4 уровень
Группа: Пользователи
Сообщений: 92
Награды: 0
Репутация: 0
Блокировки:
Потребуши форум )
 

Shock-_-Дата: Понедельник, 24 Января 2011, 22:01:03 | Сообщение # 5
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
ну я потребушу, но именно ответ на поставленный мной вопрос в понятном для меня виде врядли найду, ну пока попробую потребушать форум ^_^
 

moped555Дата: Понедельник, 24 Января 2011, 22:03:04 | Сообщение # 6
4 уровень
Группа: Пользователи
Сообщений: 92
Награды: 0
Репутация: 0
Блокировки:
Вобще дам совет уччи Jass и используй не обычный PO а jassnewgenpack5d
Там сможжэш на Джасе любой скил делать !
 

Manko_OДата: Понедельник, 24 Января 2011, 22:04:06 | Сообщение # 7
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
Shock-_-,
Выход учить Jass. Но можно на GUI с массвом.
 

Shock-_-Дата: Понедельник, 24 Января 2011, 22:06:28 | Сообщение # 8
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
С массивом пытался, но тогда с таймером будут проблемы, то есть у меня 1 скилл состоит из 2 триггеров, ну никак не получится, наверно),видимо правда придется на джазе писать), а можно как-нибудь написанное на ГУИ перевести в джаз, ну для учебных целей) или как вы учились джазу?)
 

Manko_OДата: Понедельник, 24 Января 2011, 22:07:44 | Сообщение # 9
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
Shock-_-,
Правка - конвертироватьв текст.
Download: JassCraft
Search: xgm.ru
 

moped555Дата: Понедельник, 24 Января 2011, 22:08:21 | Сообщение # 10
4 уровень
Группа: Пользователи
Сообщений: 92
Награды: 0
Репутация: 0
Блокировки:
Не джазу) Джаз музыка )
А Jass(Джасс) я нуб в нём я читаю гайды и походу дела пытаюсь находить применение своим знанием подругому некак)
 

Shock-_-Дата: Понедельник, 24 Января 2011, 22:12:26 | Сообщение # 11
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
а чем лучше пользоваться: JassCraft или jassnewgenpack5d ???

Добавлено (24-01-2011, 22:12)
---------------------------------------------
думаю jassnewgenpack5d, он весит больше :DD

 

moped555Дата: Понедельник, 24 Января 2011, 22:12:45 | Сообщение # 12
4 уровень
Группа: Пользователи
Сообщений: 92
Награды: 0
Репутация: 0
Блокировки:
Смотри jassnewgenpack5d Тотжэ самый PO но с способностю писат ьтригерные способности на Jass
 

Manko_OДата: Понедельник, 24 Января 2011, 22:13:17 | Сообщение # 13
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
Quote (Shock-_-)
jassnewgenpack5d

Это редактор. Также приспособен для кодирования.
А JassCraft преднозначен чисто для кодирования,тоесть оттуда копировать в редактор. Там можно в поиске найти функцию и узнать как её заполнять.
 

Shock-_-Дата: Понедельник, 24 Января 2011, 22:23:15 | Сообщение # 14
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
ясно, спасибо, осталось разобраться что такое MUI ^__^
 

moped555Дата: Понедельник, 24 Января 2011, 22:25:53 | Сообщение # 15
4 уровень
Группа: Пользователи
Сообщений: 92
Награды: 0
Репутация: 0
Блокировки:
MUI - Multilingual User Interface - пакет локализации программ. Врод <_< е так
 

KаratДата: Понедельник, 24 Января 2011, 22:51:43 | Сообщение # 16
3 уровень
Группа: Пользователи
Сообщений: 69
Награды: 0
Репутация: 10
Блокировки:
Quote (moped555)
MUI - Multilingual User Interface - пакет локализации программ. Врод <_< е так

В данном контексте, нет. Здесь имеется ввиду возможность исполнения нескольких таких спеллов одновременно. В данном примере спелл не является MUI так как испольщуются wait'ы(действие ждать). Если не заморачиваться с оптимизацией, то самое простое решение - использовать одну массивную переменную, но с разными индексами, взависимости от номера игрока. Т.е. конструкцию вида:
Анимация - Изменить DummyMast[Номер игрока[Владелец Casting unit]] etc

Добавлено (24-01-2011, 22:40)
---------------------------------------------
Да, забыл упомянуть. Триггер Move тоже придётся переделывать.

Добавлено (24-01-2011, 22:51)
---------------------------------------------
Как вариант, заноси в переменную boolean[Player Number(Owned of(Casting unit)], когда нужно двигать дамми, значение да и значение нет когда движение нужно прекратить. В триггере же Move выбирай всех игроков и проверяй, что boolean[Player Number(Picked Player)] = да и если так, то соб-но и двигай DummyMast[Player Number(Picked Player)] на расстояние offset[Player Number(Picked Player)Player Number(Picked Player)], под углом realmas[Player Number(Picked Player)]. Но лучше, конечно,

Quote (Manko_O)
учить Jass.
.
 

Shock-_-Дата: Понедельник, 24 Января 2011, 23:00:58 | Сообщение # 17
2 уровень
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 2
Блокировки:
окей), спасибо, учту)
я такой вариант рассматривал, но чёт затупил с триггером move так где-то и не получилось, но всетаки, к примеру, заработает этот спелл, а другой триггерный какой-нибудь не заработает, думаю придется учить Jass :)
 

lawsonДата: Понедельник, 24 Января 2011, 23:02:47 | Сообщение # 18
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Сначала выучи триггеры на уровне (создание нестандартынх спеллов).

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

KаratДата: Понедельник, 24 Января 2011, 23:06:53 | Сообщение # 19
3 уровень
Группа: Пользователи
Сообщений: 69
Награды: 0
Репутация: 10
Блокировки:
Quote (Shock-_-)
окей), спасибо, учту)
я такой вариант рассматривал, но чёт затупил с триггером move так где-то и не получилось, но всетаки, к примеру, заработает этот спелл, а другой триггерный какой-нибудь не заработает, думаю придется учить Jass

Если ты сделаешь так как я сказал, вероятность глюков минимальна. Другое дело, что полярки утечны и после нескольких десятков применений такого закла начнутся лаги.
Quote (Shock-_-)
думаю придется учить Jass

Удачи. Но вначале лучше подучи массивы и циклы.
 

ZmeyGormonbl4Дата: Вторник, 25 Января 2011, 03:44:47 | Сообщение # 20
3 уровень
Группа: Пользователи
Сообщений: 53
Награды: 0
Репутация: 8
Блокировки:
Лично я в таком случае пользовался локальными переменными.

Предположим такую ситуауию:
Юнит умирает, после чего мне нужно произвести определенные действия, подождать, произвести еще какие то действия.
Проблема такая же, пока будут происходить нужные действия, умереть может другой юнит что закосячит весь процесс.
Локальные переменные существуют только внутри триггера и используются только этим триггером.

Я делал так:

Юнит умирает.
<Какие то условия>
cs: local unit m //этим я обьявил локальную переменную типа юнит с названием "m"
Set D_unit = Dying unit //я записал в глобальную переменную "D_unit" погибшего юнита
cs: set m = udg_D_unit //этим я записал в локальную переменную значение из глобальной (т.е. погибшего юнита), "udg_" означает что это глобальная переменная
<какие то действия с переменной D_unit>
<ждем> //пока мы ждали, значение D_unit уже сменилось
cs: set udg_D_unit = m //переписываем значение локальной переменной обратно в глобальную
<еще какие то действия с переменной D_unit>

таким образом, после смерти юнит записывается в локальную переменную и действия с ним выполняются независимо.


 

PUVerДата: Вторник, 25 Января 2011, 07:10:38 | Сообщение # 21
Сухопутные крысы!
Группа: Модераторы
Сообщений: 4462
Награды: 8
Репутация: 1845
Блокировки:
Название темы должно отражать суть вопроса.
 

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

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