Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Отвергнутые патчи (http://mangos.ytdb.ru/forumdisplay.php?f=50)
-   -   [fix] not spawned GO activity (http://mangos.ytdb.ru/showthread.php?t=1622)

Chipleo 28.06.2010 21:18

[fix] not spawned GO activity
 
Пример: Инст - Олд хилсбрад, в бараках расбросано ГО огня типу ловушки, но он не активен (спавн -180), он должен появится после выполнения кв, но он кастует и сбивает каст для квеста, а так не должно быть. Это относится ко всем ловушкам.
Нижеследующий код исправляет это
Код:

@@ -324,7 +324,7 @@ void GameObject::Update(uint32 /*p_time*/)
                    ok = p_ok;
                }
 
-                if (ok)
+                if (ok && isSpawned())
                {
                    Unit *caster =  owner ? owner : ok;


Chipleo 14.07.2010 18:17

Неужели всех устраивает баг с непоявившимися в мире ГО, типа ловушек, например на арене ловушки должны появится после истеченя некоторого времени, а сейчас их можно использовать с самого начала, лишь зная где они должны появится...?

rsa 14.07.2010 18:50

Не торопись. Багу с бесконечным спауном сундуков скоро год, а править пока никто не собрался. Года через полтора и твой патч пойдет в дело...

Mr.Grom 18.07.2010 08:22

Цитата:

Сообщение от rsa (Сообщение 10720)
Не торопись. Багу с бесконечным спауном сундуков скоро год, а править пока никто не собрался. Года через полтора и твой патч пойдет в дело...

В ИЧе на 3.3.2 сундуки нормально работали.

rsa 18.07.2010 09:22

С декабря прошлого года они нигде нормально не работают без фикса, потому что ошибка в чистое ядро внесена совершенно явная...

Vladimir 19.07.2010 06:42

Цитата:

Сообщение от rsa (Сообщение 10871)
С декабря прошлого года они нигде нормально не работают без фикса, потому что ошибка в чистое ядро внесена совершенно явная...

И где на нее патч, всмысле ветка с патчем?

Vladimir 19.07.2010 06:51

Цитата:

+ if (ok && isSpawned())
В master isSpawned() вокруг всего блока...
Дабы не изоретать велосипелов и не создавать дополнительного гемороя с бекпортами
в таких случаях когда в мастере более правильный код лучше найти соответствующий коммит:

Код:

git blame -- src/game/GameObject.cpp
/traps can have time and can not have

Цитата:

1689a3fc (VladimirMangos 2009-07-19 07:34:18 +0400 260) if(isSpawned())
Цитата:

commit 1689a3fc5e46313f123a758357f3d1100286b9d8
Author: VladimirMangos <vladimir@getmangos.com>
Date: Sun Jul 19 07:34:18 2009 +0400

[8205] Really use trap GO charges and avoid casting in despawned state.

* Drop horribale hack with stored charges amount, use instead GO info charges data as expected.
* Count trap activations as charge uses if it have limited charges.
* Check trap reactions only in ready spawned state.
Я посмотрю насколько его безболезнено перенести в mangos-0.12

rsa 19.07.2010 07:16

Цитата:

Сообщение от Vladimir (Сообщение 10927)
И где на нее патч, всмысле ветка с патчем?

где-то в дебрях getmangos.com, я уж и копирайты давно потерял...
не уверен на все 100, но вроде бы некоторое время (январь-февраль) оно было даже в master но потом оттуда опять испарилось.

Vladimir 19.07.2010 07:53

Цитата:

Сообщение от Vladimir (Сообщение 10928)
Я посмотрю насколько его безболезнено перенести в mangos-0.12

Перенес в [s0022]

Burned 19.07.2010 08:43

@Vladimir
Вот о чём говорил rsa: http://getmangos.com/community/showthread.php?t=11161
Можно лутить бесконечно сундуки с негативным спавнтаймом.

Vladimir 19.07.2010 11:24

Патч в ветке по линку из предыдущего поста не рашает проблемы, он вообще к ней не имеет отношения фактически, так как проблема не ввидимости а в условиях когда генерируется лут. Аналогичная проблема давно решена у мобов. Патч из ветки добавлен в [10226]. Лут поправлен в [10227]. Естественно перенесу в mangos-0.12 и zero но позднее..

Chipleo 20.07.2010 12:24

Цитата:

Сообщение от Burned (Сообщение 10933)
@Vladimir
Вот о чём говорил rsa: http://getmangos.com/community/showthread.php?t=11161
Можно лутить бесконечно сундуки с негативным спавнтаймом.

Код:

void ScriptedInstance::DoRespawnGameObject(uint64 uiOwner, uint64 uiGuid, uint32 uiTimeToDespawn)
{
    if (GameObject* pGo = instance->GetGameObject(uiGuid))
    {
        //not expect any of these should ever be handled
        if (pGo->GetGoType()==GAMEOBJECT_TYPE_FISHINGNODE || pGo->GetGoType()==GAMEOBJECT_TYPE_DOOR ||
            pGo->GetGoType()==GAMEOBJECT_TYPE_BUTTON || pGo->GetGoType()==GAMEOBJECT_TYPE_TRAP)
            return;

        if (pGo->isSpawned())
            return;

        pGo->SetRespawnTime(uiTimeToDespawn);
                pGo->SetOwnerGUID(uiOwner);
    }
}

внесение такой процедуры в скрипты решает проблему с бесконечным лутом


Текущее время: 02:50. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS