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

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

Ответ
 
Srezi
Гость
Опыт: n/a
GetLocalPlayer() и SetUnitAnimation()
Будет ли десинхр если использовать такую вещь?
	unit u=GetTriggerUnit()
	if GetLocalPlayer()==Player(0){
		call SetUnitAnimation(u, "stand" )
	}
	u=null
________________
пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ...
Старый 11.01.2014, 20:28
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Проверь - узнаешь.

Clamp добавил:
Более того, есть примеры работы со строками при создании локальных действий.
Старый 11.01.2014, 21:10
Srezi
Гость
Опыт: n/a
Clamp:
Проверь - узнаешь.
Clamp добавил:
Более того, есть примеры работы со строками при создании локальных действий.
Ну через строку я могу... Мне интересно, можно ли напрямую с анимацией работать.
Проверить не могу никак, вот решил сюда обратиться.
________________
пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ...
Старый 11.01.2014, 21:23
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,297
Активность:
Srezi, Будет. Только надо делать так:
((код jass
local unit u = GetTriggerUnit
local string str = "stand"
if GetLocalPlayer() == Player(0) then
SetUnitAnimation(u, str )
endif
set u = null
set str = null
))
или делать анимацию с помощью SetUnitAnimationByIndex - тогда не понадобится плодить строки....
Старый 12.01.2014, 10:32
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
quq_CCCP, а теперь смотри правильное решение и ищи разницу.
function AddLocalAnimation takes string anim, unit u, player p returns nothing
	local string e = ""
	if (GetLocalPlayer() == p) then
		set e = anim
	endif
	call SetUnitAnimation(u, e)
endfunction
void AddLocalAnimation(string anim, player p, unit u)
{
	string e = ""
	if(GetLocalPlayer() == p)
	{
		e = anim
	}
	SetUnitAnimation(u, e)
}

Отредактировано Clamp, 16.01.2014 в 11:16.
Старый 12.01.2014, 15:50
Srezi
Гость
Опыт: n/a
Clamp:
quq_CCCP, а теперь смотри правильное решение и ищи разницу.
function AddLocalAnimation takes string anim, unit u returns nothing
	local string e = ""
	if (GetLocalPlayer() == pl) then
		set e = anim
	endif
	call SetUnitAnimation(u, anim)
endfunction
void AddLocalAnimation(string anim, unit u)
{
	string e = ""
	if(GetLocalPlayer() == pl)
	{
		e = anim
	}
	SetUnitAnimation(u, anim)
}
Лично по мне так копия:D но на разных видах одного и того же языка)
Тему можно офать, я разобрался в проблеме.
________________
пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ...
Старый 12.01.2014, 20:09
Diabfall
че?
offline
Опыт: 5,843
Активность:
Clamp:
SetUnitAnimation(u, anim)
SetUnitAnimation(u, e)

Отредактировано Diabfall, 12.01.2014 в 20:36.
Старый 12.01.2014, 20:31
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Diabfall, да, точно, спасибо.
Srezi, он локально вызывал функцию, я локально менял переменную. У него десинк может быть, у меня нет.
Старый 12.01.2014, 22:46
ScorpioT1000
Работаем
offline
Опыт: отключен
quq_CCCP, что-то ты опять не то пишешь. Суть в изменении данных локально, не меняя локально саму операцию, которая может синхронизироваться. На самом деле скорее всего, это не синкается, ибо ряд анимаций у каждого игрока рандомно свой.
Старый 13.01.2014, 04:07
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,297
Активность:
ScorpioT1000, там большая проблема строка которая создаётся чем вызов функции, Камеру то мы можем двигать локально и заставлять игрока выбирать юнитов - не десинхает...
А строчки то кеширются в память под своим ид как обьекты...
Старый 13.01.2014, 06:45
ScorpioT1000
Работаем
offline
Опыт: отключен
создание переменных и объектов "простых" типов, в том числе string, не синхронизируется
Старый 13.01.2014, 07:17
DioD

offline
Опыт: 45,134
Активность:
string не синхронизируется, но если создать переменную локально, будет разница в стрингтаблице и ретурн баг на строках будет возвращать разные числа на разных машинах, что может привести к проблеме.
сейчат ретурнбага на строках нет, так что всё равно.
Старый 13.01.2014, 17:03
ScorpioT1000
Работаем
offline
Опыт: отключен
DioD, ретурнбаг на строках не стоит делать хотябы потому, что на разных локализациях строки могут иметь разные индексы
Старый 14.01.2014, 12:52
DioD

offline
Опыт: 45,134
Активность:
локализация игнорировалась всегда всеми разработчиками, считалось что только на английской версии играют.
Старый 14.01.2014, 12:55
ScorpioT1000
Работаем
offline
Опыт: отключен
почему, тоадкоп на немецкой играет
Старый 14.01.2014, 13:07
DioD

offline
Опыт: 45,134
Активность:
это его проблемы, я не видел ни одной карты где делается поправка на это, мудота замечательный пример реализации.
Старый 14.01.2014, 17:24
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,297
Активность:
DioD:
сейчат ретурнбага на строках нет, так что всё равно.
o rly? а что с
((код jass
native StringHash takes string s returns integer
))
Мб кто юзает а тут начнутся чудеса....
Старый 15.01.2014, 05:38
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
quq_CCCP, stringtable != hashtable
Как я понимаю, handle является ссылкой на ячейку в hashtable, в которой записан адрес строки в памяти.
Старый 15.01.2014, 05:44
DioD

offline
Опыт: 45,134
Активность:
ну что умнечег, а ты верни мне сроку по числу?~quq_CCCP,
Старый 15.01.2014, 19:49
ScorpioT1000
Работаем
offline
Опыт: отключен
quq_CCCP, hash - математическая функция ...
Старый 15.01.2014, 20:33
Ответ

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

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

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

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



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