Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
server_lib Namespace Reference

Functions

def serverDirector
 
def player_docked
 
def player_undocked
 
def player_joined
 
def player_execute
 
def server_init
 
def server_execute
 
def fixCallsign
 
def placeBounty
 
def getCommandInfo
 
def processMessage
 

Variables

dictionary commandinfo
 
dictionary authcommandinfo
 
dictionary aliasinfo
 
 player_num
 
 loops
 

Function Documentation

def server_lib.fixCallsign (   callsign)

Definition at line 65 of file server_lib.py.

References pydoc.replace().

65 
66 def fixCallsign(callsign):
67  return callsign.lower().replace(' ','_')
def server_lib.getCommandInfo (   command,
  auth = True 
)

Definition at line 108 of file server_lib.py.

109 def getCommandInfo(command, auth=True):
110  if command in aliasinfo:
111  command = aliasinfo[command]
112  cmdinfo=None
113  if auth>=1 and command in authcommandinfo:
114  cmdinfo = authcommandinfo[command]
115  elif command in commandinfo:
116  cmdinfo = commandinfo[command]
117  return cmdinfo
def server_lib.placeBounty (   callsign,
  amt 
)

Definition at line 68 of file server_lib.py.

References fixCallsign(), and serverDirector().

68 
69 def placeBounty(callsign, amt):
70  srv = serverDirector()
71  donor = srv.getPlayer(VS.getCurrentPlayer())
72  plrcreds = player.current_un.getCredits()
73  if plrcreds<amt:
74  if plrcreds+1.0<amt:
75  return False
76  else:
77  amt=plrcreds
78  player.current_un.setCredits(plrcreds-amt)
79  callsign = fixCallsign(callsign)
80 
81  if Director.getSaveDataLength(0,"bounty_"+callsign) < 1:
82  Director.pushSaveData(0,"bounty_"+callsign, amt)
83  else:
84  oldamt = Director.getSaveData(0,"bounty_"+callsign,0)
85  Director.putSaveData(0,"bounty_"+callsign,0,amt+oldamt)
86 
def server_lib.player_docked (   self)

Definition at line 17 of file server_lib.py.

References dynamic_mission.CreateMissions(), and campaign_lib.getActiveCampaignNodes().

17 
18 def player_docked(self):
19  nam = self.docked_un.getName()
20  VS.IOmessage(0,'game','news',self.callsign+' has docked to the '+nam)
21  VS.IOmessage(0,'game','all',self.callsign+' has docked to the '+nam)
22  #if self.objectives>0:
23  # VS.eraseObjective(self.objectives-1)
24 
def server_lib.player_execute (   self)

Definition at line 45 of file server_lib.py.

45 
46 def player_execute(self):
47  self.player_num=self.current_un.isPlayerStarship()
def server_lib.player_joined (   self)

Definition at line 41 of file server_lib.py.

References campaign_lib.resetCampaigns().

41 
42 def player_joined(self):
43  self.sendMessage('Welcome, '+self.callsign+' to the server.')
44  campaign_lib.resetCampaigns(self.player_num)
def server_lib.player_undocked (   self)

Definition at line 27 of file server_lib.py.

References dynamic_mission.eraseExtras(), and campaign_lib.undock_campaigns().

27 
28 def player_undocked(self):
29  if not self.docked_un:
30  print 'Base for'+self.callsign+'blew up!'
31  return
32 
34  nam = self.docked_un.getName()
35 
37  VS.IOmessage(0,'game','news',self.callsign+' has undocked from the '+nam)
38  VS.IOmessage(0,'game','all',self.callsign+' has undocked from the '+nam)
39  #self.objectives=1+VS.addObjective('Dock to the '+nam+' again')
40  #VS.setCompleteness(self.objectives-1, -0.3)
def server_lib.processMessage (   player,
  auth,
  command,
  args,
  id = '' 
)

Definition at line 118 of file server_lib.py.

References fixCallsign(), getCommandInfo(), dospath.join(), launch.launch_wave_around_unit(), string.lower(), custom.respond(), serverDirector(), and locale.str().

