button costume...

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
sorrellboss
Nivel 3

Nivel 3
Mesaje: 461
Membru din: 29 Iun 2014, 09:51
Server: Metin2Gorj
Regat: Shinsoo
Aprecieri: 45  
Mulţumiri: 4  
Medalii

salut am schimbat inventarul si mi-a disparut butonul de la mini inventarul de la costume...

locale --> inventorywindow.py

Cod: Selectaţi tot

import uiScriptLocale

MIDDLE_VALUE_FILE = "d:/ymir work/ui/public/Parameter_Slot_01.sub"
EQUIPMENT_START_INDEX = 90

window = {
	"name" : "InventoryWindow",

	## 600 - (width + 오른쪽으로 부터 띄우기 24 px)
	"x" : SCREEN_WIDTH - 124 - 176,
	"y" : SCREEN_HEIGHT - 37 - 565,

	"style" : ("movable", "float",),

	"width" : 176+124,
	"height" : 565,

	"children" :
	(
		{
			"name" : "board",
			"type" : "board",
			"style" : ("attach",),

			"x" : 0,
			"y" : 0,

			"width" : 176+124,
			"height" : 565,

			"children" :
			(
				## Title
				{
					"name" : "TitleBar",
					"type" : "titlebar",
					"style" : ("attach",),

					"x" : 8,
					"y" : 7,

					"width" : 161+124,
					"color" : "yellow",

					"children" :
					(
						{
							"name":"TitleName",
							"type":"text",
							"x":77+62,
							"y":3,
							"text":uiScriptLocale.INVENTORY_TITLE,
							"text_horizontal_align":"center"
						},
					),
				},

				## Equipment Slot
				{
					"name" : "Equipment_Base",
					"type" : "image",

					"x" : 10,
					"y" : 33,

					"image" : "d:/ymir work/ui/game/windows/equipment_base.sub",

					"children" :
					(

						{
							"name" : "EquipmentSlot",
							"type" : "slot",

							"x" : 3,
							"y" : 3,

							"width" : 150,
							"height" : 182,

							"slot" : (
										{"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},
										{"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},
										{"index":EQUIPMENT_START_INDEX+5, "x":114, "y":84, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+6, "x":114, "y":52, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+7, "x":2, "y":113, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+8, "x":75, "y":113, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+9, "x":114, "y":1, "width":32, "height":32},
										{"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},
									),
						},
						## MallButton
						{
							"name" : "MallButton",
							"type" : "button",

							"x" : 120,
							"y" : 150,

							"tooltip_text" : uiScriptLocale.MALL_TITLE,

							"default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",
							"over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",
							"down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",
						},
						{
							"name" : "Equipment_Tab_01",
							"type" : "radio_button",

							"x" : 86,
							"y" : 161,

							"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
							"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
							"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

							"children" :
							(
								{
									"name" : "Equipment_Tab_01_Print",
									"type" : "text",

									"x" : 0,
									"y" : 0,

									"all_align" : "center",

									"text" : "I",
								},
							),
						},
						{
							"name" : "Equipment_Tab_02",
							"type" : "radio_button",

							"x" : 86 + 32,
							"y" : 161,

							"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
							"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
							"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

							"children" :
							(
								{
									"name" : "Equipment_Tab_02_Print",
									"type" : "text",

									"x" : 0,
									"y" : 0,

									"all_align" : "center",

									"text" : "II",
								},
							),
						},

					),
				},
				##BonusPageDialog
				{
					"name" : "Bonus_Page",
					"type" : "window",
					"x" : 166,
					"y" : 34,
					"width" : 124,
					"height" : 565-24,
					"children" :
					(
						{
							"name" : "BonusBase1",
							"type" : "horizontalbar",
							"x" : 4,
							"y" : 0,
							"width" : 120,
							"children" :
							(
								{
									"name" : "bonus_text_1",
									"type" : "text",
									"x" : 0,
									"y" : 0,
									"all_align" : "center",
									"text" : "Defensive", 
								},
							),
						},
						{
							"name" : "Sword_defence",
							"type" : "text",
							"x" : 5,
							"y" : 1*18,
							"text" : "Sword:"
						},
						{
							"name" : "Sword_def",
							"type" : "window",
							"x" : 72,
							"y" : 1*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Sword_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Sword_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Twohand_defence",
							"type" : "text",
							"x" : 5,
							"y" : 2*18,
							"text" : "Twohand:"
						},
						{
							"name" : "Twohand_def",
							"type" : "window",
							"x" : 72,
							"y" : 2*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Twohand_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Twohand_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Knife_defence",
							"type" : "text",
							"x" : 5,
							"y" : 3*18,
							"text" : "Knife:"
						},
						{
							"name" : "Knife_def",
							"type" : "window",
							"x" : 72,
							"y" : 3*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Knife_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Knife_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Bow_defence",
							"type" : "text",
							"x" : 5,
							"y" : 4*18,
							"text" : "Bow:"
						},
						{
							"name" : "Bow_def",
							"type" : "window",
							"x" : 72,
							"y" : 4*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Bow_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Bow_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Bell_defence",
							"type" : "text",
							"x" : 5,
							"y" : 5*18,
							"text" : "Bell:"
						},
						{
							"name" : "Bell_def",
							"type" : "window",
							"x" : 72,
							"y" : 5*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Bell_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Bell_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Fan_defence",
							"type" : "text",
							"x" : 5,
							"y" : 6*18,
							"text" : "Fan:"
						},
						{
							"name" : "Fan_def",
							"type" : "window",
							"x" : 72,
							"y" : 6*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Fan_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Fan_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Magic_defence",
							"type" : "text",
							"x" : 5,
							"y" : 7*18,
							"text" : "Magic:"
						},
						{
							"name" : "Magic_def",
							"type" : "window",
							"x" : 72,
							"y" : 7*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Magic_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Magic_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Poison_defence",
							"type" : "text",
							"x" : 5,
							"y" : 8*18,
							"text" : "Pioson:"
						},
						{
							"name" : "Poison_def",
							"type" : "window",
							"x" : 72,
							"y" : 8*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Poison_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Poison_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Warrior_defence",
							"type" : "text",
							"x" : 5,
							"y" : 9*18,
							"text" : "Warrior:"
						},
						{
							"name" : "Warrior_def",
							"type" : "window",
							"x" : 72,
							"y" : 9*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Warrior_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Warrior_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Assassin_defence",
							"type" : "text",
							"x" : 5,
							"y" : 10*18,
							"text" : "Assassin:"
						},
						{
							"name" : "Assassin_def",
							"type" : "window",
							"x" : 72,
							"y" : 10*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Assassin_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Assassin_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Sura_defence",
							"type" : "text",
							"x" : 5,
							"y" : 11*18,
							"text" : "Sura:"
						},
						{
							"name" : "Sura_def",
							"type" : "window",
							"x" : 72,
							"y" : 11*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Sura_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Sura_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Mage_defence",
							"type" : "text",
							"x" : 5,
							"y" : 12*18,
							"text" : "Mage:"
						},
						{
							"name" : "Mage_def",
							"type" : "window",
							"x" : 72,
							"y" : 12*18,
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Mage_def_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Mage_def_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "BonusBase2",
							"type" : "horizontalbar",
							"x" : 4,
							"y" : 235,
							"width" : 120,
							"children" :
							(
								{
									"name" : "bonus_text_1",
									"type" : "text",
									"x" : 0,
									"y" : 0,
									"all_align" : "center",
									"text" : "Attacker",
								},
							),
						},
						{
							"name" : "Critical_chance",
							"type" : "text",
							"x" : 5,
							"y" : 235+(1*18),
							"text" : "Critical:"
						},
						{
							"name" : "Crit",
							"type" : "window",
							"x" : 72,
							"y" : 235+(1*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Crit_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Crit_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Pierce_chance",
							"type" : "text",
							"x" : 5,
							"y" : 235+(2*18),
							"text" : "Pierce:"
						},
						{
							"name" : "Pierce",
							"type" : "window",
							"x" : 72,
							"y" : 235+(2*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Pierce_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Pierce_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Hit_damage",
							"type" : "text",
							"x" : 5,
							"y" : 235+(3*18),
							"text" : "Hit damage:"
						},
						{
							"name" : "Hitdmg",
							"type" : "window",
							"x" : 72,
							"y" : 235+(3*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Hitdmg_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Hitdmg_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Skill_damage",
							"type" : "text",
							"x" : 5,
							"y" : 235+(4*18),
							"text" : "Skill damage:"
						},
						{
							"name" : "Skilldmg",
							"type" : "window",
							"x" : 72,
							"y" : 235+(4*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Skilldmg_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Skilldmg_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Halfhumans",
							"type" : "text",
							"x" : 5,
							"y" : 235+(5*18),
							"text" : "Halfhumans:"
						},
						{
							"name" : "Halfhuman",
							"type" : "window",
							"x" : 72,
							"y" : 235+(5*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Halfhuman_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Halfhuman_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Undeads",
							"type" : "text",
							"x" : 5,
							"y" : 235+(6*18),
							"text" : "Undead:"
						},
						{
							"name" : "Undead",
							"type" : "window",
							"x" : 72,
							"y" : 235+(6*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Undead_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Undead_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Devil_gegen",
							"type" : "text",
							"x" : 5,
							"y" : 235+(7*18),
							"text" : "Devil:"
						},
						{
							"name" : "Devil",
							"type" : "window",
							"x" : 72,
							"y" : 235+(7*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Devil_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Devil_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Warrior_gegen",
							"type" : "text",
							"x" : 5,
							"y" : 235+(8*18),
							"text" : "Warrior:"
						},
						{
							"name" : "Warrior_str",
							"type" : "window",
							"x" : 72,
							"y" : 235+(8*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Warrior_str_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Warrior_str_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Assassin_gegen",
							"type" : "text",
							"x" : 5,
							"y" : 235+(9*18),
							"text" : "Assassin:"
						},
						{
							"name" : "Assassin_str",
							"type" : "window",
							"x" : 72,
							"y" : 235+(9*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Assassin_str_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Assassin_str_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Sura_gegen",
							"type" : "text",
							"x" : 5,
							"y" : 235+(10*18),
							"text" : "Sura:"
						},
						{
							"name" : "Assassin_str",
							"type" : "window",
							"x" : 72,
							"y" : 235+(10*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Sura_str_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Sura_str_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "Mage_gegen",
							"type" : "text",
							"x" : 5,
							"y" : 235+(11*18),
							"text" : "Mage:"
						},
						{
							"name" : "Mage_str",
							"type" : "window",
							"x" : 72,
							"y" : 235+(11*18),
							"width" : 53,
							"height" : 19,
							"children" :
							(
								{
									"name" : "Mage_str_Slot",
									"type" : "image",
									"x" : 0,
									"y" : 0,
									"image" : MIDDLE_VALUE_FILE
								},
								{
									"name" : "Mage_str_Value",
									"type" : "text",
									"x" : 26,
									"y" : 3,
									"text" : "999",
									"r" : 1.0,
									"g" : 1.0,
									"b" : 1.0,
									"a" : 1.0,
									"text_horizontal_align":"center"
								},
							),
						},
						{
							"name" : "CopyRight",
							"type" : "horizontalbar",
							"x" : 4,
							"y" : 470,
							"width" : 120,
							"children" :
							(
								{
									"name" : "(C)",
									"type" : "text",
									"x" : 0,
									"y" : 0,
									"all_align" : "center",
									"text" : "?P3NG3R",
									"r" : 1.0,
									"g" : 0.0,
									"b" : 0.0,
									"a" : 1.0,
								},
							),
						},
					),
				},

				##InventoryTabs
				{
					"name" : "Inventory_Tab_01",
					"type" : "radio_button",

					"x" : 10,
					"y" : 33 + 191,

					"default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
					"over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
					"down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
					"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,

					"children" :
					(
						{
							"name" : "Inventory_Tab_01_Print",
							"type" : "text",

							"x" : 0,
							"y" : 0,

							"all_align" : "center",

							"text" : "I",
						},
					),
				},
				{
					"name" : "Inventory_Tab_02",
					"type" : "radio_button",

					"x" : 10 + 78,
					"y" : 33 + 191,

					"default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
					"over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
					"down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
					"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,

					"children" :
					(
						{
							"name" : "Inventory_Tab_02_Print",
							"type" : "text",

							"x" : 0,
							"y" : 0,

							"all_align" : "center",

							"text" : "II",
						},
					),
				},

				## Item Slot
				{
					"name" : "ItemSlot",
					"type" : "grid_table",

					"x" : 8,
					"y" : 246,

					"start_index" : 0,
					"x_count" : 5,
					"y_count" : 9,
					"x_step" : 32,
					"y_step" : 32,

					"image" : "d:/ymir work/ui/public/Slot_Base.sub"
				},

				## Print
				{
					"name":"Money_Slot",
					"type":"button",

					"x":8+20,
					"y":28,

					# "horizontal_align":"center",
					"vertical_align":"bottom",

					"default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
					"over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
					"down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

					"children" :
					(
						{
							"name":"Money_Icon",
							"type":"image",

							"x":-18,
							"y":2,

							"image":"d:/ymir work/ui/game/windows/money_icon.sub",
						},

						{
							"name" : "Money",
							"type" : "text",

							"x" : 3,
							"y" : 3,

							"horizontal_align" : "right",
							"text_horizontal_align" : "right",

							"text" : "123456789",
						},
					),
				},

			),
		},
	),
}
ce tre sa modific sami apar acel buton de la costume?
... Imagine sau


DACA E NEVOIE DE ROOT...

ROOT --> uiinventory.py

Cod: Selectaţi tot

import ui
import player
import mouseModule
import net
import app
import snd
import item
import player
import chat
import grp
import uiScriptLocale
import uiRefine
import uiAttachMetin
import uiPickMoney
import uiCommon
import uiPrivateShopBuilder # ItemMove disabled when private shop opened
import locale
import constInfo
import ime
import background

ITEM_MALL_BUTTON_ENABLE = TRUE
WARP_SCROLLS = [22011, 22000, 22010]
ITEM_FLAG_APPLICABLE = 1 << 14

class InventoryWindow(ui.ScriptWindow):

	USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET", "USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ATTRIBUTE2", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET")

	def __init__(self):
		ui.ScriptWindow.__init__(self)
		self.questionDialog = None
		self.tooltipItem = None
		self.itemVNum = 0
		self.sellingSlotNumber = -1
		self.isLoaded = 0

		self.__LoadWindow()

	def __del__(self):
		ui.ScriptWindow.__del__(self)

	def Show(self):
		self.__LoadWindow()

		ui.ScriptWindow.Show(self)

	def __LoadWindow(self):
		if self.isLoaded == 1:
			return

		self.isLoaded = 1

		try:
			pyScrLoader = ui.PythonScriptLoader()

			if ITEM_MALL_BUTTON_ENABLE:
				pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "InventoryWindow.py")
			else:
				pyScrLoader.LoadScriptFile(self, "UIScript/InventoryWindow.py")
		except:
			import exception
			exception.Abort("InventoryWindow.LoadWindow.LoadObject")

		try:
			wndItem = self.GetChild("ItemSlot")
			wndEquip = self.GetChild("EquipmentSlot")
			self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
			self.wndMoney = self.GetChild("Money")
			self.wndMoneySlot = self.GetChild("Money_Slot")
			self.mallButton = self.GetChild2("MallButton")
##BonusPageDialog
			self.GetChild("Sword_def_Value").SetText(str(player.GetStatus(69)))
			self.GetChild("Twohand_def_Value").SetText(str(player.GetStatus(70)))
			self.GetChild("Knife_def_Value").SetText(str(player.GetStatus(71)))
			self.GetChild("Bow_def_Value").SetText(str(player.GetStatus(74)))
			self.GetChild("Bell_def_Value").SetText(str(player.GetStatus(72)))
			self.GetChild("Fan_def_Value").SetText(str(player.GetStatus(73)))
			self.GetChild("Magic_def_Value").SetText(str(player.GetStatus(77)))
			self.GetChild("Poison_def_Value").SetText(str(player.GetStatus(81)))
			self.GetChild("Warrior_def_Value").SetText(str(player.GetStatus(59)))
			self.GetChild("Assassin_def_Value").SetText(str(player.GetStatus(60)))
			self.GetChild("Sura_def_Value").SetText(str(player.GetStatus(61)))
			self.GetChild("Mage_def_Value").SetText(str(player.GetStatus(62)))
			self.GetChild("Crit_Value").SetText(str(player.GetStatus(40)))
			self.GetChild("Pierce_Value").SetText(str(player.GetStatus(41)))
			self.GetChild("Hitdmg_Value").SetText(str(player.GetStatus(122)))
			self.GetChild("Skilldmg_Value").SetText(str(player.GetStatus(121)))
			self.GetChild("Halfhuman_Value").SetText(str(player.GetStatus(43)))
			self.GetChild("Undead_Value").SetText(str(player.GetStatus(47)))
			self.GetChild("Devil_Value").SetText(str(player.GetStatus(48)))
			self.GetChild("Warrior_str_Value").SetText(str(player.GetStatus(54)))
			self.GetChild("Assassin_str_Value").SetText(str(player.GetStatus(55)))
			self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))
			self.GetChild("Mage_str_Value").SetText(str(player.GetStatus(57)))
##BonusPageDialog

			self.inventoryTab = []
			self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
			self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))

			self.equipmentTab = []
			self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))
			self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))

		except:
			import exception
			exception.Abort("InventoryWindow.LoadWindow.BindObject")

		## Item
		wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
		wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
		wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
		wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
		wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
		wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

		## Equipment
		wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
		wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
		wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
		wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
		wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
		wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

		## PickMoneyDialog
		dlgPickMoney = uiPickMoney.PickMoneyDialog()
		dlgPickMoney.LoadDialog()
		dlgPickMoney.Hide()

		## RefineDialog
		self.refineDialog = uiRefine.RefineDialog()
		self.refineDialog.Hide()

		## AttachMetinDialog
		self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()
		self.attachMetinDialog.Hide()

		## MoneySlot
		self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))

		self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
		self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
		self.inventoryTab[0].Down()

		self.equipmentTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg))
		self.equipmentTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg))
		self.equipmentTab[0].Down()
		self.equipmentTab[0].Hide()
		self.equipmentTab[1].Hide()

		self.wndItem = wndItem
		self.wndEquip = wndEquip
		self.dlgPickMoney = dlgPickMoney

		# MallButton
		if self.mallButton:
			self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

 		#####

		## Refresh
		self.SetInventoryPage(0)
		self.SetEquipmentPage(0)
		self.RefreshItemSlot()
		self.RefreshStatus()
		self.RefreshBonus()

	def Destroy(self):
		self.ClearDictionary()

		self.dlgPickMoney.Destroy()
		self.dlgPickMoney = 0

		self.refineDialog.Destroy()
		self.refineDialog = 0

		self.attachMetinDialog.Destroy()
		self.attachMetinDialog = 0

		self.tooltipItem = None
		self.wndItem = 0
		self.wndEquip = 0
		self.dlgPickMoney = 0
		self.wndMoney = 0
		self.wndMoneySlot = 0
		self.questionDialog = None
		self.mallButton = None

		self.inventoryTab = []
		self.equipmentTab = []

	def Close(self):
		if None != self.tooltipItem:
			self.tooltipItem.HideToolTip()

		self.OnCloseQuestionDialog()
		self.dlgPickMoney.Close()
		self.Hide()

	def SetInventoryPage(self, page):
		self.inventoryPageIndex = page
		self.inventoryTab[1-page].SetUp()
		self.RefreshBagSlotWindow()

	def SetEquipmentPage(self, page):
		self.equipmentPageIndex = page
		self.equipmentTab[1-page].SetUp()
		self.RefreshEquipSlotWindow()

	def ClickMallButton(self):
		print "click_mall_button"
		net.SendChatPacket("/click_mall")

	def OpenPickMoneyDialog(self):

		if mouseModule.mouseController.isAttached():

			attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
			if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():

				if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
					net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
					snd.PlaySound("sound/ui/money.wav")

			mouseModule.mouseController.DeattachObject()

		else:
			curMoney = player.GetElk()

			if curMoney <= 0:
				return

			self.dlgPickMoney.SetTitleName(locale.PICK_MONEY_TITLE)
			self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
			self.dlgPickMoney.Open(curMoney)
			self.dlgPickMoney.SetMax(7) # 인벤토리 990000 제한 버그 수정

	def OnPickMoney(self, money):
		mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)

	def OnPickItem(self, count):
		itemSlotIndex = self.dlgPickMoney.itemGlobalSlotIndex
		selectedItemVNum = player.GetItemIndex(itemSlotIndex)
		mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, count)

	def __InventoryLocalSlotPosToGlobalSlotPos(self, local):

		if player.IsEquipmentSlot(local):
			return local

		return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local

