Günlük ödül sistemi her pazartesi sıfırlanır belki değiştirip kullanırsınız 

pack/root ayarlamaları:
//pack root interfacemodule.py açalım en altına 1 boşluk olacak gibi
class DailyRewardManager(ui.Window):
def __init__(self):
ui.Window.__init__(self)
self.__BuildWindow()
def __del__(self):
ui.Window.__del__(self)
def __BuildWindow(self):
import ui
# Butonunuzun boyutuna göre burayı ayarlayabilirsiniz (Genelde 32x32 veya 35x35 idealdir)
self.SetSize(35, 35)
self.SetWindowHorizontalAlignRight()
self.SetPosition(180, 30) # Mini haritanın solundaki konumu
self.Show()
# ui.Button yerine elinizdeki tekil .tga görselini hatasız çalıştıracak ImageBox kullanıyoruz
self.rewardButton = ui.ImageBox()
self.rewardButton.SetParent(self)
self.rewardButton.SetPosition(0, 0)
# Sizin elinizdeki özel .tga görselinin yolu
self.rewardButton.LoadImage("d:/ymir work/ui/daily_reward_icon.tga")
# Görselin sol tıklandığında doğrudan fonksiyonu tetiklemesini sağlıyoruz
self.rewardButton.OnMouseLeftButtonDown = self.__ClickButton
self.rewardButton.Show()
# --- FARE ÜZERİNE GELİNCE AÇILAN BİLGİ KUTUSU ---
self.toolTip = ui.TextLine()
self.toolTip.SetParent(self)
self.toolTip.SetFontName("Arial:12")
self.toolTip.SetPackedFontColor(0xffFDD017) # Şık Altın Sarısı Renk
self.toolTip.SetText("Günlük Ödül")
self.toolTip.SetPosition(-15, -15) # Görselin hemen üstü
self.toolTip.Hide()
# Fare hareketlerine duyarlı yazı tetikleyicileri
self.rewardButton.OnMouseOverIn = self.__ShowToolTip
self.rewardButton.OnMouseOverOut = self.__HideToolTip
def __ShowToolTip(self):
if self.toolTip:
self.toolTip.Show()
def __HideToolTip(self):
if self.toolTip:
self.toolTip.Hide()
def __ClickButton(self):
import constInfo
import event
if constInfo.DAILY_REWARD_QUEST_INDEX != 0:
event.QuestButtonClick(constInfo.DAILY_REWARD_QUEST_INDEX)
return True # Event akışını tamamlamak için True döndürüyoruz
def RewardSuccess(self, current_day):
import chat
try:
day_num = int(current_day)
# Matematiksel adet hesaplamaları (Quest ile birebir aynı)
reward_count1 = day_num * 2 # 80007 adeti
reward_count2 = day_num * 25 # 30178 (Oyma Taşı) adeti
# Chat ekranına düşecek dinamik mesaj
chat.AppendChat(chat.CHAT_TYPE_INFO, "[Sistem] {}. Gun odulunuz olan: {} adet 2M Bar ve {} adet Oyma Tasi verildi!".format(day_num, reward_count1, reward_count2))
except:
chat.AppendChat(chat.CHAT_TYPE_INFO, "[Sistem] Gunluk giris odulleriniz envanterinize eklendi!")
def RewardClaimed(self):
import chat
chat.AppendChat(chat.CHAT_TYPE_INFO, "[Sistem] Bugunluk odulunuzu zaten aldiniz.")
//aynı dosya içinde def MakeInterface aratalım en altına bir boşluk olacak gibi bunu yapıştıralım
try:
self.wndDailyReward = DailyRewardManager()
if self.wndDailyReward:
self.wndDailyReward.SetTop()
except Exception as e:
import chat
chat.AppendChat(chat.CHAT_TYPE_INFO, "Modul Yukleme Hatasi: " + str(e))
//constinfo.py açalım ve müsait yere bunu ekliyelim
DAILY_REWARD_QUEST_INDEX = 0
//game.py açalım serverCommandList = { aratalım müsait yere
# Gunluk Odul
"daily_reward_index" : self.__DailyRewardIndexEvent,
"daily_reward_success" : self.__DailyRewardSuccessEvent,
"daily_reward_claimed" : self.__DailyRewardClaimedEvent,
#Gunluk Odul Bıtıs
//yapıştıralım ve aynı dosyaiçinde en alta bir boşluk olacak gibi bu kodları koyalım
def __DailyRewardSuccessEvent(self, day):
if self.interface and hasattr(self.interface, 'wndDailyReward'):
self.interface.wndDailyReward.RewardSuccess(day)
def __DailyRewardClaimedEvent(self):
if self.interface and hasattr(self.interface, 'wndDailyReward'):
self.interface.wndDailyReward.RewardClaimed()
def __DailyRewardIndexEvent(self, qid):
import constInfo
constInfo.DAILY_REWARD_QUEST_INDEX = int(qid)
//questimizi tanıtalım reload q çekelim ve ödül sistemimiz aktif siz ödülleri değiştirebilirsiniz
//24 saatte bir ödülleri x2 katlayıp verir aynı gün ödül vermez
//mouse ile üzerine geldiğiniz zaman iconun Gunluk Odul yazacaktır
Linkleri görebilmek için
giriş yap veya kayıt ol.
Dosya Eklentileri
Son düzenleme: