Wanted : Scripts alterations

Hello,

I'm looking to implement a few things into my GUI based on a few scripts already written here on the forums.. however I have no idea what I am doing so I thought I would open it up and offer credits for pay.

1) Seafaring/map window
Here is Zulah's directions on how to make it.
I would very much like this please however I can't seem to make it work so I've scrapped it all and would like if someone could please make me a stand-alone window. I don't want to have to use an aliases to make it work- just load it up with all my other GUI consoles on login.

I would love to just install this and move it to the right spot on my interface.

2) XP per hour tracker
This is Jacen's script.
I don't need the GUI box. I would like to know what variable I need to plug into my current status box for it to display in there. I would last like the aliases XP START to start and reset the script and XP STOP to stop it. 

3) Prospecting script.
Togglable on/off. When one if you walk into a room with a specific gmcp.Room.Info.num it will prospect for you. I can supply a few example num but ideally I can build up the number table as I go.

Comments

  • For 2) You'll want to use the following for your status box
    XPTracker.calcHourAverage()

    and comment out everything that mentions "XPLabel" (label creation, setting foreground colour and original echo). For the aliases you need to disable the timer and add the following code in the script box of the start alias

    XPTracker.reset()
    enableTimer("XPTracker")

    The stop alias would contain

    disableTimer("XPTracker")


  • That's 20 credits to Keneanung for his help!

    Plus another 20 credits for the solver of problem number 3!

    The sea mapper is still left to go.
  • edited January 2016

    @Tahquil: I don't have access to Mudlet so this is written in Notepad++ and totally untested, but something like this, maybe:

    -- Script
    
    prospector = prospector or {}
    
    prospector.conf = prospector.conf or {
    	enabled = true,
    	rooms = {}
    }
    
    prospector.save = function()
    	table.save(getMudletHomeDir() .. "/prospector.lua", prospector.conf)
    end
    
    registerAnonymousEventHandler("sysExitEvent", "prospector.save")
    
    prospector.load = function()
    	table.load(getMudletHomeDir() .. "/prospector.lua", prospector.conf)
    end
    
    registerAnonymousEventHandler("sysLoadEvent", "prospector.load")
    
    -- adds your current room to the list of rooms to prospect
    prospector.addroom = function(roomid)
    	local roomid = roomid or gmcp.Room.Info.num
    	table.insert(prospector.conf.rooms, roomid)
    	prospector.save()
    end
    
    prospector.removeroom = function(roomid)
    	local roomid = roomid or gmcp.Room.Info.num
    	table.remove(prospector.conf.rooms, table.indexof(prospector.conf.rooms, roomid))
    	prospector.save()
    end
    
    prospector.changeroom = function()
    	local roomid = gmcp.Room.Info.num
    	if table.contains(prospector.conf.rooms, roomid) then
    		send("whatever the command to prospect is", false)
    	end
    end
    
    registerAnonymousEventHandler("gmcp.Room.Info", "prospector.changeroom")
    
    prospector.toggle = function(state)
    	if state == nil then
    		prospector.conf.enabled = not prospector.conf.enabled
    	elseif type(state) == "boolean" then
    		prospector.conf.enabled = state
    	elseif type(state) == "string" then
    		prospector.conf.enabled = table.contains({"true", "yes", "on"}, state)
    	end
    	cecho("[Prospector]: " .. (prospector.conf.enabled and "Will" or "Won't") .. " auto prospect.")
    end
    
    prospector.ui = function()
    	local enabled = prospector.conf.enabled
    	cecho("Prospector configuration:\n\n")
    	dechoLink("  " .. (enabled and "<0,255,0>o" or "<255,0,0>x"), [[prospector.toggle(]] .. (enabled and "false" or "true") .. [[)]], "Toggle auto prospecting", true)
    	echo(" ")
    	cecho((enabled and "Will" or "Won't") .. " auto prospect.")
    	echo("\n\n")
    	
    	echo("Rooms: ")
    	for _, roomid in ipairs(prospector.conf.rooms) do
    		local roomname = getRoomName(roomid)
    		local id = "" .. roomid
    		dechoLink(string.rep(" ", 8 - #roomid) .. roomid, [[prospector.removeroom("]] .. roomid .. [[")]], "Remove room", true)
    		echo(" ")
    		echo(roomname)
    		echo("\n")
    	end
    	echo("\n")
    end
    
    prospector.config = function(option, value)
    	if option == nil and value == nil then
    		prospector.ui()
    	else
    		if option == "add" then
    			prospector.addroom(value)
    		elseif option == "remove" then
    			prospector.removeroom(value)
    		else
    			prospector.toggle(option)
    		end
    	end
    end
    
    -- Alias
    Pattern: ^prospector(?: (\w+)(?: (\S+))?)?$
    Code: prospector.config(matches[2], matches[3])
    

    Should be able to use 'prospector' to bring up the (very limited) text-UI (allows turning on or off depending on state, lists rooms that have been added and you can remove them by clicking the id), 'prospector on/true/yes' to turn it on, 'prospector add' to add current room, 'prospector add <roomid>' to add the roomid, 'prospector remove' to remove the current room, 'prospector remove <roomid>' to remove the specified roomid.

  • Looks like forums have treated a couple of the colour tags in the code as HTML and stripped them out. I only just realised and can no longer edit. Nothing should be broken (because of that, no guarantees that code actually works!) but just means you'll have to miss out on my really awful colour scheme in some places.
  • Actually, all three scripts have been completed! Thank you for giving it a look Antonius :)
Sign In or Register to comment.