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

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

Ответ
 
alfaFenix

offline
Опыт: 60
Активность:
Баг карты - отлетает часть игроков
Помогите пожалусто, такая проблема: Создаём с другом карту и неможем нормально сделать баланс потому что постоянно отлетают от 1 до 4 играков. Игра как бы делится на 2 под игры, одна половина играет отдельно и другая тоже.....
Уже 4 дня ищем ошибку неможем найти, помогите кто может.

Вот ссылка на карту http://files.mail.ru/RYIK8H
Старый 13.09.2008, 00:41
NETRAT

offline
Опыт: 83,712
Активность:
десинхронизация...
Старый 13.09.2008, 01:21
agentex

offline
Опыт: 34,834
Активность:
глянул карту. тригеры конешно кривовато сделаны, но вроде ничего критичного нет..
уточни в каком месте (после чего) происходит вылет?
Старый 13.09.2008, 11:17
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Цитата:
если в иначе ничего не стоит (даже call do nothing) - то поток с треском грохается апстену
бред, это уже не раз обсуждалось

поддерживаю нт - это десинк, нужно просто его найти )
Старый 13.09.2008, 11:36
adic3x

offline
Опыт: 108,439
Активность:
  1. используется ли функция GetLocalPlayer() ? (даже в гуи подфункциях)
я точно не помню, но какие то бж действия, толи с камерой, толи с хз чем вызывали десинк
Старый 13.09.2008, 11:43
alfaFenix

offline
Опыт: 60
Активность:
ТТ, я же не супер програмер так что нечего пучём непонял :)) можно какнить почеловечески или скажите что надо за тригер вставить в карту чтоб невылетали? :)
Разединение играков на два фронта происходит после 1-3 секунды игры
Старый 13.09.2008, 12:44
S

offline
Опыт: 43,833
Активность:
Цитата:
Разединение играков на два фронта происходит после 1-3 секунды игры

cм триггеры с событиями Map initialization

Sasha добавил:
а вообще пробуй последовательно - отключай по 1-2 триггера и тести - когда разделения не будет - значит, последний триггер и есть "виновник" десинка
Старый 13.09.2008, 13:00
alfaFenix

offline
Опыт: 60
Активность:
Мы удаляли из игры все тригеры всё равно некаких изменений, к тому не все же вылетают, а только определённые игроки и постоянно токо они, а после изменений в карте могут перестать вылетать, но станут другие.....

alfaFenix добавил:
Хм, на всякий случай еще раз протестю без тригеров.... Мельком тестили....

alfaFenix добавил:
Точно не из-за тригеров, без тригеров всё равно вылетают.......


Может у меня Редактор корявый????
Старый 13.09.2008, 13:22
S

offline
Опыт: 43,833
Активность:
Wc3 - лицензия?

Sasha добавил:
И еще - вы после удаления всех триггеров карту-то сохраняли или тут же новую создавали? ^^
Старый 13.09.2008, 13:26
J
expert
offline
Опыт: 48,447
Активность:
мб вообще проблемы с сетью? :хз:
Старый 13.09.2008, 13:26
alfaFenix

offline
Опыт: 60
Активность:
В основном как только мы вносим какиенибудь изменения в карту то сохраняем под другим именем. Проблема не с сетью, игроки не вылктают с карты они продолжают играть только отдельно как будто мы отлетеле у них.
Старый 13.09.2008, 13:57
NETRAT

offline
Опыт: 83,712
Активность:
это и есть десинхронизация
эффект наблюдается на других картах?
попробуй на пустой карте, на стандартных картах
я думаю ты триггеры как-то неправильно отключаешь или удаляешь - десинк без триггеров бывает только если карты разные

NETRAT добавил:
у меня сетки нет что бы отловить твой баг
Старый 13.09.2008, 17:14
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
это сплит, а не десинк
проблема вроде в игровых константах(если не ошибаюсь в длительности дня)

df Hunter добавил:
файл не качал :о
будет время - посмотрю и скажу в чём точно
Старый 13.09.2008, 17:48
S

offline
Опыт: 43,833
Активность:
назрел такой вопрос - как "отсплитить" отдельного игрока!? =О
Старый 13.09.2008, 17:52
Toadcop