119 def processMessage(player, auth, command, args, id=''):
120  if command in aliasinfo:
121  command = aliasinfo[command]
122  #cmdinfo = getCommandInfo(command, auth)
123  if auth<1 and command in authcommandinfo:
124  player.sendMessage("#884400You must be authorized to use "+command)
125  return
126  #if cmdinfo and len(args)<cmdinfo[0]:
127  # processMessage(player,True,"help",[command])
128  # return
129  if command=='help':
130  if len(args)<1:
131  cmdstr = '#8800cc'+' '.join(commandinfo)
132  if auth>=1:
133  cmdstr += '#cc0088 '+' '.join(authcommandinfo)
134  player.sendMessage('#888800Valid commands: '+cmdstr)
135  else:
136  cmdinfo = getCommandInfo(args[0], True)
137  if cmdinfo and len(cmdinfo)>=3:
138  player.sendMessage("#888800Usage: #880088"+cmdinfo[1]+"#888800 - "+cmdinfo[2])
139  else:
140  player.sendMessage("#884400/"+args[0]+" does not exist. Use /help for a list of commands.")
141  elif command=='reload':
142  if auth<1:
143  return
144  vsmod=VS
145  reload(__import__('server_lib'))
146  vsmod.IOmessage(0,"game","all","The server python script has been reloaded.")
147  elif command=='userlist':
148  cstr = '#44cc44Users on the server:#888800'
149  print len(serverDirector().playerlist)
150  for x in serverDirector().playerlist:
151  #print x
152  #print x.callsign
153  if x.callsign:
154  cstr += ' '+x.callsign
155  player.sendMessage(cstr)
156  elif command=='shipinfo':
157  response = []
158  if len(args)>=1:
159  callsign = fixCallsign(args[0])
160  if Director.getSaveDataLength(0,"bounty_"+callsign):
161  amt = Director.getSaveData(0,"bounty_"+callsign,0)
162  if amt > 1000.:
163  response.append("WANTED for %g credits!"%amt)
164  if callsign=='ai':
165  response.append("* Artifically Intelligent *")
166  if id:
167  custom.respond(response,None,id)
168  else:
169  for msg in response:
170  player.sendMessage(msg)
171  elif command=='shiplist':
172  cnt=0
173  min=-1
174  max=-1
175  cstr=''
176  if 1: #try:
177  page=int(args[0])
178  cstr = '#44cc44Available ships (#888800'+str(page)+'#44cc44):#888800'
179  num=10
180  min=(page-1)*num
181  max=page*num
182  else: #except:
183  min=-1
184  if min<0:
185  processMessage(player,False,"help",[command])
186  else:
187  shiplist=faction_ships.stattableexp.keys()
188  shiplist.sort()
189  for x in shiplist:
190  cnt+=1
191  if cnt>=min and cnt<max:
192  cstr+= ' '+x
193  player.sendMessage(cstr)
194  elif command=='launcheach':
195  if auth<1:
196  return
197  shiplist = faction_ships.stattableexp.keys()
198  for x in shiplist:
199  processMessage(player,1,"launchme",[x])
200  elif command=='setadmin':
201  if len(args)<2:
202  return
203  if auth<1:
204  return
205  playerto = serverDirector().getPlayerByCallsign(args[0])
206  if not playerto:
207  print args[0]
208  player.sendMessage("#884400Cannot find player "+args[0])
209  return
210  print args
211  value=0.0
212  if args[1]=='yes' or args[1]=='1':
213  value=1.0
214  pnum=playerto.player_num
215  if Director.getSaveDataLength(pnum, 'serveradmin')<1:
216  Director.pushSaveData(pnum, 'serveradmin', value)
217  else:
218  Director.putSaveData(pnum, 'serveradmin', 0, value)
219  playerto.sendMessage("Your admin status set to "+str(value))
220  elif command=='write':
221  if len(args)<1:
222  return
223  playerto = serverDirector().getPlayerByCallsign(args[0])
224  if not playerto:
225  player.sendMessage("#884400Cannot find player "+args[0])
226  return
227  playerto.sendMessage(' '.join(args[1:]), player.callsign)
228  player.sendMessage('Message to '+args[0]+': '+(' '.join(args[1:])))
229  elif command=='say':
230  VS.IOmessage(0, player.callsign,'all',' '.join(args))
231  elif command=='launchme' or command=='launchtarg' or command=='launch':
232  if auth<1:
233  return
234  if len(args)<1:
235  return
236  factquan=()
237  if command=="launchtarg" or command=="launchme":
238  if not player.current_un:
239  player.sendMessage("#884400Use /launch <unit> <aroundname> to launch when you are null.")
240  return
241  if len(args)>=3:
242  factquan=(args[1],args[2])
243  elif len(args)>=2:
244  factquan=(args[1],)
245  targun = player.current_un
246  if command=="launchtarg":
247  metarg=targun.GetTarget()
248  if metarg:
249  targun = metarg
250  else:
251  if len(args)<2:
252  processMessage(player,False,"help",[command])
253  return
254  if len(args)>=4:
255  factquan=(args[2],args[3])
256  elif len(args)>=3:
257  factquan=(args[2],)
258  targunname = args[1].lower()
259  iter = VS.getUnitList()
260  while iter.notDone():
261  targun=iter.current()
262  if targun.getName().lower()==targunname:
263  break
264  if targun.getFullname().lower()==targunname:
265  break
266  iter.advance()
267  faction = targun.getFactionName()
268  type=args[0]
269  quantity=1
270  for a in factquan:
271  try:
272  int(a)
273  quantity=int(a)
274  print quantity
275  except ValueError:
276  faction=a
277  print faction
278  fgname='AI'
279  ainame='default'
280  launch.launch_wave_around_unit(fgname,faction,type,ainame,quantity,2000.0,4000.0,targun)
281  else:
282  processMessage(player, auth, "help", [command])
283 
def server_lib.server_execute (   self)

