Сейчас 15:43:25 Суббота, 20 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Десинхронизация
Десинхронизация
SirNikolasДата: Пятница, 03 Июня 2011, 17:49:42 | Сообщение # 1
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Будет ли этот ужас в каком-либо из двух случаев:
Code
function SetTextTagVisibleWithCond takes texttag t, boolean b returns nothing
     call SetTextTagVisibility(t, b)
endfunction

//...
     call SetTextTagVisibleWithCond(t, GetLocalPlayer() == p)
//...
Code
globals
     constant trigger udg_Trigger = CreateTrigger()
endglobals

function SetTextTagVisibleWithCond takes texttag t, code f returns nothing
     local triggercondition tc = TriggerAddCondition(udg_Trigger, Filter(f))
     call SetTextTagVisibility(t, TriggerEvalute(udg_Trigger))
     call TriggerRemoveCondition(udg_Trigger, tc)
     set tc = null
endfunction

//...

function VisCond takes nothing returns boolean
     return GetLocalPlayer() == udg_Player
endfunction

//...
     set udg_Player = p
     call SetTextTagVisibleWithCond(t, function VisCond)
//...

И если десинхронизировать будет в обоих случаях, посоветуйте, пожалуйста, как избавиться от этого.
P. S. Вариант без дополнительной функции не предлагать.


 

AjaccioДата: Пятница, 03 Июня 2011, 18:08:38 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
В первом точно нет, во втором... честно с трудом понимаю, что там происходит и зачем. Впрочем тоже сомнительно, функция должна вернуть каждому игроку свой результат.

XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

DeadJassДата: Пятница, 03 Июня 2011, 18:09:01 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
SirNikolas, Десинк не бывает при визуальных изминениях. Но я не уверен.


^ кликабельно
Archers Of The Island v1.8 - на стадии завершения
 

SirNikolasДата: Пятница, 03 Июня 2011, 18:13:26 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
В первом варианте буль проверяется до передачи в функцию, во втором создается условие для триггера и проверяется внутри функции.

Добавлено (03-06-2011, 18:13)
---------------------------------------------

Quote (DeadJass)
Десинк не бывает при визуальных изминениях.
Это я понимаю. Но в первом случае мы передаем в функцию разные значения для каждого игрока, а во втором химичим с триггерами.


 

AjaccioДата: Пятница, 03 Июня 2011, 18:33:07 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Код выполняется на каждой машине отдельно, сравниваются таблица handl'ов, глобальные переменные и ещё до кучи всякой всячины.
Но к локальным данным это, я думаю, не относится, поэтому можно химичить спокойно.

Также на XGM писали, что игра синхронизирует данные ~ каждые 0.05 секунды...
Поэтому второй способ тоже должен быть безопасным, ибо к проверке triggercondition может уже не существовать вообще.

А вообще идеально использовать это.


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

FkoFFДата: Пятница, 03 Июня 2011, 18:42:15 | Сообщение # 6
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
одно важное упущение - GetLocalPlayer() Нельзя задавать как аргумент.

Добавлено (03-06-2011, 18:42)
---------------------------------------------

Quote (Ajaccio)
глобальные переменные и ещё до кучи всякой всячины. Но к локальным данным это, я думаю, не относится, поэтому можно химичить спокойно.

исполняемый код.

Фишка в том что для всех игроков исполняемый код должен быть одинаковой длинны, иначе вполне может быть десинк.


 

SirNikolasДата: Пятница, 03 Июня 2011, 18:45:04 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ajaccio)
А вообще идеально использовать это.
Забавно. Только возник один вопрос по настройке:
Quote (SDreary)
1.2. Настройка Адаптера.
1. Подключите адаптер (запустите)
2. Нажмите правой кнопкой мыши по адаптеру и выберите Свойства.
3. Выберите протокол (TCP/Ipv4).
4. Установите IP адрес 192.168.0.1 (можете ставить вместо 1 другое число).
Маска подсети 255.255.0.0 и жмем ОК.
Что такое Адаптер?


 

AjaccioДата: Пятница, 03 Июня 2011, 18:58:15 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Ха, над расшифровкой придется подумать, а то как же? Просто там находиться гордый перевод ПРОМТ'а, а первоисточник найти не так-то просто. smiletrollskip
Хотя здесь... похоже речь о Панель Управления -> Сеть и Интернет -> Центр управления сетями и общим доступом -> Изменение параметров адаптера (сбоку).
Там Правая кнопка -> Свойcтва -> Выбирайте протокол интернета TCP (4-ую версию) и дальше по списку...


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Десинхронизация
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz