BizzaroFukuro
MWS Hardcore
offline
Опыт:
2,178Активность: |
Проблема с чатом и плавающим текстом
Возникла проблема с написанием чат-системы.
Суть системы в том, что вводимые игроков сообщения отображаются над его юнитом в игре в виде плавающего текста, прикреплённому к этому юниту. Однако в мультиплеере возникает какой-то баг, из-за которого сообщения появляются не над тем юнитом, над которым надо (а над юнитом другого игрока, даже если он мёртв). Это проявляется, только когда как минимум 2 игрока будут что-то писать с неизвестной скоростью или в неизвестные моменты времени... Много раз тестировал, но так и не понял в чём может быть проблема. Собственно ниже приводятся 2 триггера и сама карта. Код:
Код:
|
15.07.2010, 14:08 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
возможно, ячейка юнитов у тебя начинается не с 0, а с 1. |
15.07.2010, 15:25 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BizzaroFukuro
MWS Hardcore
offline
Опыт:
2,178Активность: |
bee,
>.< ... с этим всё правильно и это здесь не причем |
15.07.2010, 15:56 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Icy
Это Я!
offline
Опыт:
1,785Активность: |
Чтобы сообщение не появлялось на трупах: if GetUnitState(udg_victim[id],UNIT_STATE_LIFE)>0.5 then
П.С: Точное значение жизни при которой юнит умирает не помню, но помню что больше 0.4 и меньше 0.5
А появляются хз где сообщения наверное из-за этого: exitwhen i > 11, ты должен либо проверять игрока в игре, либо создать массив в котором содержатся только играющие игроки и уже по нему проходиться до <кол-во играющих>
П.С: точно не знаю почему вар себя так ведёт, когда работает с несуществующей ячейкой, но есть предположение, что он либо убивает поток с ошибкой, либо движковые ссылки смешиваются из-за ошибки. Да, и чуть не забыл, есть один косяк у тебя "set udg_LocalTexttag[id] = CreateTextTag()", ты создаешь текстаг каждый раз, когда кто то пишет в чат, проверяй на наличие существующего текста в ячейке(метод "КРИВОЙ РУКИ и ПОПЫ") или же заранее создавать по тексту на каждого играющего игрока(тру метод) |
15.07.2010, 17:36 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BizzaroFukuro
MWS Hardcore
offline
Опыт:
2,178Активность: |
Цитата:
(но сомневаюсь что поможет) |
|
15.07.2010, 18:14 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
if(GetWidgetLife(udg_victim[id])>0.405)then |
15.07.2010, 18:45 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Icy
Это Я!
offline
Опыт:
1,785Активность: |
~JassMan, точно =)
хм... сейчас проверил и действительно, текстаг нада создавать при самом событии, да и видимо он сам уничтожается, а не просто скрывается функцией Лайфспан Сори за дезинформацию. Код:
Код:
Отредактировано Icy, 15.07.2010 в 19:29. |
15.07.2010, 19:11 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
BizzaroFukuro
MWS Hardcore
offline
Опыт:
2,178Активность: |
Не знаю, где вы нахватались бреда про 0.405, но причина всё равно не в этом.
Система заработала только когда я создал массив тексттагов 1 раз при инициализации и использовал их (пришлось погеморроиться с фейдом). Почему не работал первичный вариант (в первом посте), для меня всё равно остаётся загадкой до сих пор. Теперь возник другой вопрос: иногда у тексттага пропадает чёрная тень под ним, как её вернуть? |
22.07.2010, 13:09 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|