Добавлен Radioactive
Эта функция вызывает десинхрон я не понимаю в чем причина.
function BigRefreshBoard takes nothing returns nothing
local integer VT8
local integer VU8
local string Time
local real YO8
local string s1=" "
local integer r
local integer i
local integer array time_1a
local string array color_1a
local integer index_1a=0
local integer array time_1b
local string array color_1b
local integer index_1b=0
local integer x=0
local integer id
local string OOD
local string OPD
local string OQD
local string ORD
local string OSD
local string s2=" "
local string s
local string sbis
local real OTD
local real OTDbis
local string spacer
local integer OUD=0
local string OVD=""
local string OWD=""
local integer OXD=0
local integer OYD=0
local string OZD=""
local integer pid
local string charges=""
local integer array kills
if MainMB==null then
return
endif
set i=0
loop
exitwhen i>5
set pid=GetPlayerId(Sentinels[i])
set r=R2I(TimerGetRemaining(HeroRespawnTimer[pid]))
if r>0 then
set OUD=OUD+OJD(r)
if OXD==0 then
if r<10 then
set OVD=udg_Colors[pid]+"0"+I2S(r)+" |r"
else
set OVD=udg_Colors[pid]+I2S(r)+" |r"
endif
else
if r<10 then
set OVD=OVD+WHITE+"| |r"+udg_Colors[pid]+"0"+I2S(r)+" |r"
else
set OVD=OVD+WHITE+"| |r"+udg_Colors[pid]+I2S(r)+" |r"
endif
endif
set OXD=OXD+1
endif
set i=i+1
endloop
if OXD>0 then
if IsPlayerAlly(GetLocalPlayer(),Sentinels[0]) then
set OVD=WHITE+"["+Allied+" |r"+OVD+WHITE+"]|r"
else
set OVD=RED2+"["+Enemy+" |r"+OVD+RED2+"]|r"
endif
endif
set i=0
loop
exitwhen i>5
set pid=GetPlayerId(Scourges[i])
set r=R2I(TimerGetRemaining(HeroRespawnTimer[pid]))
if r>0 then
set OUD=OUD+OJD(r)
if OYD==0 then
if r<10 then
set OWD=udg_Colors[pid]+"0"+I2S(r)+" |r"
else
set OWD=udg_Colors[pid]+I2S(r)+" |r"
endif
else
if r<10 then
set OWD=OWD+WHITE+"| |r"+udg_Colors[pid]+"0"+I2S(r)+" |r"
else
set OWD=OWD+WHITE+"| |r"+udg_Colors[pid]+I2S(r)+" |r"
endif
endif
set OYD=OYD+1
endif
set i=i+1
endloop
if OYD>0 then
if IsPlayerAlly(GetLocalPlayer(),Scourges[0]) then
set OWD=WHITE+"["+" |r"+OWD+WHITE+"]|r"
else
set OWD=RED2+"["+" |r"+OWD+RED2+"]|r"
endif
endif
if MainMB!=null then
set id=GetPlayerId(GetLocalPlayer())
if id>=0 and id<16 then
if CSONStatus1[x]then
set OOD=I2S(Kills[id])
set OPD=I2S(Deaths[id])
set OQD=I2S(Assists[id])
set ORD=I2S(PlayerCS[id])
set OSD=I2S(CSDenies[id])
set s2=" |c00838B8B("+OOD+"/"+OPD+"/"+OQD+" - "+ORD+"/"+OSD+" - |r|c00FFDC00"+I2S(ReliableGold[id])+"|r |c00838B8B)|r"
endif
endif
endif
if OYD==0 and OXD==0 then
call MultiboardSetTitleText(MainMB,s2)
else
if IsPlayerAlly(GetLocalPlayer(),Sentinels[0]) then
call MultiboardSetTitleText(MainMB,OWD+" "+OVD+" "+s2)
else
call MultiboardSetTitleText(MainMB,OVD+" "+OWD+" "+s2)
endif
endif
set VT8=1
set VU8=SentinelsIngame
loop
exitwhen VT8>VU8
set pid=GetPlayerId(Sents[VT8])
call MBSetIcon(MainMB,1,VT8+2,US8(udg_Hero[pid]))
call MBSetText(MainMB,3,VT8+2,"|c00838B8B"+I2S(GetHeroLevel(udg_Hero[pid]))+"|r")
call MBSetWidth(MainMB,8,1,2)
call MBSetWidth(MainMB,9,1,.1)
call MBSetWidth(MainMB,10,1,.1)
call MBSetWidth(MainMB,11,1,.1)
call MBSetWidth(MainMB,12,1,.1)
call MBSetWidth(MainMB,13,1,.1)
call MBSetWidth(MainMB,14,1,.1)
call MBSetWidth(MainMB,8,VT8+2,2.5)
call MBSetWidth(MainMB,9,VT8+2,.1)
call MBSetWidth(MainMB,10,VT8+2,.1)
call MBSetWidth(MainMB,11,VT8+2,.1)
call MBSetWidth(MainMB,12,VT8+2,.1)
call MBSetWidth(MainMB,13,VT8+2,.1)
call MBSetWidth(MainMB,14,VT8+2,.1)
call MBSetStyle(MainMB,9,VT8+2,false,false)
call MBSetStyle(MainMB,10,VT8+2,false,false)
call MBSetStyle(MainMB,11,VT8+2,false,false)
call MBSetStyle(MainMB,12,VT8+2,false,false)
call MBSetStyle(MainMB,13,VT8+2,false,false)
call MBSetStyle(MainMB,14,VT8+2,false,false)
call MBSetText(MainMB,9,1," ")
call MBSetIcon(MainMB,9,VT8+2,OKD(Sents[VT8],1))
call MBSetIcon(MainMB,10,VT8+2,OKD(Sents[VT8],2))
call MBSetIcon(MainMB,11,VT8+2,OKD(Sents[VT8],3))
call MBSetIcon(MainMB,12,VT8+2,OKD(Sents[VT8],4))
call MBSetIcon(MainMB,13,VT8+2,OKD(Sents[VT8],5))
call MBSetIcon(MainMB,14,VT8+2,OKD(Sents[VT8],6))
set pid=GetPlayerId(Sents[VT8])
if(UA8(udg_Hero[pid])and udg_Hero[pid]!=null and TimerGetRemaining(HeroRespawnTimer[pid])>0)then
if IsPlayerAlly(GetLocalPlayer(),Sents[VT8])then
set OZD=WHITE+" ("+I2S(R2I(TimerGetRemaining(HeroRespawnTimer[pid])))+")|r"
else
set OZD=RED2+" ("+I2S(R2I(TimerGetRemaining(HeroRespawnTimer[pid])))+")|r"
endif
else
set OZD=" "
endif
if IsPlayerLeftGame[pid]then
call MBSetText(MainMB,1,VT8+2,TabTab+"|c00333333"+(PlayerNames[pid])+"|r"+OZD)
else
call MBSetText(MainMB,1,VT8+2,TabTab+(PlayerNames[pid])+OZD)
endif
set OTD=(TimerGetRemaining(PrimUltiTimer[pid]))
if OTD>0 then
set s=I2S(R2I(OTD))
else
set s=""
endif
if IsPlayerAlly(GetLocalPlayer(),Sents[VT8])==false then
call MBSetText(MainMB,8,VT8+2," ")
set s=" "
set sbis=" "
else
call MBSetText(MainMB,8,VT8+2,"|cffffcc00"+I2S(R2I(GetPlayerState(Sents[VT8],PLAYER_STATE_RESOURCE_GOLD)))+"|r")
endif
call MBSetText(MainMB,2,VT8+2,s)
call MBSetText(MainMB,3,VT8+2,sbis)
set VT8=VT8+1
endloop
set VT8=1
set VU8=ScourgesIngame
loop
exitwhen VT8>VU8
set pid=GetPlayerId(Scrgs[VT8])
call MBSetIcon(MainMB,1,VT8+3+SentinelsIngame,US8(udg_Hero[pid]))
call MBSetText(MainMB,3,VT8+3+SentinelsIngame,"|c00838B8B"+I2S(GetHeroLevel(udg_Hero[pid]))+"|r")
call MBSetWidth(MainMB,8,1,2)
call MBSetWidth(MainMB,9,1,.1)
call MBSetWidth(MainMB,10,1,.1)
call MBSetWidth(MainMB,11,1,.1)
call MBSetWidth(MainMB,12,1,.1)
call MBSetWidth(MainMB,13,1,.1)
call MBSetWidth(MainMB,14,1,.1)
call MBSetWidth(MainMB,8,VT8+3+SentinelsIngame,2.5)
call MBSetWidth(MainMB,9,VT8+3+SentinelsIngame,.1)
call MBSetWidth(MainMB,10,VT8+3+SentinelsIngame,.1)
call MBSetWidth(MainMB,11,VT8+3+SentinelsIngame,.1)
call MBSetWidth(MainMB,12,VT8+3+SentinelsIngame,.1)
call MBSetWidth(MainMB,13,VT8+3+SentinelsIngame,.1)
call MBSetWidth(MainMB,14,VT8+3+SentinelsIngame,.1)
call MBSetStyle(MainMB,9,VT8+3+SentinelsIngame,false,false)
call MBSetStyle(MainMB,10,VT8+3+SentinelsIngame,false,false)
call MBSetStyle(MainMB,11,VT8+3+SentinelsIngame,false,false)
call MBSetStyle(MainMB,12,VT8+3+SentinelsIngame,false,false)
call MBSetStyle(MainMB,13,VT8+3+SentinelsIngame,false,false)
call MBSetStyle(MainMB,14,VT8+3+SentinelsIngame,false,false)
call MBSetText(MainMB,9,1," ")
call MBSetIcon(MainMB,9,VT8+3+SentinelsIngame,OKD(Scrgs[VT8],1))
call MBSetIcon(MainMB,10,VT8+3+SentinelsIngame,OKD(Scrgs[VT8],2))
call MBSetIcon(MainMB,11,VT8+3+SentinelsIngame,OKD(Scrgs[VT8],3))
call MBSetIcon(MainMB,12,VT8+3+SentinelsIngame,OKD(Scrgs[VT8],4))
call MBSetIcon(MainMB,13,VT8+3+SentinelsIngame,OKD(Scrgs[VT8],5))
call MBSetIcon(MainMB,14,VT8+3+SentinelsIngame,OKD(Scrgs[VT8],6))
set pid=GetPlayerId(Scrgs[VT8])
if(UA8(udg_Hero[pid])and udg_Hero[pid]!=null and TimerGetRemaining(HeroRespawnTimer[pid])>0)then
if IsPlayerAlly(GetLocalPlayer(),Scrgs[VT8])then
set OZD=WHITE+" ("+I2S(R2I(TimerGetRemaining(HeroRespawnTimer[pid])))+")|r"
else
set OZD=RED2+" ("+I2S(R2I(TimerGetRemaining(HeroRespawnTimer[pid])))+")|r"
endif
else
set OZD=" "
endif
if IsPlayerLeftGame[pid]then
call MBSetText(MainMB,1,VT8+3+SentinelsIngame,TabTab+"|c00333333"+(PlayerNames[pid])+"|r"+OZD)
else
call MBSetText(MainMB,1,VT8+3+SentinelsIngame,TabTab+(PlayerNames[pid])+OZD)
endif
set OTD=TimerGetRemaining(PrimUltiTimer[pid])
if OTD>0 then
set s=I2S(R2I(OTD))
else
set s=""
endif
if IsPlayerAlly(GetLocalPlayer(),Scrgs[VT8])==false then
call MBSetText(MainMB,8,VT8+3+SentinelsIngame," ")
set s=" "
set sbis=" "
else
call MBSetText(MainMB,8,VT8+3+SentinelsIngame,"|cffffcc00"+I2S(R2I(GetPlayerState(Scrgs[VT8],PLAYER_STATE_RESOURCE_GOLD)))+"|r")
endif
call MBSetText(MainMB,2,VT8+3+SentinelsIngame,s)
call MBSetText(MainMB,3,VT8+3+SentinelsIngame,sbis)
set VT8=VT8+1
endloop
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
XGM Bot
4 года назад
0
Похожие вопросы:
- Проблема с мультибордом. Нужна помощь.
ответ
Aws:
- Как найти наибольшее из нескольких чисел?
ответ
NazarPunk:
Поиск по всем ресурсам на сайте
0
Radioactive
4 года назад
0
Ну это ясно дело но вот я не понимаю где ошибка
0
Radioactive
4 года назад
0
это функция из доты которая не десинхронит я заменил GetObjectName на тексты в этом причина?
0
Radioactive
4 года назад
0
извини конечно но сжатый код доты легче читается чем твой
0
quq_CCCP
4 года назад
0
Карту в студию, мб еше что упустил, но я бы локально текст не менял в мультиборде, лишь менял строку текста.
Кстати а зачем менял GetObjectname? Оно там не просто так, оно нужно для локализации и хостботов.
0
Radioactive
4 года назад
0
это как смена текста локально?
Загруженные файлы
- Garden_Are.w3x
0
quq_CCCP
4 года назад
0
У тебя идут локально вызовы функции MbSetText, где создается обьект multiborditem. нужно не локально менять ячейку, а глобально, но текст ячейки задавать локально.
Дота так себе для копирования в свою карту.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.