comparison orpg/networking/gsclient.py @ 184:dcae32e219f1 beta

Traipse Beta 'OpenRPG' {100117-00} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc's main goal is to offer more advanced features and enhance the productivity of the user. Update Summary (Beta) New Features: Added Bookmarks Added 'boot' command to remote admin Added confirmation window for sent nodes Minor changes to allow for portability to an OpenSUSE linux OS Miniatures Layer pop up box allows users to turn off Mini labels, from FlexiRPG Zoom Mouse plugin added Images added to Plugin UI Switching to Element Tree Map efficiency, from FlexiRPG Added Status Bar to Update Manager New TrueDebug Class in orpg_log (See documentation for usage) Portable Mercurial Tip of the Day added, from Core and community New Reference Syntax added for custom PC sheets New Child Reference for gametree New Parent Reference for gametree New Gametree Recursion method, mapping, context sensitivity, and effeciency.. New Features node with bonus nodes and Node Referencing help added Dieroller structure from Core New DieRoller portability for odd Dice Added 7th Sea die roller; ie [7k3] = [7d10.takeHighest(3).open(10)] New 'Mythos' System die roller added Added new vs. die roller method for WoD; ie [3v3] = [3d10.vs(3)]. Included for Mythos roller also New Warhammer FRPG Die Roller (Special thanks to Puu-san for the support) New EZ_Tree Reference system. Push a button, Traipse the tree, get a reference (Beta!) Fixes: Fix to Text based Server Fix to Remote Admin Commands Fix to Pretty Print, from Core Fix to Splitter Nodes not being created Fix to massive amounts of images loading, from Core Fix to Map from gametree not showing to all clients Fix to gametree about menus Fix to Password Manager check on startup Fix to PC Sheets from tool nodes. They now use the tabber_panel Fix to Whiteboard ID to prevent random line or text deleting. Fixes to Server, Remote Server, and Server GUI Fix to Update Manager; cleaner clode for saved repositories Fixes made to Settings Panel and now reactive settings when Ok is pressed Fixes to Alternity roller's attack roll. Uses a simple Tuple instead of a Splice Fix to Use panel of Forms and Tabbers. Now longer enters design mode Fix made Image Fetching. New fetching image and new failed image Modified ID's to prevent non updated clients from ruining the fix. default_manifest.xml renamed to default_upmana.xml
author sirebral
date Sun, 17 Jan 2010 21:37:34 -0600
parents 6081bdc2b8d5
children 9230a33defd9
comparison
equal deleted inserted replaced
183:0d9b746b5751 184:dcae32e219f1
19 # 19 #
20 # File: gsclient.py 20 # File: gsclient.py
21 # Author: Chris Davis 21 # Author: Chris Davis
22 # Maintainer: 22 # Maintainer:
23 # Version: 23 # Version:
24 # $Id: gsclient.py,v 1.53 2007/10/25 21:49:34 digitalxero Exp $ 24 # $Id: gsclient.py,v Traipse 'Ornery-Orc' prof.ebral Exp $
25 # 25 #
26 # Description: The file contains code for the game server browser 26 # Description: The file contains code for the game server browser
27 # 27 #
28 28
29 from __future__ import with_statement 29 from __future__ import with_statement
30 __version__ = "$Id: gsclient.py,v 1.53 2007/10/25 21:49:34 digitalxero Exp $" 30 __version__ = "$Id: gsclient.py,v Traipse 'Ornery-Orc' prof.ebral Exp $"
31 31
32 import meta_server_lib 32 import meta_server_lib
33 import orpg.tools.rgbhex 33 import orpg.tools.rgbhex
34 import traceback 34 import traceback
35 35
267 def bookmark(self, item, flag): 267 def bookmark(self, item, flag):
268 name = self.svrList[item].name 268 name = self.svrList[item].name
269 address = self.svrList[item].addy 269 address = self.svrList[item].addy
270 port = self.svrList[item].port 270 port = self.svrList[item].port
271 self.server_list.SetItemImage(item, 1) 271 self.server_list.SetItemImage(item, 1)
272
273 for server in self.bookmarks.findall('server'): 272 for server in self.bookmarks.findall('server'):
274 if server.get('name') == name: 273 if server.get('name') == name:
275 self.bookmarks_menu.Remove( 274 self.bookmarks_menu.Remove(
276 self.bookmarks_menu.FindItem(server.get('name'))) 275 self.bookmarks_menu.FindItem(server.get('name')))
277 self.bookmarks.getroot().remove(server) 276 self.bookmarks.getroot().remove(server)
296 #make sure address is updated just in case list select wasn't done 295 #make sure address is updated just in case list select wasn't done
297 try: self.on_select(evt) 296 try: self.on_select(evt)
298 except: pass 297 except: pass
299 address = self.texts["address"].GetValue() 298 address = self.texts["address"].GetValue()
300 if self.session.is_connected(): 299 if self.session.is_connected():
301 if self.session.host_server == address : return #currently connected to address. Do nothing. 300 if self.session.host_server == address : return
302 else: self.frame.kill_mplay_session() #address differs, disconnect. 301 else: self.frame.kill_mplay_session()
303 self.do_connect(address) 302 self.do_connect(address)
304 303
305 def on_room_dbclick(self, evt=None): 304 def on_room_dbclick(self, evt=None):
306 #make sure address is updated just in case list select wasn't done 305 #make sure address is updated just in case list select wasn't done
307 try: self.on_select(evt) 306 try: self.on_select(evt)
308 except: pass 307 except: pass
309 group_id = str(self.room_list.GetItemData(self.cur_room_index)) 308 group_id = str(self.room_list.GetItemData(self.cur_room_index))
310
311 if self.NoGroups: 309 if self.NoGroups:
312 self.NoGroups = False 310 self.NoGroups = False
313 self.session.group_id = group_id 311 self.session.group_id = group_id
314 self.on_server_dbclick() 312 self.on_server_dbclick()
315 return 313 return
316
317 if self.cur_room_index >= 0: 314 if self.cur_room_index >= 0:
318 if self.cur_room_index != 0: self.set_lobbybutton(1); 315 if self.cur_room_index != 0: self.set_lobbybutton(1);
319 else: self.set_lobbybutton(0); 316 else: self.set_lobbybutton(0);
320 group = self.session.get_group_info(group_id) 317 group = self.session.get_group_info(group_id)
321 pwd = "" 318 pwd = ""
343 self.refresh_room_list() 340 self.refresh_room_list()
344 341
345 def on_text(self, evt): 342 def on_text(self, evt):
346 id = evt.GetId() 343 id = evt.GetId()
347 if (id == self.texts["address"].GetValue()) and (self.cur_server_index >= 0): 344 if (id == self.texts["address"].GetValue()) and (self.cur_server_index >= 0):
348 #print "ADDRESS id = ", id, "index = ", self.cur_server_index
349 self.cur_server_index = -1 345 self.cur_server_index = -1
350 evt.Skip() 346 evt.Skip()
351 347
352 def add_room(self, data): 348 def add_room(self, data):
353 i = self.room_list.GetItemCount() 349 i = self.room_list.GetItemCount()
524 520
525 if self.serverNameSet == 0: 521 if self.serverNameSet == 0:
526 self.texts["address"].SetValue("127.0.0.1:6774") 522 self.texts["address"].SetValue("127.0.0.1:6774")
527 self.serverNameSet = 1 523 self.serverNameSet = 1
528 else: pass 524 else: pass
529 # Allow xml_dom to be collected
530 except Exception, e: 525 except Exception, e:
531 print "Server List not available." 526 print "Server List not available."
532 traceback.print_exc() 527 traceback.print_exc()
533 528
534
535 def failed_connection(self): 529 def failed_connection(self):
536 if(self.cur_server_index >= 0): 530 if(self.cur_server_index >= 0):
537 server_index = self.servers[self.cur_server_index] 531 server_index = self.servers[self.cur_server_index]
538 # post_failed_connection will return a non-zero if the server
539 # was removed. If it was, refresh the display
540 if(meta_server_lib.post_failed_connection(server_index.get('id'), 532 if(meta_server_lib.post_failed_connection(server_index.get('id'),
541 meta=server_index.get('meta'), address=server_index.get('address'), 533 meta=server_index.get('meta'), address=server_index.get('address'),
542 port=server_index.get('port'))): 534 port=server_index.get('port'))):
543 self.refresh_server_list() 535 self.refresh_server_list()
544 536
611 if name == "": wx.MessageBox("Invalid Name","Error"); 603 if name == "": wx.MessageBox("Invalid Name","Error");
612 else: 604 else:
613 msg = "%s is creating room \'%s.\'" % (self.session.name, name) 605 msg = "%s is creating room \'%s.\'" % (self.session.name, name)
614 self.session.send(msg) 606 self.session.send(msg)
615 self.session.send_create_group(name, pwd, boot_pwd, minversion) 607 self.session.send_create_group(name, pwd, boot_pwd, minversion)
616 self.set_lobbybutton(1); #enable the Lobby quickbutton 608 self.set_lobbybutton(1);
617 609
618 def on_size(self, evt): 610 def on_size(self, evt):
619 # set column widths for room list
620 # set column widths for server list
621 pass 611 pass
622 612
623 def colorize_group_list(self, groups): 613 def colorize_group_list(self, groups):
624 try: 614 try:
625 hex = orpg.tools.rgbhex.RGBHex() 615 hex = orpg.tools.rgbhex.RGBHex()