Definition at line 60 of file server_lib.py.

60 
61 def server_execute(self):
62  if (self.loopnum % 10000) == 0:
63  pass
64  #VS.IOmessage(0,"game","all","Howdy! This server has run for "+str(self.loopnum)+" Python loops and has peaked at "+str(VS.getNumPlayers())+" players online!")
def server_lib.server_init (   self)

Definition at line 48 of file server_lib.py.

48 
49 def server_init(self):
50  from trading import trading
51  from random_encounters import random_encounters
52  import dynamic_universe
53  self.loops = [
54  # Cannot handle so many units yet??? Bandwidth usage low but sends tons of FIREREQUEST packets clogging up the whole thing
55  # Also, respawning seems broken for this. (????)
56  #random_encounters (8000,40000,500,3,2,.6,.25,.1,2000),
57  #trading (),
58  #dynamic_universe
59  ]
def server_lib.serverDirector ( )

Definition at line 14 of file server_lib.py.

References server.getDirector().

14 
15 def serverDirector():
16  return server.getDirector()

Variable Documentation

dictionary aliasinfo
Initial value:
1 = {
2  "message": "write", "whisper": "write",
3  "shout": "say",
4  "info": "help", "?": "help",
5  "reload2": "reload",
6  }

Definition at line 101 of file server_lib.py.

dictionary authcommandinfo
Initial value:
1 = {
2  "shiplist": (1, "/shiplist pagenum", "Lists all the ships available"),
3  "launchme": (1, "/launchme ship [faction] [quantity]", "Launches a ship around yourself"),
4  "launchtarg": (1, "/launchtarg ship [faction] [quantity]", "Launches a ship around your computer target"),
5  "launch": (2, "/launch ship aroundship [faction] [quantity]", "Launches a ship around 'aroundship'"),
6  "reload": (0, "/reload", "Reloads the server_lib.py file"),
7  "setadmin": (2, "/setadmin callsign level", "Sets player either to have 1"),
8  }

Definition at line 92 of file server_lib.py.

dictionary commandinfo
Initial value:
1 = {
2  "help": (0, "/help [command]", "Gives a list of commands or describes one."),
3  "write": (1, "/write callsign text...", "Gives a personal message to callsign."),
4  "userlist": (0, "/userlist", "Lists users in this starsystem"),
5 }

Definition at line 87 of file server_lib.py.

loops

Definition at line 52 of file server_lib.py.

player_num

Definition at line 46 of file server_lib.py.