def LoadCategory(self): self.ClearBoards() if len(settinginfo.Achievement_Statistic[self.cat]) == 0: #chat.AppendChat(chat.CHAT_TYPE_INFO,"NoAchievements: " + str(self.cat) + " Count: " + str(len(settinginfo.Achievement_Statistic[self.cat]))) self.Board.SetSize(266, 415) self.scrollbar.Hide() self.AchievementError.Show() return #chat.AppendChat(chat.CHAT_TYPE_INFO,"StartListing") for i in xrange(min(len(settinginfo.Achievement_Statistic[self.cat]),5)): cmd = settinginfo.Achievement_Statistic[self.cat][i].split("#") self.AchievementTitle[i].SetText(self.GetAchievementName(int(cmd[0]))) self.AchievementText[i].SetText("Anzahl: " + constInfo.NumberToPointString(int(cmd[1])) + " | Punkte: " + constInfo.NumberToPointString(int(cmd[2]))) self.AchievementCalcPoints[i].SetText("Bisher erhaltene Punkte: " + constInfo.NumberToPointString(int(cmd[3]))) self.faceBoxIMG[i].Show() self.DescThinBoard[i].Show() if len(settinginfo.Achievement_Statistic[self.cat]) > 5: self.Board.SetSize(285, 415) self.scrollbar.SetPos(0) self.scrollbar.SetMiddleBarSize(float(5) / float(len(settinginfo.Achievement_Statistic[self.cat]))) self.scrollbar.Show() else: self.Board.SetSize(266, 415) self.scrollbar.Hide() self.AchievementError.Hide()
def ShowLevelInfoToolTip(self): self.tooltip.ClearToolTip() MaxMobEXP = (constInfo.PET_INFOS["level"] + 1) * 1000 MaxItemEXP = constInfo.PET_INFOS["level"] + 1 self.tooltip.AppendTextLine("Monster-EXP: " + constInfo.NumberToPointString(constInfo.PET_INFOS["mob_exp"]) + "/" + constInfo.NumberToPointString(MaxMobEXP)) self.tooltip.AppendTextLine("Item-EXP: " + constInfo.NumberToPointString(constInfo.PET_INFOS["item_exp"]) + "/" + constInfo.NumberToPointString(MaxItemEXP)) if constInfo.PET_INFOS["double_exp"] > app.GetGlobalTimeStamp(): self.tooltip.AppendHorizontalLine() self.tooltip.AppendTextLine("[ Pet-EXP Ring aktiv ]") self.tooltip.AppendMallItemLastTime(constInfo.PET_INFOS["double_exp"]) self.tooltip.ShowToolTip()
def __OnScroll(self): pos = int(self.scrollbar.GetPos() * (len(settinginfo.Achievement_Statistic[self.cat]) - 5)) ##Aktuelle Position der Scrollbar #self.Board.SetTitleName("Achievement-Statistik (Pos: " + str(pos) + ")") for i in xrange(5): realPos = i + pos cmd = settinginfo.Achievement_Statistic[self.cat][realPos].split("#") self.AchievementTitle[i].SetText(self.GetAchievementName(int(cmd[0]))) self.AchievementText[i].SetText("Anzahl: " + constInfo.NumberToPointString(int(cmd[1])) + " | Punkte: " + constInfo.NumberToPointString(int(cmd[2]))) self.AchievementCalcPoints[i].SetText("Bisher erhaltene Punkte: " + constInfo.NumberToPointString(int(cmd[3]))) try: self.faceBoxIMG[i].LoadImage("images_achievement/" + str(cmd[0]) + ".tga") except: self.faceBoxIMG[i].LoadImage("images_achievement/unknown.tga")
def LoadInfoPage(self): data = craftingproto.GetCraftingProto(self.crafting_proto_name) if data == False: chat.AppendChat(chat.CHAT_TYPE_INFO, "<Crafting> No Proto named " + self.crafting_proto_name) return data = data["CONTENT"][self.selected_recipe] item.SelectItem(data["itemVnum"]) self.itemSlot.SetItemSlot(0,data["itemVnum"],0) self.itemNameTextLine.SetText(localeInfo.CRAFTING_WINDOW_NAME + item.GetItemName()) self.itemCountTextLine.SetText(localeInfo.CRAFTING_WINDOW_COUNT + str(data["itemCount"])) self.itemChanceTextLine.SetText(localeInfo.CRAFTING_WINDOW_CHANCE + str(data["baseChance"]) + "%") materialList = data["materialList"] for i in xrange(10): try: self.materialItemSlots[i].ClearItemData() self.materialItemSlots[i].SetItemData(materialList[i]["item"]) self.materialItemSlots[i].SetItemCount(materialList[i]["itemCount"]) except: self.materialItemSlots[i].ClearItemData() self.money.SetText(constInfo.NumberToPointString(data["gold"]) + localeInfo.CRAFTING_WINDOW_GOLD) self.noItemPage.Hide()
def SendAchievement(self, stringTypeInteger, achievementVnum, achievementPointThisInteger, achievementCountInteger, achievementPointNewInteger): if self.isLoaded == 0: achievementNameString = self.GetAchievementNameByVnum( achievementVnum) if stringTypeInteger == 1: # Kill self.AchievementActivityInfo.SetText( localeInfo.ACHIEVEMENT_KILL % (achievementNameString)) elif stringTypeInteger == 2: # Dungeon self.AchievementActivityInfo.SetText( localeInfo.ACHIEVEMENT_DUNGEON % (achievementNameString)) elif stringTypeInteger == 3: # Destroy self.AchievementActivityInfo.SetText( localeInfo.ACHIEVEMENT_DESTROY % (achievementNameString)) elif stringTypeInteger == 4: # Reach self.AchievementActivityInfo.SetText( localeInfo.ACHIEVEMENT_REACH % (achievementNameString)) self.AchievementPointMainInfo.SetText( localeInfo.ACHIEVEMENT_POINT_INFO % (achievementPointThisInteger)) self.AchievementCountInfo.SetText( localeInfo.ACHIEVEMENT_COUNT % (constInfo.NumberToPointString(achievementCountInteger))) self.AchievementPointInfo.SetText( localeInfo.ACHIEVEMENT_POINT % (constInfo.NumberToPointString(achievementPointNewInteger))) self.Show() self.pos_width = wndMgr.GetScreenWidth() + 50 self.SetPosition(wndMgr.GetScreenWidth() + 50, wndMgr.GetScreenHeight() - 150) self.isLoaded = 1 else: achievementNameString = self.GetAchievementNameByVnum( achievementVnum) chat.AppendChat( chat.CHAT_TYPE_INFO, "Du hast " + str(achievementNameString) + " besiegt! Du erhälst " + str(achievementPointThisInteger) + " Achievementpoints. (Gesamt: " + str(achievementPointNewInteger) + ", Count: " + str(achievementCountInteger) + ")")
def ShowToolTip(self, slot): item.SelectItem(self.itemSlotsList[slot]) self.itemtooltip.ClearToolTip() self.itemtooltip.AddItemData(self.itemSlotsList[slot], [0, 0, 0, 0, 0, 0]) time = 0 if item.GetItemType() == 16: if item.GetValue(0) > 0: time = item.GetValue(0) if item.GetItemType() == 28: (limittype, limitvalue) = item.GetLimit(0) time = int(limitvalue / 60) if item.GetItemType() == 18: (limittype, limitvalue) = item.GetLimit(0) if limittype == 7 and limitvalue > 0: time = int(limitvalue / 60) if time > 0: time = int(time / 60) time_str = "Stunden" if time >= 48: time = int(time / 24) time_str = "Tage" self.itemtooltip.AppendSpace(5) self.itemtooltip.AppendTextLine( "[ Laufzeit ]", self.itemtooltip.SPECIAL_TITLE_COLOR) self.itemtooltip.AppendTextLine( str(time) + " " + str(time_str), self.itemtooltip.NORMAL_COLOR) #currencyNames = ["Yang","AP's","DP's"] currencyType = self.itemCurrencyType[slot] currencyCount = self.itemCurrencyCount[slot] if currencyCount > self.currencyPlayerCount: self.CurrencyTextLine.SetFontColor(0.9, 0.4745, 0.4627) else: self.CurrencyTextLine.SetFontColor(0.5411, 0.7254, 0.5568) self.itemtooltip.AppendSpace(5) self.itemtooltip.AppendTextLine("[ Kaufpreis ]", self.itemtooltip.SPECIAL_TITLE_COLOR) self.itemtooltip.AppendTextLine( constInfo.NumberToPointString(currencyCount) + " " + self.currencyNames[currencyType], self.itemtooltip.NORMAL_COLOR) self.itemtooltip.ShowToolTip()
def SetMultiShopCurrency(self, currencyType, currencyAmount): currencyIcons = [ "d:/ymir work/ui/game/windows/money_icon.sub", "d:/ymir work/ui/achievement_small.dds", "d:/ymir work/ui/daily.dds", "d:/ymir work/ui/game/windows/money_icon.sub", "d:/ymir work/ui/game/windows/money_icon.sub", "d:/ymir work/ui/game/windows/money_icon.sub" ] #currencyNames = ["Yang","AP's","DP's"] self.CurrencyIcon.LoadImage(currencyIcons[currencyType]) self.CurrencyTextLine.SetText( constInfo.NumberToPointString(currencyAmount) + " " + self.currencyNames[currencyType]) #chat.AppendChat(chat.CHAT_TYPE_INFO,"[Multishop] self.SetMultiShopCurrency") self.currencyPlayerCount = currencyAmount
def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type): if False == self.isLoaded: self.__LoadScript() if app.ENABLE_REFINE_RENEWAL: self.__InitializeOpen() else: self.__Initialize() self.targetItemPos = targetItemPos self.vnum = nextGradeItemVnum self.cost = cost self.percentage = prob self.type = type self.probText.SetText(localeInfo.REFINE_SUCCESS_PROBALITY % (self.percentage)) self.probText.SetFontColor(0.9607, 0.2392, 0.0) self.costText.SetText("Verbesserungskosten: " + constInfo.NumberToPointString(int(self.cost)) + " Yang") self.toolTip.ClearToolTip() metinSlot = [] for i in xrange(fgGHGjjFHJghjfFG1545gGG.METIN_SOCKET_MAX_NUM): metinSlot.append(fgGHGjjFHJghjfFG1545gGG.GetItemMetinSocket(targetItemPos, i)) attrSlot = [] for i in xrange(fgGHGjjFHJghjfFG1545gGG.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(fgGHGjjFHJghjfFG1545gGG.GetItemAttribute(targetItemPos, i)) self.toolTip.AddRefineItemData(nextGradeItemVnum, metinSlot, attrSlot) item.SelectItem(nextGradeItemVnum) self.itemImage.LoadImage(item.GetIconImageFileName()) xSlotCount, ySlotCount = item.GetItemSize() for slot in self.slotList: slot.Hide() for i in xrange(min(3, ySlotCount)): self.slotList[i].SetPosition(-38, i*32 - (ySlotCount-1)*16) self.slotList[i].Show() self.dialogHeight = self.toolTip.GetHeight() + 46 self.UpdateDialog() self.SetTop() self.Show()
def __LoadInformation_Default(self, race): self.AppendSeperator() self.AppendTextLine(localeInfo.TARGET_INFO_MAX_HP % constInfo.NumberToPointString(nonplayer.GetMonsterMaxHP(race))) # calc att damage # monsterLevel = nonplayer.GetMonsterLevel(race) # fHitRate = self.__LoadInformation_Default_GetHitRate(race) # iDamMin, iDamMax = nonplayer.GetMonsterDamage(race) # iDamMin = int((iDamMin + nonplayer.GetMonsterST(race)) * 2 * fHitRate) + monsterLevel * 2 # iDamMax = int((iDamMax + nonplayer.GetMonsterST(race)) * 2 * fHitRate) + monsterLevel * 2 # iDef = fgGHGjjFHJghjfFG1545gGG.GetStatus(fgGHGjjFHJghjfFG1545gGG.DEF_GRADE) * (100 + fgGHGjjFHJghjfFG1545gGG.GetStatus(fgGHGjjFHJghjfFG1545gGG.DEF_BONUS)) / 100 # fDamMulti = nonplayer.GetMonsterDamageMultiply(race) # iDamMin = int(max(0, iDamMin - iDef) * fDamMulti) # iDamMax = int(max(0, iDamMax - iDef) * fDamMulti) # if iDamMin < 1: # iDamMin = 1 # if iDamMax < 5: # iDamMax = 5 self.AppendTextLine("Schaden : Keine Angaben") # idx = min(len(self.EXP_BASE_LVDELTA) - 1, max(0, (monsterLevel + 15) - fgGHGjjFHJghjfFG1545gGG.GetStatus(fgGHGjjFHJghjfFG1545gGG.LEVEL))) # iExp = nonplayer.GetMonsterExp(race) * self.EXP_BASE_LVDELTA[idx] / 100 self.AppendTextLine("Erfahrung : Keine Angaben")
def BuyItem(self, slot): if self.questIndex == 0: chat.AppendChat(chat.CHAT_TYPE_INFO, "[Multishop] FEHLER: Kein Questindex vorhanden!") return item.SelectItem(self.itemSlotsList[slot]) itemName = item.GetItemName() currencyType = self.itemCurrencyType[slot] itemBuyQuestionDialog = uiCommon.QuestionDialog() itemBuyQuestionDialog.SetText( localeInfo.DO_YOU_BUY_ITEM_IN_MULTISHOP( itemName, self.itemCountList[slot], constInfo.NumberToPointString(self.itemCurrencyCount[slot]), self.currencyNames[currencyType])) itemBuyQuestionDialog.SetAcceptEvent( lambda arg=True: self.RequestDropItem(arg)) itemBuyQuestionDialog.SetCancelEvent( lambda arg=False: self.RequestDropItem(arg)) itemBuyQuestionDialog.Open() itemBuyQuestionDialog.slotPos = slot self.itemBuyQuestionDialog = itemBuyQuestionDialog return
def ShowToolTip(self, slot): index = self.slotLink[slot] itemInfo = self.shopContent[self.category]["category_content"][index] item.SelectItem(itemInfo["item_vnum"]) self.itemtooltip.ClearToolTip() self.itemtooltip.AddItemData(itemInfo["item_vnum"], [0, 0, 0, 0, 0, 0]) time = 0 if item.GetItemType() == 16: if item.GetValue(0) > 0: time = item.GetValue(0) if item.GetItemType() == 28: (limittype, limitvalue) = item.GetLimit(0) time = int(limitvalue / 60) if item.GetItemType() == 18: (limittype, limitvalue) = item.GetLimit(0) if limittype == 7 and limitvalue > 0: time = int(limitvalue / 60) if time > 0: time = int(time / 60) time_str = localeInfo.HOUR if time >= 48: time = int(time / 24) time_str = localeInfo.DAY self.itemtooltip.AppendSpace(5) self.itemtooltip.AppendTextLine( localeInfo.MULTISHOP_RUNTIME, self.itemtooltip.SPECIAL_TITLE_COLOR) self.itemtooltip.AppendTextLine( str(time) + " " + str(time_str), self.itemtooltip.NORMAL_COLOR) self.itemtooltip.AppendSpace(5) self.itemtooltip.AppendTextLine(localeInfo.MULTISHOP_BUY, self.itemtooltip.SPECIAL_TITLE_COLOR) if itemInfo["currency_type"] == self.CURRENCY_TYPE_GOLD: self.itemtooltip.AppendTextLine( constInfo.NumberToPointString(itemInfo["currency_count"]) + " " + localeInfo.MULTISHOP_CURRENCY_GOLD, self.itemtooltip.NORMAL_COLOR) elif itemInfo["currency_type"] == self.CURRENCY_TYPE_ACHIEVEMENT: self.itemtooltip.AppendTextLine( constInfo.NumberToPointString(itemInfo["currency_count"]) + " " + localeInfo.MULTISHOP_CURRENCY_ACHIEVEMENT, self.itemtooltip.NORMAL_COLOR) elif itemInfo["currency_type"] == self.CURRENCY_TYPE_DUNGEON: self.itemtooltip.AppendTextLine( constInfo.NumberToPointString(itemInfo["currency_count"]) + " " + localeInfo.MULTISHOP_CURRENCY_DUNGEON, self.itemtooltip.NORMAL_COLOR) elif itemInfo["currency_type"] == self.CURRENCY_TYPE_ITEMSHOP: self.itemtooltip.AppendTextLine( constInfo.NumberToPointString(itemInfo["currency_count"]) + " " + localeInfo.MULTISHOP_CURRENCY_COINS, self.itemtooltip.NORMAL_COLOR) elif itemInfo["currency_type"] == self.CURRENCY_TYPE_ITEM: item.SelectItem(itemInfo["currency_vnum"]) self.itemtooltip.AppendTextLine( constInfo.NumberToPointString(itemInfo["currency_count"]) + "x " + item.GetItemName()) self.itemtooltip.AppendSpace(5) self.itemtooltip.AppendTextLine( localeInfo.TOOLTIP_MULTISHOP_SHORTCUT_BUY_MORE, self.itemtooltip.NORMAL_COLOR) self.itemtooltip.ShowToolTip()
def SendAchievement(self, index, points, count, ap): data = achievementproto.GetAchievementInfo(int(index)) if data == False: chat.AppendChat( chat.CHAT_TYPE_DEBUG, "Achievement Error: No Achievement found with index = " + str(index)) return name = self.GetAchievementName(data[achievementproto.VNUM], data[achievementproto.DESC], data[achievementproto.TYPE]) type = data[achievementproto.TYPE] if self.isLoaded == 0: self.AchievementTitle.SetText( str(name) + " " + str(self.GetAchievementTypeByIndex(int(type)))) self.AchievementText.SetText( localeInfo.ACHIEVEMENT_UI_COUNT + constInfo.NumberToPointString(count) + localeInfo.ACHIEVEMENT_UI_POINTS_GET + constInfo.NumberToPointString(data[achievementproto.POINTS]) + "") self.AchievementPointsTextPoints.SetText( constInfo.NumberToPointString(ap) + " AP!") try: self.faceBoxIMG.LoadImage("images_achievement/" + str(index) + ".tga") except: print "Achievement - %s No Face IMG in images_achievement/" % ( index) self.faceBoxIMG.Hide() self.Show() self.pos_height = wndMgr.GetScreenHeight() + 50 self.SetPosition(wndMgr.GetScreenWidth() / 2 - 150, wndMgr.GetScreenHeight() + 50) self.isLoaded = 1 self.index = int(index) if self.isLoaded == 2: # data = achievementproto.GetAchievementInfo(int(index)) # if data == False: # return # name = self.GetAchievementName(data[achievementproto.VNUM],data[achievementproto.DESC],data[achievementproto.TYPE]) # type = data[achievementproto.TYPE] self.AchievementPointsTextPoints.SetText( constInfo.NumberToPointString(ap) + " AP!") if self.index == int(index): self.AchievementText.SetText( localeInfo.ACHIEVEMENT_UI_COUNT + constInfo.NumberToPointString(count) + " | Punkte erhalten: " + constInfo.NumberToPointString( data[achievementproto.POINTS]) + "") if self.delay > app.GetTime(): HideTimeOut = self.delay - app.GetTime() if HideTimeOut < 5: self.delay = app.GetTime() + 5 chat.AppendChat( chat.CHAT_TYPE_INFO, "[ " + name + " " + self.GetAchievementTypeByIndex(type) + localeInfo.ACHIEVEMENT_CHAT_COUNT + constInfo.NumberToPointString(count) + localeInfo.ACHIEVEMENT_CHAT_POINTS + constInfo.NumberToPointString(points) + localeInfo.ACHIEVEMENT_CHAT_POINTS_RISE + constInfo.NumberToPointString(ap) + " ]")
def initData(self): if self.Loaded > 0: self.Show() return self.Loaded = 1 self.MainBGThinBoard = ui.ThinBoard() self.MainBGThinBoard.SetParent(self) self.MainBGThinBoard.SetPosition(0, 0) self.MainBGThinBoard.SetSize(336, 100) self.MainBGThinBoard.Show() self.AchievementIconIMG = ui.ImageBox() self.AchievementIconIMG.SetParent(self.MainBGThinBoard) self.AchievementIconIMG.SetPosition(20, 20) self.AchievementIconIMG.LoadImage( "d:/ymir work/ui/public/achievement_small.sub") self.AchievementIconIMG.Show() self.AchievementTitle = ui.TextLine() self.AchievementTitle.SetParent(self.MainBGThinBoard) self.AchievementTitle.SetPosition((336 / 2) + 30, 8) self.AchievementTitle.SetHorizontalAlignCenter() self.AchievementTitle.SetText(localeInfo.ACHIEVEMENT_TITLE) #self.AchievementTitle.SetFontName(localeInfo.UI_DEF_FONT_LARGE) self.AchievementTitle.SetPackedFontColor(0xfff8d090) self.AchievementTitle.SetOutline() self.AchievementTitle.Show() self.AchievementActivityInfo = ui.TextLine() self.AchievementActivityInfo.SetParent(self.MainBGThinBoard) self.AchievementActivityInfo.SetPosition((336 / 2) + 30, 25) self.AchievementActivityInfo.SetHorizontalAlignCenter() self.AchievementActivityInfo.SetText(localeInfo.ACHIEVEMENT_KILL % ("Razador")) self.AchievementActivityInfo.SetOutline() self.AchievementActivityInfo.Show() self.AchievementPointMainInfo = ui.TextLine() self.AchievementPointMainInfo.SetParent(self.MainBGThinBoard) self.AchievementPointMainInfo.SetPosition((336 / 2) + 30, 40) self.AchievementPointMainInfo.SetHorizontalAlignCenter() self.AchievementPointMainInfo.SetText( localeInfo.ACHIEVEMENT_POINT_INFO % (100)) self.AchievementPointMainInfo.SetOutline() self.AchievementPointMainInfo.Show() self.AchievementCountInfo = ui.TextLine() self.AchievementCountInfo.SetParent(self.MainBGThinBoard) self.AchievementCountInfo.SetPosition(160, 70) self.AchievementCountInfo.SetHorizontalAlignCenter() self.AchievementCountInfo.SetText( localeInfo.ACHIEVEMENT_COUNT % (constInfo.NumberToPointString(90000))) self.AchievementCountInfo.SetOutline() self.AchievementCountInfo.Show() self.AchievementPointInfo = ui.TextLine() self.AchievementPointInfo.SetParent(self.MainBGThinBoard) self.AchievementPointInfo.SetPosition(240, 70) self.AchievementPointInfo.SetHorizontalAlignCenter() self.AchievementPointInfo.SetText( localeInfo.ACHIEVEMENT_POINT % (constInfo.NumberToPointString(900000))) self.AchievementPointInfo.SetOutline() self.AchievementPointInfo.Show() self.Hide()