Jump to content

Galet

Premium
  • Posts

    1384
  • Joined

  • Last visited

  • Days Won

    14
  • Feedback

    0%

Everything posted by Galet

  1. Thanks you so much dude ! You rock ! But link about button are dead. Nice ! Are you goin' te release ?
  2. can't move your item into your inventory ?
  3. test with my 40k uiquest.py : import ui import dbg import app import grp import grpImage import event import time import wndMgr import net QUEST_BOARD_IMAGE_DIR = 'd:/ymir work/ui/game/questboard/' cur_questpage_number = 1 entire_questbutton_number = 0 entire_questpage_number = 1 # TOOLTIP_IMAGE_BOX class ToolTipImageBox(ui.ImageBox): def __init__(self): ui.ImageBox.__init__(self) self.DestroyToolTip() def __del__(self): ui.ImageBox.__del__(self) def CreateToolTip(self, parent, title, desc, x, y): import uiToolTip self.toolTip = uiToolTip.ToolTip() self.toolTip.SetWindowHorizontalAlignCenter() self.toolTip.SetFollow(FALSE) self.toolTip.SetTitle(title) self.toolTip.SetPosition(x, y) desc = desc.replace("|", "/") for line in desc.split("/"): self.toolTip.AutoAppendTextLine(line) self.toolTip.ResizeToolTip() self.toolTip.Hide() def DestroyToolTip(self): self.toolTip = None def OnMouseOverIn(self): if self.toolTip: self.toolTip.SetTop() self.toolTip.Show() def OnMouseOverOut(self): if self.toolTip: self.toolTip.Hide() # END_OF_TOOLTIP_IMAGE_BOX class QuestCurtain(ui.Window): CURTAIN_TIME = 0.25 CURTAIN_SPEED = 200 BarHeight = 60 OnDoneEventList = [] def __init__(self,layer="TOP_MOST"): ui.Window.__init__(self,layer) self.TopBar = ui.Bar("TOP_MOST") self.BottomBar = ui.Bar("TOP_MOST") self.TopBar.Show() self.BottomBar.Show() self.TopBar.SetColor(0xff000000) self.BottomBar.SetColor(0xff000000) self.TopBar.SetPosition(0,-self.BarHeight) self.TopBar.SetSize(wndMgr.GetScreenWidth(),self.BarHeight) self.BottomBar.SetPosition(0,wndMgr.GetScreenHeight()) self.BottomBar.SetSize(wndMgr.GetScreenWidth(),self.BarHeight) self.CurtainMode = 0 self.lastclock = time.clock() def Close(self): self.CurtainMode = 0 self.TopBar.SetPosition(0, -self.BarHeight-1) self.BottomBar.SetPosition(0, wndMgr.GetScreenHeight()+1) for OnDoneEvent in QuestCurtain.OnDoneEventList: apply(OnDoneEvent,(self,)) QuestCurtain.OnDoneEventList = [] def OnUpdate(self): dt = time.clock() - self.lastclock if self.CurtainMode>0: self.TopBar.SetPosition(0, int(self.TopBar.GetGlobalPosition()[1]+dt*self.CURTAIN_SPEED)) self.BottomBar.SetPosition(0, int(self.BottomBar.GetGlobalPosition()[1]-dt*self.CURTAIN_SPEED)) if self.TopBar.GetGlobalPosition()[1]>0: self.TopBar.SetPosition(0,0) self.BottomBar.SetPosition(0,wndMgr.GetScreenHeight()-self.BarHeight) self.CurtainMode = 0 elif self.CurtainMode<0: self.TopBar.SetPosition(0, int(self.TopBar.GetGlobalPosition()[1]-dt*self.CURTAIN_SPEED)) self.BottomBar.SetPosition(0, int(self.BottomBar.GetGlobalPosition()[1]+dt*self.CURTAIN_SPEED)) if self.TopBar.GetGlobalPosition()[1]<-self.BarHeight: self.TopBar.SetPosition(0,-self.BarHeight-1) self.BottomBar.SetPosition(0,wndMgr.GetScreenHeight()+1) self.Close() self.lastclock = time.clock() class EventCurtain(ui.Bar): COLOR_WHITE = 0.0 COLOR_BLACK = 1.0 DEFAULT_FADE_SPEED = 0.035 STATE_WAIT = 0 STATE_OUT = 1 STATE_IN = 2 def __init__(self, index): print "NEW EVENT CURTAIN ----------------------------------------------------------------------------" ui.Bar.__init__(self, "CURTAIN") self.SetWindowName("EventCurtain") self.AddFlag("float") self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight()) self.Hide() self.fadeColor = 1.0 self.curAlpha = 0.0 self.FadeInFlag = FALSE self.state = self.STATE_WAIT self.speed = 1.0 self.eventIndex = index def __del__(self): print "---------------------------------------------------------------------------- DELETE EVENT CURTAIN" ui.Bar.__del__(self) def SetAlpha(self, alpha): color = grp.GenerateColor(self.fadeColor, self.fadeColor, self.fadeColor, alpha) self.SetColor(color) def FadeOut(self, speed): self.curAlpha = 0.0 self.__StartFade(self.STATE_OUT, 0.0, speed) def FadeIn(self, speed): self.curAlpha = 1.0 self.__StartFade(self.STATE_IN, 0.0, speed) def WhiteOut(self, speed): self.curAlpha = 0.0 self.__StartFade(self.STATE_OUT, 1.0, speed) def WhiteIn(self, speed): self.curAlpha = 1.0 self.__StartFade(self.STATE_IN, 1.0, speed) def __StartFade(self, state, color, speed): self.state = state self.fadeColor = color self.Show() self.speed = self.DEFAULT_FADE_SPEED if 0 != speed: self.speed = speed def __EndFade(self): event.EndEventProcess(self.eventIndex) def OnUpdate(self): if self.STATE_OUT == self.state: self.curAlpha += self.speed if self.curAlpha >= 1.0: self.state = self.STATE_WAIT self.curAlpha = 1.0 self.__EndFade() elif self.STATE_IN == self.state: self.curAlpha -= self.speed if self.curAlpha <= 0.0: self.state = self.STATE_WAIT self.curAlpha = 0.0 self.__EndFade() self.Hide() self.SetAlpha(self.curAlpha) class BarButton(ui.Button): ColorUp = 0x40999999 ColorDown = 0x40aaaacc ColorOver = 0x40ddddff UP=0 DOWN=1 OVER=2 def __init__(self, layer = "UI", aColorUp = ColorUp, aColorDown = ColorDown, aColorOver = ColorOver): ui.Button.__init__(self,layer) self.state = self.UP self.colortable = aColorUp, aColorDown, aColorOver def OnRender(self): x,y = self.GetGlobalPosition() grp.SetColor(self.colortable[self.state]) grp.RenderBar(x,y,self.GetWidth(),self.GetHeight()) def CallEvent(self): self.state = self.UP ui.Button.CallEvent(self) def DownEvent(self): self.state = self.DOWN def ShowToolTip(self): self.state = self.OVER def HideToolTip(self): self.state = self.UP class DescriptionWindow(ui.Window): def __init__(self,idx): ui.Window.__init__(self, "TOP_MOST") self.descIndex = idx def __del__(self): ui.Window.__del__(self) def OnRender(self): event.RenderEventSet(self.descIndex) class QuestDialog(ui.ScriptWindow): TITLE_STATE_NONE = 0 TITLE_STATE_APPEAR = 1 TITLE_STATE_SHOW = 2 TITLE_STATE_DISAPPEAR = 3 SKIN_NONE = 0 SKIN_CINEMA = 5 QUEST_BUTTON_MAX_NUM = 8 def __init__(self,skin,idx): ui.ScriptWindow.__init__(self) self.SetWindowName("quest dialog") self.focusIndex = 0 self.board = None self.sx = 0 self.sy = 0 self.skin = skin if skin == 3: event.SetRestrictedCount(idx,36) else: event.SetRestrictedCount(idx,52) QuestCurtain.BarHeight = (wndMgr.GetScreenHeight()-wndMgr.GetScreenWidth()*9/16)/2 if QuestCurtain.BarHeight<0: QuestCurtain.BarHeight = 50 if not ('QuestCurtain' in QuestDialog.__dict__): QuestDialog.QuestCurtain = QuestCurtain() QuestDialog.QuestCurtain.Show() QuestDialog.QuestCurtain.CurtainMode = 1 self.nextCurtainMode = 0 if self.skin: QuestDialog.QuestCurtain.CurtainMode = 1 self.nextCurtainMode = 0 self.LoadDialog(self.skin) else: QuestDialog.QuestCurtain.CurtainMode = -1 self.nextCurtainMode = -1 self.descIndex = idx self.descWindow = DescriptionWindow(idx) self.descWindow.Show() self.eventCurtain = EventCurtain(idx) event.SetEventHandler(idx, self) self.OnCloseEvent = None self.btnAnswer = None self.btnNext = None self.imgLeft = None self.imgTop = None self.imgBackground = None self.imgTitle = None self.titleState = self.TITLE_STATE_NONE self.titleShowTime = 0 self.images = [] self.prevbutton = None self.nextbutton = None # QUEST_INPUT self.needInputString = FALSE self.editSlot = None self.editLine = None # END_OF_QUEST_INPUT def __del__(self): ui.ScriptWindow.__del__(self) def LoadDialog(self, skin): try: PythonScriptLoader = ui.PythonScriptLoader() PythonScriptLoader.LoadScriptFile(self, "uiscript/questdialog.py") except RuntimeError: dbg.TraceError("QuestDialog.LoadDialog") try: self.board = self.GetChild('board') except RuntimeError: dbg.TraceError("QuestDialog.BindObject") self.SetCenterPosition() if self.SKIN_CINEMA == skin: self.board.Hide() # QUEST_CANCEL def OnCancel(self): self.nextCurtainMode = -1 self.CloseSelf() # END_OF_QUEST_CANCEL def CloseSelf(self): QuestDialog.QuestCurtain.CurtainMode = self.nextCurtainMode self.btnNext = None self.descWindow = None self.btnAnswer = None self.Destroy() if self.descIndex: event.ClearEventSet(self.descIndex) self.descIndex = None self.focusIndex = 0 def Destroy(self): self.ClearDictionary() if self.OnCloseEvent: self.OnCloseEvent() self.OnCloseEvent = None # QUEST_INPUT if self.needInputString: if self.editLine: text = self.editLine.GetText() net.SendQuestInputStringPacket(text) # END_OF_QUEST_INPUT self.imgTitle = None self.images = None self.eventCurtain = None self.board = None def OnUpdate(self): if self.skin == self.SKIN_CINEMA: event.UpdateEventSet(self.descIndex, 50, -(wndMgr.GetScreenHeight() - 44)) # AUTO_RESIZE_BOARD elif self.skin == 3: if self.board: event.UpdateEventSet(self.descIndex, self.board.GetGlobalPosition()[0]+20+self.sx, -self.board.GetGlobalPosition()[1]-20-self.sy) event.SetEventSetWidth(self.descIndex, self.board.GetWidth()-40) elif self.skin: if self.board: event.UpdateEventSet(self.descIndex, self.board.GetGlobalPosition()[0]+20, -self.board.GetGlobalPosition()[1]-20) event.SetEventSetWidth(self.descIndex, self.board.GetWidth()-40) # END_OF_AUTO_RESIZE_BOARD else: event.UpdateEventSet(self.descIndex, 0, 0) if self.TITLE_STATE_NONE != self.titleState: curTime = app.GetTime() elapsedTime = app.GetTime() - self.titleShowTime if self.TITLE_STATE_APPEAR == self.titleState: self.imgTitle.SetAlpha(elapsedTime*2) if elapsedTime > 0.5: self.titleState = self.TITLE_STATE_SHOW self.titleShowTime = curTime elif self.TITLE_STATE_SHOW == self.titleState: if elapsedTime > 1.0: self.titleState = self.TITLE_STATE_DISAPPEAR self.titleShowTime = curTime elif self.TITLE_STATE_DISAPPEAR == self.titleState: self.imgTitle.SetAlpha(1.0 - elapsedTime*2) if elapsedTime > 0.5: self.titleState = self.TITLE_STATE_NONE self.titleShowTime = curTime ## Set Variables def AddOnCloseEvent(self,f): if self.OnCloseEvent: self.OnCloseEvent = lambda z=[self.OnCloseEvent, f]:map(apply,z) else: self.OnCloseEvent = f def AddOnDoneEvent(self,f): QuestCurtain.OnDoneEventList.append(f) def SetOnCloseEvent(self,f): self.OnCloseEvent = f def SetEventSetPosition(self, x, y): self.sx = x self.sy = y def AdjustEventSetPosition(self, x, y): self.sx += x self.sy += y ## Event # QUEST_CANCEL def MakeNextButton(self, button_type): if self.SKIN_NONE == self.skin: return yPos = event.GetEventSetLocalYPosition(self.descIndex) b = BarButton() b.SetParent(self.board) b.SetSize(100,26) b.SetPosition(self.sx+self.board.GetWidth()/2-50,self.sy+yPos) self.nextButtonType = button_type; import localeInfo if event.BUTTON_TYPE_CANCEL == button_type: b.SetEvent(lambda s=self:event.SelectAnswer(s.descIndex, 254) or s.OnCancel()) b.SetText(localeInfo.UI_CANCEL) elif event.BUTTON_TYPE_DONE == button_type: b.SetEvent(lambda s=self:s.CloseSelf()) b.SetText(localeInfo.UI_OK) elif event.BUTTON_TYPE_NEXT == button_type: b.SetEvent(lambda s=self:event.SelectAnswer(s.descIndex, 254) or s.CloseSelf()) b.SetText(localeInfo.UI_NEXT) b.Show() b.SetTextColor(0xffffffff) self.btnNext = b # END_OF_QUEST_CANCEL def MakeQuestion(self, n): # nÀº ¸ðµç Äù½ºÆ® ´ëȭâÀÇ ¸¶Áö¸· ¹öÆ°ÀÎ "´Ý±â"¸¦ Æ÷ÇÔÇÑ Àüü Äù½ºÆ® ¹öÆ° °³¼ö. by ±èÁØÈ£ global entire_questbutton_number global entire_questpage_number global cur_questpage_number entire_questpage_number = ((n-2)/7)+1 entire_questbutton_number = n if not self.board: return c = self.board def MakeEachButton(i): if self.skin == 3: button = BarButton("TOP_MOST",0x50000000, 0x50404040, 0x50606060) button.SetParent(c) button.SetSize(106,26) button.SetPosition(self.sx+c.GetWidth()/2+((i*2)-1)*56-56, self.sy+(event.GetLineCount(self.descIndex))*16+20+5) button.SetText("a") button.SetTextColor(0xff000000) else: i = i % 8 button = BarButton("TOP_MOST") button.SetParent(c) button.SetSize(200,26) button.SetPosition(self.sx+c.GetWidth()/2-100,self.sy+(event.GetLineCount(self.descIndex)+i*2)*16+20+5) button.SetText("a") button.SetTextColor(0xffffffff) return button def MakeNextPrevPageButton(): button = BarButton("TOP_MOST") button.SetParent(c) button.SetSize(52,26) button.SetText("a") button.SetTextColor(0xffffffff) return button def RefreshQuestPage(): num = 0 Showing_button_inx = (cur_questpage_number-1)* self.QUEST_BUTTON_MAX_NUM while num < n: if num >= Showing_button_inx and num < Showing_button_inx + self.QUEST_BUTTON_MAX_NUM: self.btnAnswer[num].Show() else: self.btnAnswer[num].Hide() num = num + 1 if cur_questpage_number == 1: self.prevbutton.Hide() self.nextbutton.Show() elif cur_questpage_number == entire_questpage_number: self.prevbutton.Show() self.nextbutton.Hide() else: self.prevbutton.Show() self.nextbutton.Show() def NextQuestPageEvent(one): global cur_questpage_number cur_questpage_number = cur_questpage_number + one RefreshQuestPage() def PrevQuestPageEvent(one): global cur_questpage_number cur_questpage_number = cur_questpage_number - one RefreshQuestPage() self.btnAnswer = [MakeEachButton(i) for i in xrange (n)] import localeInfo self.prevbutton = MakeNextPrevPageButton() self.prevbutton.SetPosition(self.sx+self.board.GetWidth()/2-164, self.board.GetHeight()/2-16) self.prevbutton.SetText(localeInfo.UI_PREVPAGE) self.prevbutton.SetEvent(PrevQuestPageEvent, 1) self.nextbutton = MakeNextPrevPageButton() self.nextbutton.SetPosition(self.sx+self.board.GetWidth()/2+112, self.board.GetHeight()/2-16) self.nextbutton.SetText(localeInfo.UI_NEXTPAGE) self.nextbutton.SetEvent(NextQuestPageEvent, 1) if cur_questpage_number != 1: cur_questpage_number = 1 def AppendQuestion(self, name, idx): # idx´Â 0ºÎÅÍ ½ÃÀÛÇÔ. PythonEventManager.cpp line 881 Âü°í. by ±èÁØÈ£ if not self.btnAnswer: return self.btnAnswer[idx].SetText(name) x, y= self.btnAnswer[idx].GetGlobalPosition() def ClickAnswerEvent(s, ai): event.SelectAnswer(s.descIndex, ai) self.nextbutton = None self.prevbutton = None s.CloseSelf() from _weakref import proxy self.btnAnswer[idx].SetEvent(ClickAnswerEvent,proxy(self),idx) global entire_questbutton_number Showing_button_idx = (cur_questpage_number-1)* self.QUEST_BUTTON_MAX_NUM if Showing_button_idx <= idx and idx < Showing_button_idx + self.QUEST_BUTTON_MAX_NUM: self.btnAnswer[idx].Show() else: self.btnAnswer[idx].Hide() if entire_questbutton_number >= self.QUEST_BUTTON_MAX_NUM: self.nextbutton.Show() def FadeOut(self, speed): self.eventCurtain.FadeOut(speed) def FadeIn(self, speed): self.eventCurtain.FadeIn(speed) def WhiteOut(self, speed): self.eventCurtain.WhiteOut(speed) def WhiteIn(self, speed): self.eventCurtain.WhiteIn(speed) def DoneEvent(self): self.nextCurtainMode = -1 if self.SKIN_NONE == self.skin or self.SKIN_CINEMA == self.skin: self.CloseSelf() def __GetQuestImageFileName(self, filename): if len(filename) > 1: if filename[1]!=':': filename = QUEST_BOARD_IMAGE_DIR+filename return filename # QUEST_INPUT def OnKeyDown(self, key): if self.btnAnswer == None: ## ¼±Åù®ÀÌ ¾ø°í '´ÙÀ½', 'È®ÀÎ' µîÀÇ ÀÏ¹æ ¹öÆ°¸¸ ÀÖ´Â °æ¿ì¿¡ ´ëÇÑ Ã³¸® if None != self.btnNext: if app.DIK_RETURN == key: self.OnPressEscapeKey() if app.DIK_UP == key or app.DIK_DOWN == key: self.btnNext.ShowToolTip() return TRUE focusIndex = self.focusIndex; lastFocusIndex = focusIndex; #print "QuestDialog key down - focus, last : ", focusIndex, lastFocusIndex answerCount = len(self.btnAnswer) if app.DIK_DOWN == key: focusIndex += 1 if app.DIK_UP == key: focusIndex -= 1 if focusIndex < 0: focusIndex = answerCount - 1 if focusIndex >= answerCount: focusIndex = 0 self.focusIndex = focusIndex; focusBtn = self.btnAnswer[focusIndex] lastFocusBtn = self.btnAnswer[lastFocusIndex] if focusIndex != lastFocusIndex: focusBtn.ShowToolTip() lastFocusBtn.HideToolTip() if app.DIK_RETURN == key: focusBtn.CallEvent() return TRUE def OnPressEscapeKey(self): # ESCÅ°°¡ ´­¸° °æ¿ì "´ÙÀ½" ¹öÆ°À» ´©¸¥ °Í°ú °°Àº È¿°ú¸¦ ³»µµ·Ï ÇÔ. if None != self.btnNext: if event.BUTTON_TYPE_CANCEL == self.nextButtonType: event.SelectAnswer(self.descIndex, 254) s.OnCancel() elif event.BUTTON_TYPE_DONE == self.nextButtonType: self.CloseSelf() elif event.BUTTON_TYPE_NEXT == self.nextButtonType: event.SelectAnswer(self.descIndex, 254) self.CloseSelf() else: event.SelectAnswer(self.descIndex, entire_questbutton_number - 1) self.nextbutton = None self.prevbutton = None self.CloseSelf() return TRUE def OnIMEReturn(self): if self.needInputString: self.CloseSelf() return TRUE def OnIMEUpdate(self): if not self.needInputString: return if not self.editLine: return self.editLine.OnIMEUpdate() def OnInput(self): self.needInputString = TRUE event.AddEventSetLocalYPosition(self.descIndex, 5+10) yPos = event.GetEventSetLocalYPosition(self.descIndex) self.editSlot = ui.SlotBar() self.editSlot.SetSize(200, 18) self.editSlot.SetPosition(0, yPos) self.editSlot.SetParent(self.board) self.editSlot.SetWindowHorizontalAlignCenter() self.editSlot.Show() self.editLine = ui.EditLine() self.editLine.SetParent(self.editSlot) self.editLine.SetPosition(3, 3) self.editLine.SetSize(200, 17) self.editLine.SetMax(30) self.editLine.SetFocus() self.editLine.Show() event.AddEventSetLocalYPosition(self.descIndex, 25+10) self.MakeNextButton(event.BUTTON_TYPE_DONE) self.editLine.UpdateRect() self.editSlot.UpdateRect() self.board.UpdateRect() # END_OF_QUEST_INPUT def OnImage(self, x, y, filename, desc=""): filename = self.__GetQuestImageFileName(filename) # IMAGE_EXCEPTION_BUG_FIX try: img = ui.MakeImageBox(self.board, filename, x, y) self.images.append(img) except RuntimeError: pass # END_OF_IMAGE_EXCEPTION_BUG_FIX # QUEST_IMAGE def OnInsertItemIcon(self, type, idx, title, desc, index=0, total=1): if "item" != type: return import item item.SelectItem(idx) filename = item.GetIconImageFileName() underTitle = title if not title and not desc: title = item.GetItemName() desc = item.GetItemDescription() tempDesc = desc desc = "" import grpText lineCount = grpText.GetSplitingTextLineCount(tempDesc, 25) for i in xrange(lineCount): desc += grpText.GetSplitingTextLine(tempDesc, 25, i) + "/" desc = desc[:-1] self.OnInsertImage(filename, underTitle, title, desc, index, total) def OnInsertImage(self, filename, underTitle, title, desc, index=0, total=1): if index == 0: event.AddEventSetLocalYPosition(self.descIndex, 24) y = event.GetEventSetLocalYPosition(self.descIndex) xBoard, yBoard = self.board.GetGlobalPosition() try: img = ToolTipImageBox() img.SetParent(self.board) img.LoadImage(filename) pos_x = (self.board.GetWidth() * (index + 1) / (total + 1)) - (img.GetWidth() / 2) img.SetPosition(pos_x, y) #img.SetWindowHorizontalAlignCenter() img.DestroyToolTip() if title and desc: img.CreateToolTip(self.board, title, desc, 0, yBoard + y + img.GetHeight()) img.Show() self.images.append(img) except RuntimeError: pass event.AddEventSetLocalYPosition(self.descIndex, img.GetHeight() - 20) if underTitle: event.AddEventSetLocalYPosition(self.descIndex, 3) event.InsertTextInline(self.descIndex, underTitle, (self.board.GetWidth() * (index + 1) / (total + 1))) if index != total - 1: event.AddEventSetLocalYPosition(self.descIndex, -( 3 + 16 )) else: if index == total - 1: event.AddEventSetLocalYPosition(self.descIndex, 4) if index != total - 1: event.AddEventSetLocalYPosition(self.descIndex, -(img.GetHeight() - 20)) # END_OF_QUEST_IMAGE def OnSize(self, width, height): self.board.SetSize(width, height) def OnTitleImage(self, filename): img = ui.ImageBox("TOP_MOST") try: img.SetWindowHorizontalAlignCenter() img.LoadImage(filename) img.SetPosition(0, wndMgr.GetScreenHeight() - (75/2) - (32/2)) img.SetAlpha(0.0) img.Show() except RuntimeError: dbg.TraceError("QuestDialog.OnTitleImage(%s)" % filename) img.Hide() self.imgTitle = img self.titleState = self.TITLE_STATE_APPEAR self.titleShowTime = app.GetTime() def OnLeftImage(self, imgfile): imgfile = self.__GetQuestImageFileName(imgfile) if not self.imgLeft: self.imgLeft = ui.ExpandedImageBox("TOP_MOST") self.imgLeft.SetParent(self) self.imgLeft.SetPosition(0,0) bd = self.board bx, by = bd.GetLocalPosition() bd.SetPosition(160,by) if self.imgTop: tx, ty = self.imgTop.GetLocalPosition() self.imgTop.SetPosition(160,ty) try: self.imgLeft.LoadImage(imgfile) self.imgLeft.SetSize(400,450) self.imgLeft.SetOrigin(self.imgLeft.GetWidth()/2,self.imgLeft.GetHeight()/2) self.imgLeft.Show() except RuntimeError: import dbg dbg.TraceError("QuestDialog.OnLeftImage(%s)" % imgfile) self.imgLeft.Hide() def OnTopImage(self, imgfile): imgfile = self.__GetQuestImageFileName(imgfile) bd = self.board bx, by = bd.GetLocalPosition() if not self.imgTop: self.imgTop = ui.ExpandedImageBox("TOP_MOST") self.imgTop.SetParent(self) bd.SetPosition(bx,190) self.imgTop.SetPosition(bx,10) try: self.imgTop.LoadImage(imgfile) h = self.imgTop.GetHeight() if h>170: # need adjust board size bd.SetPosition(bx,20+h) bd.SetSize(350,420-h) self.imgTop.SetSize(350,h) else: self.imgTop.SetSize(350,170) bd.SetPosition(bx,190) bd.SetSize(350,250) self.imgTop.SetOrigin(self.imgTop.GetWidth()/2,self.imgTop.GetHeight()/2) self.imgTop.Show() except RuntimeError: dbg.TraceError("QuestDialog.OnTopImage(%s)" % imgfile) self.imgTop.Hide() def OnBackgroundImage(self, imgfile): imgfile = self.__GetQuestImageFileName(imgfile) c = self.board w = c.GetWidth() h = c.GetHeight() px, py = c.GetLocalPosition() moved = 0 if not self.imgBackground: self.imgBackground = ui.ExpandedImageBox("TOP_MOST") self.imgBackground.SetParent(c) self.imgBackground.SetPosition(0,0) self.imgBackground.LoadImage(imgfile) iw = self.imgBackground.GetWidth() ih = self.imgBackground.GetHeight() if self.skin==3: iw = 256 ih = 333 self.imgBackground.SetSize(iw,ih) if w < iw: px -= (iw-w)/2 c.SetPosition(px,py) w = iw if h < ih: py -= (ih-h)/2 c.SetPosition(px,py) h = ih if self.skin == 3: w=256 h = 333 self.sx = 0 self.sy = 100 c.SetSize(w,h) c.HideInternal() c.SetWindowHorizontalAlignCenter() c.SetWindowVerticalAlignCenter() c.SetPosition(0,0) if self.skin==3: c.SetPosition(-190,0) self.imgBackground.SetWindowHorizontalAlignCenter() self.imgBackground.SetWindowVerticalAlignCenter() self.imgBackground.SetPosition(0,0) self.imgBackground.Show()
  4. 44k db & game. (really nice I think) Vanilla core doesn't work for me (y)
  5. What kind of mod ? Enb ? Preview plz Otherwise, put the 2048 texture into terrain for exemple to make the game better, here's a comparaison betwenn normal and 2k textures (rock) made by me. [Hidden Content] (Before) [Hidden Content] (After)
  6. All working but constantly 0 mds. It's because coin column named cash ? I modified that quest, but it is the same... Modified quest : Version 1 : quest mds begin state start begin when login begin loop_timer("carga_mds", 10) end when carga_mds.timer begin local coins = mysql_query("SELECT cash from account.account WHERE id="..pc.get_account_id().." LIMIT 1;")[1][1] cmdchat("Mds "..coins) end end end Version 2 : quest mds begin state start begin when login begin loop_timer("carga_mds", 10) end when carga_mds.timer begin local coins = mysql_query("SELECT cash from account.account WHERE id="..pc.get_account_id().." LIMIT 1;")[1][1] cmdchat("Mds "..cash) end end end I doesn't have the mysql module, someone can give me a link for this ? Solved, it's about mysql module.
  7. My system at the begin : 52%, after 109%, impossible to do something else, and I must reinstall all.
  8. It doesn't work is a very nice error description xD Rofl, it's true ^^ Lot of problem, DB overflowing, solved, error when trying to connect but 0 syserr error... Which client I have to use ? I'm going to try invoice files, thx.
  9. Yeah, but it doesn't work for me, so I retest with Viruz serverfiles. So, it's pretty cool if someone can give me files or vdi with vanilla binary.
  10. Hi, can someone give me serverfiles with vanilla game and db included, no matter about language of the files. Thank you
  11. You may have something in D hardrive like ymir work folder with bugged trees.
  12. Good job, like all the other times !
  13. Yeah, I know for download link, I just talking about link of the files which work with your binary. Ok, thanks
  14. Need granny 2.9 I think. It's a folder in the source code. You can find it in the source code.
  15. Really thanks, have you a link for files please ? Something else : CONFIG and conf.txt changed automatically when I put game/db or I must change them manually ? Thanks you alot dude, you rock !
  16. Hi, I have some question about Vanilla core, let's start. 1) Can I use Vanilla core with 32bit FreeBSD 9.2 ? (in hamachi). 2) I've got 40k test client, it's work with it, right ? 3) If my client say "Du wirst mit dem Server verbuden" It's probem of game or client ? 4) Which files needed ? I've got weird serverfile 33 or 40k. Thanks you
  17. FreeBSD are configured or not ? Which disk are you taking from FreeBSD ?
  18. I fix it I think, but I don't have any error in my syserr. Impossible to connect, it's all. So I've got : buffer_new: calloc failed [12] Cannot allocate memory safe_create: calloc failed [12] Cannot allocate memory But this tutorial don't work with me : [Hidden Content]
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.