##BonusPageDialog
	def __LoadRefreshBonus(self):
		self.RefreshBonus()

	def RefreshBonus(self):
		try:
			self.GetChild("Sword_def_Value").SetText(str(player.GetStatus(69)))
			self.GetChild("Twohand_def_Value").SetText(str(player.GetStatus(70)))
			self.GetChild("Knife_def_Value").SetText(str(player.GetStatus(71)))
			self.GetChild("Bow_def_Value").SetText(str(player.GetStatus(74)))
			self.GetChild("Bell_def_Value").SetText(str(player.GetStatus(72)))
			self.GetChild("Fan_def_Value").SetText(str(player.GetStatus(73)))
			self.GetChild("Magic_def_Value").SetText(str(player.GetStatus(77)))
			self.GetChild("Poison_def_Value").SetText(str(player.GetStatus(81)))
			self.GetChild("Warrior_def_Value").SetText(str(player.GetStatus(59)))
			self.GetChild("Assassin_def_Value").SetText(str(player.GetStatus(60)))
			self.GetChild("Sura_def_Value").SetText(str(player.GetStatus(61)))
			self.GetChild("Mage_def_Value").SetText(str(player.GetStatus(62)))
			self.GetChild("Crit_Value").SetText(str(player.GetStatus(40)))
			self.GetChild("Pierce_Value").SetText(str(player.GetStatus(41)))
			self.GetChild("Hitdmg_Value").SetText(str(player.GetStatus(122)))
			self.GetChild("Skilldmg_Value").SetText(str(player.GetStatus(121)))
			self.GetChild("Halfhuman_Value").SetText(str(player.GetStatus(43)))
			self.GetChild("Undead_Value").SetText(str(player.GetStatus(47)))
			self.GetChild("Devil_Value").SetText(str(player.GetStatus(48)))
			self.GetChild("Warrior_str_Value").SetText(str(player.GetStatus(54)))
			self.GetChild("Assassin_str_Value").SetText(str(player.GetStatus(55)))
			self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))
			self.GetChild("Mage_str_Value").SetText(str(player.GetStatus(57)))
		except:
			import exception
			exception.Abort("InventoryWindow.RefreshBonus.BindObject")
