NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

ownerprimer.py (1170B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\ownerprimer.py
      2 import uthread
      3 from carbon.common.script.sys.service import Service
      4 
      5 class OwnerPrimer(Service):
      6     __guid__ = 'svc.ownerprimer'
      7     __notifyevents__ = ['DoBallsAdded']
      8 
      9     def Run(self, *etc):
     10         Service.Run(self, *etc)
     11         sm.FavourMe(self.DoBallsAdded)
     12         self.waitingowners = {}
     13 
     14     def DoBallsAdded(self, *args, **kw):
     15         import stackless
     16         import blue
     17         t = stackless.getcurrent()
     18         timer = t.PushTimer(blue.pyos.taskletTimer.GetCurrent() + '::ownerprimer')
     19         try:
     20             return self.DoBallsAdded_(*args, **kw)
     21         finally:
     22             t.PopTimer(timer)
     23 
     24     def DoBallsAdded_(self, entries):
     25         if len(entries) < 2:
     26             return
     27         uthread.new(self.DoBallsAdded_thread, entries).context = 'ownerprimer::DoBallsAdded'
     28 
     29     def DoBallsAdded_thread(self, entries):
     30         tmp = {}
     31         for ball, slimItem in entries:
     32             if slimItem is not None and slimItem.ownerID is not None:
     33                 tmp[slimItem.ownerID] = None
     34 
     35         cfg.eveowners.Prime(tmp.keys())