Ir para conteúdo
  • Cadastre-se

HUD SCRIPTS Monitorando minha hunting


Posts Recomendados

DpVGiT1.png 
init start
	--
	--                        88                                                                  
	--                        ""                                                ,d                
	--                                                                          88                
	--             ,adPPYba,  88  8b,dPPYba,  88,dPYba,,adPYba,   ,adPPYYba,  MM88MMM  ,adPPYba,  
	--             I8[    ""  88  88P'   "Y8  88P'   "88"    "8a  ""     `Y8    88    a8P_____88  
	--              `"Y8ba,   88  88          88      88      88  ,adPPPPP88    88    8PP"""""""  
	--             aa    ]8I  88  88          88      88      88  88,    ,88    88,   "8b,   ,aa  
	--   Author:   `"YbbdP"'  88  88          88      88      88  `"8bbdP"Y8    "Y888  `"Ybbd8"'  
	--   
	--   Monitor My Hunting!
	--
	--   Version: 1.0
	--   Created: 29.12.2013
	--   Last update: 29.12.2013
	--

	local MMH = {
		SHOW_ALL_ITEMS = false,
		SHOW_ALL_SUPPLIES = false,
	}

	-- [[ Do not change anything below this line. ]] --

	-- [[ COLORS ]] --
	MMH.COLORS = {}
	MMH.COLORS.FONT_COLOR = color(255, 255, 255, 0)
	MMH.COLORS.SECTION_HEADER_BACKGROUND = {0.0, color(36, 68, 105, 20), 0.23, color(39, 73, 114, 20), 0.76, color(21, 39, 60, 20)}
	MMH.COLORS.ENTRY_NAME_BACKGROUND = {0.0, color(75, 75, 75, 20), 0.23, color(45, 45, 45, 20), 0.76, color(19, 19, 19, 20)}
	MMH.COLORS.ENTRY_VALUE_BACKGROUND = {0.0, color(145, 95, 0, 20), 0.23, color(158, 104, 0, 20), 0.76, color(84, 55, 0, 20)}
	MMH.COLORS.RESULT_POSITIVE_BACKGROUND = {0.0, color(65, 96, 12, 20), 0.23, color(67, 99, 13, 20), 0.76, color(36, 52, 6, 20)}
	MMH.COLORS.RESULT_NEGATIVE_BACKGROUND = {0.0, color(90, 12, 15, 20), 0.23, color(98, 13, 17, 20), 0.76, color(52, 6, 9, 20)}
	MMH.COLORS.RESET_BUTTON_BACKGROUND = MMH.COLORS.RESULT_POSITIVE_BACKGROUND

	-- [[ ELEMENTS ]] --
	MMH.ELEMENTS = {}
	MMH.ELEMENTS.RESET_BUTTON = -1
	MMH.ELEMENTS.SWITCH_ITEMS_LOOTED = -1
	MMH.ELEMENTS.SWITCH_SUPPLIES_USED = -1

	-- [[ SECTION STATES ]] --
	MMH.SECTIONS = {}
	MMH.SECTIONS.ITEMS_LOOTED = true
	MMH.SECTIONS.SUPPLIES_USED = true

	-- [[ OTHERS ]] --	
	filterinput(false, true, false, false)

	local MOVING, TEMP, MOVED = false, {0, 0}, {0, 0}

	function inputevents(e)
		if (e.type == IEVENT_LMOUSEDOWN) then
			if (e.elementid == MMH.ELEMENTS.RESET_BUTTON) then
				resetcharactertime()
				resetlootcounter()
				resetexpcounter()
			elseif (e.elementid == MMH.ELEMENTS.SWITCH_ITEMS_LOOTED) then
				MMH.SECTIONS.ITEMS_LOOTED = not MMH.SECTIONS.ITEMS_LOOTED
			elseif (e.elementid == MMH.ELEMENTS.SWITCH_SUPPLIES_USED) then
				MMH.SECTIONS.SUPPLIES_USED = not MMH.SECTIONS.SUPPLIES_USED
			end
		end

		if (e.type == IEVENT_MMOUSEDOWN) then
			MOVING, TEMP = true, {$cursor.x - MOVED[1], $cursor.y - MOVED[2]}
		end

		if (e.type == IEVENT_MMOUSEUP) then
			MOVING = false
		end
	end
init end

if (MOVING) then
    auto(10)
    MOVED = {$cursor.x - TEMP[1], $cursor.y - TEMP[2]}
end

setposition($clientwin.right - 424 + MOVED[1], $worldwin.top + MOVED[2])
setfontstyle('Tahoma', 8, 75, MMH.COLORS.FONT_COLOR, 1, color(0, 0, 0, 20))

local ROW_QUANTITY, STRING_WIDTH, STRING_HEIGHT = 0, measurestring('TEMP')
local ITEMS_LOOTED_WORTH, ITEM_LOOTED_QUANTITY, ITEM_LOOTED_WORTH = 0, 0, 0
local SUPPLIES_USED_WORTH, SUPPLY_USED_QUANTITY, SUPPLY_USED_WORTH = 0, 0, 0

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
drawroundrect(0, 0, 240, 20, 2, 2)
drawtext('Monitor My Hunting v1.0', 6, 20 / 2 - STRING_HEIGHT * 0.5)

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
addgradcolors(unpack(MMH.COLORS.RESET_BUTTON_BACKGROUND))
MMH.ELEMENTS.RESET_BUTTON = drawroundrect(196, 0, 44, 20, 2, 2)
drawtext('RESET', 202, 20 / 2 - STRING_HEIGHT * 0.5)

setfontsize(7)

STRING_WIDTH, STRING_HEIGHT = measurestring('TEMP')

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
drawroundrect(0, 23, 240, 15, 2, 2)
drawtext('Looting Accuracy', 6, 23 + 15 / 2 - STRING_HEIGHT * 0.5 + 1)

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
addgradcolors(unpack(MMH.COLORS.ENTRY_VALUE_BACKGROUND))
drawroundrect(130, 23, 110, 15, 2, 2)
drawtext(string.format('%.2f', $lootaccuracy) .. '%', 136, 23 + 15 / 2 - STRING_HEIGHT * 0.5 + 1)

setfontsize(8)

STRING_WIDTH, STRING_HEIGHT = measurestring('TEMP')

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
addgradcolors(unpack(MMH.COLORS.SECTION_HEADER_BACKGROUND))
drawroundrect(0, 41, 240, 20, 2, 2)
drawtext('ITEMS LOOTED', 6, 41 + 20 / 2 - STRING_HEIGHT * 0.5)

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
if (MMH.SECTIONS.ITEMS_LOOTED) then
	addgradcolors(unpack(MMH.COLORS.RESULT_POSITIVE_BACKGROUND))
else
	addgradcolors(unpack(MMH.COLORS.RESULT_NEGATIVE_BACKGROUND))
end
MMH.ELEMENTS.SWITCH_ITEMS_LOOTED = drawroundrect(220, 41, 20, 20, 2, 2)
drawtext('X', 228, 41 + 20 / 2 - STRING_HEIGHT * 0.5)

setfontsize(7)

STRING_WIDTH, STRING_HEIGHT = measurestring('TEMP')

foreach lootingitem ItemEntry do
	if (MMH.SHOW_ALL_ITEMS or ItemEntry.amountlooted > 0) then
		ITEM_LOOTED_QUANTITY = ItemEntry.amountlooted
		ITEM_LOOTED_WORTH = ItemEntry.sellprice * ITEM_LOOTED_QUANTITY

		if (MMH.SECTIONS.ITEMS_LOOTED) then
			setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
			addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
			drawroundrect(0, 64 + ROW_QUANTITY * 18, 240, 15, 2, 2)
		
			setcompositionmode(CompositionMode_SourceOver)
			drawitem(ItemEntry.id, 6, 64 + ROW_QUANTITY * 18, 50, 100)
			setcompositionmode(CompositionMode_Automatic)

			drawtext(((#ItemEntry.name > 16 and string.match(string.sub(ItemEntry.name, 1, 16), '(.-)%s?$') .. '...') or ItemEntry.name):capitalizeall(), 28, 64 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

			setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
			addgradcolors(unpack(MMH.COLORS.ENTRY_VALUE_BACKGROUND))
			drawroundrect(130, 64 + ROW_QUANTITY * 18, 110, 15, 2, 2)
			drawtext(num(ITEM_LOOTED_QUANTITY) .. ' (' .. math.floor(ITEM_LOOTED_WORTH / 100) / 10 .. 'K)', 136, 64 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

			ROW_QUANTITY = ROW_QUANTITY + 1
		end

		ITEMS_LOOTED_WORTH = ITEMS_LOOTED_WORTH + ITEM_LOOTED_WORTH
	end
end

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
drawroundrect(0, 64 + ROW_QUANTITY * 18, 240, 15, 2, 2)
drawtext('Total: ' .. num(ITEMS_LOOTED_WORTH) .. ' GPs', 6, 64 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

ROW_QUANTITY = ROW_QUANTITY + 1

setfontsize(8)

STRING_WIDTH, STRING_HEIGHT = measurestring('TEMP')

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
addgradcolors(unpack(MMH.COLORS.SECTION_HEADER_BACKGROUND))
drawroundrect(0, 64 + ROW_QUANTITY * 18, 240, 20, 2, 2)
drawtext('SUPPLIES USED', 6, 64 + ROW_QUANTITY * 18 + 20 / 2 - STRING_HEIGHT * 0.5)

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
if (MMH.SECTIONS.SUPPLIES_USED) then
	addgradcolors(unpack(MMH.COLORS.RESULT_POSITIVE_BACKGROUND))
else
	addgradcolors(unpack(MMH.COLORS.RESULT_NEGATIVE_BACKGROUND))
end
MMH.ELEMENTS.SWITCH_SUPPLIES_USED = drawroundrect(220, 64 + ROW_QUANTITY * 18, 20, 20, 2, 2)
drawtext('X', 228, 64 + ROW_QUANTITY * 18 + 20 / 2 - STRING_HEIGHT * 0.5)

setfontsize(7)

STRING_WIDTH, STRING_HEIGHT = measurestring('TEMP')

foreach supplyitem ItemEntry do
	if (MMH.SHOW_ALL_SUPPLIES or ItemEntry.amountused > 0) then
		SUPPLY_USED_QUANTITY = ItemEntry.amountused
		SUPPLY_USED_WORTH = ItemEntry.buyprice * SUPPLY_USED_QUANTITY

		if (MMH.SECTIONS.SUPPLIES_USED) then
			setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
			addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
			drawroundrect(0, 87 + ROW_QUANTITY * 18, 240, 15, 2, 2)

			setcompositionmode(CompositionMode_SourceOver)
			drawitem(ItemEntry.id, 6, 87 + ROW_QUANTITY * 18, 50, 100)
			setcompositionmode(CompositionMode_Automatic)

			drawtext(((#ItemEntry.name > 16 and string.match(string.sub(ItemEntry.name, 1, 16), '(.-)%s?$') .. '...') or ItemEntry.name):capitalizeall(), 28, 87 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

			setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
			addgradcolors(unpack(MMH.COLORS.ENTRY_VALUE_BACKGROUND))
			drawroundrect(130, 87 + ROW_QUANTITY * 18, 110, 15, 2, 2)
			drawtext(num(SUPPLY_USED_QUANTITY) .. ' (' .. math.floor(SUPPLY_USED_WORTH / 100) / 10 .. 'K)', 136, 87 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

			ROW_QUANTITY = ROW_QUANTITY + 1
		end

		SUPPLIES_USED_WORTH = SUPPLIES_USED_WORTH + SUPPLY_USED_WORTH
	end
end

if (MMH.SECTIONS.SUPPLIES_USED) then
	setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
	addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
	drawroundrect(0, 87 + ROW_QUANTITY * 18, 240, 15, 2, 2)

	setcompositionmode(CompositionMode_SourceOver)
	drawitem(3031, 6, 87 + ROW_QUANTITY * 18, 50, 100)
	setcompositionmode(CompositionMode_Automatic)

	drawtext('Money Spent', 28, 87 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

	setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
	addgradcolors(unpack(MMH.COLORS.ENTRY_VALUE_BACKGROUND))
	drawroundrect(130, 87 + ROW_QUANTITY * 18, 110, 15, 2, 2)
	drawtext(num($moneyspent) .. ' (' .. math.floor($moneyspent / 100) / 10 .. 'K)', 136, 87 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

	ROW_QUANTITY = ROW_QUANTITY + 1
end

SUPPLIES_USED_WORTH = SUPPLIES_USED_WORTH + $moneyspent

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 16)
addgradcolors(unpack(MMH.COLORS.ENTRY_NAME_BACKGROUND))
drawroundrect(0, 87 + ROW_QUANTITY * 18, 240, 15, 2, 2)
drawtext('Total: ' .. num(SUPPLIES_USED_WORTH) .. ' GPs', 6, 87 + ROW_QUANTITY * 18 + 15 / 2 - STRING_HEIGHT * 0.5)

ROW_QUANTITY = ROW_QUANTITY + 1

setfontsize(8)

STRING_WIDTH, STRING_HEIGHT = measurestring('TEMP')

setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21)
if (ITEMS_LOOTED_WORTH >= SUPPLIES_USED_WORTH) then
	addgradcolors(unpack(MMH.COLORS.RESULT_POSITIVE_BACKGROUND))
else
	addgradcolors(unpack(MMH.COLORS.RESULT_NEGATIVE_BACKGROUND))
end
drawroundrect(0, 87 + ROW_QUANTITY * 18, 240, 20, 2, 2)
drawtext(((ITEMS_LOOTED_WORTH >= SUPPLIES_USED_WORTH and ('PROFIT: ')) or ('WASTE: ')) .. num(ITEMS_LOOTED_WORTH - SUPPLIES_USED_WORTH) .. ' GPs (' .. math.abs(math.floor(((ITEMS_LOOTED_WORTH - SUPPLIES_USED_WORTH) * 3600) / ($charactertime / 1000) / 100) / 10) .. ' k/h)', 6, 87 + ROW_QUANTITY * 18 + 20 / 2 - STRING_HEIGHT * 0.5)
Créditos: tibiawindbot
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Tricoder
      Persistent    init start local function getsecs(msg) local times, temp = {m = 60, h = 3600, s = 1}, 0 for n, t in msg:gmatch('(%d+)%s(%a)') do temp = temp + (tonumber(n) * times[t] or 0) end return temp end -- SCRIPT VERSION: 1.1.0 init end auto(1000) -- do not change it! if not softTime then if $feet.id == 3549 then contextmenu("Look", $feet.id, "feet") waitping() end foreach newmessage m do if m.type == MSG_INFO then local name, duration = m.content:match(REGEX_ITEM_DURATION) if duration then softTime = getsecs(duration) end end end end if $feet.id ~= 3549 then softTime = false end if softTime then softTime = softTime - 1 end HUDinit start local fontsize = 7 local fontspacing = fontsize + 6 setfontstyle("Tahoma", fontsize, 99, 0xE4B31B, 1) setmaskcolorxp(0) setposition($clientwin.left + 7, $worldwin.top + 5) init end softDuration = time(softTime) or 0 drawtext("Soft Duration: "..softDuration or 0, 2, 2 + fontspacing) Créditos: tibiawindbot
    • Por Tricoder
      init start -- local SCRIPT_VERSION = '1.0.0' local header, closeButton, closed, moving local cursorPosition = {} local engines = {'Cavebot', 'Looting', 'Targeting', 'Spell Healer', 'Potion Healer', 'Condition Healer', 'Mana Trainer'} filterinput(false, true, false, false) function inputevents(e) if e.type == IEVENT_LMOUSEUP then if e.elementid == closeButton then closed = true return end for _, v in ipairs(engines) do if e.elementid == v.shape then toggle(v.name:gsub(' ', '') .. '/Enabled') return end end elseif e.elementid == header then if e.type == IEVENT_MMOUSEDOWN then moving = true cursorPosition.x = $cursor.x cursorPosition.y = $cursor.y return elseif e.type == IEVENT_MMOUSEUP then moving = false return end end end -- Taken from Sirmate's MMH local blueGradient = {0.0, color(36, 68, 105, 20), 0.23, color(39, 73, 114, 20), 0.76, color(21, 39, 60, 20)} local blackGradient = {0.0, color(75, 75, 75, 20), 0.23, color(45, 45, 45, 20), 0.76, color(19, 19, 19, 20)} local redGradient = {0.0, color(136, 35, 12, 20), 0.23, color(139, 37, 13, 20), 0.76, color(92, 6, 6, 20)} local greenGradient = {0.0, color(65, 96, 12, 20), 0.23, color(67, 99, 13, 20), 0.76, color(36, 52, 6, 20)} for k, v in ipairs(engines) do engines[k] = { name = v, shape = nil } end setposition($clientwin.right - 424, $worldwin.top + 300) setfontstyle('Tahoma', 8, 75, 0xFFFFFF, 1, 0x000000) setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21) setbordercolor(color(0, 0, 0, 50)) setantialiasing(true) init end auto(100) if moving then auto(10) local curPosition = getposition() setposition( curPosition.x + ($cursor.x - cursorPosition.x), curPosition.y + ($cursor.y - cursorPosition.y) ) cursorPosition.x = $cursor.x cursorPosition.y = $cursor.y end if closed then return end addgradcolors(table.unpack(blueGradient)) header = addshape('roundrect', 0, 0, 150, 20, 3, 3) addtext('ENGINE STATES', 24, 3) addgradcolors(table.unpack(blackGradient)) closeButton = addshape('roundrect', 130, 0, 20, 20, 3, 3) addtext('X', 137, 3) local isEnabled for k, v in ipairs(engines) do addgradcolors(table.unpack(blackGradient)) addshape('roundrect', 0, k * 23, 150, 20, 3, 3) addtext(v.name, 6, k * 23 + 3) isEnabled = get(v.name:gsub(' ', '') .. '/Enabled') == 'yes' addgradcolors(table.unpack(tern(isEnabled, greenGradient, redGradient))) engines[k].shape = addshape('roundrect', 120, k * 23, 30, 20, 3, 3) addtext(tern(isEnabled, 'ON', 'OFF'), 126 + tern(isEnabled, 2, 0), k * 23 + 3) end Créditos: tibiawindbot
    • Por Tricoder
      setfontstyle('Tahoma', 7, 75, 0xFFFFFF, 1, color(0, 0, 0, 20)) setposition($clientwin.right - 130 , $worldwin.top) if $hppc < 100 then drawtext($hppc..'%', 17, 119) else drawtext($hppc..'%', 15, 119) end if $mppc < 100 then drawtext($mppc..'%', 17, 134) else drawtext($mppc..'%', 15, 133) end Créditos: tibiawindbot
    • Por Tricoder
      init start -- Hultin's Hud v2.0.0 -- Last update: 8th April 2014 -- Script author - This is where you put your name. -- The rest of the script info is entered into Cavebot->Edit useroptions. local ScriptAuthor = "Hultin" -- Set to true if you are developing a script. Remember to set to false when you release/sell it. local Development = false -- Configuration for width/height local FieldConfig = { Height = 22, -- Optimized for 22px. Sizes lower than 20 looks weird and narrow, keep that in mind if you set the height lower. Width = 260, -- Total width of the HUD. Value/Field widths are automatically calculated. } -- You can add more color points to create a gradient. The current implementation is just a flat gradient. -- First value is graident point, color(r, g, b, a) -- Alpha is 0-100, 0 is non-transparent 100 is fully see through (no color!) local Colors = { HeaderColor = {1, color(41, 79, 109, 10)}, HeaderInnerBorder = color(58, 106, 140, 10), FieldColor = {1, color(40, 40, 40, 10)}, FieldInnerBorder = color(74, 74, 74, 10), ValueNeutral = {1, color(158, 104, 0, 10)}, NeutralInnerBorder = color(166, 124, 44, 10), ValuePositive = {1, color(67, 99, 13, 10)}, PositiveInnerBorder = color(94, 119, 53, 10), ValueNegative = {1, color(139, 37, 13, 10)}, NegativeInnerBorder = color(150, 72, 54, 10), Transparent = {1, color(0, 0, 0, 100)}, NoInnerBorder = color(0, 0, 0, 100) } -- This value configures the width of the valuefield. FieldConfig.ValueWidth = FieldConfig.Width/2.2 -- This variables controlls the "Toggle all on/off" button & it's text local AllOn = true -- Enginestates are treated and created diffrently than other elements are. local Engines = { {Name = 'Cavebot', Element = 0}, {Name = 'Looting', Element = 0}, {Name = 'Targeting', Element = 0}, {Name = 'Spell Healer', Element = 0}, {Name = 'Potion Healer', Element = 0}, {Name = 'Condition Healer', Element = 0} } -- Toggles all state on/off. function togglestates(state) for _, e in ipairs(Engines) do setsetting(e.Name:gsub(' ', '') .. '/Enabled', state) end end -- Input events. -- Keys, Mouseclicks, Mousemoves, Stealfocus filterinput(false, true, false, false) -- Allows interaction with hud, aswell as adds the ability to move the HUD. function inputevents(e) if e.type == IEVENT_LMOUSEUP then for _, v in ipairs(Engines) do print(v) print(e.elementid) if e.elementid == v.Element then toggle(v.Name:gsub(' ', '') .. '/Enabled') return end end if(e.elementid == Toggleall) then if(AllOn) then togglestates("no") AllOn = false else togglestates("yes") AllOn = true end end end end local Elements = {} init end --[[ Functions ]]-- -- Returns a formated textstring for your vip and such. function viptext() local total = 0 local online = 0 foreach vipentry v do total = total +1 if(v.isonline) then online = online + 1 end end return total..' ('..online..')' end -- Works like PHPs ucfirst() -- http://www.php.net/manual/en/function.ucfirst.php function firstToUpper(str) return (str:gsub("^%l", string.upper)) end -- Credit to SIRMATE function WeaponSkill() local SkillTypes = { ['axe'] = {type = 'axe', skill = $axe, skillpc = $axepc}, ['club'] = {type = 'club', skill = $club, skillpc = $clubpc}, ['sword'] = {type = 'sword', skill = $sword, skillpc = $swordpc}, ['bow'] = {type = 'distance', skill = $distance, skillpc = $distancepc}, ['distance weapon'] = {type = 'distance', skill = $distance, skillpc = $distancepc}, ['no weapon'] = {type = 'fist', skill = $fist, skillpc = $fistpc}, ['rod'] = {type = 'magic', skill = $mlevel, skillpc = $mlevelpc}, ['wand'] = {type = 'magic', skill = $mlevel, skillpc = $mlevelpc}, } return SkillTypes[findweapontype()] end -- String used for Weaponskill/Magiclevel section of the HUD. local TypeSkill = WeaponSkill() or {type = 'magic', skill = $mlevel, skillpc = $mlevelpc} -- Default values to not leave any field/values blank. local ScriptName = getuseroption('scriptname') local ScriptVersion = getuseroption('scriptversion') if(string.len(ScriptName) == 0) then ScriptName = 'Script name' end if(string.len(ScriptVersion) == 0) then ScriptVersion = "1.0.0" end -- Sections, you can add/remove elements as you please. local Sections = { { Name = ScriptName, Display = true, Items = { {"Created by", ScriptAuthor}, {"Version", ScriptVersion} } }, { Name = "Engine states", Display = true, Items = { -- This category is special, uses Engines table for Items. } }, { Name = "Character stats", Display = true, Items = { {"Experience", num($exp)..' exp'}, {"Experience/hour", num($exphour)}, {"Experience left", num(exptolevel())..' exp'}, {"Experience gained", num($expgained)..' exp'}, {"Time online", time(math.floor($timems / 1000))}, {"Time to level", time(timetolevel())}, {"Ping", $ping .. ' (avg: ' .. $pingaverage .. ')'}, } }, { Name = "Botting stats", Display = true, Items = { {"Level", $level .. ' (' .. 100 - math.floor(($exp - expatlvl($level)) * 100 / (expatlvl($level + 1) - expatlvl($level))) .. '%)'}, {firstToUpper(TypeSkill.type)..' level', TypeSkill.skill .. ' (' .. 100 - TypeSkill.skillpc .. '%)'}, {"Balance", num($balance)}, {"Stamina", time($stamina)}, {"Softboots duration", 0}, {"Vip (Online)", viptext()} } }, { Name = "Development toolkit", Display = Development, Items = { {"Position", $posx..'/'..$posy..'/'..$posz}, {"Mouseover item", $cursorinfo.id}, {"Mouse position", $cursorinfo.x..'/'..$cursorinfo.y..'/'..$cursorinfo.z} } } } --[[ Functions ]]-- function y(v) return v + (FieldConfig.Height + 5) end -- Weapon skills function WeaponSkill() local SkillTypes = { ['axe'] = {type = 'axe', skill = $axe, skillpc = $axepc}, ['club'] = {type = 'club', skill = $club, skillpc = $clubpc}, ['sword'] = {type = 'sword', skill = $sword, skillpc = $swordpc}, ['bow'] = {type = 'distance', skill = $distance, skillpc = $distancepc}, ['distance weapon'] = {type = 'distance', skill = $distance, skillpc = $distancepc}, ['no weapon'] = {type = 'fist', skill = $fist, skillpc = $fistpc}, ['rod'] = {type = 'magic', skill = $mlevel, skillpc = $mlevelpc}, ['wand'] = {type = 'magic', skill = $mlevel, skillpc = $mlevelpc}, } return SkillTypes[findweapontype()] end -- Creates a header function DrawHeader(posx, posy) addgradcolors(table.unpack(Colors.Transparent)) setbordercolor(color(0, 0, 0, 10)) drawrect(posx, posy, FieldConfig.Width+2, FieldConfig.Height+2) addgradcolors(table.unpack(Colors.HeaderColor)) setbordercolor(Colors.HeaderInnerBorder) drawrect(posx+1, posy+1, FieldConfig.Width, FieldConfig.Height) end -- Creates a field function DrawField(posx, posy) posx = posx addgradcolors(table.unpack(Colors.Transparent)) setbordercolor(color(0, 0, 0, 10)) drawrect(posx, posy, (FieldConfig.Width-FieldConfig.ValueWidth)-1, FieldConfig.Height+2) addgradcolors(table.unpack(Colors.FieldColor)) setbordercolor(Colors.FieldInnerBorder) drawrect(posx+1, posy+1, FieldConfig.Width-FieldConfig.ValueWidth-3, FieldConfig.Height) end -- Creates a value function DrawValue(posx, posy, valueType) if(valueType == "positive") then Border = Colors.PositiveInnerBorder Background = Colors.ValuePositive elseif(valueType == "negative") then Border = Colors.NegativeInnerBorder Background = Colors.ValueNegative else Border = Colors.NeutralInnerBorder Background = Colors.ValueNeutral end addgradcolors(table.unpack(Colors.Transparent)) -- This will not show, anyways. setbordercolor(color(0, 0, 0, 10)) drawrect(FieldConfig.Width-FieldConfig.ValueWidth+posx, posy, FieldConfig.ValueWidth+2, FieldConfig.Height+2) addgradcolors(table.unpack(Background)) setbordercolor(Border) return drawrect((FieldConfig.Width-FieldConfig.ValueWidth)+1+posx, posy+1, FieldConfig.ValueWidth, FieldConfig.Height) end -- Draws special buttons - used for toggle all & show/hide function DrawButton(posx, posy, valueType, Width) local Width = Width or FieldConfig.ValueWidth if(valueType == "positive") then Border = Colors.PositiveInnerBorder Background = Colors.ValuePositive elseif(valueType == "negative") then Border = Colors.NegativeInnerBorder Background = Colors.ValueNegative else Border = Colors.NeutralInnerBorder Background = Colors.ValueNeutral end addgradcolors(table.unpack(Colors.Transparent)) -- This will not show, anyways. setbordercolor(color(0, 0, 0, 10)) drawrect(FieldConfig.Width-FieldConfig.ValueWidth+posx, posy, Width, FieldConfig.Height+2) addgradcolors(table.unpack(Background)) setbordercolor(Border) return drawrect((FieldConfig.Width-FieldConfig.ValueWidth)+1+posx, posy+1, Width, FieldConfig.Height) end -- Draws text function DrawText(text, x, y, fieldtype) -- Field type is shorthand functionality to place it over the VALUE elements. if(fieldtype == "value") then x = ((FieldConfig.Width-FieldConfig.ValueWidth)+x) end addtext(text, x+6, y+6) end -- Hud definitions setposition($clientwin.left + 5, $worldwin.top+2) setfontstyle('Tahoma', 8, 75, 0xcfebfd, 1, 0x000000) setfillstyle('gradient', 'linear', 2, 0, 0, 0, 21) setantialiasing(true) -- local yPos = 0 local isEnabled = nil -- Loop fields/values for _, s in ipairs(Sections) do if(s.Display) then DrawHeader(0, yPos) DrawText(s.Name, 0, yPos) if(s.Name == 'Engine states') then -- Toggle all local ToggleallState = tern(AllOn, "negative", "positive") local ToggleallText = tern(AllOn, "TOGGLE ALL OFF", "TOGGLE ALL ON") Toggleall = DrawButton(0, yPos, ToggleallState) DrawText(ToggleallText, 0+10, yPos, "value") --yPos = y(yPos) for i, engine in ipairs(Engines) do yPos = y(yPos) local F, V = engine.Name isEnabled = get(F:gsub(' ', '') .. '/Enabled') == 'yes' fieldColor = tern(isEnabled, "positive", "negative") Value = tern(isEnabled, "ON", "OFF") xOffset = tern(isEnabled, (FieldConfig.ValueWidth/2)-12, (FieldConfig.ValueWidth/2)-14) DrawField(0, yPos) Engines[i].Element = DrawValue(0, yPos, fieldColor) DrawText(F, 0 ,yPos) DrawText(Value, 0+xOffset, yPos, "value") end else for k, v in ipairs(s.Items) do local Field, Value = v[1], v[2] local fieldColor = nil local xOffset = 0 yPos = y(yPos) -- Increment yPos if(Field == "Stamina") then if($stamina > 40*60) then fieldColor = "positive" end DrawValue(0, yPos, fieldColor) else DrawValue(0, yPos) end DrawField(0, yPos) DrawText(Field, 0 ,yPos) DrawText(Value, 0+xOffset, yPos, "value") end end yPos = y(yPos) end end -- Footer should NEVER be edited or changed. It's theft if you do so without permission! DrawHeader(0, yPos) DrawText("Hultin's HUD", 0, yPos) DrawText("v2.0.0", FieldConfig.Width-45, yPos) -- Thank you for using Hultin's Hud V2. Créditos: tibiawindbot
    • Por Tricoder
      init start -- local SCRIPT_VERSION = '1.2.1' local function deleteSpecialAreaCall(menu) removespecialarea(menu.specialAreaName) end local function moveSpecialAreaName() if resizedSP == nil then return tern(draggedSP == nil, 'Move Special Area', 'Stop Moving') end end local function moveSpecialAreaCall(menu) if draggedSP == nil then draggedSP = menu.specialArea else draggedSP = nil end end local function resizeSpecialAreaName() if draggedSP == nil then return tern(resizedSP == nil, 'Resize Special Area', 'Stop Resizing') end end local function resizeSpecialAreaCall(menu) if resizedSP == nil then resizedSP = menu.specialArea else resizedSP = nil end end registermessagehandler('contextMenu_specialArea', moveSpecialAreaName, moveSpecialAreaCall) registermessagehandler('contextMenu_specialArea', resizeSpecialAreaName, resizeSpecialAreaCall) registermessagehandler('contextMenu_specialArea', 'Delete Special Area', deleteSpecialAreaCall) registermessagehandler('contextMenu_specialArea', MENU_SEPARATOR, nil) local worldWidth, worldHeight, x, y, z, width, height, avoidance, name, policy, areaType local specialAreaRect = {} local innerRect = {} local function gettilepos(x, y, z) local tile = getobjectarea(x, y, z) if tile == nil then local xDiff, yDiff = x - $posx, y - $posy if math.abs($posx - x) <= 7 then tile = getobjectarea(x, $posy, $posz) xDiff = 0 elseif math.abs($posy - y) <= 5 then tile = getobjectarea($posx, y, $posz) yDiff = 0 else tile = getobjectarea($posx, $posy, $posz) end -- Some strange stuff happens when you go from 0 to -1, so I'm -- adding this as a precaution. if tile ~= nil then local width, height = $worldwin.width, $worldwin.height tile.left = tile.left + (width * xDiff) tile.right = tile.right + (width * xDiff) tile.centerx = tile.centerx + (width * xDiff) tile.top = tile.top + (height * yDiff) tile.bottom = tile.bottom + (height * yDiff) tile.centery = tile.centery + (height * yDiff) end end return tile end local function getAreaRect(x, y, w, h) local ret = {x = 0, y = 0, w = 0, h = 0} local topLeftTilePos = gettilepos(x, y, $posz) local botRightTilePos = gettilepos(x + w - 1, y + h - 1, $posz) if topLeftTilePos and botRightTilePos then ret.x = math.max(topLeftTilePos.left, 0) ret.y = math.max(topLeftTilePos.top, 0) ret.w = math.min(botRightTilePos.right, worldWidth) - ret.x ret.h = math.min(botRightTilePos.bottom, worldHeight) - ret.y end return ret end local function drawInnerRect(areaType, x, y, width, height) innerRect = {w = 0, h = 0} if areaType == 'Square (Border Only)' then innerRect = getAreaRect(x + 1, y + 1, width - 2, height - 2) elseif areaType == 'Square (Double Border)' then innerRect = getAreaRect(x + 2, y + 2, width - 4, height - 4) end if innerRect.w > 0 and innerRect.h > 0 then setfillstyle('color', 0xFF000000) drawroundrect(innerRect.x, innerRect.y, innerRect.w, innerRect.h, 10, 10) end end useworldhud() init end setfontstyle('Arial', 8, 75, 0xFFFFFF, 1, 0x000000) worldWidth, worldHeight = $worldwin.width - 2, $worldwin.height - 2 foreach settingsentry e 'Cavebot/SpecialAreas' do x, y, z = getsetting(e, 'Coordinates'):match('.-(%d+).-(%d+).-(%d+)') x, y, z = tonumber(x), tonumber(y), tonumber(z) if z == $posz then width, height = getsetting(e, 'Size'):match('(%d+).-(%d+)') width, height = tonumber(width), tonumber(height) specialAreaRect = getAreaRect(x, y, width, height) if specialAreaRect.w > 0 and specialAreaRect.h > 0 then avoidance = tonumber(getsetting(e, 'Avoidance')) areaType = getsetting(e, 'Type') name = getsetting(e, 'Name') policy = getsetting(e, 'Policy'):gsub('[^A-Z]', '') setfillstyle('color', color(255, 0, 0, math.round(100 - (avoidance / 4)))) drawroundrect(specialAreaRect.x, specialAreaRect.y, specialAreaRect.w, specialAreaRect.h, 10, 10) drawInnerRect(areaType, x, y, width, height) if specialAreaRect.w > 10 then drawtext( string.fit(name, specialAreaRect.w - 10, '...', true), specialAreaRect.x + 5, specialAreaRect.y + 3 ) drawtext( string.fit(policy, specialAreaRect.w - 10, '...', true), specialAreaRect.x + 5, specialAreaRect.y + 15 ) end end end end if contextmenuinfo() == nil then if draggedSP then set(draggedSP, 'Coordinates', string.format('x:%i, y:%i, z:%i', $cursorinfo.x, $cursorinfo.y, $cursorinfo.z)) elseif resizedSP then local x, y = get(resizedSP, 'Coordinates'):match(REGEX_COORDS) x, y = tonumber(x), tonumber(y) set(resizedSP, 'Size', string.format('%i x %i', math.max(1, 1 + ($cursorinfo.x - x)) , math.max(1, 1 + ($cursorinfo.y - y)))) end end Créditos: tibiawindbot
  • Estatísticas dos Fóruns

    96841
    Tópicos
    519595
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo