Jump to content

DeadSkull

Inactive Member
  • Posts

    7
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by DeadSkull

  1. go to uicube.py and search:

    def __OnAcceptButtonClick(self):

    and repalce with :

    	def __OnAcceptButtonClick(self):
    		import chat
    		if len(self.cubeItemInfo) == 0:
    			"빈 큐브"
    			return
    		
    		print "큐브 제작 시작"
    		itemCount = 0
    		for invenPos in self.cubeItemInfo.values():
    			itemCount = player.GetItemCount(invenPos)
    			#break
    			#net.SendChatPacket("/cube add " + str(invenPos))
    
    		net.SendChatPacket("/cube make %d " % itemCount)

    go to cmd_general.cpp and search :

    dev_log(LOG_DEB0, "CUBE COMMAND <%s>: %s", ch->GetName(), argument);

    add down:

    	DWORD count=1;

    and.. search:

    		case 'm':	// make
    			if (0 != arg2[0])
    			{
    				while (true == Cube_make(ch,count)){
    					dev_log (LOG_DEB0, "cube make success");
    				}
    			}

    repalce with:

    		case 'm':	// make
    			if (0 != arg2[0])
    			{
    				str_to_number(count, arg2);
    				Cube_make(ch,count);
    			}

    go to cube.h and search:

    	void		remove_material (LPCHARACTER ch);
    
    add down
    void		remove_material (LPCHARACTER ch,DWORD count);
    
    then search:
    bool Cube_make (LPCHARACTER ch);
    
    replace with :
    bool Cube_make (LPCHARACTER ch,DWORD count);

     

    go to cube.cpp and search:

    void CUBE_DATA::remove_material (LPCHARACTER ch)
    {
    	DWORD	i, end_index;
    	DWORD	need_vnum;
    	int		need_count;
    	LPITEM	*items = ch->GetCubeItem();
    
    	end_index = this->item.size();
    	for (i=0; i<end_index; ++i)
    	{
    		need_vnum	= this->item[i].vnum;
    		need_count	= this->item[i].count;
    
    		FN_remove_material (items, need_vnum, need_count);
    	}
    }
          
     add down
    void CUBE_DATA::remove_material (LPCHARACTER ch,DWORD count)
    {
    	DWORD	i, end_index;
    	DWORD	need_vnum;
    	int		need_count;
    	LPITEM	*items = ch->GetCubeItem();
    
    	end_index = this->item.size();
    	for (i=0; i<end_index; ++i)
    	{
    		need_vnum	= this->item[i].vnum;
    		need_count	= this->item[i].count;
    		FN_remove_material (items, need_vnum, count);
    	}
    }
     
     then search :
          bool Cube_make (LPCHARACTER ch)
     replace with:
          bool Cube_make (LPCHARACTER ch,DWORD count)
          
    then search :
          cube_proto->remove_material (ch);
          
    replace with:
          cube_proto->remove_material (ch,count);
     
     then search:
          if ( percent_number<=cube_proto->percent)
    	{
    		// 성공
    		ch->ChatPacket(CHAT_TYPE_COMMAND, "cube success %d %d", reward_value->vnum, reward_value->count);
    		new_item = ch->AutoGiveItem(reward_value->vnum, reward_value->count);
    
    		LogManager::instance().CubeLog(ch->GetPlayerID(), ch->GetX(), ch->GetY(),
    				reward_value->vnum, new_item->GetID(), reward_value->count, 1);
    		return true;
    	}
          
    repalce with:
          	if ( percent_number<=cube_proto->percent)
    	{
    		// 성공
    		ch->ChatPacket(CHAT_TYPE_COMMAND, "cube success %d %d", reward_value->vnum, count);
    		new_item = ch->AutoGiveItem(reward_value->vnum, count);
    
    		LogManager::instance().CubeLog(ch->GetPlayerID(), ch->GetX(), ch->GetY(),
    				reward_value->vnum, new_item->GetID(), count, 1);
    		return true;
    	}
          

     

    Best Wishes <3

  2. On 9/26/2016 at 11:24 PM, Grimmjow said:

    I think he meant that you should creat a new class in ui.py

     I do not know if it can be useful but i have found this:

     

    
    class TaskBar(Window):
    
    	class MiniMap(Window):
    		class MapTextToolTip(Window):
    			def __init__(self):			
    				ui.Window.__init__(self)
    
    				textLine = ui.TextLine()
    				textLine.SetParent(self)
    				textLine.SetHorizontalAlignCenter()
    				textLine.SetOutline()
    				textLine.SetHorizontalAlignRight()
    				textLine.Show()
    				self.textLine = textLine
    
    			def __del__(self):			
    				ui.Window.__del__(self)
    
    			def SetText(self, text):
    				self.textLine.SetText(text)
    
    			def SetTooltipPosition(self, PosX, PosY):
    				if localeInfo.IsARABIC():
    					w, h = self.textLine.GetTextSize()
    					self.textLine.SetPosition(PosX - w - 5, PosY)
    				else:
    					self.textLine.SetPosition(PosX - 5, PosY)
    
    			def SetTextColor(self, TextColor):
    				self.textLine.SetPackedFontColor(TextColor)
    
    			def GetTextSize(self):
    				return self.textLine.GetTextSize()
    		def __init__(self):
    			ui.Window.__init__(self)
    			self.AddFlag("not_pick")
    			self.tooltipInfo = None
    			self.btnAtlas = None
    			self.Show()
    
    
    		def OnUpdate(self):
    			miniMap.UpdateAtlas()
    			self.UpdateMiniMapToolTip()
    
    		def UpdateMiniMapToolTip(self):
    			(mouseX, mouseY) = wndMgr.GetMousePosition()
    			if self.tooltipInfo:
    				if True == CustomIsIn(mouseX, mouseY, self):
    					(bFind, sName, iPosX, iPosY, dwTextColor) = miniMap.GetInfo(mouseX, mouseY)
    					if bFind == 0:
    						self.tooltipInfo.Hide()
    					elif not self.CanSeeInfo:
    						self.tooltipInfo.SetText("%s(%s)" % (sName, localeInfo.UI_POS_UNKNOWN))
    						self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
    						self.tooltipInfo.SetTextColor(dwTextColor)
    						self.tooltipInfo.Show()
    					else:
    						if localeInfo.IsARABIC() and sName[-1].isalnum():
    							self.tooltipInfo.SetText("(%s)%d, %d" % (sName, iPosX, iPosY))
    						else:
    							self.tooltipInfo.SetText("%s(%d, %d)" % (sName, iPosX, iPosY))
    						self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
    						self.tooltipInfo.SetTextColor(dwTextColor)
    						self.tooltipInfo.Show()
    				else:
    					self.tooltipInfo.Hide()
    		def AddToolTip(self, parent):
    			self.tooltipInfo = self.MapTextToolTip()
    			self.tooltipInfo.SetParent(parent)
    			self.tooltipInfo.Hide()
    
    		def OnRender(self):
    			(x, y) = self.GetGlobalPosition()
    			fx = float(x)
    			fy = float(y)
    			miniMap.Render(fx, fy)
    
    		def HideAtlas(self):
    			miniMap.HideAtlas()
    		def BuildButtons(self, parent):
    			self.btnAtlas = Button()
    			self.btnAtlas.SetParent(parent)
    			self.btnAtlas.SetUpVisual("illumina/controls/special/taskbar/btn_atlas_01_normal.tga")
    			self.btnAtlas.SetOverVisual("illumina/controls/special/taskbar/btn_atlas_02_hover.tga")
    			self.btnAtlas.SetDownVisual("illumina/controls/special/taskbar/btn_atlas_03_active.tga")
    			self.btnAtlas.SetToolTipText(localeInfo.MINIMAP_SHOW_AREAMAP, 0, -25)
    			self.btnAtlas.SetEvent(ui.__mem_func__(self.ShowAtlas))
    			self.btnAtlas.SetPosition(191, 19)
    			self.btnAtlas.Show()
    		def ShowAtlas(self):
    			miniMap.ShowAtlas()
    
    		def CanSeeInfo(self):
    			return True
    
    		def GetMapsUnallowed(self):
    			return {
    		"metin2_map_monkeydungeon" : FALSE,
    		"metin2_map_monkeydungeon_02" : FALSE,
    		"metin2_map_monkeydungeon_03" : FALSE,
    		"metin2_map_devilsCatacomb" : FALSE,
    		}
    	
    	class ExpBar(Window):
    		image = None
    		class TextToolTip(ui.Window):
    			def __init__(self):
    				ui.Window.__init__(self, "TOP_MOST")
    
    				textLine = ui.TextLine()
    				textLine.SetParent(self)
    				textLine.SetHorizontalAlignCenter()
    				textLine.SetOutline()
    				textLine.Show()
    				self.textLine = textLine
    
    			def __del__(self):
    				ui.Window.__del__(self)
    
    			def SetText(self, text):
    				self.textLine.SetText(text)
    
    			def OnRender(self):
    				(mouseX, mouseY) = wndMgr.GetMousePosition()
    				self.textLine.SetPosition(mouseX, mouseY - 15)
    		def __init__(self):
    			Window.__init__(self)
    			self.image = ExpandedImageBox()
    			self.image.AddFlag("not_pick")
    			self.image.LoadImage("illumina/controls/special/taskbar/progress_exp_full.tga")
    			self.image.SetParent(self)
    			self.image.Show()
    			self.SetSize(self.image.GetWidth(), self.image.GetHeight())
    			self.SetPosition(241, 89)
    			self.Show()
    			
    
    		def __del__(self):
    			self.Hide()
    			Window.__del__(self)
    		def AddToolTip(self, parent):
    			self.tooltipInfo = self.TextToolTip()
    			self.tooltipInfo.SetParent(parent)
    			self.tooltipInfo.Hide()
    		def OnUpdate(self):
    			import player
    			curEXP = unsigned32(player.GetStatus(player.EXP))
    			nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP))
    			Percentage = -1 + float(curEXP)/float(nextEXP)
    
    			self.image.SetRenderingRect(0.0, Percentage, 0.0, 0.0)
    			(mouseX, mouseY) = wndMgr.GetMousePosition()
    			if self.tooltipInfo:
    				if True == CustomIsIn(mouseX, mouseY, self):
    					self.tooltipInfo.Show()
    					self.tooltipInfo.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curEXP) / max(1, float(nextEXP)) * 100))
    				else:
    					self.tooltipInfo.Hide()
    
    
    	def __init__(self):
    		Window.__init__(self)
    		self.path = "illumina/controls/special/taskbar/"
    		self.width = max(1280, wndMgr.GetScreenWidth())
    		self.height = 158
    		self.repeat = 220
    		self.bar = None
    		self.atlas = None
    		self.exp_Bar = None
    		self.BuildMiniMap()
    
    		self.BuildBar()
    		self.BuildExpBar()
    		self.BuildButtons()
    		
    		
    		self.SetPosition( (wndMgr.GetScreenWidth() - self.width )/2,wndMgr.GetScreenHeight()-self.height)
    		self.SetSize(self.width, self.height)
    		self.Show()
    		self.BuildToolTips()
    	def __del__(self):
    		self.Hide()
    		Window.__del__(self)
    
    	
    
    	def BuildBar(self):
    		self.bar = []
    		files = ["bar_" +dir+".tga" for dir in ("repeat","left", "middle", "right", ) ]
    		for x in files:
    			part = ExpandedImageBox()
    			part.AddFlag("not_pick")
    			part.LoadImage("illumina/controls/special/taskbar/" + x)
    			part.SetParent(self)
    			part.Show()
    			self.bar.append(part)
    		self.bar[0].SetPosition(self.bar[1].GetWidth()  ,self.height - self.bar[0].GetHeight())
    		self.bar[0].SetPercentage(float(self.width) - float(self.bar[1].GetWidth()) - float(self.bar[3].GetWidth()), float(self.repeat))
    		self.bar[1].SetPosition(0,self.height -124)
    		self.bar[2].SetPosition( (self.width - self.bar[2].GetWidth()) / 2 , self.height - self.bar[2].GetHeight())
    		self.bar[3].SetPosition(self.width -  self.bar[3].GetWidth(),0)
    
    	def BuildMiniMap(self):
    		miniMap.Create()
    		miniMap.SetScale(2.0)
    		miniMap.RegisterAtlasWindow(self)
    		self.Atlas = self.MiniMap()
    		self.Atlas.SetParent(self)
    		self.Atlas.SetSize(128, 128)
    		self.Atlas.SetPosition(self.width - 280, 15)
    		self.Atlas.Show()
    	def BuildExpBar(self):
    		self.exp_Bar = self.ExpBar()
    		self.exp_Bar.SetParent(self.bar[1])
    	def BuildButtons(self):
    		self.Atlas.BuildButtons(self.bar[3])
    	def BuildToolTips(self):		
    		self.Atlas.AddToolTip(self)
    		self.exp_Bar.AddToolTip(self)

    thanks for you but how can use it ? after add it in ui.py ?

  3. hi,

    i want make a Private shop new design with two different item and two different design

    but i have problem with Polymorph

    and this my code 

    in char.cpp search void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount)

    and repalce end with

    Spoiler

        if (CountSpecifyItem(60301))
        {
            ShopDe();
            return;
        }

    }
    void CHARACTER::ShopDe()
    {
        if (CountSpecifyItem(60301))
        {
            RemoveSpecifyItem(60301, 1);
            SetPolymorph(30001, true);
        }
        else
            return; 
    }

    and this is gif for my problem when i do Polymorph

    .gif

×
×
  • 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.