Untitled

 avatar
unknown
lua
a year ago
10 kB
6
Indexable
function cdznuteg(sender, tItem, iName, iUID, iType)
	local listBox, index, name, uid, itemType
	if sender then
		listBox = sender.Control[0].Control[2]
		if listBox == nil then return end

		index = listBox.ItemIndex
		if index == -1 then return end

		name = tItem[listBox.ItemIndex].name
		uid = tItem[listBox.ItemIndex].id
		itemType = tItem[listBox.ItemIndex].type
	else
		name = iName
		uid = iUID
		itemType = iType
	end

	local addr = getAddressSafe("xxetbzjy")
	if addr == nil then return end

	local itemAddr = getAddressSafe(addr+0x101)
	if itemAddr == nil then return end

	local mrOwner = getAddressList().getMemoryRecordByID(23721)
	if mrOwner ~= nil then
		local mrCount = mrOwner.count-2
		if mrCount == 32 then messageDialog("The maximum number of items has been reached!\n\nPlease remove some items.",0) return end

		local mrItem, mrSubItem, mrSubItem2, pos, enums, enumsIndexed
		mrItem, pos = findRecord(mrOwner, name)

		local itemAddress = getAddressSafe(itemAddr+(0x15*mrCount))

		if not mrItem then
			mrItem = createRecord(mrOwner, name, vtGrouped, itemAddr+(0x15*mrCount), nil)
			mrItem.Color = Color.Child3
			mrItem.options = "[moHideChildren,moDeactivateChildrenAsWell]"
			mrItem.DontSave = true

			-- Is Active ?
			mrSubItem = createRecord(mrItem, "Is Active ?", vtByte, "+0", nil)
			mrSubItem.Color = 0x000FFFF
			mrSubItem.DropDownReadOnly = true
			mrSubItem.DropDownDescriptionOnly = true
			mrSubItem.DisplayAsDropDownListItem = true
			mrSubItem.DropDownList.Text = typeOptionStringMaps["binaryOptionType"]
			mrSubItem.Value = 1

			-- Item Type
			enums = {
				[25] = TrID[294179],
				[5]  = TrID[229389],
				[9]  = TrID[229390],
				[1]  = TrID[294180],
				[24] = TrID[294181],
			}
			enumsIndexed = enumsToStringList(enums, true)
			mrSubItem = createRecord(mrItem, "Item Type", vtByte, "+0x1", nil)
			mrSubItem.Color = 0x000FFFF
			mrSubItem.DropDownReadOnly = true
			mrSubItem.DropDownDescriptionOnly = true
			mrSubItem.DisplayAsDropDownListItem = true
			mrSubItem.DropDownList.Text = enumsIndexed
			mrSubItem.Value = itemType

			-- Unique ID
			mrSubItem = createRecord(mrItem, "Unique ID", vtDword, "+0x2", nil)
			mrSubItem.Color = 0x000FFFF
			mrSubItem.Value = uid

			if dependencies({5, 9, 24, 25}, itemType) then
				mrSubItem = createRecord(mrItem, TrID[900002], vtGrouped, nil, nil )
				mrSubItem.Color = Color.SeparatorSmall

				mrSubItem = createRecord(mrItem, "Player Max Age Filter", vtByte, "+0x6", nil)
				mrSubItem.Color = Color.ReadMe
				mrSubItem.DropDownReadOnly = false
				mrSubItem.DropDownDescriptionOnly = true
				mrSubItem.DisplayAsDropDownListItem = true
				mrSubItem.DropDownList.Text = [[0:All Ages]]
				mrSubItem.Value = 0

				-- Player Position's Filter
				enums = {
					[0] = "All Roles",
					[1] = "Defending Roles (GK/DC)",
					[2] = "Midfield Roles (DM/M/AM C)",
					[3] = "Flank Roles (D/WB/M/AM RL)",
					[4] = "Attacking Roles (ST)",
				}
				enumsIndexed = enumsToStringList(enums, true)
				mrSubItem = createRecord(mrItem, "Player Position Filter", vtByte, "+0x7", nil)
				mrSubItem.Color = Color.ReadMe
				mrSubItem.DropDownReadOnly = true
				mrSubItem.DropDownDescriptionOnly = true
				mrSubItem.DisplayAsDropDownListItem = true
				mrSubItem.DropDownList.Text = enumsIndexed
				mrSubItem.Value = 0

				-- Player Position's Familiarity Filter
				enums = {
					[18] = "Natural",
					[15] = "Accomplished",
					[12] = "Competent",
				}
				enumsIndexed = enumsToStringList(enums, true)
				mrSubItem = createRecord(mrItem, "Player Position's Familiarity Filter", vtByte, "+0x8", nil)
				mrSubItem.Color = Color.ReadMe
				mrSubItem.DropDownReadOnly = true
				mrSubItem.DropDownDescriptionOnly = true
				mrSubItem.DisplayAsDropDownListItem = true
				mrSubItem.DropDownList.Text = enumsIndexed
				mrSubItem.Value = 18
			end

			mrSubItem = createRecord(mrItem, TrID[900002], vtGrouped, nil, nil )
			mrSubItem.Color = Color.SeparatorSmall

			-- Attributes Booster
			enums = {
				[0x0000]  =  TrID[293210], -- Not Set,
				[plao.Patr+0x22]  =  TrID[227769], -- Acceleration
				[plao.Patr+0x2E]  =  TrID[227774], -- Agility
				[plao.Patr+0x2A]  =  TrID[227780], -- Balance
				[plao.Patr+0x27]  =  TrID[349773], -- Jumping Reach
				[plao.Patr+0x32]  =  TrID[227830], -- Natural Fitness
				[plao.Patr+0x26]  =  TrID[227879], -- Pace
				[plao.Patr+0x25]  =  TrID[227898], -- Stamina
				[plao.Patr+0x24]  =  TrID[227900], -- Strength
				[plao.Patr+0x2D]  =  TrID[227772], -- Aggression
				[plao.Patr+0x11]  =  TrID[227776], -- Anticipation
				[plao.Patr+0x2B]  =  TrID[227782], -- Bravery
				[plao.Patr+0x34]  =  TrID[227914], -- Composure
				[plao.Patr+0x35]  =  TrID[227916], -- Concentration
				[plao.Patr+0x12]  =  TrID[227801], -- Decision
				[plao.Patr+0x33]  =  TrID[227803], -- Determination
				[plao.Patr+0x1A]  =  TrID[227812], -- Flair
				[plao.Patr+0x28]  =  TrID[230010], -- Leadership
				[plao.Patr+0x6]   =  TrID[227877], -- Off The Ball
				[plao.Patr+0x14]  =  TrID[227886], -- Positioning
				[plao.Patr+0x1C]  =  TrID[227910], -- Teamwork
				[plao.Patr+0xA]   =  TrID[230023], -- Vision
				[plao.Patr+0x1D]  =  TrID[227912], -- Work Rate
				[plao.Patr+0x1B]  =  TrID[227896], -- Corners
				[plao.Patr+0x0]   =  TrID[227798], -- Crossing
				[plao.Patr+0x1]   =  TrID[227805], -- Dribbling
				[plao.Patr+0x2]   =  TrID[227810], -- Finishing
				[plao.Patr+0x16]  =  TrID[227894], -- First Touch
				[plao.Patr+0x23]  =  TrID[276817], -- Free Kick Taking
				[plao.Patr+0x3]   =  TrID[227818], -- Heading
				[plao.Patr+0x4]   =  TrID[227834], -- Long Shots
				[plao.Patr+0x1E]  =  TrID[227836], -- Long Throws
				[plao.Patr+0x5]   =  TrID[227838], -- Marking
				[plao.Patr+0x7]   =  TrID[227881], -- Passing
				[plao.Patr+0x8]   =  TrID[227883], -- Penalty Taking
				[plao.Patr+0x9]   =  TrID[227902], -- Tackling
				[plao.Patr+0x17]  =  TrID[227904], -- Technique
				[plao.Patr+0xC]   =  TrID[388016], -- Aerial Reach
				[plao.Patr+0xD]   =  TrID[561006], -- Command Of Area
				[plao.Patr+0xE]   =  TrID[227791], -- Communication
				[plao.Patr+0x1F]  =  TrID[227808], -- Eccentricity
				[plao.Patr+0xB]   =  TrID[227816], -- Handling
				[plao.Patr+0xF]   =  TrID[227832], -- Kicking
				[plao.Patr+0x13]  =  TrID[227861], -- One On Ones
				[plao.Patr+0x21]  =  TrID[227908], -- Punching (Tendency)
				[plao.Patr+0x15]  =  TrID[227888], -- Reflexes
				[plao.Patr+0x20]  =  TrID[227890], -- Rushing Out (Tendency)
				[plao.Patr+0x10]  =  TrID[227906], -- Throwing
				[plao.Patr+0x2C]  =  TrID[230006], -- Consistency
				[plao.Patr+0x2F]  =  TrID[230008], -- Important Matches
				[plao.Patr+0x31]  =  TrID[230011], -- Versatility
				[plao.Patr+0x18]  =  TrID[230000], -- Left Foot
				[plao.Patr+0x19]  =  TrID[230001], -- Right Foot
			}
			enumsIndexed = enumsToStringList(enums, true)

			mrSubItem = createRecord(mrItem, "Use Attributes Booster", vtByte, "+A", nil)
			mrSubItem.Color = Color.Presets
			mrSubItem.DropDownReadOnly = true
			mrSubItem.DropDownDescriptionOnly = true
			mrSubItem.DisplayAsDropDownListItem = true
			mrSubItem.DropDownList.Text = typeOptionStringMaps["binaryOptionType"]

			mrSubItem2 = createRecord(mrSubItem, "Attribute 1", vtWord, "+0x1", nil)
			mrSubItem2.Color = Color.Text
			mrSubItem2.DropDownReadOnly = true
			mrSubItem2.DropDownDescriptionOnly = true
			mrSubItem2.DisplayAsDropDownListItem = true
			mrSubItem2.DropDownList.Text = enumsIndexed

			mrSubItem2 = createRecord(mrSubItem, "Attribute 2", vtWord, "+0x3", nil)
			mrSubItem2.Color = Color.Text
			mrSubItem2.DropDownReadOnly = true
			mrSubItem2.DropDownDescriptionOnly = true
			mrSubItem2.DisplayAsDropDownListItem = true
			mrSubItem2.DropDownList.Text = enumsIndexed

			mrSubItem2 = createRecord(mrSubItem, "Attribute 3", vtWord, "+0x5", nil)
			mrSubItem2.Color = Color.Text
			mrSubItem2.DropDownReadOnly = true
			mrSubItem2.DropDownDescriptionOnly = true
			mrSubItem2.DisplayAsDropDownListItem = true
			mrSubItem2.DropDownList.Text = enumsIndexed

			mrSubItem2 = createRecord(mrSubItem, "Attribute 4", vtWord, "+0x7", nil)
			mrSubItem2.Color = Color.Text
			mrSubItem2.DropDownReadOnly = true
			mrSubItem2.DropDownDescriptionOnly = true
			mrSubItem2.DisplayAsDropDownListItem = true
			mrSubItem2.DropDownList.Text = enumsIndexed

			mrSubItem2 = createRecord(mrSubItem, "Attribute 5", vtWord, "+0x9", nil)
			mrSubItem2.Color = Color.Text
			mrSubItem2.DropDownReadOnly = true
			mrSubItem2.DropDownDescriptionOnly = true
			mrSubItem2.DisplayAsDropDownListItem = true
			mrSubItem2.DropDownList.Text = enumsIndexed

			-- Progress Rate
			mrSubItem = createRecord(mrItem, "Progress Rate", vtByte, "+0x9", nil)
			mrSubItem.Color = Color.Presets
			mrSubItem.Value = 1

			writeQword(addr+(0x8*mrCount), itemAddress)
			writeByte(addr+0x100, mrCount+1)

			xxetbzjy[name] = {
				indx = mrCount,
				mrec = mrItem,
				addr = mrItem.getCurrentAddress(),
				data = readBytes(mrItem.getCurrentAddress(), 0x15, true),
			}

			mrItem.OnDestroy = function()
				table.removekey(xxetbzjy, name)

				local itemCount = readByte(addr+0x100)
				if itemCount then
					if itemCount <= mrOwner.count-2 then
						local data = readBytes(mrItem.getCurrentAddress()+0x15, (32 - mrCount+1)*0x15, true)
						writeBytes(mrItem.getCurrentAddress(), data)

						for k, v in pairs(xxetbzjy) do
							if mrCount <= v.indx then
								xxetbzjy[k].indx = v.indx - 1
								xxetbzjy[k].addr = itemAddr + (0x15 * xxetbzjy[k].indx)
								xxetbzjy[k].data = readBytes(xxetbzjy[k].addr, 0x15, true)
								xxetbzjy[k].mrec.Address = xxetbzjy[k].addr
							end
						end
					end
					itemCount = itemCount - 1
					writeByte(addr+0x100, itemCount)
					writeQword(addr+(itemCount*0x8), 0)
				end
			end

		else
			xxetbzjy[name].indx = pos-2
			xxetbzjy[name].addr = itemAddr+((pos-2)*0x15)
			xxetbzjy[name].data = readBytes(xxetbzjy[name].addr, 0x15, true)
			xxetbzjy[name].mrec.Address = xxetbzjy[name].addr
		end
	end
end
Editor is loading...
Leave a Comment