Mercurial > traipse_dev
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() |