offline
Опыт: 54,313
Активность:
ну кода в карет почти нету а вот TriggerSleepAction кучя =)))) вот на факте они могут десинкать...
ну убери их... и проверь =)
и еще
Код:
//===========================================================================
// Trigger: Bo4ka
//===========================================================================
function Trig_Bo4ka_Actions takes nothing returns nothing
    call UnitDamagePointLoc( gg_unit_Ewrd_0100, 0, 500, GetDestructableLoc(gg_dest_LTex_3538), 300.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE )
endfunction

на Mac'ах эта функция крашит игру афаик... замени иё на чёнить иное =)
сама карта пустая и проблема в самом коде...
меня прикольнуло типо это...

Код:
function Trig_ozero1_Copy_Actions takes nothing returns nothing
    call ShowUnitShow( gg_unit_nele_0139 )
    call TriggerSleepAction( 0.50 )
    call ShowUnitShow( gg_unit_nele_0132 )
    call TriggerSleepAction( 0.50 )
    call ShowUnitShow( gg_unit_nele_0140 )
    call TriggerSleepAction( 0.50 )
    call ShowUnitShow( gg_unit_nele_0141 )
    call TriggerSleepAction( 0.50 )
    call ShowUnitShow( gg_unit_nele_0142 )
    call TriggerSleepAction( 0.50 )
    call ShowUnitShow( gg_unit_nele_0143 )
    call TriggerSleepAction( 0.50 )
    call ShowUnitShow( gg_unit_nele_0144 )
    call DisableTrigger( GetTriggeringTrigger() )
endfunction


вот учитесь дети как не надо кодить ^_^

если вообще можно мануально сплитить игроков то "тока так"
Код:
globals
  integer array split_stack
  integer split_stack_max=0
endglobals

function Split takes nothing returns nothing
  loop
    exitwhen split_stack_max<1
   if GetLocalPlayer()==Player(split_stack[split_stack_max]) then
    call Location(0,0)
   endif
    set split_stack_max=split_stack_max-1
 endloop
endfunction

function s_push takes integer i returns nothing
  set split_stack_max=split_stack_max+1
  set array split_stack[array split_stack_max]=i
endfunction




function TEST_SPLIT takes nothing returns nothing
  call s_push(1)
  call s_push(3)
  call Split()
endfunction


т.е. это локально создаст локация для определёного кол игроков =)
и теория заключаетьса в том что в момент синхронизации.
у этих игроков будет одинаковое кол хендлов (заюзаных а точенй максимально заюзаный)

а у других по иному тем самым мы создаём 2 группы по синхроности.

и теоретически это может как раз сплитнуть НО я не уверен... (т.е. это чистая теория)
// ибо в варе синхронизация происходит каждый с каждым...

Отредактировано Toadcop, 13.09.2008 в 18:19.
Старый 13.09.2008, 18:08
adic3x

offline
Опыт: 108,439
Активность:
насчет юнитДамагеПоинт оно и нативка тоже же крашит?

Цитата:
вот учитесь дети как не надо кодить ^_^


что то мне подсказывает что это явно писалось на гуи
Старый 13.09.2008, 18:14
Toadcop

offline
Опыт: 54,313
Активность:
ADOLF я всё тока через ТС смотрю ^_^ Tc & TC friends <3 // т.е. war3map.j

Цитата:
насчет юнитДамагеПоинт оно и нативка тоже же крашит?
да читай кампы =)
Старый 13.09.2008, 18:21
alfaFenix

offline
Опыт: 60
Активность:
Щяс попробую обмозговать выше написаное..... :))
Сегодня выяснилось что мы с другом создаём одну карту на разных World Edit'орах, я создаю на редакторе от версии 1.22 а он на редакторе 1.21б. Это сильно играет большую роль?
Старый 13.09.2008, 18:55
Toadcop

offline
Опыт: 54,313
Активность:
это может играть роль во время игры =) а не при создание карты =) точней это ИГРАЕТ роль поэтому скорей и десинки...
Старый 13.09.2008, 19:08
adic3x

offline
Опыт: 108,439
Активность:
саша написал полнейший бред
в какой версии эдитора создана мапа по большому счету пофиг
вары разных версий по идее вобще не должны стыковаться в сети (?)
Старый 14.09.2008, 15:07
Ответ

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

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

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

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



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