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

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

Ответ
 
vladfaust

offline
Опыт: 12,714
Активность:
Десинк при... Добавлении способности?!
public void CastNow (int id) {
        local int a_id = GetSpellID(combo_s[id])
        if a_id != 0 {
            if spell_type[a_id] == 0 {
                //UnitAddAbility(MAGE[id], spell_id[a_id])
                BJDebugMsg("Add!")
                Spam_spam_now [id] = TRUE
            }
        }
    }
Вот так десинка нет. А если убрать "//", то десинкует. КАК?!
Можете указать на возможную ошибку? ВСЕ функции вызываются без GetLocalPlayer.
З.Ы: размеры массивов указаны правильно, способность сначала добавляется (видно ее), затем десинк.
З.Ы.Ы:
private void Spam_Act () {
        ForceUIKey("K")
    }
Спамит хотекеем этой способности. Десинка быть тут не может.
inadequate_ добавил:
по каким причинам может десинкать при добавлении способности?
inadequate_ добавил:
пожааааааааааааааааааааааалуйста( Я уже неделю мучаюсь!

Отредактировано alpha, 12.03.2012 в 21:33.
Старый 11.03.2012, 16:53
ScorpioT1000
Работаем
offline
Опыт: отключен
Спамит хотекеем этой способности. Десинка быть тут не может.
пока ни у кого нету этой абилки, на всех машинах форс кея приводит ни к чему. Но как только ты добавляешь одному игроку абилу, на его машине вызывается каст этой абилы, в то время как другие машины считают, что абилы сейчас ни у кого нет. Решается банально - форсить клавишу надо локальному игроку
if(GetLocalPlayer() == Player(id)) {
   ForceUIKey("K")
}
эта функция - одна из редких, позволяющих какбы отослать сигнал с 1 машины на все, глобализировать его.
Старый 11.03.2012, 17:00
vladfaust

offline
Опыт: 12,714
Активность:
ScorpioT1000, Не помогло!!! (((
Старый 11.03.2012, 17:07
ScorpioT1000
Работаем
offline
Опыт: отключен
что ты именно делаешь? кароче весь код даешь
Старый 11.03.2012, 17:10
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
inadequate_, на основе какой сделана способность?
Старый 11.03.2012, 18:17
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Код:
library AbilityPreloader initializer PreloadAbils requires Ascii

private int abcount = 10 // кол-во абилок

private void PreloadAbils() 
{
    int r = 0,i = 0
    unit d = CreateUnit(Player(14),SPELL_DUMMY,0.,0.,0.)
    while (i<abcount) 
    {
        if StringLength(I2S(i)) == 1
            r = S2A(A2S('A00')+I2S(i))
        elseif StringLength(I2S(i)) == 2
            r = S2A(A2S('A0')+I2S(i))
        elseif StringLength(I2S(i)) == 3
            r = S2A(A2S('A')+I2S(i))
        UnitAddAbility(d,r)
        UnitRemoveAbility(d,r)
        i++
    }
    RemoveUnit(d)
    d = null
}

endlibrary
Старый 11.03.2012, 18:30
ScorpioT1000
Работаем
offline
Опыт: отключен
requires Ascii
ScorpioT1000 добавил:
епт, всмотрелся... ты сам то понял че написал?)
Старый 11.03.2012, 19:33
vladfaust

offline
Опыт: 12,714
Активность:
ScorpioT1000, в личку карту кинул. Смотри, ужасайся=)
inadequate_ добавил:
ScorpioT1000: некогда.
Кто нибудь может посмотреть? Кому кинуть?
inadequate_ добавил:
Ну просто вы смысл не поймете, если я просто код кину.
Старый 11.03.2012, 20:31
ScorpioT1000
Работаем
offline
Опыт: отключен
Попробуй закомментить не аддабилити, а форскей. Если не будет десинка, то это так, как я сказал, только надо решать иначе.
Старый 11.03.2012, 20:43
vladfaust

offline
Опыт: 12,714
Активность:
Комментил, не дурак. Десинк. Это ппц:(
Старый 11.03.2012, 21:02
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от ScorpioT1000
епт, всмотрелся... ты сам то понял че написал?)

Да, а чего не понятно то?

Либа acii есть на форуме :O
Старый 11.03.2012, 21:02
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Faion, здесь нахер не упал прелоад абилок для решения вопроса с десинком, спасибо за внимание.
inadequate_, на основе какой сделана способность?
Ещё бывает десинк, если делать улучшения на атаку (я серьезно).
Старый 11.03.2012, 21:46
ScorpioT1000
Работаем
offline
Опыт: отключен
Попробуй еще сделать таймер например 6 сек, и "чисто" добавлять абилку, без всяких переменных и ифов.
Старый 11.03.2012, 21:51
vladfaust

offline
Опыт: 12,714
Активность:
ScorpioT1000, та они еще в начале даются, потом ремувятся. То есть, с добавлением все ок. В сингле.
Hellfim, любая абила.
inadequate_ добавил:
ScorpioT1000, дело не в Форсе, точно=(
inadequate_ добавил:
Вот карта. Закомментил много. Разберитесь, плз(
Прикрепленные файлы
Тип файла: w3x magicraft.w3x (138.4 Кбайт, 8 просмотров )
Старый 11.03.2012, 22:04
vladfaust

offline
Опыт: 12,714
Активность:
Хочу сказать, что это - зародыш данного проекта. Если Вы не поможете, проект вынужден будет закрыться.
Старый 12.03.2012, 14:14
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от Hellfim
здесь нахер не упал прелоад абилок для решения вопроса с десинком, спасибо за внимание.


Читаем:

Цитата:
Сообщение от ScorpioT1000
Но как только ты добавляешь одному игроку абилу, на его машине вызывается каст этой абилы, в то время как другие машины считают, что абилы сейчас ни у кого нет.


Следственно, если подгрузить абилки, то машины не будут думать, что :

Цитата:
Сообщение от ScorpioT1000
что абилы сейчас ни у кого нет


Вроде бы логично, или мне пора в отпуск?

Faion добавил:
inadequate_, попроси кого нить проверить проект на других машинах. Я не так давно пытался на своих машинах протестить по сети, но у меня упорно фаталило. Причем в поисках причины дошло до того, что я удалил вручную абсолютно все, в т.ч. нестандартные итемы, импорт, код, ланд, т.е. реально все. И все равно был десинк.

Потом дал знакомому проверить, и вы не поверите, но проблемы и не было, это только у меня десинк :O
Старый 12.03.2012, 17:33
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Faion, можешь отдохнуть, да.
Вообще эта способность существует в карте, но добавляется она для конкретного игрока (не юнита!). Поэтому для одного игрока у того юнита, которому добавили абилку она отображается, а у других - нет.
Hellfim добавил:
inadequate_, попробую что-нибудь замутить сегодня.
Старый 12.03.2012, 18:56
vladfaust

offline
Опыт: 12,714
Активность:
Проверьте плз у себя...
Хельфим, что-то свое или мое исправишь?
Старый 12.03.2012, 21:11
ScorpioT1000
Работаем
offline
Опыт: отключен
Faion, я имел ввиду не прелоад абилок, а добавление ее юниту, если начнешь форсить кнопку локально, то у всех на клавишу ничего не сработает, а у одного ни с того, ни с сего начнется спамиться абилка, из-за чего может быть десинк, но я скорее всего ошибаюсь, это было так, "брейнсторм" =)
ScorpioT1000 добавил:
inadequate_, я бы потестил, да лень нетбук врубать )
Старый 12.03.2012, 21:22
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
inadequate_, открываю карту. Если все будет ужасно и пилить не очень долго, то своё запилю, если все нормально, то твое перепилю.
Старый 12.03.2012, 22:43
Ответ

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

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

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

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



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