#! /usr/bin/env python ################################################################################ # Generates AR Codes for PSO to connect to a different server # # Copyright (C) 2006 Jake Probst(Toaster Mage) # # # # This program is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # ################################################################################ import wx import binascii try: import psyco psyco.full() except: pass class ConnectionCode(wx.Frame): def __init__(self,parent,id,title): wx.Frame.__init__(self,parent,wx.ID_ANY, title, size = (300,300)) wx.StaticText(self,-1,"Server Name:",pos=(2,2)) wx.StaticText(self,-1,"Version:",pos=(210,2)) self.servertxt = wx.TextCtrl(self,5,pos=(2,20),size=(200,-1)) self.verop = ['1.0','1.1','1.2','EU','US EP3','EU EP3'] self.version = wx.ComboBox(self, 2,'Version', pos=(210, 20), size=(80, -1),choices=self.verop,style=wx.CB_READONLY) self.output = wx.TextCtrl(self,1,pos=(2,50),size=(296,250), style=wx.TE_MULTILINE|wx.TE_READONLY) self.Show(True) self.PSOv0 = ['0443B088','0443B08C','0443B090','0443B094','0443B098', '0443B09C'] self.PSOv1 = ['0443B508','0443B50C','0443B510','0443B514','0443B518', '0443B51C'] self.PSOv2 = ['0443EDA0','0443EDA4','0443EDA8','0443EDAC','0443EDB0', '0443EDB4'] self.PSOvEU = ['0443E998','0443E99C','0443E9A0','0443E9A4','0443E9A8', '0443E9AC'] self.PSO3 = ['043E96C8','043E96CC','043E96D0','043E96D4','043E96D8', '043E96DC'] self.PSO3EU = ['043EAF48','043EAF4C','043EAF50','043EAF54','043EAF58', '043EAF5C'] #wx.EVT_IDLE(self,self.GenerateCode) wx.EVT_TEXT(self,5,self.GenerateCode) wx.EVT_COMBOBOX(self,2,self.GenerateCode) def GenerateCode(self,event): self.output.Remove(0,-1) server = self.servertxt.GetString(0,-1) version = self.version.GetValue() server = binascii.b2a_hex(server).upper() leftcode = [] if version == '1.0': leftcode = self.PSOv0 elif version == '1.1': leftcode = self.PSOv1 elif version == '1.2': leftcode = self.PSOv2 elif version == 'EU': leftcode = self.PSOvEU elif version == 'US EP3': leftcode = self.PSO3 elif version == 'EU EP3': leftcode = self.PSO3EU if leftcode == []: return 0 while len(server) % 8 != 0: server += '0' if len(server) > 48: server = server[:48] n = -1 for i in range(0,len(server),8): n += 1 self.output.AppendText(leftcode[n] + ' ' + server[i:i+8] + '\n') if __name__ == '__main__': app = wx.PySimpleApp() frame = ConnectionCode(None, -1, "AR Connection Code Generator") app.MainLoop()