Compare commits
10 Commits
e2cb9a0d57
...
3cceac4d0c
Author | SHA1 | Date | |
---|---|---|---|
3cceac4d0c | |||
c61733de05 | |||
4517786004 | |||
246f4545a8 | |||
59f5ebdc1b | |||
3e1137753b | |||
1b74471c3a | |||
aff375113b | |||
eb57bea8b0 | |||
a172992fa0 |
@ -1,5 +1,33 @@
|
|||||||
self.gamewindow.setFixedSize(820, 730)
|
self.gamewindow.setFixedSize(820, 730)
|
||||||
|
|
||||||
|
self.text.setGeometry(16, 32, VIEWPORT_W - 32, 112)
|
||||||
|
self.text.setStyleSheet('background-color: rgba(0, 0, 0, 0); color: white;')
|
||||||
|
|
||||||
|
self.ao2text.setGeometry(16, 32, VIEWPORT_W - 32, 112)
|
||||||
|
self.ao2text.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: white;")
|
||||||
|
|
||||||
|
self.name.setStyleSheet('color: white')
|
||||||
|
self.name.move(16, -1)
|
||||||
|
self.name.resize(248, 32)
|
||||||
|
|
||||||
|
self.icchatinput.setGeometry(0, VIEWPORT_H, VIEWPORT_W, 23)
|
||||||
|
self.emotedropdown.setGeometry(164 - 28, 344 + 66 + 4, 72, 20)
|
||||||
|
self.colordropdown.setGeometry(self.emotedropdown.x(), 376 + 64, 72, 20)
|
||||||
|
self.posdropdown.setGeometry(self.emotedropdown.x() + self.emotedropdown.size().width() + 4, self.emotedropdown.y(), 72, 20)
|
||||||
|
|
||||||
|
self.flipbutton.move(self.posdropdown.x() + self.posdropdown.width() + 4, self.colordropdown.y() - 5)
|
||||||
|
self.sfxbutton.move(self.flipbutton.x(), self.flipbutton.y() + 14)
|
||||||
|
self.nointerruptbtn.move(self.flipbutton.x() + 140, self.flipbutton.y())
|
||||||
|
self.additivebtn.move(self.nointerruptbtn.x(), self.sfxbutton.y())
|
||||||
|
|
||||||
|
self.deskbtn.move(self.flipbutton.x()+70, self.flipbutton.y())
|
||||||
|
self.effectdropdown.setGeometry(self.posdropdown.x(), self.colordropdown.y(), 72, 20)
|
||||||
|
self.callmodbtn.setGeometry(10, 376 + 62, 60, 23)
|
||||||
|
self.settingsbtn.setGeometry(self.callmodbtn.x()+self.callmodbtn.size().width(), 376 + 62, self.callmodbtn.width(), 23)
|
||||||
|
self.changechar.setGeometry(10, 344 + 66 + 4, self.callmodbtn.size().width() + self.settingsbtn.size().width(), 23)
|
||||||
|
|
||||||
|
self.shownameedit.setGeometry(self.posdropdown.x() + self.posdropdown.width() + 4, self.posdropdown.y(), 168 + 56, 20)
|
||||||
|
|
||||||
self.ooclog.setGeometry(814 - 288, 0, 288, 248)
|
self.ooclog.setGeometry(814 - 288, 0, 288, 248)
|
||||||
self.oocnameinput.resize(self.oocnameinput.sizeHint().width() - 32, self.oocnameinput.sizeHint().height())
|
self.oocnameinput.resize(self.oocnameinput.sizeHint().width() - 32, self.oocnameinput.sizeHint().height())
|
||||||
self.oocnameinput.move(814 - 288, 248)
|
self.oocnameinput.move(814 - 288, 248)
|
||||||
@ -8,29 +36,54 @@ self.oocinput.move(814 - 288 + self.oocnameinput.size().width(), 248)
|
|||||||
self.ooclogin.resize(48, 20)
|
self.ooclogin.resize(48, 20)
|
||||||
self.ooclogin.move(814 - (self.ooclogin.size().width()), self.oocinput.y() + self.ooclogin.size().height())
|
self.ooclogin.move(814 - (self.ooclogin.size().width()), self.oocinput.y() + self.ooclogin.size().height())
|
||||||
|
|
||||||
self.musicitems.setGeometry(814 - 288, 468, 288, 256)
|
self.musicareatabs.setGeometry(814 - 288, 468, 288, 256)
|
||||||
|
|
||||||
self.icLog.setGeometry(8, 8, 714 - 304 - 22, 212)
|
self.icLog.setGeometry(8, 8, 714 - 304 - 22, 212)
|
||||||
|
|
||||||
self.evidencedropdown.setGeometry(8, 8, 192, 20)
|
self.evidencedropdown.setGeometry(8, 8, 192, 20)
|
||||||
|
self.privatedropdown.setGeometry(8, 8, 192, 20)
|
||||||
self.evidencedesc.setGeometry(8, 108, 714 - 304 - 22, 112)
|
self.evidencedesc.setGeometry(8, 108, 714 - 304 - 22, 112)
|
||||||
self.evidenceimage.setGeometry(326, 8, 70, 70)
|
self.evidenceimage.setGeometry(326, 8, 70, 70)
|
||||||
|
|
||||||
self.evidenceadd.move(8, 32)
|
self.evidenceadd.move(8, 32)
|
||||||
self.evidenceedit.move(8, 56)
|
self.evidenceadd.resize(30, 26)
|
||||||
self.evidencedelete.move(8, 80)
|
evidenceadd_size = self.evidenceadd.size()
|
||||||
|
self.evidenceedit.resize(evidenceadd_size)
|
||||||
|
self.evidencedelete.resize(evidenceadd_size)
|
||||||
|
self.evidenceload.resize(evidenceadd_size)
|
||||||
|
self.evidencesave.resize(evidenceadd_size)
|
||||||
|
self.evidencemoveprivate.resize(evidenceadd_size)
|
||||||
|
self.evidencemoveallprivate.resize(evidenceadd_size)
|
||||||
|
self.evidencemoveglobal.resize(evidenceadd_size)
|
||||||
|
self.evidencemoveallglobal.resize(evidenceadd_size)
|
||||||
|
self.evidenceswitchprivate.resize(evidenceadd_size)
|
||||||
|
self.evidenceswitchglobal.resize(evidenceadd_size)
|
||||||
|
self.evidenceedit.move(3 + self.evidenceadd.x() + self.evidenceadd.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidencedelete.move(3 + self.evidenceedit.x() + self.evidenceedit.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidencemoveprivate.move(3 + self.evidencedelete.x() + self.evidencedelete.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidencemoveallprivate.move(3 + self.evidencemoveprivate.x() + self.evidencemoveprivate.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidencemoveglobal.move(3 + self.evidencedelete.x() + self.evidencedelete.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidencemoveallglobal.move(3 + self.evidencemoveprivate.x() + self.evidencemoveprivate.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidenceswitchprivate.move(3 + self.evidencemoveallprivate.x() + self.evidencemoveallprivate.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidenceswitchglobal.move(3 + self.evidencemoveallprivate.x() + self.evidencemoveallprivate.size().width(), self.evidenceadd.y())
|
||||||
|
|
||||||
|
self.evidenceload.move(3 + self.evidenceswitchprivate.x() + self.evidenceswitchprivate.size().width(), self.evidenceadd.y())
|
||||||
|
self.evidencesave.move(3 + self.evidenceload.x() + self.evidenceload.size().width(), self.evidenceadd.y())
|
||||||
|
|
||||||
self.evidencepresent.move((714 - 304 - 22) / 2 - self.evidencepresent.button_off.size().width() / 2, self.evidencedesc.y() - self.evidencepresent.button_off.size().height())
|
self.evidencepresent.move((714 - 304 - 22) / 2 - self.evidencepresent.button_off.size().width() / 2, self.evidencedesc.y() - self.evidencepresent.button_off.size().height())
|
||||||
|
|
||||||
self.msgqueueList.setGeometry(8, 8, 714 - 304 - 22, 180)
|
self.msgqueueList.setGeometry(8, 8, 714 - 304 - 22, 180)
|
||||||
self.playerList.setGeometry(8, 8, 714 - 304 - 22, 180)
|
self.playerList.setGeometry(8, 8, 714 - 304 - 22, 180)
|
||||||
self.removeQueue.resize(self.removeQueue.sizeHint())
|
self.removeQueue.resize(self.removeQueue.sizeHint())
|
||||||
self.removeQueue.move(8, self.msgqueueList.size().height() + 16)
|
self.removeQueue.move(8, self.msgqueueList.size().height() + 16)
|
||||||
|
self.clearQueue.move(self.removeQueue.x() + self.removeQueue.size().width(), self.removeQueue.y())
|
||||||
|
|
||||||
self.playerPair.resize(self.playerPair.sizeHint())
|
self.playerPair.resize(self.playerPair.sizeHint())
|
||||||
self.playerPair.move(8, self.playerList.size().height() + 16)
|
|
||||||
self.playerKick.resize(self.playerKick.sizeHint())
|
self.playerKick.resize(self.playerKick.sizeHint())
|
||||||
self.playerKick.move(16 + self.playerPair.size().width(), self.playerList.size().height() + 16)
|
|
||||||
self.playerBan.resize(self.playerBan.sizeHint())
|
self.playerBan.resize(self.playerBan.sizeHint())
|
||||||
self.playerBan.move(24 + self.playerPair.size().width() + self.playerKick.size().width(), self.playerList.size().height() + 16)
|
self.playerPair.move(8, self.playerList.size().height() + 16)
|
||||||
|
self.playerKick.move(8 + self.playerPair.x() + self.playerPair.size().width(), self.playerList.size().height() + 16)
|
||||||
|
self.playerBan.move(8 + self.playerKick.x() + self.playerKick.size().width(), self.playerList.size().height() + 16)
|
||||||
|
|
||||||
self.notmutedlabel.move(8, 8)
|
self.notmutedlabel.move(8, 8)
|
||||||
self.unmutedlist.setGeometry(8, 24, 160, 192)
|
self.unmutedlist.setGeometry(8, 24, 160, 192)
|
||||||
@ -73,3 +126,6 @@ self.sliderlabel2.move(self.soundslider.x() + self.soundslider.size().width()+8,
|
|||||||
self.sliderlabel3.move(self.blipslider.x() + self.blipslider.size().width()+8, self.blipslider.y())
|
self.sliderlabel3.move(self.blipslider.x() + self.blipslider.size().width()+8, self.blipslider.y())
|
||||||
|
|
||||||
self.pinglabel.setGeometry(self.sliderlabel3.x() + 32, self.sliderlabel3.y(), 96, 14)
|
self.pinglabel.setGeometry(self.sliderlabel3.x() + 32, self.sliderlabel3.y(), 96, 14)
|
||||||
|
|
||||||
|
self.defensebar.moveBar(265 + 164, 164 + 304)
|
||||||
|
self.prosecutionbar.moveBar(265 + 164, 178 + 304)
|
511
gameview.py
511
gameview.py
@ -62,6 +62,7 @@ C_YELLOW = 5
|
|||||||
C_PINK = 6
|
C_PINK = 6
|
||||||
C_CYAN = 7
|
C_CYAN = 7
|
||||||
C_GRAY = 8
|
C_GRAY = 8
|
||||||
|
C_RAINBOW = 9 # proprietary
|
||||||
|
|
||||||
DOWNLOAD_BLACKLIST = []
|
DOWNLOAD_BLACKLIST = []
|
||||||
|
|
||||||
@ -151,6 +152,16 @@ def download_thread(link, savepath):
|
|||||||
|
|
||||||
def mockStr(text):
|
def mockStr(text):
|
||||||
upper = random.choice([True, False])
|
upper = random.choice([True, False])
|
||||||
|
if isinstance(text, QtCore.QString):
|
||||||
|
l = QtCore.QStringList(list(text))
|
||||||
|
for i in range(len(text)):
|
||||||
|
if text[i] == " ":
|
||||||
|
continue
|
||||||
|
|
||||||
|
l[i] = l[i].toUpper() if upper else l[i].toLower()
|
||||||
|
upper = not upper
|
||||||
|
return l.join("")
|
||||||
|
else:
|
||||||
l = list(text)
|
l = list(text)
|
||||||
for i in range(len(text)):
|
for i in range(len(text)):
|
||||||
if text[i] == " ":
|
if text[i] == " ":
|
||||||
@ -675,6 +686,8 @@ class gui(QtGui.QWidget):
|
|||||||
charini = ConfigParser()
|
charini = ConfigParser()
|
||||||
chatmsg = ''
|
chatmsg = ''
|
||||||
charid = -1
|
charid = -1
|
||||||
|
login = False
|
||||||
|
privateinv = False
|
||||||
|
|
||||||
#ICchat = QtCore.pyqtSignal(str, str, str, str, str, str, int, int, int, int, int, int, int, int)
|
#ICchat = QtCore.pyqtSignal(str, str, str, str, str, str, int, int, int, int, int, int, int, int)
|
||||||
#ICchat = QtCore.pyqtSignal(list)
|
#ICchat = QtCore.pyqtSignal(list)
|
||||||
@ -746,27 +759,23 @@ class gui(QtGui.QWidget):
|
|||||||
self.chatbox.setPixmap(chatbox)
|
self.chatbox.setPixmap(chatbox)
|
||||||
self.chatbox.move(0, VIEWPORT_H - self.chatboxheight)
|
self.chatbox.move(0, VIEWPORT_H - self.chatboxheight)
|
||||||
|
|
||||||
self.text = QtGui.QLabel(self.chatbox)
|
self.text = QtGui.QTextEdit(self.chatbox)
|
||||||
self.text.setWordWrap(True)
|
self.text.setFrameStyle(QtGui.QFrame.NoFrame)
|
||||||
self.text.resize(VIEWPORT_W, 96)
|
self.text.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
self.text.move(6, 20)
|
self.text.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
self.text.setStyleSheet('color: white;')
|
self.text.setReadOnly(True)
|
||||||
self.text.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
|
self.text.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
|
self.text.setFont(ao2text_font)
|
||||||
|
|
||||||
self.ao2text = QtGui.QTextEdit(self.chatbox)
|
self.ao2text = QtGui.QTextEdit(self.chatbox)
|
||||||
self.ao2text.setFrameStyle(QtGui.QFrame.NoFrame)
|
self.ao2text.setFrameStyle(QtGui.QFrame.NoFrame)
|
||||||
self.ao2text.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
self.ao2text.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
self.ao2text.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
self.ao2text.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
self.ao2text.setReadOnly(True)
|
self.ao2text.setReadOnly(True)
|
||||||
self.ao2text.setGeometry(16, 32, VIEWPORT_W - 32, 112)
|
|
||||||
self.ao2text.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
self.ao2text.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
self.ao2text.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: white;")
|
|
||||||
self.ao2text.setFont(ao2text_font)
|
self.ao2text.setFont(ao2text_font)
|
||||||
|
|
||||||
self.name = QtGui.QLabel(self.chatbox)
|
self.name = QtGui.QLabel(self.chatbox)
|
||||||
self.name.setStyleSheet('color: white')
|
|
||||||
self.name.move(16, -1)
|
|
||||||
self.name.resize(248, 32)
|
|
||||||
self.name.setFont(name_font)
|
self.name.setFont(name_font)
|
||||||
|
|
||||||
self.wtceview = WTCE_View(self)
|
self.wtceview = WTCE_View(self)
|
||||||
@ -804,8 +813,14 @@ class gui(QtGui.QWidget):
|
|||||||
self.ooclogin = QtGui.QPushButton("Login", self)
|
self.ooclogin = QtGui.QPushButton("Login", self)
|
||||||
self.ooclogin.clicked.connect(self.onOOCLoginBtn)
|
self.ooclogin.clicked.connect(self.onOOCLoginBtn)
|
||||||
|
|
||||||
self.musicitems = QtGui.QListWidget(self)
|
self.musicareatabs = QtGui.QTabWidget(self)
|
||||||
|
self.musicitems = QtGui.QListWidget()
|
||||||
self.musicitems.itemDoubleClicked.connect(self.onMusicClick)
|
self.musicitems.itemDoubleClicked.connect(self.onMusicClick)
|
||||||
|
self.areaitems = QtGui.QListWidget()
|
||||||
|
self.areaitems.itemDoubleClicked.connect(self.onAreaClick)
|
||||||
|
|
||||||
|
self.musicareatabs.addTab(self.musicitems, "Music")
|
||||||
|
self.musicareatabs.addTab(self.areaitems, "Areas")
|
||||||
|
|
||||||
self.gametabs = QtGui.QTabWidget(self)
|
self.gametabs = QtGui.QTabWidget(self)
|
||||||
self.gametab_log = QtGui.QWidget() # the IC chat log
|
self.gametab_log = QtGui.QWidget() # the IC chat log
|
||||||
@ -822,28 +837,67 @@ class gui(QtGui.QWidget):
|
|||||||
self.icLog.textChanged.connect(self.icLogChanged)
|
self.icLog.textChanged.connect(self.icLogChanged)
|
||||||
|
|
||||||
self.evidencedropdown = QtGui.QComboBox(self.gametab_evidence)
|
self.evidencedropdown = QtGui.QComboBox(self.gametab_evidence)
|
||||||
self.evidencedropdown.currentIndexChanged.connect(self.changeEvidence)
|
self.evidencedropdown.currentIndexChanged.connect(self.changeGlobalEvidence)
|
||||||
|
self.privatedropdown = QtGui.QComboBox(self.gametab_evidence)
|
||||||
|
self.privatedropdown.currentIndexChanged.connect(self.changePrivateEvidence)
|
||||||
|
|
||||||
self.evidencedesc = QtGui.QTextEdit(self.gametab_evidence)
|
self.evidencedesc = QtGui.QTextEdit(self.gametab_evidence)
|
||||||
self.evidencedesc.setReadOnly(True)
|
self.evidencedesc.setReadOnly(True)
|
||||||
self.evidenceimage = QtGui.QLabel(self.gametab_evidence)
|
self.evidenceimage = QtGui.QLabel(self.gametab_evidence)
|
||||||
self.evidenceimage.setPixmap(QtGui.QPixmap(AOpath + 'evidence/empty.png'))
|
self.evidenceimage.setPixmap(QtGui.QPixmap(AOpath + 'evidence/empty.png'))
|
||||||
self.evidenceimage.show()
|
self.evidenceimage.show()
|
||||||
self.evidenceadd = QtGui.QPushButton(self.gametab_evidence)
|
self.evidenceadd = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "add.png"), "", self.gametab_evidence)
|
||||||
self.evidenceadd.setText('Add')
|
self.evidenceadd.setToolTip('Add new evidence')
|
||||||
self.evidenceadd.clicked.connect(self.onAddEvidence)
|
self.evidenceadd.clicked.connect(self.onAddEvidence)
|
||||||
self.evidenceedit = QtGui.QPushButton(self.gametab_evidence)
|
self.evidenceedit = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "edit.png"), "", self.gametab_evidence)
|
||||||
self.evidenceedit.setText('Edit')
|
self.evidenceedit.setToolTip('Edit selected evidence')
|
||||||
self.evidenceedit.clicked.connect(self.onEditEvidence)
|
self.evidenceedit.clicked.connect(self.onEditEvidence)
|
||||||
self.evidencedelete = QtGui.QPushButton(self.gametab_evidence)
|
self.evidencedelete = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "delete.png"), "", self.gametab_evidence)
|
||||||
self.evidencedelete.setText('Delete')
|
self.evidencedelete.setToolTip('Delete selected evidence')
|
||||||
self.evidencedelete.clicked.connect(self.onDeleteEvidence)
|
self.evidencedelete.clicked.connect(self.onDeleteEvidence)
|
||||||
|
self.evidenceload = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "folder.png"), "", self.gametab_evidence)
|
||||||
|
self.evidenceload.setToolTip('Import all evidence from file')
|
||||||
|
self.evidenceload.clicked.connect(self.onImportEvidence)
|
||||||
|
self.evidencesave = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "disk.png"), "", self.gametab_evidence)
|
||||||
|
self.evidencesave.setToolTip('Export all evidence to file')
|
||||||
|
self.evidencesave.clicked.connect(self.onExportEvidence)
|
||||||
|
|
||||||
|
self.evidencemoveprivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_right.png"), "", self.gametab_evidence)
|
||||||
|
self.evidencemoveprivate.setToolTip('Transfer selected evidence to private inventory')
|
||||||
|
self.evidencemoveprivate.clicked.connect(self.onTransferEvidence)
|
||||||
|
self.evidencemoveallprivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_right2.png"), "", self.gametab_evidence)
|
||||||
|
self.evidencemoveallprivate.setToolTip('Transfer all evidence to private inventory')
|
||||||
|
self.evidencemoveallprivate.clicked.connect(self.onTransferAllEvidence)
|
||||||
|
|
||||||
|
self.evidencemoveglobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_left.png"), "", self.gametab_evidence)
|
||||||
|
self.evidencemoveglobal.setToolTip('Transfer selected evidence to global inventory')
|
||||||
|
self.evidencemoveglobal.clicked.connect(self.onTransferEvidence)
|
||||||
|
self.evidencemoveallglobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_left2.png"), "", self.gametab_evidence)
|
||||||
|
self.evidencemoveallglobal.setToolTip('Transfer all evidence to global inventory')
|
||||||
|
self.evidencemoveallglobal.clicked.connect(self.onTransferAllEvidence)
|
||||||
|
|
||||||
|
self.evidenceswitchprivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "world.png"), "", self.gametab_evidence)
|
||||||
|
self.evidenceswitchprivate.setToolTip('Switch to private inventory')
|
||||||
|
self.evidenceswitchprivate.clicked.connect(self.onSwitchInventory)
|
||||||
|
self.evidenceswitchglobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "briefcase.png"), "", self.gametab_evidence)
|
||||||
|
self.evidenceswitchglobal.setToolTip('Switch to global inventory')
|
||||||
|
self.evidenceswitchglobal.clicked.connect(self.onSwitchInventory)
|
||||||
|
|
||||||
self.evidencepresent = PresentButton(self, self.gametab_evidence)
|
self.evidencepresent = PresentButton(self, self.gametab_evidence)
|
||||||
|
|
||||||
|
self.privatedropdown.hide()
|
||||||
|
self.evidencemoveglobal.hide()
|
||||||
|
self.evidencemoveallglobal.hide()
|
||||||
|
self.evidenceswitchglobal.hide()
|
||||||
|
|
||||||
self.msgqueueList = QtGui.QListWidget(self.gametab_msgqueue)
|
self.msgqueueList = QtGui.QListWidget(self.gametab_msgqueue)
|
||||||
self.msgqueueList.itemClicked.connect(self.onClicked_msgqueue)
|
self.msgqueueList.itemClicked.connect(self.onClicked_msgqueue)
|
||||||
self.removeQueue = QtGui.QPushButton(self.gametab_msgqueue)
|
self.removeQueue = QtGui.QPushButton(self.gametab_msgqueue)
|
||||||
self.removeQueue.setText('Delete')
|
self.removeQueue.setText('Delete')
|
||||||
self.removeQueue.clicked.connect(self.onClicked_removeQueue)
|
self.removeQueue.clicked.connect(self.onClicked_removeQueue)
|
||||||
|
self.clearQueue = QtGui.QPushButton(self.gametab_msgqueue)
|
||||||
|
self.clearQueue.setText('Clear')
|
||||||
|
self.clearQueue.clicked.connect(self.onClicked_clearQueue)
|
||||||
|
|
||||||
self.playerList = QtGui.QListWidget(self.gametab_players)
|
self.playerList = QtGui.QListWidget(self.gametab_players)
|
||||||
self.playerList.itemClicked.connect(self.onClicked_playerList)
|
self.playerList.itemClicked.connect(self.onClicked_playerList)
|
||||||
@ -853,9 +907,11 @@ class gui(QtGui.QWidget):
|
|||||||
self.playerKick = QtGui.QPushButton(self.gametab_players)
|
self.playerKick = QtGui.QPushButton(self.gametab_players)
|
||||||
self.playerKick.setText('Kick')
|
self.playerKick.setText('Kick')
|
||||||
self.playerKick.clicked.connect(self.onClicked_playerKick)
|
self.playerKick.clicked.connect(self.onClicked_playerKick)
|
||||||
|
self.playerKick.setDisabled(True)
|
||||||
self.playerBan = QtGui.QPushButton(self.gametab_players)
|
self.playerBan = QtGui.QPushButton(self.gametab_players)
|
||||||
self.playerBan.setText('Ban')
|
self.playerBan.setText('Ban')
|
||||||
self.playerBan.clicked.connect(self.onClicked_playerBan)
|
self.playerBan.clicked.connect(self.onClicked_playerBan)
|
||||||
|
self.playerBan.setDisabled(True)
|
||||||
|
|
||||||
self.unmutedlist = QtGui.QListWidget(self.gametab_mute)
|
self.unmutedlist = QtGui.QListWidget(self.gametab_mute)
|
||||||
self.mutedlist = QtGui.QListWidget(self.gametab_mute)
|
self.mutedlist = QtGui.QListWidget(self.gametab_mute)
|
||||||
@ -921,79 +977,64 @@ class gui(QtGui.QWidget):
|
|||||||
|
|
||||||
self.gametabs.addTab(self.gametab_log, 'Log')
|
self.gametabs.addTab(self.gametab_log, 'Log')
|
||||||
self.gametabs.addTab(self.gametab_evidence, 'Evidence')
|
self.gametabs.addTab(self.gametab_evidence, 'Evidence')
|
||||||
self.gametabs.addTab(self.gametab_msgqueue, 'Queue')
|
|
||||||
self.gametabs.addTab(self.gametab_players, 'Players')
|
self.gametabs.addTab(self.gametab_players, 'Players')
|
||||||
self.gametabs.addTab(self.gametab_mute, 'Mute')
|
self.gametabs.addTab(self.gametab_mute, 'Mute')
|
||||||
self.gametabs.addTab(self.gametab_iniswap, 'INI swap')
|
self.gametabs.addTab(self.gametab_iniswap, 'INI swap')
|
||||||
self.gametabs.addTab(self.gametab_pair, 'Pair')
|
self.gametabs.addTab(self.gametab_pair, 'Pair')
|
||||||
self.gametabs.addTab(self.gametab_misc, 'Misc')
|
self.gametabs.addTab(self.gametab_misc, 'Misc')
|
||||||
|
self.gametabs.addTab(self.gametab_msgqueue, 'Queue')
|
||||||
|
|
||||||
self.icchatinput = QtGui.QLineEdit(self)
|
self.icchatinput = QtGui.QLineEdit(self)
|
||||||
self.icchatinput.setGeometry(0, VIEWPORT_H, VIEWPORT_W, 23)
|
|
||||||
self.icchatinput.returnPressed.connect(self.onICreturn)
|
self.icchatinput.returnPressed.connect(self.onICreturn)
|
||||||
self.icchatinput.setPlaceholderText('Game chat')
|
self.icchatinput.setPlaceholderText('Game chat')
|
||||||
|
|
||||||
self.emotedropdown = QtGui.QComboBox(self)
|
self.emotedropdown = QtGui.QComboBox(self)
|
||||||
self.emotedropdown.setGeometry(164 - 28, 344 + 66 + 4, 72, 20)
|
|
||||||
self.emotedropdown.currentIndexChanged.connect(partial(self.changeEmote, True))
|
self.emotedropdown.currentIndexChanged.connect(partial(self.changeEmote, True))
|
||||||
|
|
||||||
self.colordropdown = QtGui.QComboBox(self)
|
self.colordropdown = QtGui.QComboBox(self)
|
||||||
self.colordropdown.setGeometry(self.emotedropdown.x(), 376 + 64, 72, 20)
|
|
||||||
self.colordropdown.currentIndexChanged.connect(self.setChatColor)
|
self.colordropdown.currentIndexChanged.connect(self.setChatColor)
|
||||||
|
|
||||||
self.posdropdown = QtGui.QComboBox(self)
|
self.posdropdown = QtGui.QComboBox(self)
|
||||||
self.posdropdown.addItems(["def", "pro", "wit", "hld", "hlp", "jud"])
|
self.posdropdown.addItems(["def", "pro", "wit", "hld", "hlp", "jud"])
|
||||||
self.posdropdown.setGeometry(self.emotedropdown.x() + self.emotedropdown.size().width() + 4, self.emotedropdown.y(), 72, 20)
|
|
||||||
self.posdropdown.currentIndexChanged.connect(self.setPosition)
|
self.posdropdown.currentIndexChanged.connect(self.setPosition)
|
||||||
|
|
||||||
self.flipbutton = QtGui.QCheckBox(self)
|
self.flipbutton = QtGui.QCheckBox(self)
|
||||||
self.flipbutton.stateChanged.connect(self.changeFlipCheck)
|
self.flipbutton.stateChanged.connect(self.changeFlipCheck)
|
||||||
self.flipbutton.setText('Flip')
|
self.flipbutton.setText('Flip')
|
||||||
self.flipbutton.resize(self.flipbutton.sizeHint())
|
self.flipbutton.resize(self.flipbutton.sizeHint())
|
||||||
self.flipbutton.move(self.posdropdown.x() + self.posdropdown.width() + 4, self.colordropdown.y() - 5)
|
|
||||||
|
|
||||||
self.sfxbutton = QtGui.QCheckBox(self)
|
self.sfxbutton = QtGui.QCheckBox(self)
|
||||||
self.sfxbutton.setChecked(True)
|
self.sfxbutton.setChecked(True)
|
||||||
self.sfxbutton.stateChanged.connect(self.changeSfxCheck)
|
self.sfxbutton.stateChanged.connect(self.changeSfxCheck)
|
||||||
self.sfxbutton.setText('Play pre-animation')
|
self.sfxbutton.setText('Play pre-animation')
|
||||||
self.sfxbutton.resize(self.sfxbutton.sizeHint())
|
|
||||||
self.sfxbutton.move(self.flipbutton.x(), self.flipbutton.y() + 14)
|
|
||||||
|
|
||||||
self.nointerruptbtn = QtGui.QCheckBox(self)
|
self.nointerruptbtn = QtGui.QCheckBox(self)
|
||||||
self.nointerruptbtn.setChecked(False)
|
self.nointerruptbtn.setChecked(False)
|
||||||
self.nointerruptbtn.setText('No Interrupt')
|
self.nointerruptbtn.setText('No Interrupt')
|
||||||
self.nointerruptbtn.resize(self.nointerruptbtn.sizeHint())
|
|
||||||
self.nointerruptbtn.move(self.flipbutton.x() + 140, self.flipbutton.y())
|
|
||||||
|
|
||||||
# AO 2.8
|
# AO 2.8
|
||||||
self.additivebtn = QtGui.QCheckBox(self)
|
self.additivebtn = QtGui.QCheckBox(self)
|
||||||
self.additivebtn.setChecked(False)
|
self.additivebtn.setChecked(False)
|
||||||
self.additivebtn.setText('Additive')
|
self.additivebtn.setText('Additive')
|
||||||
self.additivebtn.resize(self.additivebtn.sizeHint())
|
self.additivebtn.resize(self.additivebtn.sizeHint())
|
||||||
self.additivebtn.move(self.nointerruptbtn.x(), self.sfxbutton.y())
|
|
||||||
self.additivebtn.clicked.connect(self.onAdditiveCheck)
|
self.additivebtn.clicked.connect(self.onAdditiveCheck)
|
||||||
|
|
||||||
self.deskbtn = QtGui.QCheckBox(self)
|
self.deskbtn = QtGui.QCheckBox(self)
|
||||||
self.deskbtn.setChecked(True)
|
self.deskbtn.setChecked(True)
|
||||||
self.deskbtn.setText('Desk')
|
self.deskbtn.setText('Desk')
|
||||||
self.deskbtn.resize(self.nointerruptbtn.sizeHint())
|
self.deskbtn.resize(self.nointerruptbtn.sizeHint())
|
||||||
self.deskbtn.move(self.flipbutton.x()+70, self.flipbutton.y())
|
|
||||||
|
|
||||||
self.effectdropdown = QtGui.QComboBox(self)
|
self.effectdropdown = QtGui.QComboBox(self)
|
||||||
self.effectdropdown.setGeometry(self.posdropdown.x(), self.colordropdown.y(), 72, 20)
|
|
||||||
|
|
||||||
self.callmodbtn = QtGui.QPushButton(self)
|
self.callmodbtn = QtGui.QPushButton(self)
|
||||||
self.callmodbtn.setText('Call mod')
|
self.callmodbtn.setText('Call mod')
|
||||||
self.callmodbtn.setGeometry(10, 376 + 62, 60, 23)
|
|
||||||
self.callmodbtn.clicked.connect(self.onClick_callMod)
|
self.callmodbtn.clicked.connect(self.onClick_callMod)
|
||||||
|
|
||||||
self.settingsbtn = QtGui.QPushButton("Settings", self)
|
self.settingsbtn = QtGui.QPushButton("Settings", self)
|
||||||
self.settingsbtn.setGeometry(self.callmodbtn.x()+self.callmodbtn.size().width(), 376 + 62, self.callmodbtn.width(), 23)
|
|
||||||
self.settingsbtn.clicked.connect(self.gamewindow.showSettings)
|
self.settingsbtn.clicked.connect(self.gamewindow.showSettings)
|
||||||
|
|
||||||
self.changechar = QtGui.QPushButton(self)
|
self.changechar = QtGui.QPushButton(self)
|
||||||
self.changechar.setText('Switch character')
|
self.changechar.setText('Switch character')
|
||||||
self.changechar.setGeometry(10, 344 + 66 + 4, self.callmodbtn.size().width() + self.settingsbtn.size().width(), 23)
|
|
||||||
self.changechar.clicked.connect(self.onClick_changeChar)
|
self.changechar.clicked.connect(self.onClick_changeChar)
|
||||||
|
|
||||||
spacing = 1
|
spacing = 1
|
||||||
@ -1030,8 +1071,6 @@ class gui(QtGui.QWidget):
|
|||||||
self.objectsnd = 0
|
self.objectsnd = 0
|
||||||
self.defensebar = buttons.PenaltyBars(self, 1)
|
self.defensebar = buttons.PenaltyBars(self, 1)
|
||||||
self.prosecutionbar = buttons.PenaltyBars(self, 2)
|
self.prosecutionbar = buttons.PenaltyBars(self, 2)
|
||||||
self.defensebar.moveBar(265 + 164, 164 + 304)
|
|
||||||
self.prosecutionbar.moveBar(265 + 164, 178 + 304)
|
|
||||||
self.defensebar.minusClicked.connect(self.penaltyBarMinus)
|
self.defensebar.minusClicked.connect(self.penaltyBarMinus)
|
||||||
self.defensebar.plusClicked.connect(self.penaltyBarPlus)
|
self.defensebar.plusClicked.connect(self.penaltyBarPlus)
|
||||||
self.prosecutionbar.minusClicked.connect(self.penaltyBarMinus)
|
self.prosecutionbar.minusClicked.connect(self.penaltyBarMinus)
|
||||||
@ -1058,7 +1097,6 @@ class gui(QtGui.QWidget):
|
|||||||
self.showname = ""
|
self.showname = ""
|
||||||
self.shownameedit = QtGui.QLineEdit(self)
|
self.shownameedit = QtGui.QLineEdit(self)
|
||||||
self.shownameedit.textChanged.connect(self.onChangeShowname)
|
self.shownameedit.textChanged.connect(self.onChangeShowname)
|
||||||
self.shownameedit.setGeometry(self.posdropdown.x() + self.posdropdown.width() + 4, self.posdropdown.y(), 168 + 56, 20)
|
|
||||||
self.shownameedit.setPlaceholderText("Showname")
|
self.shownameedit.setPlaceholderText("Showname")
|
||||||
|
|
||||||
self.musicslider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
|
self.musicslider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
|
||||||
@ -1083,6 +1121,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.chatbox.show()
|
self.chatbox.show()
|
||||||
|
|
||||||
self.areas = []
|
self.areas = []
|
||||||
|
self.areas_len = 0
|
||||||
self.muteselected = -1
|
self.muteselected = -1
|
||||||
self.unmuteselected = -1
|
self.unmuteselected = -1
|
||||||
self.muted = []
|
self.muted = []
|
||||||
@ -1097,6 +1136,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.msgqueue = []
|
self.msgqueue = []
|
||||||
self.selectedmsg = -1
|
self.selectedmsg = -1
|
||||||
self.evidence = []
|
self.evidence = []
|
||||||
|
self.privateevidence = []
|
||||||
self.selectedevi = -1
|
self.selectedevi = -1
|
||||||
self.present = False
|
self.present = False
|
||||||
self.playerlist = {}
|
self.playerlist = {}
|
||||||
@ -1159,10 +1199,16 @@ class gui(QtGui.QWidget):
|
|||||||
self.effectdropdown.setCurrentIndex(0)
|
self.effectdropdown.setCurrentIndex(0)
|
||||||
|
|
||||||
def onOOCLoginBtn(self):
|
def onOOCLoginBtn(self):
|
||||||
|
if not self.oocnameinput.text():
|
||||||
|
self.oocnameinput.setText("unnamed")
|
||||||
|
|
||||||
|
if not self.login:
|
||||||
password, ok = QtGui.QInputDialog.getText(self, "Login as moderator", "Enter password.")
|
password, ok = QtGui.QInputDialog.getText(self, "Login as moderator", "Enter password.")
|
||||||
if password and ok:
|
if password and ok:
|
||||||
self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/login")
|
self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/login")
|
||||||
self.sendOOCchat(self.oocnameinput.text().toUtf8(), password.toUtf8())
|
self.sendOOCchat(self.oocnameinput.text().toUtf8(), password.toUtf8())
|
||||||
|
else:
|
||||||
|
self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/logout")
|
||||||
|
|
||||||
def setPing(self, newping):
|
def setPing(self, newping):
|
||||||
self.pinglabel.setText("Ping: %d" % newping)
|
self.pinglabel.setText("Ping: %d" % newping)
|
||||||
@ -1254,9 +1300,9 @@ class gui(QtGui.QWidget):
|
|||||||
|
|
||||||
def onMuteClick(self):
|
def onMuteClick(self):
|
||||||
if self.unmutedlist.count() == 0:
|
if self.unmutedlist.count() == 0:
|
||||||
return QtGui.QMessageBox.warning(self, 'smh', 'you muted everyone\nhow does it feel?')
|
return QtGui.QMessageBox.information(self, 'No character selected', 'There are no characters to mute.')
|
||||||
if self.muteselected == -1:
|
if self.muteselected == -1:
|
||||||
return QtGui.QMessageBox.warning(self, 'hey genius', 'who exactly are you muting?\nclick on their name then on the >> button')
|
return QtGui.QMessageBox.information(self, 'No character selected', 'To mute a character, select their name from the list to the left, then click the >> button.')
|
||||||
for i in range(len(self.charlist)):
|
for i in range(len(self.charlist)):
|
||||||
if self.charlist[i][0] == self.unmutedlist.item(self.muteselected).text():
|
if self.charlist[i][0] == self.unmutedlist.item(self.muteselected).text():
|
||||||
self.muted.append(i)
|
self.muted.append(i)
|
||||||
@ -1274,9 +1320,9 @@ class gui(QtGui.QWidget):
|
|||||||
|
|
||||||
def onUnmuteClick(self):
|
def onUnmuteClick(self):
|
||||||
if self.mutedlist.count() == 0:
|
if self.mutedlist.count() == 0:
|
||||||
return QtGui.QMessageBox.warning(self, 'smh', "you haven't muted anyone yet\nbet 5$ everyone there is talking endlessly like those kids at the classroom when the teacher hasn't arrived yet")
|
return QtGui.QMessageBox.information(self, 'No character selected', "There are no characters to unmute.")
|
||||||
if self.unmuteselected == -1:
|
if self.unmuteselected == -1:
|
||||||
return QtGui.QMessageBox.warning(self, 'hey genius', 'who exactly are you unmuting?\nclick on their name then on the >> button')
|
return QtGui.QMessageBox.information(self, 'No character selected', 'To unmute a character, select their name from the list to the right, then click the << button.')
|
||||||
for char in self.charlist:
|
for char in self.charlist:
|
||||||
if char[0] == self.mutedlist.item(self.unmuteselected).text():
|
if char[0] == self.mutedlist.item(self.unmuteselected).text():
|
||||||
del self.muted[self.unmuteselected]
|
del self.muted[self.unmuteselected]
|
||||||
@ -1335,7 +1381,12 @@ class gui(QtGui.QWidget):
|
|||||||
self.tcp.send("RT#judgeruling#" +str(variant)+ "#%")
|
self.tcp.send("RT#judgeruling#" +str(variant)+ "#%")
|
||||||
|
|
||||||
def onPVPacket(self, charname):
|
def onPVPacket(self, charname):
|
||||||
exec open(AO2XPpath+"ao2xp_themes/"+get_option("General", "theme", "default")+"/theme.py")
|
theme = get_option("General", "theme", "default")
|
||||||
|
try:
|
||||||
|
exec open(AO2XPpath+"ao2xp_themes/"+theme+"/theme.py")
|
||||||
|
except Exception as e:
|
||||||
|
QtGui.QMessageBox.critical(None, "Unable to load theme", "There was a problem loading the current theme \"%s\":\n\n%s." % (theme, e))
|
||||||
|
os._exit(-2)
|
||||||
if not self.swapping:
|
if not self.swapping:
|
||||||
self.loadCharacter(charname)
|
self.loadCharacter(charname)
|
||||||
|
|
||||||
@ -1466,10 +1517,149 @@ class gui(QtGui.QWidget):
|
|||||||
self.evidence_editor.EditEvidence(self.selectedevi)
|
self.evidence_editor.EditEvidence(self.selectedevi)
|
||||||
|
|
||||||
def onDeleteEvidence(self):
|
def onDeleteEvidence(self):
|
||||||
|
if self.selectedevi == -1:
|
||||||
|
return
|
||||||
|
|
||||||
|
if not self.privateinv:
|
||||||
if self.evidence:
|
if self.evidence:
|
||||||
self.tcp.send('DE#' + str(self.selectedevi) + '#%')
|
self.tcp.send('DE#' + str(self.selectedevi) + '#%')
|
||||||
else:
|
else:
|
||||||
self.tcp.send('DE#0#%')
|
self.tcp.send('DE#0#%')
|
||||||
|
elif len(self.privateevidence):
|
||||||
|
del self.privateevidence[self.selectedevi]
|
||||||
|
self.privatedropdown.removeItem(self.selectedevi)
|
||||||
|
|
||||||
|
def onExportEvidence(self):
|
||||||
|
path = str(QtGui.QFileDialog.getSaveFileName(self, "Save evidence", AOpath, "Evidence (*.ini)"))
|
||||||
|
if path:
|
||||||
|
evidence = self.evidence if not self.privateinv else self.privateevidence
|
||||||
|
inifile = ConfigParser()
|
||||||
|
for i in range(len(evidence)):
|
||||||
|
evi = evidence[i]
|
||||||
|
id = str(i)
|
||||||
|
inifile.add_section(id)
|
||||||
|
if isinstance(evi[0], QtCore.QString):
|
||||||
|
inifile.set(id, "name", evi[0].replace('\n', '\\n'))
|
||||||
|
inifile.set(id, "description", evi[1].replace('\n', '\\n'))
|
||||||
|
inifile.set(id, "image", evi[2])
|
||||||
|
else:
|
||||||
|
inifile.set(id, "name", evi[0].replace('\n', '\\n').encode('utf-8'))
|
||||||
|
inifile.set(id, "description", evi[1].replace('\n', '\\n').encode('utf-8'))
|
||||||
|
inifile.set(id, "image", evi[2].encode('utf-8'))
|
||||||
|
|
||||||
|
inifile.write(open(path, "wb"))
|
||||||
|
|
||||||
|
def onImportEvidence(self):
|
||||||
|
if not self.privateinv:
|
||||||
|
if QtGui.QMessageBox.warning(self, "Import evidence", 'This will OVERWRITE the global evidence server-side.\n\nContinue?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) == QtGui.QMessageBox.No:
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
if QtGui.QMessageBox.warning(self, "Import evidence", 'This will OVERWRITE your private evidence.\n\nContinue?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) == QtGui.QMessageBox.No:
|
||||||
|
return
|
||||||
|
|
||||||
|
path = str(QtGui.QFileDialog.getOpenFileName(self, "Load evidence", AOpath, "Evidence (*.ini)"))
|
||||||
|
if path and exists(path):
|
||||||
|
evidence = []
|
||||||
|
inifile = ConfigParser()
|
||||||
|
inifile.read(path)
|
||||||
|
for section in inifile.sections():
|
||||||
|
name = ini.read_ini(inifile, section, "name").decode('utf-8').replace('\\n', '\n')
|
||||||
|
description = ini.read_ini(inifile, section, "description").decode('utf-8').replace('\\n', '\n')
|
||||||
|
image = ini.read_ini(inifile, section, "image", "empty.png")
|
||||||
|
evidence.append([name, description, image])
|
||||||
|
|
||||||
|
if self.privateinv:
|
||||||
|
dropdown = self.privatedropdown
|
||||||
|
self.privateevidence = evidence
|
||||||
|
if dropdown.count() > 0:
|
||||||
|
dropdown.clear()
|
||||||
|
|
||||||
|
if evidence:
|
||||||
|
for evi in evidence:
|
||||||
|
dropdown.addItem(evi[0])
|
||||||
|
dropdown.setCurrentIndex(self.selectedevi)
|
||||||
|
elif evidence:
|
||||||
|
if self.evidence:
|
||||||
|
for i in range(len(self.evidence)):
|
||||||
|
self.tcp.send('DE#' + str(self.selectedevi) + '#%')
|
||||||
|
for evi in evidence:
|
||||||
|
self.tcp.send('PE#' + evi[0] + '#' + evi[1] + '#' + evi[2] + '#%')
|
||||||
|
|
||||||
|
|
||||||
|
def onTransferEvidence(self):
|
||||||
|
if self.privateinv:
|
||||||
|
evi = self.privateevidence[self.selectedevi]
|
||||||
|
target = self.evidence
|
||||||
|
target_str = "global"
|
||||||
|
else:
|
||||||
|
evi = self.evidence[self.selectedevi]
|
||||||
|
target = self.privateevidence
|
||||||
|
target_str = "private"
|
||||||
|
|
||||||
|
if evi in target:
|
||||||
|
return QtGui.QMessageBox.information(self, "Can't transfer evidence", 'The evidence "%s" already exists in the %s inventory.' % (evi[0], target_str))
|
||||||
|
else:
|
||||||
|
if self.privateinv:
|
||||||
|
self.tcp.send('PE#' + evi[0] + '#' + evi[1] + '#' + evi[2] + '#%')
|
||||||
|
else:
|
||||||
|
self.privateevidence.append(evi)
|
||||||
|
self.privatedropdown.addItem(evi[0])
|
||||||
|
|
||||||
|
def onTransferAllEvidence(self):
|
||||||
|
fail = []
|
||||||
|
|
||||||
|
if self.privateinv:
|
||||||
|
evi = self.privateevidence[self.selectedevi]
|
||||||
|
origin = self.privateevidence
|
||||||
|
target = self.evidence
|
||||||
|
target_str = "global"
|
||||||
|
else:
|
||||||
|
evi = self.evidence[self.selectedevi]
|
||||||
|
origin = self.evidence
|
||||||
|
target = self.privateevidence
|
||||||
|
target_str = "private"
|
||||||
|
|
||||||
|
for evi in origin:
|
||||||
|
if evi in target:
|
||||||
|
fail.append(evi[0])
|
||||||
|
else:
|
||||||
|
if self.privateinv:
|
||||||
|
self.tcp.send('PE#' + evi[0] + '#' + evi[1] + '#' + evi[2] + '#%')
|
||||||
|
else:
|
||||||
|
self.privateevidence.append(evi)
|
||||||
|
self.privatedropdown.addItem(evi[0])
|
||||||
|
|
||||||
|
if fail:
|
||||||
|
return QtGui.QMessageBox.information(self, "Some evidence wasn't transferred", "The following evidence already exists in the %s inventory:\n\n%s." % (target_str, ", ".join(fail)))
|
||||||
|
|
||||||
|
def onSwitchInventory(self, reset=False):
|
||||||
|
self.privateinv = not self.privateinv
|
||||||
|
if self.privateinv and not reset:
|
||||||
|
self.present = False
|
||||||
|
self.evidencepresent.setPixmap(self.evidencepresent.button_off)
|
||||||
|
self.evidencepresent.hide()
|
||||||
|
self.evidencedropdown.hide()
|
||||||
|
self.privatedropdown.show()
|
||||||
|
self.evidencemoveglobal.show()
|
||||||
|
self.evidencemoveallglobal.show()
|
||||||
|
self.evidenceswitchglobal.show()
|
||||||
|
self.evidencemoveprivate.hide()
|
||||||
|
self.evidencemoveallprivate.hide()
|
||||||
|
self.evidenceswitchprivate.hide()
|
||||||
|
self.privatedropdown.setCurrentIndex(0)
|
||||||
|
self.changeEvidence(0, 1)
|
||||||
|
else:
|
||||||
|
self.evidencepresent.show()
|
||||||
|
self.evidencedropdown.show()
|
||||||
|
self.privatedropdown.hide()
|
||||||
|
self.evidencemoveglobal.hide()
|
||||||
|
self.evidencemoveallglobal.hide()
|
||||||
|
self.evidenceswitchglobal.hide()
|
||||||
|
self.evidencemoveprivate.show()
|
||||||
|
self.evidencemoveallprivate.show()
|
||||||
|
self.evidenceswitchprivate.show()
|
||||||
|
self.evidencedropdown.setCurrentIndex(0)
|
||||||
|
self.changeEvidence(0, 0)
|
||||||
|
|
||||||
def onClick_callMod(self):
|
def onClick_callMod(self):
|
||||||
if "modcall_reason" in self.features:
|
if "modcall_reason" in self.features:
|
||||||
@ -1509,24 +1699,27 @@ class gui(QtGui.QWidget):
|
|||||||
self.selectedplayer = s[1:s.indexOf("]")]
|
self.selectedplayer = s[1:s.indexOf("]")]
|
||||||
|
|
||||||
def onClicked_removeQueue(self):
|
def onClicked_removeQueue(self):
|
||||||
if self.selectedmsg == -1:
|
|
||||||
return QtGui.QMessageBox.warning(self, 'Nothing selected', 'Select a message from the list to remove it.')
|
|
||||||
if len(self.msgqueueList) == 0:
|
if len(self.msgqueueList) == 0:
|
||||||
return QtGui.QMessageBox.warning(self, "Can't remove", 'There are no messages in the message queue.\nEnter a message on the Game chat to add one.')
|
return QtGui.QMessageBox.information(self, "No messages in queue", 'Enter a message on the game chat to add one.')
|
||||||
|
if self.selectedmsg == -1:
|
||||||
|
return QtGui.QMessageBox.information(self, 'No message selected', 'Select a message from the list to remove it.')
|
||||||
self.msgqueueList.takeItem(self.selectedmsg)
|
self.msgqueueList.takeItem(self.selectedmsg)
|
||||||
del self.msgqueue[self.selectedmsg]
|
del self.msgqueue[self.selectedmsg]
|
||||||
|
|
||||||
|
def onClicked_clearQueue(self):
|
||||||
|
return QtGui.QMessageBox.information(self, "Clear queue", 'Not implemented.')
|
||||||
|
|
||||||
def onClicked_playerPair(self):
|
def onClicked_playerPair(self):
|
||||||
if not self.selectedplayer == -1:
|
if not self.selectedplayer == -1:
|
||||||
self.gametabs.setCurrentWidget(self.gametab_pair)
|
self.gametabs.setCurrentWidget(self.gametab_pair)
|
||||||
self.paircheckbox.setChecked(True)
|
self.paircheckbox.setChecked(True)
|
||||||
char = self.playerlist[str(self.selectedplayer)][1]
|
char = self.playerlist[str(self.selectedplayer)][1]
|
||||||
if char == '':
|
if char == '':
|
||||||
return QtGui.QMessageBox.warning(self, "Unable to pair", 'That player has no character selected.')
|
return QtGui.QMessageBox.information(self, "Unable to pair", 'That player has no character selected.')
|
||||||
else:
|
else:
|
||||||
self.pairdropdown.setCurrentIndex([c[0] for c in self.charlist].index(char))
|
self.pairdropdown.setCurrentIndex([c[0] for c in self.charlist].index(char))
|
||||||
else:
|
else:
|
||||||
return QtGui.QMessageBox.warning(self, 'No player selected', 'Select a player from the list to attempt pairing.')
|
return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to attempt pairing.')
|
||||||
|
|
||||||
def onClicked_playerKick(self):
|
def onClicked_playerKick(self):
|
||||||
if not self.selectedplayer == -1:
|
if not self.selectedplayer == -1:
|
||||||
@ -1534,7 +1727,7 @@ class gui(QtGui.QWidget):
|
|||||||
if reason and ok:
|
if reason and ok:
|
||||||
self.tcp.send("MA#%s#0#%s#%%" % (self.selectedplayer, reason))
|
self.tcp.send("MA#%s#0#%s#%%" % (self.selectedplayer, reason))
|
||||||
else:
|
else:
|
||||||
return QtGui.QMessageBox.warning(self, 'No player selected', 'Select a player from the list to kick.')
|
return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to kick.')
|
||||||
|
|
||||||
def onClicked_playerBan(self):
|
def onClicked_playerBan(self):
|
||||||
if not self.selectedplayer == -1:
|
if not self.selectedplayer == -1:
|
||||||
@ -1544,14 +1737,30 @@ class gui(QtGui.QWidget):
|
|||||||
if duration and ok:
|
if duration and ok:
|
||||||
self.tcp.send("MA#%s#%s#%s#%%" % (self.selectedplayer, duration, reason))
|
self.tcp.send("MA#%s#%s#%s#%%" % (self.selectedplayer, duration, reason))
|
||||||
else:
|
else:
|
||||||
return QtGui.QMessageBox.warning(self, 'No player selected', 'Select a player from the list to ban.')
|
return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to ban.')
|
||||||
|
|
||||||
def changeEvidence(self, ind):
|
def changeEvidence(self, ind, kind):
|
||||||
if ind < 0:
|
if ind < 0:
|
||||||
return
|
return
|
||||||
|
if self.privateinv:
|
||||||
|
if not kind == 1:
|
||||||
|
return
|
||||||
|
evi = self.privateevidence
|
||||||
|
else:
|
||||||
|
if not kind == 0:
|
||||||
|
return
|
||||||
|
evi = self.evidence
|
||||||
|
|
||||||
self.selectedevi = ind
|
self.selectedevi = ind
|
||||||
self.evidencedesc.setText(self.evidence[ind][1])
|
if len(evi) > 0:
|
||||||
self.setEvidenceImg(self.evidenceimage, self.evidence[ind][2])
|
self.evidencedesc.setText(evi[ind][1])
|
||||||
|
self.setEvidenceImg(self.evidenceimage, evi[ind][2])
|
||||||
|
|
||||||
|
def changeGlobalEvidence(self, ind):
|
||||||
|
self.changeEvidence(ind, 0)
|
||||||
|
|
||||||
|
def changePrivateEvidence(self, ind):
|
||||||
|
self.changeEvidence(ind, 1)
|
||||||
|
|
||||||
def changeEmote(self, dropdown, ind):
|
def changeEmote(self, dropdown, ind):
|
||||||
if ind == -1:
|
if ind == -1:
|
||||||
@ -1585,15 +1794,34 @@ class gui(QtGui.QWidget):
|
|||||||
elif type == 'warning':
|
elif type == 'warning':
|
||||||
reply = QtGui.QMessageBox.warning(self, *args, **kwargs)
|
reply = QtGui.QMessageBox.warning(self, *args, **kwargs)
|
||||||
if self.willDisconnect:
|
if self.willDisconnect:
|
||||||
self.stopMusic()
|
self.disconnectCommon()
|
||||||
self.gamewindow.returnToMenu()
|
self.gamewindow.returnToMenu()
|
||||||
|
|
||||||
|
def disconnectCommon(self):
|
||||||
|
self.onSwitchInventory(True)
|
||||||
|
self.selectedplayer = -1
|
||||||
|
self.playerList.clear()
|
||||||
|
self.playerKick.setDisabled(True)
|
||||||
|
self.playerBan.setDisabled(True)
|
||||||
|
self.ooclogin.setText("Login")
|
||||||
|
self.login = False
|
||||||
|
self.privateinv = False
|
||||||
|
self.tcp.close()
|
||||||
|
self.stopMusic()
|
||||||
|
|
||||||
def onMusicClick(self, item):
|
def onMusicClick(self, item):
|
||||||
if "cccc_ic_support" in self.features and self.showname:
|
if "cccc_ic_support" in self.features and self.showname:
|
||||||
self.tcp.send('MC#' + item.text() + '#' + str(self.mychar) + '#' + self.showname + '#%')
|
self.tcp.send('MC#' + item.text() + '#' + str(self.mychar) + '#' + self.showname + '#%')
|
||||||
else:
|
else:
|
||||||
self.tcp.send('MC#' + item.text() + '#' + str(self.mychar) + '#%')
|
self.tcp.send('MC#' + item.text() + '#' + str(self.mychar) + '#%')
|
||||||
|
|
||||||
|
def onAreaClick(self, item):
|
||||||
|
area = item.text().split('\n')[0]
|
||||||
|
if "cccc_ic_support" in self.features and self.showname:
|
||||||
|
self.tcp.send('MC#' + area + '#' + str(self.mychar) + '#' + self.showname + '#%')
|
||||||
|
else:
|
||||||
|
self.tcp.send('MC#' + area + '#' + str(self.mychar) + '#%')
|
||||||
|
|
||||||
def icLogChanged(self):
|
def icLogChanged(self):
|
||||||
if self.icLog.verticalScrollBar().value() == self.icLog.verticalScrollBar().maximum(): self.icLog.verticalScrollBar().setValue(self.icLog.verticalScrollBar().maximum())
|
if self.icLog.verticalScrollBar().value() == self.icLog.verticalScrollBar().maximum(): self.icLog.verticalScrollBar().setValue(self.icLog.verticalScrollBar().maximum())
|
||||||
|
|
||||||
@ -1601,8 +1829,6 @@ class gui(QtGui.QWidget):
|
|||||||
if self.ooclog.verticalScrollBar().value() == self.ooclog.verticalScrollBar().maximum(): self.ooclog.verticalScrollBar().setValue(self.ooclog.verticalScrollBar().maximum())
|
if self.ooclog.verticalScrollBar().value() == self.ooclog.verticalScrollBar().maximum(): self.ooclog.verticalScrollBar().setValue(self.ooclog.verticalScrollBar().maximum())
|
||||||
|
|
||||||
def sendOOCchat(self, name, text):
|
def sendOOCchat(self, name, text):
|
||||||
print type(name)
|
|
||||||
print type(text)
|
|
||||||
self.tcp.send('CT#' + name + '#' + text + '#%')
|
self.tcp.send('CT#' + name + '#' + text + '#%')
|
||||||
|
|
||||||
def onOOCreturn(self):
|
def onOOCreturn(self):
|
||||||
@ -1629,14 +1855,18 @@ class gui(QtGui.QWidget):
|
|||||||
if self.mocktext.isChecked():
|
if self.mocktext.isChecked():
|
||||||
text = mockStr(text)
|
text = mockStr(text)
|
||||||
if self.autocaps.isChecked():
|
if self.autocaps.isChecked():
|
||||||
l = list(text)
|
l = QtCore.QStringList(list(text))
|
||||||
if isinstance(l[0], QtCore.QString):
|
|
||||||
l[0] = l[0].toUpper()
|
l[0] = l[0].toUpper()
|
||||||
else:
|
|
||||||
l[0] = l[0].upper()
|
last = [".", "?", "!"]
|
||||||
if l[-1] != ".":
|
if not l[-1] in last:
|
||||||
l.append(".")
|
l.append(".")
|
||||||
text = "".join(l).replace(" i ", " I ").replace("i'm", "I'm").replace("it's", "It's")
|
text = l.join("").replace(" i ", " I ").replace("i'm", "I'm").replace("it's", "It's")
|
||||||
|
if self.spacebartext.isChecked():
|
||||||
|
l = QtCore.QStringList(list(text))
|
||||||
|
for i in range(1, len(l)+len(l)-1, 2):
|
||||||
|
l.insert(i, " ")
|
||||||
|
text = l.join("")
|
||||||
|
|
||||||
self.sendOOCchat(self.oocnameinput.text().toUtf8(), text)
|
self.sendOOCchat(self.oocnameinput.text().toUtf8(), text)
|
||||||
self.oocinput.clear()
|
self.oocinput.clear()
|
||||||
@ -1651,7 +1881,8 @@ class gui(QtGui.QWidget):
|
|||||||
if self.autocaps.isChecked():
|
if self.autocaps.isChecked():
|
||||||
l = list(text)
|
l = list(text)
|
||||||
l[0] = l[0].upper()
|
l[0] = l[0].upper()
|
||||||
if l[-1] != ".":
|
last = [".", "?", "!"]
|
||||||
|
if not l[-1] in last:
|
||||||
l.append(".")
|
l.append(".")
|
||||||
text = "".join(l).replace(" i ", " I ").replace("i'm", "I'm").replace("it's", "It's")
|
text = "".join(l).replace(" i ", " I ").replace("i'm", "I'm").replace("it's", "It's")
|
||||||
if self.spacebartext.isChecked():
|
if self.spacebartext.isChecked():
|
||||||
@ -1769,7 +2000,6 @@ class gui(QtGui.QWidget):
|
|||||||
fx = self.effectdropdown.currentText() if self.effectdropdown.currentIndex() > 0 else ""
|
fx = self.effectdropdown.currentText() if self.effectdropdown.currentIndex() > 0 else ""
|
||||||
fx_sound = ini.get_effect_sound(fx, self.charname)
|
fx_sound = ini.get_effect_sound(fx, self.charname)
|
||||||
p_effect = ini.read_ini(AOpath+"characters/"+self.charname+"/char.ini", "options", "effects")
|
p_effect = ini.read_ini(AOpath+"characters/"+self.charname+"/char.ini", "options", "effects")
|
||||||
# I have to encode it because otherwise accented characters make the client crash
|
|
||||||
msg += str(fx + "|" + p_effect + "|" + fx_sound + "#").encode('utf-8')
|
msg += str(fx + "|" + p_effect + "|" + fx_sound + "#").encode('utf-8')
|
||||||
self.effectdropdown.setCurrentIndex(0)
|
self.effectdropdown.setCurrentIndex(0)
|
||||||
|
|
||||||
@ -1874,7 +2104,7 @@ class gui(QtGui.QWidget):
|
|||||||
#if f_char.lower() != self.charlist[f_char_id][0].lower():
|
#if f_char.lower() != self.charlist[f_char_id][0].lower():
|
||||||
# logcharname = self.charlist[f_char_id][0] + ' (' + f_char.decode("utf-8") + ')'
|
# logcharname = self.charlist[f_char_id][0] + ' (' + f_char.decode("utf-8") + ')'
|
||||||
|
|
||||||
if self.m_chatmessage[SHOWNAME]:
|
if self.m_chatmessage[SHOWNAME] and self.m_chatmessage[SHOWNAME].lower() != f_char.lower():
|
||||||
try:
|
try:
|
||||||
logcharname += " ("+self.m_chatmessage[SHOWNAME].decode('utf-8')+")"
|
logcharname += " ("+self.m_chatmessage[SHOWNAME].decode('utf-8')+")"
|
||||||
except:
|
except:
|
||||||
@ -1916,7 +2146,7 @@ class gui(QtGui.QWidget):
|
|||||||
def set_text_color(self):
|
def set_text_color(self):
|
||||||
textcolor = int(self.m_chatmessage[TEXT_COLOR])
|
textcolor = int(self.m_chatmessage[TEXT_COLOR])
|
||||||
|
|
||||||
#is_rainbow = textcolor == 6
|
is_rainbow = textcolor == C_RAINBOW
|
||||||
|
|
||||||
if textcolor == 0:
|
if textcolor == 0:
|
||||||
color = QtGui.QColor(255, 255, 255)
|
color = QtGui.QColor(255, 255, 255)
|
||||||
@ -1936,11 +2166,13 @@ class gui(QtGui.QWidget):
|
|||||||
color = QtGui.QColor(0, 255, 255)
|
color = QtGui.QColor(0, 255, 255)
|
||||||
elif textcolor == 8:
|
elif textcolor == 8:
|
||||||
color = QtGui.QColor(200, 200, 200)
|
color = QtGui.QColor(200, 200, 200)
|
||||||
|
else:
|
||||||
|
color = QtGui.QColor(255, 255, 255)
|
||||||
|
|
||||||
# if is_rainbow:
|
if is_rainbow:
|
||||||
# self.text.show()
|
self.text.show()
|
||||||
# self.ao2text.hide()
|
self.ao2text.hide()
|
||||||
# else:
|
else:
|
||||||
self.text.hide()
|
self.text.hide()
|
||||||
self.ao2text.show()
|
self.ao2text.show()
|
||||||
|
|
||||||
@ -1948,8 +2180,11 @@ class gui(QtGui.QWidget):
|
|||||||
style += "color: rgb("+str(color.red())+", "+str(color.green())+", "+str(color.blue())+")"
|
style += "color: rgb("+str(color.red())+", "+str(color.green())+", "+str(color.blue())+")"
|
||||||
self.ao2text.setStyleSheet(style)
|
self.ao2text.setStyleSheet(style)
|
||||||
|
|
||||||
def set_scene(self):
|
def set_scene(self, init=False):
|
||||||
|
if not init:
|
||||||
side = self.m_chatmessage[SIDE]
|
side = self.m_chatmessage[SIDE]
|
||||||
|
else:
|
||||||
|
side = 'wit'
|
||||||
|
|
||||||
if side == 'def':
|
if side == 'def':
|
||||||
self.court.setPixmap(self.side_def)
|
self.court.setPixmap(self.side_def)
|
||||||
@ -2332,11 +2567,11 @@ class gui(QtGui.QWidget):
|
|||||||
f_character = QtCore.QString(f_character2)
|
f_character = QtCore.QString(f_character2)
|
||||||
|
|
||||||
if f_character == " ":
|
if f_character == " ":
|
||||||
self.text.setText(self.text.text() + " ")
|
self.text.insertPlainText(" ")
|
||||||
self.ao2text.insertPlainText(" ")
|
self.ao2text.insertPlainText(" ")
|
||||||
|
|
||||||
elif f_character == "\n" or f_character == "\r":
|
elif f_character == "\n" or f_character == "\r":
|
||||||
self.text.setText(self.text.text() + "\n")
|
self.text.insertPlainText("\n")
|
||||||
self.ao2text.insertPlainText("\n")
|
self.ao2text.insertPlainText("\n")
|
||||||
|
|
||||||
elif f_character == "\\" and not self.next_character_is_not_special:
|
elif f_character == "\\" and not self.next_character_is_not_special:
|
||||||
@ -2450,9 +2685,9 @@ class gui(QtGui.QWidget):
|
|||||||
else:
|
else:
|
||||||
self.ao2text.insertHtml(f_character)
|
self.ao2text.insertHtml(f_character)
|
||||||
else:
|
else:
|
||||||
# if int(self.m_chatmessage[TEXT_COLOR]) == C_RAINBOW:
|
if int(self.m_chatmessage[TEXT_COLOR]) == C_RAINBOW:
|
||||||
# self.text.setText(self.text.text() + f_character)
|
self.text.insertHtml(f_character)
|
||||||
# else:
|
else:
|
||||||
self.ao2text.insertHtml(f_character)
|
self.ao2text.insertHtml(f_character)
|
||||||
|
|
||||||
if self.message_is_centered:
|
if self.message_is_centered:
|
||||||
@ -2576,14 +2811,15 @@ class gui(QtGui.QWidget):
|
|||||||
audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0)
|
audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0)
|
||||||
audio.playhandle(self.music, True)
|
audio.playhandle(self.music, True)
|
||||||
else:
|
else:
|
||||||
print "[audio] Couldn't play music. Error", audio.getbasserror()
|
error = audio.getbasserror()
|
||||||
|
print "[audio] Couldn't play music. Error", error
|
||||||
# Here comes the evil HTTPS hack for XP systems, but it also allows us to download and play modules and midis, because, why not?
|
# Here comes the evil HTTPS hack for XP systems, but it also allows us to download and play modules and midis, because, why not?
|
||||||
musext = os.path.splitext(basename(musl))[-1]
|
musext = os.path.splitext(basename(musl))[-1]
|
||||||
if musext in ['.mid', '.midi']:
|
if musext in ['.mid', '.midi']:
|
||||||
self.specialstream = 1
|
self.specialstream = 1
|
||||||
elif musext in ['.xm', '.mod', '.mo3', '.it', '.s3m', '.mtm', '.umx']:
|
elif musext in ['.xm', '.mod', '.mo3', '.it', '.s3m', '.mtm', '.umx']:
|
||||||
self.specialstream = 2
|
self.specialstream = 2
|
||||||
if musl.startswith("https") or self.specialstream:
|
if (musl.startswith("https") and error == 2) or self.specialstream:
|
||||||
print "[audio] Downloading music with urllib2"
|
print "[audio] Downloading music with urllib2"
|
||||||
self.download_thread = DownloadThread(self, mus)
|
self.download_thread = DownloadThread(self, mus)
|
||||||
self.download_thread.finished_signal.connect(self.playDownloadedMusic)
|
self.download_thread.finished_signal.connect(self.playDownloadedMusic)
|
||||||
@ -2628,6 +2864,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.musiclist = musiclist
|
self.musiclist = musiclist
|
||||||
self.evidence = evidence
|
self.evidence = evidence
|
||||||
self.areas = areas
|
self.areas = areas
|
||||||
|
self.areas_len = len(areas[0])
|
||||||
self.features = features
|
self.features = features
|
||||||
|
|
||||||
if "base/" in webAO_bucket:
|
if "base/" in webAO_bucket:
|
||||||
@ -2637,7 +2874,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.charselect.setCharList(charlist)
|
self.charselect.setCharList(charlist)
|
||||||
self.charselect.show()
|
self.charselect.show()
|
||||||
|
|
||||||
self.oocnameinput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name"))
|
self.oocnameinput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name", "unnamed"))
|
||||||
self.shownameedit.setText(ini.read_ini("AO2XP.ini", "General", "Showname"))
|
self.shownameedit.setText(ini.read_ini("AO2XP.ini", "General", "Showname"))
|
||||||
|
|
||||||
self.pairdropdown.clear()
|
self.pairdropdown.clear()
|
||||||
@ -2664,7 +2901,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.colordropdown.clear()
|
self.colordropdown.clear()
|
||||||
self.colordropdown.addItems(['white', 'green', 'red', 'orange', 'blue'])
|
self.colordropdown.addItems(['white', 'green', 'red', 'orange', 'blue'])
|
||||||
if "yellowtext" in features:
|
if "yellowtext" in features:
|
||||||
self.colordropdown.addItems(['yellow', 'pink', 'cyan', 'gray'])
|
self.colordropdown.addItems(['yellow', 'pink', 'cyan', 'gray', 'rainbow'])
|
||||||
self.colordropdown.setCurrentIndex(self.mychatcolor)
|
self.colordropdown.setCurrentIndex(self.mychatcolor)
|
||||||
|
|
||||||
for hp in hplist:
|
for hp in hplist:
|
||||||
@ -2685,6 +2922,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.unmutedlist.addItem(char[0])
|
self.unmutedlist.addItem(char[0])
|
||||||
|
|
||||||
self.musicitems.clear()
|
self.musicitems.clear()
|
||||||
|
self.areaitems.clear()
|
||||||
self.evidencedropdown.clear()
|
self.evidencedropdown.clear()
|
||||||
for evi in evidence:
|
for evi in evidence:
|
||||||
self.evidencedropdown.addItem(evi[0])
|
self.evidencedropdown.addItem(evi[0])
|
||||||
@ -2700,6 +2938,9 @@ class gui(QtGui.QWidget):
|
|||||||
self.icLog.append(logstart)
|
self.icLog.append(logstart)
|
||||||
|
|
||||||
self.setBackground(background.lower())
|
self.setBackground(background.lower())
|
||||||
|
self.set_scene(True)
|
||||||
|
self.chatbox.hide()
|
||||||
|
|
||||||
for msg in oocjoin:
|
for msg in oocjoin:
|
||||||
self.ooclog.append(msg)
|
self.ooclog.append(msg)
|
||||||
|
|
||||||
@ -2713,6 +2954,11 @@ class gui(QtGui.QWidget):
|
|||||||
#songitem.setBackgroundColor(QtGui.QColor(255, 128, 128))
|
#songitem.setBackgroundColor(QtGui.QColor(255, 128, 128))
|
||||||
self.musicitems.addItem(songitem)
|
self.musicitems.addItem(songitem)
|
||||||
|
|
||||||
|
for area in areas[0]:
|
||||||
|
areaitem = QtGui.QListWidgetItem()
|
||||||
|
areaitem.setText("Area\n aaa\n aaa")
|
||||||
|
self.areaitems.addItem(areaitem)
|
||||||
|
|
||||||
for pid in playerlist:
|
for pid in playerlist:
|
||||||
self.updatePlayerList(pid, 0, 0)
|
self.updatePlayerList(pid, 0, 0)
|
||||||
for type in range(len(playerlist[pid])):
|
for type in range(len(playerlist[pid])):
|
||||||
@ -2733,7 +2979,7 @@ class gui(QtGui.QWidget):
|
|||||||
self.tcpthread.showCharSelect.connect(self.charselect.show)
|
self.tcpthread.showCharSelect.connect(self.charselect.show)
|
||||||
self.tcpthread.allEvidence.connect(self.allEvidence)
|
self.tcpthread.allEvidence.connect(self.allEvidence)
|
||||||
self.tcpthread.updatePlayerList.connect(self.updatePlayerList)
|
self.tcpthread.updatePlayerList.connect(self.updatePlayerList)
|
||||||
#self.tcpthread.rainbowColor.connect(self.text.setStyleSheet)
|
self.tcpthread.rainbowColor.connect(self.text.setStyleSheet)
|
||||||
self.tcpthread.start()
|
self.tcpthread.start()
|
||||||
|
|
||||||
def allEvidence(self, evi):
|
def allEvidence(self, evi):
|
||||||
@ -2808,7 +3054,7 @@ class EditEvidenceDialog(QtGui.QDialog):
|
|||||||
def __init__(self, gamegui):
|
def __init__(self, gamegui):
|
||||||
super(EditEvidenceDialog, self).__init__()
|
super(EditEvidenceDialog, self).__init__()
|
||||||
self.gamegui = gamegui
|
self.gamegui = gamegui
|
||||||
self.setWindowTitle('Add evidence')
|
self.setTitle()
|
||||||
self.resize(512, 384)
|
self.resize(512, 384)
|
||||||
self.setModal(True)
|
self.setModal(True)
|
||||||
|
|
||||||
@ -2872,10 +3118,22 @@ class EditEvidenceDialog(QtGui.QDialog):
|
|||||||
name = encode_ao_str(self.eviname.text())
|
name = encode_ao_str(self.eviname.text())
|
||||||
desc = encode_ao_str(self.evidesc.toPlainText())
|
desc = encode_ao_str(self.evidesc.toPlainText())
|
||||||
|
|
||||||
|
if not self.gamegui.privateinv:
|
||||||
if self.editing:
|
if self.editing:
|
||||||
self.gamegui.tcp.send('EE#' + str(self.edit_ind) + '#' + name + '#' + desc + '#' + self.filename + '#%')
|
self.gamegui.tcp.send('EE#' + str(self.edit_ind) + '#' + name + '#' + desc + '#' + self.filename + '#%')
|
||||||
else:
|
else:
|
||||||
self.gamegui.tcp.send('PE#' + name + '#' + desc + '#' + self.filename + '#%')
|
self.gamegui.tcp.send('PE#' + name + '#' + desc + '#' + self.filename + '#%')
|
||||||
|
else:
|
||||||
|
if self.editing:
|
||||||
|
self.gamegui.privateevidence[self.gamegui.selectedevi] = [unicode(name), unicode(desc), unicode(self.filename)]
|
||||||
|
self.gamegui.privatedropdown.setItemText(self.gamegui.selectedevi, name)
|
||||||
|
|
||||||
|
evi = self.gamegui.privateevidence[self.gamegui.selectedevi]
|
||||||
|
self.gamegui.evidencedesc.setText(evi[1])
|
||||||
|
self.gamegui.setEvidenceImg(self.gamegui.evidenceimage, evi[2])
|
||||||
|
else:
|
||||||
|
self.gamegui.privateevidence.append([name, desc, self.filename])
|
||||||
|
self.gamegui.privatedropdown.addItem(name)
|
||||||
|
|
||||||
self.eviname.setText('')
|
self.eviname.setText('')
|
||||||
self.evidesc.setText('')
|
self.evidesc.setText('')
|
||||||
@ -2883,7 +3141,7 @@ class EditEvidenceDialog(QtGui.QDialog):
|
|||||||
self.evipicture.setPixmap(evipic)
|
self.evipicture.setPixmap(evipic)
|
||||||
self.filename = 'empty.png'
|
self.filename = 'empty.png'
|
||||||
self.editing = False
|
self.editing = False
|
||||||
self.setWindowTitle('Add evidence')
|
self.setTitle()
|
||||||
self.choosepic.setCurrentIndex(self.emptyfile)
|
self.choosepic.setCurrentIndex(self.emptyfile)
|
||||||
self.hide()
|
self.hide()
|
||||||
|
|
||||||
@ -2894,7 +3152,7 @@ class EditEvidenceDialog(QtGui.QDialog):
|
|||||||
self.evipicture.setPixmap(evipic)
|
self.evipicture.setPixmap(evipic)
|
||||||
self.filename = 'empty.png'
|
self.filename = 'empty.png'
|
||||||
self.editing = False
|
self.editing = False
|
||||||
self.setWindowTitle('Add evidence')
|
self.setTitle()
|
||||||
self.choosepic.setCurrentIndex(self.emptyfile)
|
self.choosepic.setCurrentIndex(self.emptyfile)
|
||||||
self.hide()
|
self.hide()
|
||||||
|
|
||||||
@ -2902,7 +3160,7 @@ class EditEvidenceDialog(QtGui.QDialog):
|
|||||||
path = str(QtGui.QFileDialog.getOpenFileName(self, "Select an image", AOpath + 'evidence', "Images (*.png)"))
|
path = str(QtGui.QFileDialog.getOpenFileName(self, "Select an image", AOpath + 'evidence', "Images (*.png)"))
|
||||||
if path:
|
if path:
|
||||||
if not "/evidence/" in path.lower():
|
if not "/evidence/" in path.lower():
|
||||||
QtGui.QMessageBox.warning(self, 'Edit evidence', 'Please select a file from the evidence directory.')
|
QtGui.QMessageBox.warning(self, 'Wrong directory', 'Please select a file from the "evidence" directory.')
|
||||||
self.onBrowse()
|
self.onBrowse()
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -2911,21 +3169,27 @@ class EditEvidenceDialog(QtGui.QDialog):
|
|||||||
ind = os.listdir(AOpath + 'evidence').index(file)
|
ind = os.listdir(AOpath + 'evidence').index(file)
|
||||||
self.choosepic.setCurrentIndex(ind)
|
self.choosepic.setCurrentIndex(ind)
|
||||||
else:
|
else:
|
||||||
QtGui.QMessageBox.warning(self, 'Edit evidence', 'Please select a PNG file.')
|
QtGui.QMessageBox.warning(self, 'Not a valid file', 'Please select a PNG image.')
|
||||||
self.onBrowse()
|
self.onBrowse()
|
||||||
|
|
||||||
def EditEvidence(self, ind):
|
def EditEvidence(self, ind):
|
||||||
self.editing = True
|
self.editing = True
|
||||||
self.edit_ind = ind
|
self.edit_ind = ind
|
||||||
if self.gamegui.evidence[ind][2] not in self.filenames:
|
evidence = self.gamegui.privateevidence if self.gamegui.privateinv else self.gamegui.evidence
|
||||||
self.filenames.append(self.gamegui.evidence[ind][2])
|
|
||||||
self.choosepic.addItem(self.gamegui.evidence[ind][2].split('.')[0])
|
if evidence[ind][2] not in self.filenames:
|
||||||
self.choosepic.setCurrentIndex(self.filenames.index(self.gamegui.evidence[ind][2]))
|
self.filenames.append(evidence[ind][2])
|
||||||
self.eviname.setText(self.gamegui.evidence[ind][0])
|
self.choosepic.addItem(evidence[ind][2].split('.')[0])
|
||||||
self.evidesc.setText(self.gamegui.evidence[ind][1])
|
self.choosepic.setCurrentIndex(self.filenames.index(evidence[ind][2]))
|
||||||
self.setWindowTitle('Edit evidence')
|
self.eviname.setText(evidence[ind][0])
|
||||||
|
self.evidesc.setText(evidence[ind][1])
|
||||||
|
self.setWindowTitle("Edit evidence" if not self.gamegui.privateinv else "Edit evidence in private inventory")
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
|
def setTitle(self):
|
||||||
|
self.setWindowTitle('Add evidence' if not self.gamegui.privateinv else "Add evidence to private inventory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class EmoteButton(QtGui.QLabel):
|
class EmoteButton(QtGui.QLabel):
|
||||||
|
|
||||||
@ -3002,7 +3266,7 @@ class TCP_Thread(QtCore.QThread):
|
|||||||
charSlots = QtCore.pyqtSignal()
|
charSlots = QtCore.pyqtSignal()
|
||||||
showCharSelect = QtCore.pyqtSignal()
|
showCharSelect = QtCore.pyqtSignal()
|
||||||
allEvidence = QtCore.pyqtSignal(list)
|
allEvidence = QtCore.pyqtSignal(list)
|
||||||
#rainbowColor = QtCore.pyqtSignal(str)
|
rainbowColor = QtCore.pyqtSignal(str)
|
||||||
updatePlayerList = QtCore.pyqtSignal(str, int, int, str)
|
updatePlayerList = QtCore.pyqtSignal(str, int, int, str)
|
||||||
|
|
||||||
send_attempts = 0
|
send_attempts = 0
|
||||||
@ -3014,18 +3278,15 @@ class TCP_Thread(QtCore.QThread):
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
pingtimer = 150
|
pingtimer = 150
|
||||||
#rainbow = 0
|
rainbow = 0
|
||||||
sendtick = 0
|
sendtick = 0
|
||||||
tempdata = ""
|
tempdata = ""
|
||||||
color = QtGui.QColor()
|
color = QtGui.QColor()
|
||||||
#color.setHsv(rainbow, 255, 255)
|
color.setHsv(rainbow, 255, 255)
|
||||||
color.setHsv(0, 255, 255)
|
#color.setHsv(0, 255, 255)
|
||||||
while True:
|
while True:
|
||||||
if self.parent.disconnectnow:
|
if self.parent.disconnectnow:
|
||||||
self.parent.selectedplayer = -1
|
self.parent.disconnectCommon()
|
||||||
self.parent.playerList.clear()
|
|
||||||
self.parent.stopMusic()
|
|
||||||
self.parent.tcp.close()
|
|
||||||
self.quit()
|
self.quit()
|
||||||
return
|
return
|
||||||
pingtimer -= 1
|
pingtimer -= 1
|
||||||
@ -3034,13 +3295,13 @@ class TCP_Thread(QtCore.QThread):
|
|||||||
self.parent.tcp.send('CH#%')
|
self.parent.tcp.send('CH#%')
|
||||||
pingtimer = 150
|
pingtimer = 150
|
||||||
|
|
||||||
# if self.parent.m_chatmessage[TEXT_COLOR] == "6":
|
if self.parent.m_chatmessage[TEXT_COLOR] == str(C_RAINBOW):
|
||||||
# color.setHsv(rainbow, 255, 255)
|
color.setHsv(rainbow, 255, 255)
|
||||||
# rainbow += 5
|
rainbow += 5
|
||||||
# if rainbow > 255:
|
if rainbow > 255:
|
||||||
# rainbow = 0
|
rainbow = 0
|
||||||
# #self.parent.text.setStyleSheet('color: rgb(' + str(color.red()) + ', ' + str(color.green()) + ', ' + str(color.blue()) + ')')
|
#self.parent.text.setStyleSheet('color: rgb(' + str(color.red()) + ', ' + str(color.green()) + ', ' + str(color.blue()) + ')')
|
||||||
# self.rainbowColor.emit('color: rgb(' + str(color.red()) + ', ' + str(color.green()) + ', ' + str(color.blue()) + ')')
|
self.rainbowColor.emit('background-color: rgba(0, 0, 0, 0); color: rgb(' + str(color.red()) + ', ' + str(color.green()) + ', ' + str(color.blue()) + ')')
|
||||||
|
|
||||||
if sendtick:
|
if sendtick:
|
||||||
sendtick -= 1
|
sendtick -= 1
|
||||||
@ -3157,7 +3418,7 @@ class TCP_Thread(QtCore.QThread):
|
|||||||
|
|
||||||
elif header == 'KK':
|
elif header == 'KK':
|
||||||
reason = network[1]
|
reason = network[1]
|
||||||
self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'critical', 'Connection lost', 'You were kicked off the server. (%s)' % reason)
|
self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'critical', 'Connection lost', 'You were kicked from the server. (%s)' % reason)
|
||||||
|
|
||||||
elif header == 'KB':
|
elif header == 'KB':
|
||||||
reason = network[1]
|
reason = network[1]
|
||||||
@ -3165,11 +3426,21 @@ class TCP_Thread(QtCore.QThread):
|
|||||||
|
|
||||||
elif header == 'BB': # message popup (AO 2.9)
|
elif header == 'BB': # message popup (AO 2.9)
|
||||||
message = network[1]
|
message = network[1]
|
||||||
self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'warning', 'Message from server', message)
|
self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'information', 'Message from server', message)
|
||||||
|
|
||||||
elif header == 'AUTH': # login status (AO 2.9)
|
elif header == 'AUTH': # login status (AO 2.9)
|
||||||
status = int(network[1])
|
status = int(network[1])
|
||||||
statusStrings = ["You have logged out", "Wrong password", "Logged in"]
|
statusStrings = ["You have logged out", "Wrong password", "Logged in"]
|
||||||
|
if status == 1:
|
||||||
|
self.parent.login = True
|
||||||
|
self.parent.playerKick.setDisabled(False)
|
||||||
|
self.parent.playerBan.setDisabled(False)
|
||||||
|
self.parent.ooclogin.setText("Log out")
|
||||||
|
elif status == -1:
|
||||||
|
self.parent.login = False
|
||||||
|
self.parent.playerKick.setDisabled(True)
|
||||||
|
self.parent.playerBan.setDisabled(True)
|
||||||
|
self.parent.ooclogin.setText("Login")
|
||||||
self.OOC_Log.emit("<b>%s</b>" % (statusStrings[status+1]))
|
self.OOC_Log.emit("<b>%s</b>" % (statusStrings[status+1]))
|
||||||
|
|
||||||
elif header == "CHECK": #ping
|
elif header == "CHECK": #ping
|
||||||
@ -3181,14 +3452,30 @@ class TCP_Thread(QtCore.QThread):
|
|||||||
|
|
||||||
elif header == 'PR':
|
elif header == 'PR':
|
||||||
del network[0]
|
del network[0]
|
||||||
#print "(PR) id: %s, type: %d" % (network[0], int(network[1]))
|
|
||||||
self.updatePlayerList.emit(network[0], 0, int(network[1]), "")
|
self.updatePlayerList.emit(network[0], 0, int(network[1]), "")
|
||||||
|
|
||||||
elif header == 'PU':
|
elif header == 'PU':
|
||||||
del network[0]
|
del network[0]
|
||||||
#print "(PU) id: %s, type: %d, data: %s" % (network[0], int(network[1]), network[2])
|
|
||||||
self.updatePlayerList.emit(network[0], 1, int(network[1]), network[2].decode('utf-8'))
|
self.updatePlayerList.emit(network[0], 1, int(network[1]), network[2].decode('utf-8'))
|
||||||
|
|
||||||
|
elif header == 'ARUP':
|
||||||
|
del network[0]
|
||||||
|
type = int(network[0])
|
||||||
|
self.parent.areas[type] = [network[i] for i in range(1, len(network))]
|
||||||
|
for i in range(self.parent.areas_len):
|
||||||
|
try:
|
||||||
|
if self.parent.areas[1][i] == "CASING":
|
||||||
|
self.parent.areaitems.item(i).setText("%s\n%s | %s\n%s users | %s" % (self.parent.areas[4][i], self.parent.areas[1][i].title(), self.parent.areas[2][i], self.parent.areas[0][i], self.parent.areas[3][i]))
|
||||||
|
else:
|
||||||
|
self.parent.areaitems.item(i).setText("%s\n%s\n%s users | %s" % (self.parent.areas[4][i], self.parent.areas[1][i].title(), self.parent.areas[0][i], self.parent.areas[3][i].title()))
|
||||||
|
|
||||||
|
if self.parent.areas[3][i] == "LOCKED":
|
||||||
|
self.parent.areaitems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "lock.png"))
|
||||||
|
else:
|
||||||
|
self.parent.areaitems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "house.png"))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
class DownloadThread(QtCore.QThread):
|
class DownloadThread(QtCore.QThread):
|
||||||
# Part of the evil HTTPS music download hack for XP systems
|
# Part of the evil HTTPS music download hack for XP systems
|
||||||
finished_signal = QtCore.pyqtSignal(int)
|
finished_signal = QtCore.pyqtSignal(int)
|
||||||
|
20
mainmenu.py
20
mainmenu.py
@ -481,7 +481,7 @@ class AOServerInfo(QtCore.QThread):
|
|||||||
gotChars = False
|
gotChars = False
|
||||||
hplist = []
|
hplist = []
|
||||||
joinooc = []
|
joinooc = []
|
||||||
areas = [[], [], [], []]
|
areas = [[], [], [], [], []]
|
||||||
features = []
|
features = []
|
||||||
evidence = []
|
evidence = []
|
||||||
playerlist = {}
|
playerlist = {}
|
||||||
@ -571,7 +571,7 @@ class AOServerInfo(QtCore.QThread):
|
|||||||
|
|
||||||
self.setConnectProgress.emit('Requesting music list (%d)...' % maxmusic)
|
self.setConnectProgress.emit('Requesting music list (%d)...' % maxmusic)
|
||||||
self.tcp.send('RM#%')
|
self.tcp.send('RM#%')
|
||||||
print '[client]', 'received characters (%d)' % len(charlist)
|
print '[client]', 'Received characters (%d)' % len(charlist)
|
||||||
|
|
||||||
elif header == 'SM':
|
elif header == 'SM':
|
||||||
if self.disconnect:
|
if self.disconnect:
|
||||||
@ -582,7 +582,7 @@ class AOServerInfo(QtCore.QThread):
|
|||||||
|
|
||||||
self.setConnectProgress.emit('Finishing...')
|
self.setConnectProgress.emit('Finishing...')
|
||||||
self.tcp.send('RD#%')
|
self.tcp.send('RD#%')
|
||||||
print '[client]', 'received songs (%d)' % len(musiclist)
|
print '[client]', 'Received songs (%d)' % len(musiclist)
|
||||||
|
|
||||||
elif header == 'CharsCheck':
|
elif header == 'CharsCheck':
|
||||||
if self.disconnect or not gotChars:
|
if self.disconnect or not gotChars:
|
||||||
@ -595,7 +595,7 @@ class AOServerInfo(QtCore.QThread):
|
|||||||
if self.disconnect:
|
if self.disconnect:
|
||||||
continue
|
continue
|
||||||
background = network[1]
|
background = network[1]
|
||||||
print '[client]', 'courtroom background: %s' % background
|
print '[client]', 'Courtroom background: %s' % background
|
||||||
|
|
||||||
elif header == 'LE':
|
elif header == 'LE':
|
||||||
if self.disconnect:
|
if self.disconnect:
|
||||||
@ -612,7 +612,7 @@ class AOServerInfo(QtCore.QThread):
|
|||||||
evi[0] = decode_ao_str(evi[0].decode("utf-8"))
|
evi[0] = decode_ao_str(evi[0].decode("utf-8"))
|
||||||
evi[1] = decode_ao_str(evi[1].decode("utf-8"))
|
evi[1] = decode_ao_str(evi[1].decode("utf-8"))
|
||||||
evi[2] = decode_ao_str(evi[2].decode("utf-8"))
|
evi[2] = decode_ao_str(evi[2].decode("utf-8"))
|
||||||
print '[client]', 'received evidence'
|
print '[client]', 'Received evidence'
|
||||||
|
|
||||||
elif header == 'HP':
|
elif header == 'HP':
|
||||||
if self.disconnect:
|
if self.disconnect:
|
||||||
@ -624,17 +624,19 @@ class AOServerInfo(QtCore.QThread):
|
|||||||
elif header == "ARUP": #AO2 2.6 new feature: area update
|
elif header == "ARUP": #AO2 2.6 new feature: area update
|
||||||
del network[0]
|
del network[0]
|
||||||
type = int(network[0])
|
type = int(network[0])
|
||||||
if type == 0: #player count
|
|
||||||
areas[type] = [network[i] for i in range(1, len(network))]
|
|
||||||
else: #area status, casemakers or locked area
|
|
||||||
areas[type] = [network[i] for i in range(1, len(network))]
|
areas[type] = [network[i] for i in range(1, len(network))]
|
||||||
|
areas_len = len(areas[type])
|
||||||
|
print '[client]', 'the server has %d areas' % areas_len
|
||||||
|
for i in range(areas_len):
|
||||||
|
areas[4].append(musiclist[0])
|
||||||
|
del musiclist[0]
|
||||||
|
|
||||||
elif header == 'DONE':
|
elif header == 'DONE':
|
||||||
if self.disconnect:
|
if self.disconnect:
|
||||||
continue
|
continue
|
||||||
self.setConnectProgress.emit('Done, loading...')
|
self.setConnectProgress.emit('Done, loading...')
|
||||||
self.readySoon.emit()
|
self.readySoon.emit()
|
||||||
print '[client]', 'finished requesting data, loading game...'
|
print '[client]', 'Finished requesting data. Loading game...'
|
||||||
readytick = 4
|
readytick = 4
|
||||||
|
|
||||||
elif header == 'CT':
|
elif header == 'CT':
|
||||||
|
Loading…
Reference in New Issue
Block a user