Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

System osiągnięć - mała poprawka


Rekomendowane odpowiedzi

Opublikowano

Witajcie,

właśnie edytuje system osiągnięć (wziąłem akurat jakiś gotowy).

Mam problem z jedną rzeczą, otóż.

W okienku które zostaje wywołane, na przykład po zabiciu bossa mam:

-jego nazwę

-ile ich już zabiłem

-aktualny stan

Chciałbym, aby przed aktualnym stanem było jeszcze podane ile punktów dostałem za tego bossa. (Obecnie wyświetla się to tylko na czacie, mi zależy, żeby było to podane w tym okienku przed aktualnym stanem)

Tutaj podaję przykład:

27563001388807103659.png

 

Załączam oczywiście moje pliki z clienta i questa:

#Quest:

przykładowy boss:

 

 

when 1901.kill begin
local mojepkt = achievement.ilepkt()
local nagroda = 2
local pkt = mojepkt + nagroda
local osiagniecie = "Dziewięciu_Ogonów"
local liczba = pc.getqf("av_1901")
pc.setqf("av_1901", liczba + 1)
achievement.dajpkt(nagroda)
cmdchat("achievement Mord_".. osiagniecie .."#".. liczba + 1  .."%".. pkt .."")
notice_boss("Dziewięć Ogonów")
end

#client:

uiachievement.quest

 

 

import ui
import snd
import systemSetting
import net
import chat
import app
import locale
import chrmgr
import uiWhisper
import interfacemodule
import time
import wndMgr
 
AchievementPoints = 0
 
class AchievementDialog(ui.ScriptWindow):
 
def __init__(self):
ui.ScriptWindow.__init__(self)
self.__Load()
 
def __del__(self):
ui.ScriptWindow.__del__(self)
 
def Destroy(self):
self.Hide()
return TRUE
 
def __Load_LoadScript(self, fileName):
try:
pyScriptLoader = ui.PythonScriptLoader()
pyScriptLoader.LoadScriptFile(self, fileName)
except:
import exception
exception.Abort("AchievementDialog.__Load_LoadScript")
 
def __Load_BindObject(self):
try:
self.AchievementText = self.GetChild("Achievement_Text")
self.AchievementTextFiller = self.GetChild("Achievement_Filler")
self.AchievementCountText = self.GetChild("Count_Achievement_Text")
self.AchievementCountTextFiller = self.GetChild("Count_Filler")
self.AchievementPointsText = self.GetChild("Achievement_Points_Text")
self.AchievementInfoTextPage1 = self.GetChild("Achievement_Info_1")
self.AchievementInfoTextPage2 = self.GetChild("Achievement_Info_2")
self.AchievementInfoTextPage3 = self.GetChild("Achievement_Info_3")
except:
import exception
exception.Abort("AchievementDialog.__Load_BindObject")
 
def __Load(self):
self.__Load_LoadScript("uiscript/achievementboard.py")
self.__Load_BindObject()
width = wndMgr.GetScreenWidth()
height = wndMgr.GetScreenHeight()
 
def Show(self, wahl, archivement):
global AchievementPoints
ui.ScriptWindow.Show(self)
if wahl == 1:
self.AchievementSetText(str(archivement))
self.WarteSchleife = WaitingDialog()
self.WarteSchleife.Open(3.0)
self.WarteSchleife.SAFE_SetTimeOverEvent(self.ShowAchievementPoints)
elif wahl == 2:
self.AchievementWindow(AchievementPoints)
 
 
def AchievementSetText(self, archivement):
global AchievementPoints
if archivement.find("_") != -1:
archivement = archivement.replace('_', ' ')
if archivement.find("%") != -1:
AchievementSplit = archivement.split("%")
archivement = AchievementSplit[0]
AchievementPoints = AchievementSplit[1]
if archivement.find("#") != -1:
Splittext = archivement.split("#")
Achievement = Splittext[0]
Count = Splittext[1]
self.AchievementText.SetText(str(Achievement))
self.AchievementCountText.SetText(str(Count))
else:
self.AchievementText.SetText(str(archivement))
self.AchievementCountTextFiller.SetText("Gratulacje.")
self.AchievementCountText.SetText("")
self.AchievementPointsText.SetText("")
self.AchievementInfoTextPage1.SetText("")
self.AchievementInfoTextPage2.SetText("")
self.AchievementInfoTextPage3.SetText("")
 
def ShowAchievementPoints(self):
global AchievementPoints
self.AchievementTextFiller.SetText("Punkty Osiągnięć")
self.AchievementText.SetText("")
self.AchievementPointsText.SetText("Atualny stan:")
self.AchievementCountTextFiller.SetText("")
self.AchievementCountText.SetText(str(AchievementPoints))
self.WarteSchleife = WaitingDialog()
self.WarteSchleife.Open(3.0)
self.WarteSchleife.SAFE_SetTimeOverEvent(self.Information)
 
