Добавлен velmir
Ну опшем все просто есть 7 магазинов в которых продаются разные предметы, предметы в магазин я добавляю кодом,
но сегодня запустил ВИ и вот что увидел, даже без добавления кодом итемов в магазин, и создание бекап версии карты, и отключение всего, создание нового дами магазина, все остается как на скрине, в каждый магазин добавляются неактивные итемы которые невозможно купить.
но сегодня запустил ВИ и вот что увидел, даже без добавления кодом итемов в магазин, и создание бекап версии карты, и отключение всего, создание нового дами магазина, все остается как на скрине, в каждый магазин добавляются неактивные итемы которые невозможно купить.
Когда потом кодом добавляю предметы на продажу или выставляю в магазине в РО эти просто остаются
Вот код из-за которого баг и возник, ну сутьь в том что аналогичный код под зарез нужен в мапе. а блокируя строку SetUnitOwner саму суть кода баг пропадает или я его просто невижу тогда
struct SetFrendTreider
private static timer t = CreateTimer()
private static integer Data[]
private static integer Count = -1
unit CasterA, TreiderA
integer o,KDTreider=2400
string EfektZinatosti="Abilities\\Spells\\Human\\InnerFire\\InnerFireTarget.mdl"
effect ef
integer a=160
rect r
private method StopAction takes integer j returns nothing
set Data[j] = Data[Count]
set Count =Count-1
if Count == -1 then
call PauseTimer(t)
endif
endmethod
private static method SetFrendTreiderTaimer takes nothing returns nothing
local thistype this
local integer i = 0
loop
exitwhen i > Count
set this = Data[i]
o++
r= Rect( GetUnitX( TreiderA ) - a, GetUnitY( TreiderA ) - a, GetUnitX( TreiderA ) + a, GetUnitY( TreiderA ) + a )
if o>=KDTreider or GetUnitState(CasterA,UNIT_STATE_LIFE)<=0 or (((GetRectMinX(r) <= GetUnitX( CasterA )) and (GetUnitX( CasterA ) <= GetRectMaxX(r)) and (GetRectMinY(r) <= GetUnitY( CasterA )) and (GetUnitY( CasterA ) <= GetRectMaxY(r)))!=true){
call SetUnitOwner( TreiderA, Player(PLAYER_NEUTRAL_PASSIVE), false )
call DestroyEffect(ef)
UnitRemoveAbility(TreiderA,'Aneu')
ef=null
r=null
call StopAction(i)
call destroy()
}
r=null
set i=i+1
endloop
endmethod
public static method An takes unit Caster,unit Treider returns nothing
local thistype this = thistype.create()
set Count=Count+1
set Data[Count] = this
CasterA=Caster
TreiderA=Treider
o=0
if GetOwningPlayer(Treider) == Player(PLAYER_NEUTRAL_PASSIVE){
call SetUnitOwner( Treider, GetOwningPlayer(Caster), false )
ef = AddSpecialEffectTarget(EfektZinatosti, TreiderA, "overhead")
UnitAddAbility(TreiderA,'Aneu')
if Count == 0 then
call TimerStart(t, 0.05, true, function thistype.SetFrendTreiderTaimer)
endif
}else{
call DisplayTimedTextToPlayer(GetOwningPlayer(Caster), 0, 0, 1, "В торговец занят")
}
endmethod
endstruct
ЗЫ если поставить нейтрально пасивного то даного бага нет но мне нужно именно под играка менять(для продаж позарядно предметов)
ЗЫЫ, Баг тока в определеной карте(версии самой карты я тоже менял) на нароботке все работает как часики и подобного бага нет
ЗЫЫ заметил закономерность все мои предметы поделены на типы и в определеном магазине этот баг вызывает тока определеные предметы тогож типа что и продаваймые там когдато, при том что код могу хоть всей удалить(тойсть ничего никуда добавлятся не будет)
ЗЫЫ, Баг тока в определеной карте(версии самой карты я тоже менял) на нароботке все работает как часики и подобного бага нет
ЗЫЫ заметил закономерность все мои предметы поделены на типы и в определеном магазине этот баг вызывает тока определеные предметы тогож типа что и продаваймые там когдато, при том что код могу хоть всей удалить(тойсть ничего никуда добавлятся не будет)
Может кто раньше стыкался с таким может кто просто знает как править
Принятый ответ
стемы
Я удалял всеь код кроме етой системы все ефект тотже. также я писал что переносил наработку на иную мапу и там все работало. понятно что проблема не в коде..по тому как баг в том что рынок(юнит) меняет владельца, на красного скажем, еслиб не менял багаб небыло, но есть карта где он есть.. на разных мапах при абсолютно едентичных настройках юнитов, и коде(никакого второстепенного кода нет тока тот что в 1м посту)
опшем так я психанул и начал отрезать куски из мапы, сначала в 10 раз удалил весь код кроме наработки, затем удалил итемы, и вернул код и вот чудо баг пропал,
=============================================================================
думаю проблема была в том что иды предметам я в ручную прописывал, там была своя закономерность, но увы теперь придется периписать все иды предметов, и заминить их в коде что очень ни удобно и моторно=(
опшем так я психанул и начал отрезать куски из мапы, сначала в 10 раз удалил весь код кроме наработки, затем удалил итемы, и вернул код и вот чудо баг пропал,
=============================================================================
думаю проблема была в том что иды предметам я в ручную прописывал, там была своя закономерность, но увы теперь придется периписать все иды предметов, и заминить их в коде что очень ни удобно и моторно=(
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
даже если магазин поставить в редакторе а потом зайти в мапу.
попробуй закоментить всё(вообще всё) кроме этой системы
Отредактирован velmir
опшем так я психанул и начал отрезать куски из мапы, сначала в 10 раз удалил весь код кроме наработки, затем удалил итемы, и вернул код и вот чудо баг пропал,
=============================================================================
думаю проблема была в том что иды предметам я в ручную прописывал, там была своя закономерность, но увы теперь придется периписать все иды предметов, и заминить их в коде что очень ни удобно и моторно=(