|
|
|
|
Помоги разобрать Jass код на части
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 09:40:46 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Здравствуйте! Помогите, пожалуйста, я в джассе не понимаю... можете привести пример как на ГУИ(с использованием custom script только там где ГУИ нету) сделать вот этот код: Код local integer i = 'h000' local integer l = 0 loop exitwhen (l == 11) if (l == 0 and GetLocalPlayer() == Player(0)) then set i = 'h001' endif call CreateUnit(Player(l), i, 0., 0., 0.) set i = 'h000' set l = l + 1 endloop
|
|
|
|
Melodia | Дата: Суббота, 07 Сентября 2013, 10:26:39 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
| Лучше скажи, что тебе надо Цитата (Наклз) local integer i = 'h000' ???
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 11:31:19 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| ну создать юнитов, одинаковых для всех, но один из игроков будет видеть своего юнита другим... ну например на вид они одинаковые, но имя они когда нажмут будут видеть имя юнита "Математик", а тот кто им контролит "Химик".... вычитал что можно такое сделать с помощью этого кода, "h000" и "h001" это id юнитов.Добавлено (07 Сентября 2013, 11:31:19) --------------------------------------------- Кажется сам разобрался, сейчас тестану
|
|
|
|
DragoN | Дата: Суббота, 07 Сентября 2013, 11:36:42 | Сообщение # 4 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| GetLocalPlayer() на гуи нету и мне почему-то кажется, что таки будет десинк или код рабочий и отлажен другими?
El Psy Congroo
|
|
|
|
FEARKILLER | Дата: Суббота, 07 Сентября 2013, 11:42:36 | Сообщение # 5 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (Наклз) ну создать юнитов, одинаковых для всех, но один из игроков будет видеть своего юнита другим Для всех одинаковых, но только разных. Это как? Привет десинхронизация? Создание через локальногоигрока юнитов это не нормально, но можно скрывать локально юнитов для определённых игроков, тоесть я могу предложить создать оба вида юнитов для всех игроков, но скрывать ненужных и показывать наоборот нужных.
Делаю из воды вино, хожу по воде...
Сообщение отредактировал FEARKILLER - Суббота, 07 Сентября 2013, 11:43:09 |
|
|
|
Melodia | Дата: Суббота, 07 Сентября 2013, 11:49:13 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
| Цитата (FEARKILLER) Создание через локальногоигрока юнитов это не нормально, но можно скрывать локально юнитов для определённых игроков, тоесть я могу предложить создать оба вида юнитов для всех игроков, но скрывать ненужных и показывать наоборот нужных. дык десинх же будет при попытке дать приказ скрытому локально юниту Цитата (DragoN) GetLocalPlayer() на гуи нету не ну кс-ку ничего не мешает нам вставить то.ыДобавлено (07 Сентября 2013, 11:49:13) --------------------------------------------- надо тогда создавать все юниты, а локально делать прозрачными, при попытке пикнуть не своего юнита - будет пикаться свой
|
|
|
|
FEARKILLER | Дата: Суббота, 07 Сентября 2013, 11:59:18 | Сообщение # 7 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (Melodia) дык десинх же будет при попытке дать приказ скрытому локально юниту Скрытому юниту можно отдавать приказы и он будет их выполнять. Скрой лучника и прикажи триггерно атаковать другого юнита, и он будет это делать. Стрелы будут вылетать из неоткуда. Ну и хотелось бы узнать что эти юниты будут делать? Их роль в игровом процессе?
Делаю из воды вино, хожу по воде...
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 12:25:35 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Цитата (FEARKILLER) Создание через локальногоигрока юнитов это не нормально юниты создаются нормально, просто id юнита указывается через переменную, которую для одного игрока изменили локально..Добавлено (07 Сентября 2013, 12:25:35) --------------------------------------------- Кстати я проверил, работает, все видят моего юнита как пехотинца, а я вижу его как зомби... и десинха нету... он появляется когда юнит умирает, но я планирую его перед смертью убрать из игры тригом и десинха не будет Просто этот триггер я копипаст, может кто сказать как сделать такое на ГУИ с использованием кустом скрипт только там, где это не обходимо
|
|
|
|
Melodia | Дата: Суббота, 07 Сентября 2013, 12:56:19 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
| Цитата (FEARKILLER) Скрытому юниту можно отдавать приказы и он будет их выполнять. хмм, неужели я чтото спутал, сам же помню десинх в своей "Монополии", когда скрывал локально юниты. Мне тогда так и сказали, что скрывать можно но нельзя ордеры давать...Цитата (Наклз) как сделать такое на ГУИ прям с локалками?
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 13:08:48 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| та хоть и с глобалками
|
|
|
|
FEARKILLER | Дата: Суббота, 07 Сентября 2013, 13:19:32 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (Melodia) хмм, неужели я чтото спутал, сам же помню десинх в своей "Монополии", когда скрывал локально юниты. hmm Мне тогда так и сказали, что скрывать можно но нельзя ордеры давать... Я сказал что он при скрытии не лишается возможности атаковать, и если есть возможность атаковать, то он посути у всех игроков будет атаковать, а вот насчёт получения урона я не знаю как скрытый юнит будет реагировать. Если хочешь можешь поэкспериментировать, кто не даёт. Я лично все подобные заморочки с локальным созданием объектов стороной обхожу. Цитата (Наклз) как сделать такое на ГУИ с использованием кустом скрипт Цитата (Melodia) прям с локалками? Цитата (Наклз) та хоть и с глобалками В гуи, при создании юнита нужна обязательно точка и не проще тогда весь этот кусок кода записать полностью как есть, при помощи cs? Локалки можно глобалками только заменить, чтобы к ним можно было обращаться через гуи.
Делаю из воды вино, хожу по воде...
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 13:27:44 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Цитата (FEARKILLER) нужна обязательно точка центр карты мне тоже не очень как-то подходит, так что точка убдет кстати...
|
|
|
|
FEARKILLER | Дата: Суббота, 07 Сентября 2013, 13:54:01 | Сообщение # 13 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (Наклз) центр карты мне тоже не очень как-то подходит, так что точка убдет кстати... Тода тебе нужно только jass условие внутри цикла: Код if bj_forLoopAIndex==1 and GetLocalPlayer()==Player(0)then //Переменная сравкодом юнита (строчка на гуях) endif Всё остальное и сам цикл, создание юнита и точка на гуях делай.
или без целочисленной переменной делай: Код if bj_forLoopAIndex==1 and GetLocalPlayer()==Player(0)then //Создать Юнита 1 (строчка на гуях) else //Создать Юнита 2 (строчка на гуях) endif
Делаю из воды вино, хожу по воде...
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 14:30:00 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Цитата (FEARKILLER) //Переменная сравкодом юнита (строчка на гуях) какого юнита? зомби или пехотинца? и ещё, а если мне надо только одному игроку создать, ну я имею введу не 12 юнитов, а только одного...
|
|
|
|
FEARKILLER | Дата: Суббота, 07 Сентября 2013, 15:12:10 | Сообщение # 15 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (Наклз) какого юнита? зомби или пехотинца? Ну в условии у тебя стоит 'h001', я не знаю кто это, пех или зомбарь. Цитата (Наклз) и ещё, а если мне надо только одному игроку создать, ну я имею введу не 12 юнитов, а только одного... Не понял. Но ведь и так создаётся только для одного красного игрока другой вид юнита('h001'), для всех других игроков иной('h000').
или
Делаю из воды вино, хожу по воде...
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 15:48:36 | Сообщение # 16 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Цитата (FEARKILLER) Не понял. Ну я имел введу что бы создавалось не 12 юнитов... а один... да и ладно, с этим я сам разберусь. Второй вариант какой-то дикий, а за - огромное спасибо! тему можно закрывать.
Сообщение отредактировал Наклз - Суббота, 07 Сентября 2013, 15:50:37 |
|
|
|
DragoN | Дата: Суббота, 07 Сентября 2013, 16:10:08 | Сообщение # 17 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| Цитата (FEARKILLER) if bj_forLoopAIndex==1 and GetLocalPlayer()==Player(0)then //Создать Юнита 1 (строчка на гуях) else //Создать Юнита 2 (строчка на гуях) endif идиотизм, тогда точно десинк будет функция создания должна быть ВНЕ GetLocalPlayer(), просто в зависимости от игрока в неё будут поданы несколько разные параметры устанавливать надо переменную целочисленную, а не юнита 'h000' это raw code, а переменная юнита - виджет вроде
El Psy Congroo
|
|
|
|
Melodia | Дата: Суббота, 07 Сентября 2013, 16:34:55 | Сообщение # 18 |
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
| Вроде А пишется GetForLoopIndexA() или это одно и то же? Только там бж а там не бж...ыыыыы
|
|
|
|
DragoN | Дата: Суббота, 07 Сентября 2013, 17:52:07 | Сообщение # 19 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| Цитата (Наклз) Ну я имел введу что бы создавалось не 12 юнитов... а один... да и ладно, с этим я сам разберусь. Второй вариант какой-то дикий, а за чувак, ты создание юнита из цикла вытащи, в цикле только переменную изменяй, хотя я что-то не особо вижу смысл в цикле:О
El Psy Congroo
|
|
|
|
Hexing | Дата: Суббота, 07 Сентября 2013, 19:17:13 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Цитата (DragoN) хотя я что-то не особо вижу смысл в цикле:О +1
|
|
|
|
Наклз | Дата: Суббота, 07 Сентября 2013, 19:22:25 | Сообщение # 21 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Цитата (Наклз) с этим я сам разберусь. Цитата (DragoN) идиотизм, тогда точно десинк будет поэтому я и написалЦитата (Наклз) Второй вариант какой-то дикий, а за - огромное спасибо! и ещё что, немало важное: Цитата тему можно закрывать. Всем спасибо за помощь.
Сообщение отредактировал Наклз - Суббота, 07 Сентября 2013, 19:23:17 |
|
|
|
FEARKILLER | Дата: Суббота, 07 Сентября 2013, 23:33:24 | Сообщение # 22 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (DragoN) идиотизм, тогда точно десинк будет функция создания должна быть ВНЕ GetLocalPlayer(), просто в зависимости от игрока в неё будут поданы несколько разные параметры устанавливать надо переменную целочисленную, а не юнита 'h000' это raw code, а переменная юнита - виджет вроде Переменная юнита unit далее->widget->agent->handle. Но, собственно какая разница то? Ты всё равно локально подставляешь равкод и CreateUnit() уже вернёт не тот тип юнита для одного из игроков, а значит она будет в любом случае. Объекты должны быть у всех всегда одинаковыми. Вот же пишет человек, проверивший: Цитата (Наклз) десинха нету... Цитата (Наклз) он появляется когда юнит умирает
И вообще, я считаю что это глупая затея, создавать разные объекты локально. Можно ведь поискать какие нибудь другие варианты или просто отказаться от этой идеи. Но она не моя, поэтому пусть Наклз сам решает.
Делаю из воды вино, хожу по воде...
|
|
|
|
Extremator | Дата: Воскресенье, 08 Сентября 2013, 04:23:24 | Сообщение # 23 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
| Цитата (Наклз) создать юнитов, одинаковых для всех, но один из игроков будет видеть своего юнита другим... дисконект же сразуДобавлено (08 Сентября 2013, 03:42:52) ---------------------------------------------
Цитата (Наклз) Кстати я проверил, работает, все видят моего юнита как пехотинца, а я вижу его как зомби... и десинха нету... он появляется когда юнит умирает, но я планирую его перед смертью убрать из игры тригом и десинха не будет Просто этот триггер я копипаст, может кто сказать как сделать такое на ГУИ с использованием кустом скрипт только там, где это не обходимо а разве там не будет десинха хотя бы за счёт разницы в скоростидвижения, атаки, регенерации, и других параметров из РО ?Добавлено (08 Сентября 2013, 03:47:00) ---------------------------------------------
да они все как то не оченьДобавлено (08 Сентября 2013, 04:23:24) --------------------------------------------- Вообще должно быть как то так... И нахрена вам цикл?
|
|
|
|
Наклз | Дата: Воскресенье, 08 Сентября 2013, 09:33:30 | Сообщение # 24 |
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
| Цитата (Extremator) а разве там не будет десинха хотя бы за счёт разницы в скоростидвижения, атаки, регенерации, и других параметров из РО ? они будут одинаковые, изменения только визуальные.Добавлено (08 Сентября 2013, 09:33:30) ---------------------------------------------
Цитата (Extremator) Цитата (Наклз) создать юнитов, одинаковых для всех, но один из игроков будет видеть своего юнита другим... дисконект же сразу блин тебе хостануть что ли, что бы ты убедился
|
|
|
|
Hexing | Дата: Воскресенье, 08 Сентября 2013, 15:05:06 | Сообщение # 25 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Extremator, видимо все параметры кроме имени модели одинаковы, поразительно что нет десинка
|
|
|
|
|
|
|
|
|
|
|