def Information(self):
self.AchievementTextFiller.SetText("")
self.AchievementText.SetText("")
self.AchievementPointsText.SetText("")
self.AchievementCountTextFiller.SetText("")
self.AchievementCountText.SetText("")
self.AchievementInfoTextPage1.SetText("Możesz wymienić Punkty Osiągnięć ")
self.AchievementInfoTextPage2.SetText("u dozorcy. Czekają tam na Ciebie")
self.AchievementInfoTextPage3.SetText("wartościowe przedmioty.")
self.WarteSchleife = WaitingDialog()
self.WarteSchleife.Open(2.5)
self.WarteSchleife.SAFE_SetTimeOverEvent(self.Close)
 
def AchievementWindow(self, points):
self.AchievementTextFiller.SetText("Twoje punkty:")
self.AchievementText.SetText("")
self.AchievementPointsText.SetText("   gwara:")
self.AchievementCountTextFiller.SetText("")
self.AchievementCountText.SetText(str(points))
self.WarteSchleife = WaitingDialog()
self.WarteSchleife.Open(3.0)
self.WarteSchleife.SAFE_SetTimeOverEvent(self.Information)
 
def Close(self):
self.Hide()
return TRUE
 
def OnPressEscapeKey(self):
self.Hide()
return TRUE
 
class WaitingDialog(ui.ScriptWindow):
 
def __init__(self):
ui.ScriptWindow.__init__(self)
self.__LoadDialog()
self.eventTimeOver = lambda *arg: None
self.eventExit = lambda *arg: None
 
def __del__(self):
ui.ScriptWindow.__del__(self)
 
def __LoadDialog(self):
try:
PythonScriptLoader = ui.PythonScriptLoader()
PythonScriptLoader.LoadScriptFile(self, "UIScript/WarteSchleife.py")
 
except:
import exception
exception.Abort("WaitingDialog.LoadDialog.BindObject")
 
def Open(self, waitTime):
curTime = time.clock()
self.endTime = curTime + waitTime
 
self.Show() 
 
def Close(self):
self.Hide()
 
def Destroy(self):
self.Hide()
 
def SAFE_SetTimeOverEvent(self, event):
self.eventTimeOver = ui.__mem_func__(event)
 
def SAFE_SetExitEvent(self, event):
self.eventExit = ui.__mem_func__(event)
 
def OnUpdate(self):
lastTime = max(0, self.endTime - time.clock())
if 0 == lastTime:
self.Close()
self.eventTimeOver()
else:
return
 
def OnPressExitKey(self):
self.Close()
return TRUE
 

achievementboard

 

 

import uiScriptLocale
Abstand = 30
Board_width = 350
 
window = {
"name" : "achievementboard",
"style" : ("movable", "float",),
 
"x" : SCREEN_WIDTH - Board_width - 15,
"y" : SCREEN_HEIGHT - 90 - 55,
 
"width" : Board_width,
"height" : 110,
 
"children" :
(
{
"name" : "board",
"type" : "board",
 
"x" : 0,
"y" : 0,
 
"width" : Board_width,
"height" : 110,
 
"children" :
(
{
"name" : "Achievement_Image",
"type" : "image",
 
"x" : 19,
"y" : 14 + 10,
 
"image" : "d:/ymir work/ui/public/achievement_small.sub",
},
{
"name" : "Achievement_Filler",
"type" : "text",
 
"x" : 80,
"y" : 14 + 5,
 
"text" : "Punkty Osiagniec:",
},
{
"name" : "Achievement_Text",
"type" : "text",
 
"x" : 80,
"y" : 14 + 25,
 
"text" : "Achievement",
},
{
"name" : "Achievement_Points_Text",
"type" : "text",
 
"x" : 80,
"y" : 14 + 25,
 
"text" : "",
},
{
"name" : "Count_Filler",
"type" : "text",
 
"x" : 80,
"y" : 14 + 45,
 
"text" : "Razem:",
},
{
"name" : "Count_Achievement_Text",
"type" : "text",
 
"x" : 140,
"y" : 14 + 45,
 
"text" : "Count",
},
{
"name" : "Achievement_Info_1",
"type" : "text",
 
"x" : 80,
"y" : 14 + 5,
 
"text" : "",
},
{
"name" : "Achievement_Info_2",
"type" : "text",
 
"x" : 80,
"y" : 14 + 25,
 
"text" : "",
},
{
"name" : "Achievement_Info_3",
"type" : "text",
 
"x" : 80,
"y" : 14 + 45,
 
"text" : "",
},
),
},
),
}
 

Z góry bardzo dziękuję za pomoc, na pewno ją wynagrodzę.

KONIEC


-----------------------------------------


2013-08-15

Opublikowano

cmdchat("achievement Mord_".. osiagniecie .."#".. liczba + 1  .."%".. pkt .."_Otrzymałeś:_"..nagroda.."")


 


Spróbuj też zmienić self.WarteSchleife.Open(3.0) na (4.0). Może wtedy wyskoczy jeszcze jedna informacja na której poda punkty.


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...