// lite foreach (k,v in NetProps.getclass()) if (k != "IsValid") getroottable()[k] <- NetProps[k].bindenv(NetProps); ::tfor <- Entities.FindByClassname(null,"tf_objective_resource") hideiconstable <- {} enemycount <- GetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount") ClearGameEventCallbacks() function OnGameEvent_mvm_begin_wave(args) { foreach(k,v in hideiconstable) { local two = "" local i2 = 0 local i=k.tointeger() if(i>=12)i2=12,two="2." SetPropIntArray(tfor,"m_nMannVsMachineWaveClassFlags"+two,0,i-i2) } SetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount",enemycount) } function OnGameEvent_mvm_wave_complete(args) { enemycount = GetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount") hideiconstable.clear() } __CollectGameEventCallbacks(this) function HideIcons(string) { local icons = split(string,"|") local classcount = 0 foreach(s in icons) { if(s in hideiconstable) continue local two = "" local i2 = 0 local i = s.tointeger() if(i>=12)two="2.",i2=12 local i_count = GetPropIntArray(tfor,"m_nMannVsMachineWaveClassCounts"+two,i-i2) local i_flags = GetPropIntArray(tfor,"m_nMannVsMachineWaveClassFlags"+two,i-i2) hideiconstable[s]<-i_flags SetPropIntArray(tfor,"m_nMannVsMachineWaveClassFlags"+two,0,i-i2) classcount+=i_count } classcount=GetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount")-classcount SetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount",classcount) enemycount = classcount } function ShowIcons(string) { local icons = split(string,"|") local classcount = 0 foreach(s in icons) { if(!(s in hideiconstable)) continue local two = "" local i2 = 0 local i = s.tointeger() if(i>=12)two="2.",i2=12 SetPropIntArray(tfor,"m_nMannVsMachineWaveClassFlags"+two,hideiconstable[s],i-i2) classcount+=GetPropIntArray(tfor,"m_nMannVsMachineWaveClassCounts"+two,i-i2) delete hideiconstable[s] } classcount=GetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount")+classcount SetPropInt(tfor,"m_nMannVsMachineWaveEnemyCount",classcount) enemycount = classcount } function ListIcons() { local temp=SpawnEntityFromTable("logic_relay",{targetname="tempiconlist"}) SetPropString(temp,"m_target","!") temp.ValidateScriptScope() local gss = temp.GetScriptScope() gss.i <- 0 gss.sentinput <- false gss.ListIconsThink <- ListIconsThink ClientPrint(null,3,"\x0738f3ab\n---===[ Icon List ]===---") AddThinkToEnt(temp,"ListIconsThink") } function ListIconsThink() { // workaround as GetPropStringArray outputs garbled text, however $getprop does not local two = "" local i_two = "" local i2 = 0 if(i>=12)two="2.",i_two="2",i2=12 if(!sentinput) { EntFireByHandle(tfor,"$getprop$m_iszMannVsMachineWaveClassNames"+i_two+"$"+i,"tempiconlist|$setdata$m_target|0",-1,null,null) // SetPropString(Entities.FindByName(null,"tempiconlist"),"m_target",GetPropStringArray(tfor,"m_iszMannVsMachineWaveClassNames"+two,i-i2)) sentinput = true } local i_name = GetPropString(self,"m_target") if(i_name!="!") { SetPropString(self,"m_target","!") if(i_name!="") { local i_count = GetPropIntArray(tfor,"m_nMannVsMachineWaveClassCounts"+two,i-i2).tostring() local i_flags = GetPropIntArray(tfor,"m_nMannVsMachineWaveClassFlags"+two,i-i2) local flagstring = "" if(i_flags&2)flagstring+="\x07ece3cbS " if(i_flags&4)flagstring+="\x07ece3cbMS " if(i_flags&1)flagstring+="\x07ece3cb⚑" if(i_flags&8)flagstring+="\x07c11500⚑" if(i_flags&16)flagstring+="\x0700cfec⚑" if(i_count=="0")i_count="∞" ClientPrint(null,3,format("\x07ffd700[%i]\x07cf6a32%s \x07b2b2b2×\x07ffd700%s %s",i,i_name,i_count,flagstring)) } if(i>=23)self.Destroy() i++ sentinput = false } return -1 }