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

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

Ответ
 
Артас Менетил

offline
Опыт: 7,002
Активность:
Значение переменной и GetLocalPlayer()
Есть значит числовая переменная a.
Допустим, при помощи выкрутасов с GetLocalPlayer() я делаю так, чтобы у Красного игрока переменная a равнялась x, а у остальных - y.
Как теперь сделать так, чтобы значение переменной a у Красного игрока распространилось на всех игроков, т.е. чтобы у всех переменная a стала равна x?
Надеюсь, я вполне вменяемо задал вопрос...
Старый 03.06.2012, 15:39
J64_

offline
Опыт: 4,724
Активность:
А зачем тебе такое вытворять?
Что-то вроде этого можно проделать с помощью кеша:
globals
	gamecache myGamecache = InitGameCache ()
	integer myIntVariable = 0
endglobals

function bar takes nothing returns nothing
	call TriggerSyncStart ()
	call SyncStoredInteger (myGamecache, "", "")
	call TriggerSyncReady ()
	set myIntVariable = GetStoredInteger (myGamecache, "", "")
endfunction
function foo takes integer p, integer i returns nothing
	if (GetLocalPlayer() == Player(p)) then
		call StoreInteger (myGamecache, "", "", i)
	endif
	call Execute ("bar")
endfunction
Применение этому я нашел только для камеры.
Старый 03.06.2012, 15:55
Doc

offline
Опыт: 63,163
Активность:
Старый 03.06.2012, 16:09
JassMan
свободен
offline
Опыт: 4,193
Активность:
function ReturnInteger takes player p returns integer
if(GetLocalPlayer()==p)then
    return udg_i
endif
return 0 // Защита от фатала, если проверка if не пройдет по неизвесным причинам. . .
endfunction
где в глобальную переменную i заранее записанно искомое данное у нужного нам игрока.
Как образец, таким образом:
if(GetLocalPlayer()==игрок)then
set udg_i=a
endif
И теперь, чтоб у всех игроков записалось данное выполняй это:
set a=ReturnInteger(игрок)
На месте слова игрок надо указать того игрока, у которого берем переменную
И так можно сделать для любого типа переменных, создав подобные функции поменяв слова integer на другие нужные типы.

Отредактировано JassMan, 07.06.2012 в 18:18.
Старый 07.06.2012, 18:12
ScorpioT1000
Работаем
offline
Опыт: отключен
JassMan, ты сам то это пробовал?
Старый 07.06.2012, 18:39
JassMan
свободен
offline
Опыт: 4,193
Активность:
Хз что у тя, а у меня работало, когда пытался синхронизировать данные с мультибоардов.

Отредактировано Nerevar, 07.06.2012 в 19:18.
Старый 07.06.2012, 18:59
Arti

offline
Опыт: 11,196
Активность:
JassMan, это как в integer помещается 12 значений? магия чё
Старый 07.06.2012, 20:06
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
использовал бы массив целочисленных и не парился емае
Старый 07.06.2012, 20:09
ScorpioT1000
Работаем
offline
Опыт: отключен
Toadcop, 07.06.2012 19:33:53:
и какой жопой оно должно синкатся ? )
Toadcop, 19:34:21:
код по определению работает просто парарельно
Toadcop, 19:34:25:
ну т.е. сам по себе
ScorpioT1000, 19:34:42:
да и я о том же
Toadcop, 19:34:43:
если можно то это чудо вуду магия лол
Старый 07.06.2012, 20:53
Doc

offline
Опыт: 63,163
Активность:
JassMan, ты ошибаешься наверное. это работать не будет, либо ты не понял вопроса.
Старый 07.06.2012, 22:22
JassMan
свободен
offline
Опыт: 4,193
Активность:
А ну да, я забыл что я там кэш для этих целей юзал. . .
Немного перепутал с чем то другим.
Мапа не осталась, писал обрывками памяти.
Старый 08.06.2012, 03:32
Ответ

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

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

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

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



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