Вообщем, такой трабл, написал первый раз код на создание, пошел тестить с другом, как и ожидалось выдал фатал.
Потом порылся на сайте, нашел решение:
Создать юнита двух одинаковых, но для нашего помеять модель. Так и сделал(понимаю, что у меня будет милион юнитов, но всё же для теста). Юнитов создает, но я не могу к ним обратиться.
В итоге, надо создать юнита для одного игрока, подскажите кто сталкивался.
cdn1.savepice.ru/uploads/2017/9/7/5556f3371d3fb84edc8c6d9f66376e... моя помойка, перелопатил всё, что мог.

Принятый ответ

Можно сделать локально прозрачность, а если и управлять не нужно, то добавить москитов и будет не видимый юнит для других игроков
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
1
7 лет назад
0
Заработало в таком виде, не знаю с чего...
И всё же, есть у кого другой подход? Т.к я еще не проверял на диcинх.
TheNoyl:
Заработало в таком виде, не знаю с чего...
И всё же, есть у кого другой подход? Т.к я еще не проверял на диcинх.
Протестил, дисинх.
Загруженные файлы
0
32
7 лет назад
0
Будет всегда десинх, типы юнитов проверяются практически постоянно, у тебя будет несоответствие типов.
Локально создавать не локальные объекты не получится, будет десинх.
Максимум что можно, это сменить модельку с помощью мемхака.
Всякие там примеры про карты типа мафия, там юнитов создают как куклу, её не трогать ниче делать с ней низя...
1
13
7 лет назад
1
Можно сделать локально прозрачность, а если и управлять не нужно, то добавить москитов и будет не видимый юнит для других игроков
Принятый ответ
0
28
7 лет назад
Отредактирован nvc123
0
ты не правильно создаёшь
вот тебе пример
int rawcode='h000';
unit u;
if(Player(0)==GetLocalPlayer()){
	rawcode='h001';
}
u=CreateUnit(Player(1), rawcode, 0, 0, 0)
т.е. ты должен локально менять равкод и потом создавать юнита для всех игроков
а ты пытаешься локально создать юнита (что вызывает десинк)
0
13
7 лет назад
0
nvc123, А ты сам проверял? Просто я раньше также думал, что если поменяю не хендл, то десинка не будет, но в реальности все по другому получилось. Хотя было давно, может и не так делал.
0
28
7 лет назад
0
Borodach, проверял
если различия между типами только в модельке и нету кривых триггеров которые 1 равкод обрабатывают а другой нет то всё нормально
есть же статья на тему
0
1
7 лет назад
0
quq_CCCP:
Будет всегда десинх, типы юнитов проверяются практически постоянно, у тебя будет несоответствие типов.
Локально создавать не локальные объекты не получится, будет десинх.
Максимум что можно, это сменить модельку с помощью мемхака.
Всякие там примеры про карты типа мафия, там юнитов создают как куклу, её не трогать ниче делать с ней низя...
Мне впринципе не важно, можно и не юнитов использовать.
Главное чтобы были "пустышки" как на закрепе.
nvc123:
ты не правильно создаёшь
вот тебе пример
int rawcode='h000';
unit u;
if(Player(0)==GetLocalPlayer()){
	rawcode='h001';
}
u=CreateUnit(Player(1), rawcode, 0, 0, 0)
т.е. ты должен локально менять равкод и потом создавать юнита для всех игроков
а ты пытаешься локально создать юнита (что вызывает десинк)
Я так и делаю ._.
private integer array MODEL
private function CreateDummy takes integer id, integer did returns nothing
local integer i = 'h004'
local integer l = 0
call KillUnit(DUMMYUNIT[id])
call RemoveUnit(DUMMYUNIT[id])
loop
exitwhen (l == PLAYERCOUNTE)
if (l == 0 and GetLocalPlayer() == Player(id)) then
set i = MODEL[did]//Равкоды моих моделей
endif
set DUMMYUNIT[id] = CreateUnit(Player(l), i, DUMMYx, DUMMYy, FACEDUMMY)
set i = 'h004'
set l = l + 1
endloop
set DUMMYUNIT[id] = bj_lastCreatedUnit
call BJDebugMsg("Dummy: "+GetUnitName(DUMMYUNIT[id])+" player: "+I2S(id))
endfunction
Загруженные файлы
0
28
7 лет назад
Отредактирован nvc123
0
TheNoyl, ты какую то херню делаешь
if (l == 0 and GetLocalPlayer() == Player(id)) then
set i = MODEL[did]//Равкоды моих моделей
endif
нафига этот код в цикле?
я так понял id это номер игрока?
если да то нафига ты циклом для каждого игрока создаёшь юнитов, у тебя лишние юниты получаются
и вообще у тебя твой код работает только для красного игрока
объясни нормально что именно ты хочешь сделать
0
1
7 лет назад
0
nvc123:
TheNoyl, ты какую то херню делаешь
if (l == 0 and GetLocalPlayer() == Player(id)) then
set i = MODEL[did]//Равкоды моих моделей
endif
нафига этот код в цикле?
я так понял id это номер игрока?
если да то нафига ты циклом для каждого игрока создаёшь юнитов, у тебя лишние юниты получаются
и вообще у тебя твой код работает только для красного игрока
объясни нормально что именно ты хочешь сделать
Мне нужны пустышки. Юнит или нет, не важно, просто чтобы каждый игрок видел только свою пустышку.
Я же выше закрепил пикчи.
0
28
7 лет назад
Отредактирован nvc123
0
TheNoyl, что за пустышка?
откуда я знаю что на тех скринах пустышка
пустышкой может быть всё что угодно, начиная с модели героя которого пикаешь и заканчивая рамкой
0
1
7 лет назад
0
nvc123:
TheNoyl, что за пустышка?
откуда я знаю что на тех скринах пустышка
пустышкой может быть всё что угодно, начиная с модели героя которого пикаешь и заканчивая рамкой
Модели мне нужны не важно где: декор или юнит. Главное чтобы их видел только один игрок из всех играющих, так понятней?
0
28
7 лет назад
0
TheNoyl, опиши нормально что тебе нужно
твоя проблема в том что ты не можешь нормально сформулировать тз
я подобное уже кучу раз встречал
всегда говорят "я знаю что мне надо" и типо я не понимаю их мыслей
а как составят нормальное тз или объектную модель то и проблемы сразу исчезают
т.к. становится видно что именно сделано не правильно
а то вы сначала пишете код а потом думаете
в твоём случае для различных ситуаций надо использовать различные методы
поэтому важно чтобы ты подробно расписал что именно ты хочешь сделать
тебе не важно где юзать модели и как результат проблемы
т.к. это важно для движка игры
короче ждём подробное описание того что ты хочешь сделать
не конкретно с моделями а вообще
для чего тебе это нужно
т.к. у тебя архитектура кривая
0
13
7 лет назад
0
TheNoyl, дай юниту москиты и сделай локально прозрачным для остальных игроков.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.