XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ZeToX2007

offline
Опыт: 7,009
Активность:
Юнит для локального игрока
Непредставляю как сделать так, чтобы модель юнита, для разных игроков была разная. То есть, есть специальный пак моделей и звуков, у кого устоновлен он, у того отображаются новые модели и звуки.. у кого нет - у того стандартные варовские
Старый 13.05.2010, 21:22
Doc

offline
Опыт: 63,163
Активность:
Создавай локалку инт равную равкоду твоего юнита и локально устанавливай ее значение. Создавай для всех.
Старый 13.05.2010, 21:31
ZeToX2007

offline
Опыт: 7,009
Активность:
DoctorGester, С юнитами возникает дисинк
Старый 13.05.2010, 21:34
Doc

offline
Опыт: 63,163
Активность:
Нет, Ануфис проверял. Юниты должны быть абсолютно одинаковые с разными моделями.
Старый 13.05.2010, 21:37
ZeToX2007

offline
Опыт: 7,009
Активность:
Пойду протестю:

Код:
int id = 'x000';
if(GetLocalPlayer() = Player(1))
{
    id = 'x001';
}

CreateUnit(id.......);
Старый 13.05.2010, 21:58
Doc

offline
Опыт: 63,163
Активность:
Да именно так. Кстати либо я не шарю либо скобки в условие не нужны.
Старый 13.05.2010, 22:19
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
DoctorGester, да, ты не шариш, это cjass.
Старый 13.05.2010, 22:52
Hellfim
Новичок
online
Опыт: 79,707
Активность:
ZeToX2007, просто у юнитов должны быть одинаковыми параметры, влияющие на синхронизацию. Основной - физ. размер, т.к. влияет на карту путей и десинк происходит сразу, остальное - только если будешь использовать (атака должна быть без разброса, с одинаковым кд, ну ты понял...)
Старый 13.05.2010, 23:00
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от Hellfim
атака должна быть без разброса

Без разброса ? или с одинаковым разбросом?

ZeToX2007 добавил:
Цитата:
Сообщение от bee
DoctorGester, да, ты не шариш, это cjass.

в с++ можно без скобок в таком случае, в сJass'e вроде тоже, но как-то не проверял
Старый 14.05.2010, 00:26
ScorpioT1000
Работаем
offline
Опыт: отключен
вы что, упоролись? естественно нельзя. максимум ты можешь прикрепить разные эффекты на даммики. о каких типах идет речь? вы пробовали вобще?
Старый 14.05.2010, 00:28
Anufis

offline
Опыт: 6,290
Активность:
Цитата:
Сообщение от ScorpioT1001
вы что, упоролись? естественно нельзя. максимум ты можешь прикрепить разные эффекты на даммики. о каких типах идет речь? вы пробовали вобще?

Да. Всё прекрасно работает.

Anufis добавил:
Цитата:
Сообщение от Hellfim
ZeToX2007, просто у юнитов должны быть одинаковыми параметры, влияющие на синхронизацию. Основной - физ. размер, т.к. влияет на карту путей и десинк происходит сразу, остальное - только если будешь использовать (атака должна быть без разброса, с одинаковым кд, ну ты понял...)

Помоему разброс не влияет, хотя хз.
Я просто в РО копирую юнита, у второго меняю модель и масштабирование. Большего мне и не надо.
Старый 14.05.2010, 17:37
ZeToX2007

offline
Опыт: 7,009
Активность:
Ещё 1 вопрос: а такое прокатит с абилами/бафами/предметами.

ZeToX2007 добавил:
ЗЫ: замена иконки.
Старый 15.05.2010, 19:08
Anufis

offline
Опыт: 6,290
Активность:
Цитата:
Сообщение от ZeToX2007
ЗЫ: замена иконки.

Я думаю, если писать триггерный спелл, то может быть и прокатит. Попробуй, узнаешь. Таким еще никто не занимался, так что не знает никто.
Старый 15.05.2010, 22:19
ZeToX2007

offline
Опыт: 7,009
Активность:
а как отловить событие применение заклинание, если для локальных игроков разный -id спела ?
Старый 15.05.2010, 22:31
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
как вариант делать много триггеров для каждого...
Старый 15.05.2010, 22:47
Anufis

offline
Опыт: 6,290
Активность:
Цитата:
Сообщение от bee
а как отловить событие применение заклинание, если для локальных игроков разный -id спела ?

Код:
function Condition takes nothing returns boolean
  return GetSpellAbilityId()=='A000' or GetSpellAbilityId()=='A001'
endfunction

Второй вариант, который я использую для ID юнитов, с помощью таких функций(и аналогично для спеллов/итемов можно сделать)

Код:
function AdvancedModel takes integer id returns integer //определяет id модели для отрисовки
  local integer id1=LoadInteger(udg_h,id,2)
  local integer id2=LoadInteger(udg_h,id,3)
  local integer ans=id
  if id1==0 or id2==0 then
    return id
  endif
  if udg_Advanced[1+GetPlayerId(GetLocalPlayer())] then
    set ans=id2
  endif
  return ans
endfunction

function FirstModel takes integer p returns integer //первая модель
// это для проверок нв ID юнита использую (на всякий случай от десинков)
  local integer s=LoadInteger(udg_h,p,2)
  if s!=0 then
    return s
  endif
  return p
endfunction

function AddAdvancedModel takes integer id1,integer id2 returns nothing//забивание в начале игры
  call SaveInteger(udg_h,id1,2,id1)
  call SaveInteger(udg_h,id1,3,id2)
  call SaveInteger(udg_h,id2,2,id1)
  call SaveInteger(udg_h,id2,3,id2)
endfunction

Отредактировано Anufis, 16.05.2010 в 11:59.
Старый 16.05.2010, 11:53
ZeToX2007

offline
Опыт: 7,009
Активность:
Anufis, А у меня был вариант в условии делать сравнение с переменной, где глобалка для игроков разная, так-же как в спелах
Старый 16.05.2010, 12:26
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:55.