##BonusPageDialog

	def RefreshBagSlotWindow(self):
		getItemVNum=player.GetItemIndex
		getItemCount=player.GetItemCount
		setItemVNum=self.wndItem.SetItemSlot
		for i in xrange(player.INVENTORY_PAGE_SIZE):
			slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
			itemCount = getItemCount(slotNumber)
			if itemCount <= 1:
				itemCount = 0
			setItemVNum(i, getItemVNum(slotNumber), itemCount)

		self.wndItem.RefreshSlot()

	def RefreshEquipSlotWindow(self):
		getItemVNum=player.GetItemIndex
		getItemCount=player.GetItemCount
		setItemVNum=self.wndEquip.SetItemSlot
		for i in xrange(player.EQUIPMENT_PAGE_COUNT):
			slotNumber = player.EQUIPMENT_SLOT_START + i
			itemCount = getItemCount(slotNumber)
			if itemCount <= 1:
				itemCount = 0
			setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)

		self.wndEquip.RefreshSlot()

	def RefreshItemSlot(self):
		self.RefreshBagSlotWindow()
		self.RefreshEquipSlotWindow()

	def RefreshStatus(self):
		money = player.GetElk()
		self.wndMoney.SetText(locale.NumberToMoneyString(money))

	def SetItemToolTip(self, tooltipItem):
		self.tooltipItem = tooltipItem

	def SellItem(self):

		net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count)
		snd.PlaySound("sound/ui/money.wav")
		self.OnCloseQuestionDialog()

	def OnDetachMetinFromItem(self):
		if None == self.questionDialog:
			return

		#net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
		self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
		self.OnCloseQuestionDialog()

	def OnCloseQuestionDialog(self):
		if self.questionDialog:
			self.questionDialog.Close()

		self.questionDialog = None

	## Slot Event
	def SelectEmptySlot(self, selectedSlotPos):
		if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
			return

		selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)

		if mouseModule.mouseController.isAttached():

			attachedSlotType = mouseModule.mouseController.GetAttachedType()
			attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
			attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
			attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()

			if player.SLOT_TYPE_INVENTORY == attachedSlotType:
				itemCount = player.GetItemCount(attachedSlotPos)
				attachedCount = mouseModule.mouseController.GetAttachedItemCount()
				self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)

				if item.IsRefineScroll(attachedItemIndex):
					self.wndItem.SetUseMode(FALSE)

			elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:
				mouseModule.mouseController.RunCallBack("INVENTORY")

			elif player.SLOT_TYPE_SHOP == attachedSlotType:
				net.SendShopBuyPacket(attachedSlotPos)

			elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:

				if player.ITEM_MONEY == attachedItemIndex:
					net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
					snd.PlaySound("sound/ui/money.wav")

				else:
					net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos)

			elif player.SLOT_TYPE_MALL == attachedSlotType:
				net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos)

			mouseModule.mouseController.DeattachObject()

	def SelectItemSlot(self, itemSlotIndex):
		if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
			return

		itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)

		if mouseModule.mouseController.isAttached():
			attachedSlotType = mouseModule.mouseController.GetAttachedType()
			attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
			attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()

			if player.SLOT_TYPE_INVENTORY == attachedSlotType:
				self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)

			mouseModule.mouseController.DeattachObject()

		else:

			curCursorNum = app.GetCursor()
			if app.SELL == curCursorNum:
				self.__SellItem(itemSlotIndex)

			elif app.BUY == curCursorNum:
				chat.AppendChat(chat.CHAT_TYPE_INFO, locale.SHOP_BUY_INFO)

			elif app.IsPressed(app.DIK_LALT):
				link = player.GetItemLink(itemSlotIndex)
				ime.PasteString(link)

			elif app.IsPressed(app.DIK_LSHIFT):
				itemCount = player.GetItemCount(itemSlotIndex)

				if itemCount > 1:
					self.dlgPickMoney.SetTitleName(locale.PICK_ITEM_TITLE)
					self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))
					self.dlgPickMoney.Open(itemCount)
					self.dlgPickMoney.itemGlobalSlotIndex = itemSlotIndex
				#else:
					#selectedItemVNum = player.GetItemIndex(itemSlotIndex)
					#mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum)

			elif app.IsPressed(app.DIK_LCONTROL):
				itemIndex = player.GetItemIndex(itemSlotIndex)

				if TRUE == item.CanAddToQuickSlotItem(itemIndex):
					player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex)
				else:
					chat.AppendChat(chat.CHAT_TYPE_INFO, locale.QUICKSLOT_REGISTER_DISABLE_ITEM)

			else:
				selectedItemVNum = player.GetItemIndex(itemSlotIndex)
				itemCount = player.GetItemCount(itemSlotIndex)
				mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)

				if self.__IsUsableItemToItem(selectedItemVNum, itemSlotIndex):
					self.wndItem.SetUseMode(TRUE)
				else:
					self.wndItem.SetUseMode(FALSE)

				snd.PlaySound("sound/ui/pick.wav")

	def __DropSrcItemToDestItemInInventory(self, srcItemVID, srcItemSlotPos, dstItemSlotPos):
		if srcItemSlotPos == dstItemSlotPos:
			return

		if item.IsRefineScroll(srcItemVID):
			self.RefineItem(srcItemSlotPos, dstItemSlotPos)
			self.wndItem.SetUseMode(FALSE)

		elif item.IsMetin(srcItemVID):
			self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos)

		elif item.IsDetachScroll(srcItemVID):
			self.DetachMetinFromItem(srcItemSlotPos, dstItemSlotPos)

		elif item.IsKey(srcItemVID):
			self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

		elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
			self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

		elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
			self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

		else:
			#snd.PlaySound("sound/ui/drop.wav")

			## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
			if player.IsEquipmentSlot(dstItemSlotPos):

				## 들고 있는 아이템이 장비일때만
				if item.IsEquipmentVID(srcItemVID):
					self.__UseItem(srcItemSlotPos)

			else:
				self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
				#net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)

	def __SellItem(self, itemSlotPos):
		if not player.IsEquipmentSlot(itemSlotPos):
			self.sellingSlotNumber = itemSlotPos
			itemIndex = player.GetItemIndex(itemSlotPos)
			itemCount = player.GetItemCount(itemSlotPos)

			item.SelectItem(itemIndex)
			itemPrice = item.GetISellItemPrice()

			if item.Is1GoldItem():
				itemPrice = itemCount / itemPrice / 5
			else:
				itemPrice = itemPrice * itemCount / 5

			item.GetItemName(itemIndex)
			itemName = item.GetItemName()

			self.questionDialog = uiCommon.QuestionDialog()
			self.questionDialog.SetText(locale.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
			self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
			self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
			self.questionDialog.Open()
			self.questionDialog.count = itemCount

	def RefineItem(self, scrollSlotPos, targetSlotPos):

		scrollIndex = player.GetItemIndex(scrollSlotPos)
		targetIndex = player.GetItemIndex(targetSlotPos)

		if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos):
			return

		###########################################################
		self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)
		#net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)
		return
		###########################################################

		###########################################################
		#net.SendRequestRefineInfoPacket(targetSlotPos)
		#return
		###########################################################

		result = player.CanRefine(scrollIndex, targetSlotPos)

		if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:
			#snd.PlaySound("sound/ui/jaeryun_fail.wav")
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_NO_MORE_SOCKET)

		elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:
			#snd.PlaySound("sound/ui/jaeryun_fail.wav")
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_NEED_BETTER_SCROLL)

		elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:
			#snd.PlaySound("sound/ui/jaeryun_fail.wav")
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_SOCKET_DISABLE_ITEM)

		elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:
			#snd.PlaySound("sound/ui/jaeryun_fail.wav")
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)

		elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_EQUIP_ITEM)

		if player.REFINE_OK != result:
			return

		self.refineDialog.Open(scrollSlotPos, targetSlotPos)

	def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):
		scrollIndex = player.GetItemIndex(scrollSlotPos)
		targetIndex = player.GetItemIndex(targetSlotPos)

		if not player.CanDetach(scrollIndex, targetSlotPos):
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
			return

		self.questionDialog = uiCommon.QuestionDialog()
		self.questionDialog.SetText(locale.REFINE_DO_YOU_SEPARATE_METIN)
		self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem))
		self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
		self.questionDialog.Open()
		self.questionDialog.sourcePos = scrollSlotPos
		self.questionDialog.targetPos = targetSlotPos

	def AttachMetinToItem(self, metinSlotPos, targetSlotPos):
		metinIndex = player.GetItemIndex(metinSlotPos)
		targetIndex = player.GetItemIndex(targetSlotPos)

		item.SelectItem(metinIndex)
		itemName = item.GetItemName()

		result = player.CanAttachMetin(metinIndex, targetSlotPos)

		if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result:
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_CAN_NOT_ATTACH(itemName))

		if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result:
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_NO_SOCKET(itemName))

		elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result:
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_NO_GOLD_SOCKET(itemName))

		elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result:
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.REFINE_FAILURE_EQUIP_ITEM)

		if player.ATTACH_METIN_OK != result:
			return

		self.attachMetinDialog.Open(metinSlotPos, targetSlotPos)



	def OverOutItem(self):
		self.wndItem.SetUsableItem(FALSE)
		if None != self.tooltipItem:
			self.tooltipItem.HideToolTip()

	def OverInItem(self, overSlotPos):
		overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
		self.wndItem.SetUsableItem(FALSE)

		if mouseModule.mouseController.isAttached():
			attachedItemType = mouseModule.mouseController.GetAttachedType()
			if player.SLOT_TYPE_INVENTORY == attachedItemType:

				attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
				attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()

				if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPos):
					self.wndItem.SetUsableItem(TRUE)
					self.ShowToolTip(overSlotPos)
					return

		self.ShowToolTip(overSlotPos)


	def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos):
		"다른 아이템에 사용할 수 있는 아이템인가?"

		if item.IsRefineScroll(srcItemVNum):
			return TRUE
		elif item.IsMetin(srcItemVNum):
			return TRUE
		elif item.IsDetachScroll(srcItemVNum):
			return TRUE
		elif item.IsKey(srcItemVNum):
			return TRUE
		elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
			return TRUE
		else:
			if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE:
				return TRUE

		return FALSE

	def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):
		"대상 아이템에 사용할 수 있는가?"

		if srcSlotPos == dstSlotPos:
			return FALSE

		if item.IsRefineScroll(srcItemVNum):
			if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos):
				return TRUE
		elif item.IsMetin(srcItemVNum):
			if player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNum, dstSlotPos):
				return TRUE
		elif item.IsDetachScroll(srcItemVNum):
			if player.DETACH_METIN_OK == player.CanDetach(srcItemVNum, dstSlotPos):
				return TRUE
		elif item.IsKey(srcItemVNum):
			if player.CanUnlock(srcItemVNum, dstSlotPos):
				return TRUE

		elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
			return TRUE

		else:
			useType=item.GetUseType(srcItemVNum)

			if "USE_CLEAN_SOCKET" == useType:
				if self.__CanCleanBrokenMetinStone(dstSlotPos):
					return TRUE
			elif "USE_CHANGE_ATTRIBUTE" == useType:
				if self.__CanChangeItemAttrList(dstSlotPos):
					return TRUE
			elif "USE_ADD_ATTRIBUTE" == useType:
				if self.__CanAddItemAttr(dstSlotPos):
					return TRUE
			elif "USE_ADD_ATTRIBUTE2" == useType:
				if self.__CanAddItemAttr(dstSlotPos):
					return TRUE
			elif "USE_ADD_ACCESSORY_SOCKET" == useType:
				if self.__CanAddAccessorySocket(dstSlotPos):
					return TRUE
			elif "USE_PUT_INTO_ACCESSORY_SOCKET" == useType:
				if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum):
					return TRUE;

		return FALSE

	def __CanCleanBrokenMetinStone(self, dstSlotPos):
		dstItemVNum = player.GetItemIndex(dstSlotPos)
		if dstItemVNum == 0:
			return FALSE

		item.SelectItem(dstItemVNum)

		if item.ITEM_TYPE_WEAPON != item.GetItemType():
			return FALSE

		for i in xrange(player.METIN_SOCKET_MAX_NUM):
			if player.GetItemMetinSocket(dstSlotPos, i) == constInfo.ERROR_METIN_STONE:
				return TRUE

		return FALSE

	def __CanChangeItemAttrList(self, dstSlotPos):
		dstItemVNum = player.GetItemIndex(dstSlotPos)
		if dstItemVNum == 0:
			return FALSE

		item.SelectItem(dstItemVNum)

		if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):
			return FALSE

		for i in xrange(player.METIN_SOCKET_MAX_NUM):
			if player.GetItemAttribute(dstSlotPos, i) != 0:
				return TRUE

		return FALSE

	def __CanPutAccessorySocket(self, dstSlotPos, mtrlVnum):
		dstItemVNum = player.GetItemIndex(dstSlotPos)
		if dstItemVNum == 0:
			return FALSE

		item.SelectItem(dstItemVNum)

		if item.GetItemType() != item.ITEM_TYPE_ARMOR:
			return FALSE

		if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
			return FALSE

		curCount = player.GetItemMetinSocket(dstSlotPos, 0)
		maxCount = player.GetItemMetinSocket(dstSlotPos, 1)

		if mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNum, item.GetItemSubType()):
			return FALSE

		if curCount>=maxCount:
			return FALSE

		return TRUE

	def __CanAddAccessorySocket(self, dstSlotPos):
		dstItemVNum = player.GetItemIndex(dstSlotPos)
		if dstItemVNum == 0:
			return FALSE

		item.SelectItem(dstItemVNum)

		if item.GetItemType() != item.ITEM_TYPE_ARMOR:
			return FALSE

		if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
			return FALSE

		curCount = player.GetItemMetinSocket(dstSlotPos, 0)
		maxCount = player.GetItemMetinSocket(dstSlotPos, 1)

		ACCESSORY_SOCKET_MAX_SIZE = 3
		if maxCount >= ACCESSORY_SOCKET_MAX_SIZE:
			return FALSE

		return TRUE

	def __CanAddItemAttr(self, dstSlotPos):
		dstItemVNum = player.GetItemIndex(dstSlotPos)
		if dstItemVNum == 0:
			return FALSE

		item.SelectItem(dstItemVNum)

		if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):
			return FALSE

		attrCount = 0
		for i in xrange(player.METIN_SOCKET_MAX_NUM):
			if player.GetItemAttribute(dstSlotPos, i) != 0:
				attrCount += 1

		if attrCount<4:
			return TRUE

		return FALSE

	def ShowToolTip(self, slotIndex):
		if None != self.tooltipItem:
			self.tooltipItem.SetInventoryItem(slotIndex)

	def OnTop(self):
		if None != self.tooltipItem:
			self.tooltipItem.SetTop()

	def OnPressEscapeKey(self):
		self.Close()
		return TRUE

	def UseItemSlot(self, slotIndex):
		if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
			return

		slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)

		self.__UseItem(slotIndex)
		mouseModule.mouseController.DeattachObject()
		self.OverOutItem()

	def __UseItem(self, slotIndex):
		ItemVNum = player.GetItemIndex(slotIndex)
		item.SelectItem(ItemVNum)
		if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
			self.questionDialog = uiCommon.QuestionDialog()
			self.questionDialog.SetText(locale.INVENTORY_REALLY_USE_ITEM)
			self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))
			self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))
			self.questionDialog.Open()
			self.questionDialog.slotIndex = slotIndex
		else:
			self.__SendUseItemPacket(slotIndex)
			#net.SendItemUsePacket(slotIndex)

	def __UseItemQuestionDialog_OnCancel(self):
		self.OnCloseQuestionDialog()

	def __UseItemQuestionDialog_OnAccept(self):
		self.__SendUseItemPacket(self.questionDialog.slotIndex)

		if self.questionDialog:
			self.questionDialog.Close()
		self.questionDialog = None

	def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
		# 개인상점 열고 있는 동안 아이템 사용 방지
		if uiPrivateShopBuilder.IsBuildingPrivateShop():
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.USE_ITEM_FAILURE_PRIVATE_SHOP)
			return

		net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)

	def __SendUseItemPacket(self, slotPos):
		# 개인상점 열고 있는 동안 아이템 사용 방지
		if uiPrivateShopBuilder.IsBuildingPrivateShop():
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.USE_ITEM_FAILURE_PRIVATE_SHOP)
			return

		## WARP_SCROLL_BLOCK
		# Atlasinfo.txt szerint kell megadni a map neveket!
		itemVNum = player.GetItemIndex(slotPos)
		if itemVNum in WARP_SCROLLS:
			MapName = str(background.GetCurrentMapName())
			if MapName == "season1/metin2_map_oxevent" or MapName =="metin2_map_deviltower1"  or MapName == "metin2_map_t1" or MapName == "metin2_map_t2" or MapName == "metin2_map_t3":
				chat.AppendChat(chat.CHAT_TYPE_INFO, "Ezen a ter?eten nem haszn?atod a Visszasz?l??tekercset!")
				return TRUE
		## END_OF_WARP_SCROLL_BLOCK

		net.SendItemUsePacket(slotPos)

	def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount):
		# 개인상점 열고 있는 동안 아이템 사용 방지
		if uiPrivateShopBuilder.IsBuildingPrivateShop():
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
			return

		net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)

##BonusPageDialog
	def OnUpdate(self):
		if self.isLoaded == 1:
			self.__LoadRefreshBonus()
##BonusPageDialog

Avatar utilizator
Morphe3
Utilizator interzis !

Utilizator interzis !
Mesaje: 1318
Membru din: 17 Ian 2014, 15:25
Aprecieri: 0
Mulţumiri: 5  
Medalii

Trebuie refacut uiinventory si invenntorywindow..
Acela care l-ai bagat tu nu detine sistemu de costume...
Hai şi tu pe server !
<-------- http://www.Mt2Xtreme.ro ------->
Afișează semnătura
Avatar utilizator
sorrellboss
Nivel 3

Nivel 3
Mesaje: 461
Membru din: 29 Iun 2014, 09:51
Server: Metin2Gorj
Regat: Shinsoo
Aprecieri: 45  
Mulţumiri: 4  
Medalii

si cum as putea face sa aiba si sistem-ul de costume?
Închis
Răspunsuri
0
Vizualizări
170
Răspunsuri
0
Vizualizări
227
Răspunsuri
0
Vizualizări
814

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 121 vizitatori