Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 909 910 [911] 912 913 ... 1104

Author Topic: What's going on in your adventure?  (Read 2102903 times)

TheFlame52

  • Bay Watcher
  • Certified geezer & only man to win 0.40.24
    • View Profile
Re: What's going on in your adventure?
« Reply #13650 on: January 27, 2017, 08:56:32 pm »

I haven't posted in a couple days. This is because I was sorting my bandit loot. I am finally finished. After THREE REAL LIFE DAYS, the loot is sorted into piles. Now all I have to do is pack the sorted loot back into bags and boxes so I can haul it off when needed. That shouldn't take nearly as long as sorting.

Now, I haven't done more than a rough estimate, but I'm pretty sure I have enough money and goods to reduce the global economy down to bartering services for food. Imagine what would happen if someone were to obtain ten times as much money as everyone in the world combined?

☼Another☼

  • Bay Watcher
  • I am inevitable.
    • View Profile
Re: What's going on in your adventure?
« Reply #13651 on: January 28, 2017, 05:40:24 pm »


Edit:
« Last Edit: January 28, 2017, 05:43:25 pm by ☼Another☼ »
Logged

☼Another☼

  • Bay Watcher
  • I am inevitable.
    • View Profile
Re: What's going on in your adventure?
« Reply #13652 on: January 29, 2017, 02:13:07 pm »

Got attacked by a cave dragon while chopping trees for my new volcano base. He didn't hit me (just dodged into the volcano, but it look like I have to wait for him to die from the lava before I can do anything, or else he will magically teleport out.

EDIT: Fell into the volcano and died. But some weirdness is happening (used DFHack to flag my adventurer as not dead, the saved the game). I now am flicking in between historic figures whenever I fast travel. I was first a troglodyte, but now I'm a cyclops, having fast traveled to a lair.

EDIT2: Now I'm an eagle. - At the lair of the troglodyte I was first.

EDIT3: Fast traveling away makes me a crab, on the far corner of the map. Where it is deathly cold. - But still the ocean melts, and then freezes. I am encased in ice.

EDIT4: I am now a crab. Encased in ice, but alive, even with no body parts.

EDIT5: After many transformations later, I am now a demon. This is going to be really interesting.
« Last Edit: January 29, 2017, 04:24:33 pm by ☼Another☼ »
Logged

Nep Nep

  • Bay Watcher
  • Master of Za Warudo
    • View Profile
Re: What's going on in your adventure?
« Reply #13653 on: January 29, 2017, 03:40:37 pm »

EDIT4: I am now a crab. Encased in ice, but alive, even with no body parts.
I have no mouth and I must scream.
Also this reminds me of an old bug way back where sleeping on a glacier randomly would transform you into animals
Logged
Waluigi rushes to aid him, but not before warning Bowser, "Don't expect mouth-to-mouth!"

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: What's going on in your adventure?
« Reply #13654 on: January 29, 2017, 07:41:14 pm »

EDIT4: I am now a crab. Encased in ice, but alive, even with no body parts.
If you're using dfhack, save a backup copy of the hack/scripts/gui/gm-editor.lua file in case the behavior here annoys you later, then put this in it's place and open your status screen then run gm-editor, it'll pull up your nemesis entry (from which you can open unit like it usually did, AND the histfig entry) which has flags at the bottom, set active_adventurer and adventurer to true to stop bodyhopping, then save. After you reload do a wait for like four hours and the instant the travel screen loads run gm-editor, it'll give you a screen with an x/y/z, they'll probably be like x 1 y 1 z 1, set z to 0 and set the x and y to like 800/800 and it'll get  you down about 17 world map tiles from the left corner.
Code: [Select]
-- Interface powered item editor.

--[====[

gui/gm-editor
=============
This editor allows to change and modify almost anything in df. Press :kbd:`?` for
in-game help. There are three ways to open this editor:

* Callling ``gui/gm-editor``  from a command or keybinding opens the editor
  on whatever is selected or viewed (e.g. unit/item description screen)

* using gui/gm-editor <lua command> - executes lua command and opens editor on
  its results (e.g. ``gui/gm-editor "df.global.world.items.all"`` shows all items)

* using gui/gm-editor dialog - shows an in game dialog to input lua command. Works
  the same as version above.

* using ``gui/gm-editor toggle`` - will hide (if shown) and show (if hidden) editor at
  the same position you left it

.. image:: /docs/images/gm-editor.png

]====]
--a variable the stores persistant screen
persist_screen=persist_screen or nil --does nothing, here just to remind everyone

local gui = require 'gui'
local dialog = require 'gui.dialogs'
local widgets = require 'gui.widgets'
local guiScript = require 'gui.script'
local utils = require 'utils'
local args = {...}

find_funcs = find_funcs or (function()
    local t = {}
    for k in pairs(df) do
        pcall(function()
            t[k] = df[k].find
        end)
    end
    return t
end)()

local keybindings={
    offset={key="CUSTOM_ALT_O",desc="Show current items offset"},
    find={key="CUSTOM_F",desc="Find a value by entering a predicate"},
    find_id={key="CUSTOM_I",desc="Find object with this ID"},
    lua_set={key="CUSTOM_ALT_S",desc="Set by using a lua function"},
    insert={key="CUSTOM_ALT_I",desc="Insert a new value to the vector"},
    delete={key="CUSTOM_ALT_D",desc="Delete selected entry"},
    reinterpret={key="CUSTOM_ALT_R",desc="Open selected entry as something else"},
    start_filter={key="CUSTOM_S",desc="Start typing filter, Enter to finish"},
    help={key="HELP",desc="Show this help"},
    displace={key="STRING_A093",desc="Open reference offseted by index"},
    NOT_USED={key="SEC_SELECT",desc="Edit selected entry as a number (for enums)"}, --not a binding...
}
function getTargetFromScreens()
    local my_trg
    if dfhack.gui.getCurFocus() == 'item' then
        my_trg=dfhack.gui.getCurViewscreen().item
    elseif dfhack.gui.getCurFocus() == 'joblist' then
        local t_screen=dfhack.gui.getCurViewscreen()
        my_trg=t_screen.jobs[t_screen.cursor_pos]
    elseif dfhack.gui.getCurFocus() == 'createquota' then
        local t_screen=dfhack.gui.getCurViewscreen()
        my_trg=t_screen.orders[t_screen.sel_idx]
    elseif dfhack.gui.getSelectedUnit(true) then
local g_ref=dfhack.gui.getSelectedUnit(true).general_refs
for _,k in ipairs(g_ref) do
if g_ref[0].nemesis_id then
my_trg=df.global.world.nemesis.all[g_ref[0].nemesis_id]
else
my_trg=dfhack.gui.getSelectedUnit(true)
end
end
    elseif df.global.ui_advmode.menu==1 then
        local t_look=df.global.ui_look_list.items[df.global.ui_look_cursor]
        my_trg=t_look.unit
    elseif dfhack.gui.getSelectedItem(true) then
        my_trg=dfhack.gui.getSelectedItem(true)
    elseif dfhack.gui.getSelectedJob(true) then
        my_trg=dfhack.gui.getSelectedJob(true)
    elseif df.global.ui_advmode.menu==26 then
        local armies=df.global.world.armies.all
for k,v in ipairs(armies) do
if v.flags[0] then
my_trg=df.global.world.armies.all[k].pos
end
end
else
        my_trg=df.global
    end
    return my_trg
end
function search_relevance(search, candidate)
    local function clean(str)
        return ' ' .. str:lower():gsub('[^a-z0-9]','') .. ' '
    end
    search = clean(search)
    candidate = clean(candidate)
    local ret = 0
    while #search > 0 do
        local pos = candidate:find(search:sub(1, 1), 1, true)
        if pos then
            ret = ret + (#search - pos)
            candidate = candidate:sub(pos + 1)
        end
        search = search:sub(2)
    end
    return ret
end


GmEditorUi = defclass(GmEditorUi, gui.FramedScreen)
GmEditorUi.ATTRS={
    frame_style = gui.GREY_LINE_FRAME,
    frame_title = "GameMaster's editor",
    }
function GmEditorUi:onHelp()
    self.subviews.pages:setSelected(2)
end
function burning_red(input) -- todo does not work! bug angavrilov that so that he would add this, very important!!
    local col=COLOR_LIGHTRED
    return {text=input,pen=dfhack.pen.parse{fg=COLOR_LIGHTRED,bg=0}}
end
function Disclaimer(tlb)
    local dsc={"Association Of ",{text="Psychic ",pen=dfhack.pen.parse{fg=COLOR_YELLOW,bg=0}},
        "Dwarves (AOPD) is not responsible for all the damage",NEWLINE,"that this tool can (and will) cause to you and your loved dwarves",NEWLINE,"and/or saves.Please use with caution.",NEWLINE,{text="Magma not included.",pen=dfhack.pen.parse{fg=COLOR_LIGHTRED,bg=0}}}
    if tlb then
        for _,v in ipairs(dsc) do
            table.insert(tlb,v)
        end
    end
    return dsc
end

function GmEditorUi:init(args)
    self.stack={}
    self.item_count=0
    self.keys={}
    local helptext={{text="Help"},NEWLINE,NEWLINE}
    for k,v in pairs(keybindings) do
        table.insert(helptext,{text=v.desc,key=v.key,key_sep=': '})
        table.insert(helptext,NEWLINE)
    end
    table.insert(helptext,NEWLINE)
    Disclaimer(helptext)

    local helpPage=widgets.Panel{
        subviews={widgets.Label{text=helptext,frame = {l=1,t=1,yalign=0}}}}
    local mainList=widgets.List{view_id="list_main",choices={},frame = {l=1,t=3,yalign=0},on_submit=self:callback("editSelected"),
        on_submit2=self:callback("editSelectedRaw"),
        text_pen=dfhack.pen.parse{fg=COLOR_DARKGRAY,bg=0},cursor_pen=dfhack.pen.parse{fg=COLOR_YELLOW,bg=0}}
    local mainPage=widgets.Panel{
        subviews={
            mainList,
            widgets.Label{text={{text="<no item>",id="name"},{gap=1,text="Help",key=keybindings.help.key,key_sep = '()'}}, view_id = 'lbl_current_item',frame = {l=1,t=1,yalign=0}},
            widgets.Label{text={{text="Search",key=keybindings.start_filter.key,key_sep = '()'},{text=": "}},frame={l=1,t=2},
                on_click=function() self:enable_input(true) end},
            widgets.EditField{frame={l=12,t=2},active=false,on_change=self:callback('text_input'),on_submit=self:callback("enable_input",false),view_id="filter_input"},
            --widgets.Label{text="BLAH2"}
                }
        ,view_id='page_main'}

    local pages=widgets.Pages{subviews={mainPage,helpPage},view_id="pages"}
    self:addviews{
        pages
    }
    self:pushTarget(args.target)
end
function GmEditorUi:text_input(new_text)
    self:updateTarget(true,true)
end
function GmEditorUi:enable_input(enable)
    self.subviews.filter_input.active=enable
end
function GmEditorUi:find(test)
    local trg=self:currentTarget()

    if test== nil then
        dialog.showInputPrompt("Test function","Input function that tests(k,v as argument):",COLOR_WHITE,"",dfhack.curry(self.find,self))
        return
    end

    local e,what=load("return function(k,v) return "..test.." end")
    if e==nil then
        dialog.showMessage("Error!","function failed to compile\n"..what,COLOR_LIGHTRED)
    end

    if trg.target and trg.target._kind and trg.target._kind=="container" then

        for k,v in pairs(trg.target) do
            if e()(k,v)==true then
                self:pushTarget(v)
                return
            end
        end
    else
        local i=1
        for k,v in pairs(trg.target) do
            if e()(k,v)==true then
                self.subviews.list_main:setSelected(i)
                return
            end
            i=i+1
        end
    end
end
function GmEditorUi:find_id()
    local key = tostring(self:getSelectedKey())
    local id = tonumber(self:getSelectedValue())
    if not id then return end
    local opts = {}
    for name, func in pairs(find_funcs) do
        table.insert(opts, {text=name, callback=func, weight=search_relevance(key, name)})
    end
    table.sort(opts, function(a, b)
        return a.weight > b.weight
    end)
    guiScript.start(function()
        local ret,idx,choice=guiScript.showListPrompt("Choose type:",nil,3,opts,nil,true)
        if ret then
            local obj = choice.callback(id)
            if obj then
                self:pushTarget(obj)
            else
                dialog.showMessage("Error!", ('%s with ID %d not found'):format(choice.text, id), COLOR_LIGHTRED)
            end
        end
    end)
end
function GmEditorUi:insertNew(typename)
    local tp=typename
    if typename == nil then
        dialog.showInputPrompt("Class type","You can:\n * Enter type name (without 'df.')\n * Leave empty for default type and 'nil' value\n * Enter '*' for default type and 'new' constructed pointer value",COLOR_WHITE,"",self:callback("insertNew"))
        return
    end

    local trg=self:currentTarget()
    if trg.target and trg.target._kind and trg.target._kind=="container" then
        if tp == "" then
            trg.target:resize(#trg.target+1)
        elseif tp== "*" then
            trg.target:insert("#",{new=true})
        else
            local ntype=df[tp]
            if ntype== nil then
                dialog.showMessage("Error!","Type '"..tp.." not found",COLOR_RED)
                return
            end
            trg.target:insert("#",{new=ntype})
        end
        self:updateTarget(true,true)
    end
end
function GmEditorUi:deleteSelected(key)
    local trg=self:currentTarget()
    if trg.target and trg.target._kind and trg.target._kind=="container" then
        trg.target:erase(key)
        self:updateTarget(true,true)
    end
end
function GmEditorUi:getSelectedKey()
    return self:currentTarget().keys[self.subviews.list_main:getSelected()]
end
function GmEditorUi:getSelectedValue()
    return self:currentTarget().target[self:getSelectedKey()]
end
function GmEditorUi:currentTarget()
    return self.stack[#self.stack]
end
function GmEditorUi:getSelectedEnumType()
    local trg=self:currentTarget()
    local trg_key=trg.keys[self.subviews.list_main:getSelected()]

    local ok,ret=pcall(function () --super safe way to check if the field has enum
        return trg.target._field==nil or trg.target:_field(trg_key)==nil
    end)
    if not ok or ret==true then
        return nil
    end

    local enum=trg.target:_field(trg_key)._type
    if enum._kind=="enum-type" then
        return enum
    else
        return nil
    end
end
function GmEditorUi:editSelectedEnum(index,choice)
    local enum=self:getSelectedEnumType()
    if enum then
        local trg=self:currentTarget()
        local trg_key=self:getSelectedKey()
        local list={}
        for i=enum._first_item, enum._last_item do
            table.insert(list,{text=('%s (%i)'):format(tostring(enum[i]), i),value=i})
        end
        guiScript.start(function()
            local ret,idx,choice=guiScript.showListPrompt("Choose item:",nil,3,list,nil,true)
            if ret then
                trg.target[trg_key]=choice.value
                self:updateTarget(true)
            end
        end)

    else
        qerror("not an enum")
    end
end
function GmEditorUi:openReinterpret(key)
    local trg=self:currentTarget()
    dialog.showInputPrompt(tostring(trg_key),"Enter new type:",COLOR_WHITE,
                "",function(choice)
                    local ntype=df[tp]
                    self:pushTarget(df.reinterpret_cast(ntype,trg.target[key]))
                end)
end
function GmEditorUi:openOffseted(index,choice)
    local trg=self:currentTarget()
    local trg_key=trg.keys[index]

    dialog.showInputPrompt(tostring(trg_key),"Enter offset:",COLOR_WHITE,"",
        function(choice)
            self:pushTarget(trg.target[trg_key]:_displace(tonumber(choice)))
        end)
end
function GmEditorUi:editSelectedRaw(index,choice)
    self:editSelected(index, choice, {raw=true})
end
function GmEditorUi:editSelected(index,choice,opts)
    opts = opts or {}
    local trg=self:currentTarget()
    local trg_key=trg.keys[index]
    if trg.target and trg.target._kind and trg.target._kind=="bitfield" then
        trg.target[trg_key]= not trg.target[trg_key]
        self:updateTarget(true)
    else
        --print(type(trg.target[trg.keys[trg.selected]]),trg.target[trg.keys[trg.selected]]._kind or "")
        local trg_type=type(trg.target[trg_key])
        if self:getSelectedEnumType() and not opts.raw then
            self:editSelectedEnum()
        elseif trg_type=='number' or trg_type=='string' then --ugly TODO: add metatable get selected
            dialog.showInputPrompt(tostring(trg_key),"Enter new value:",COLOR_WHITE,
                tostring(trg.target[trg_key]),self:callback("commitEdit",trg_key))

        elseif trg_type == 'boolean' then
            trg.target[trg_key] = not trg.target[trg_key]
            self:updateTarget(true)
        elseif trg_type == 'userdata' or trg_type == 'table' then
            self:pushTarget(trg.target[trg_key])
        elseif trg_type == 'nil' or trg_type == 'function' then
            -- ignore
        else
            print("Unknown type:"..trg_type)
            pcall(function() print("Subtype:"..tostring(trg.target[trg_key]._kind)) end)
        end
    end
end

function GmEditorUi:commitEdit(key,value)
    local trg=self:currentTarget()
    if type(trg.target[key])=='number' then
        trg.target[key]=tonumber(value)
    elseif type(trg.target[key])=='string' then
        trg.target[key]=value
    end
    self:updateTarget(true)
end

function GmEditorUi:set(key,input)
    local trg=self:currentTarget()

    if input== nil then
        dialog.showInputPrompt("Set to what?","Lua code to set to (v cur target):",COLOR_WHITE,"",self:callback("set",key))
        return
    end
    local e,what=load("return function(v) return "..input.." end")
    if e==nil then
        dialog.showMessage("Error!","function failed to compile\n"..what,COLOR_LIGHTRED)
        return
    end
    trg.target[key]=e()(trg)
    self:updateTarget(true)
end
function GmEditorUi:onInput(keys)
    if keys.LEAVESCREEN_ALL  then
        self:dismiss()
    end
    if keys.LEAVESCREEN  then
        if self.subviews.filter_input.active then
            self:enable_input(false)
            return
        end
        if self.subviews.pages:getSelected()==2 then
            self.subviews.pages:setSelected(1)
        else
            self:popTarget()
        end
    end

    if self.subviews.filter_input.active then
        self.super.onInput(self,keys)
        return
    end

    if keys[keybindings.offset.key] then
        local trg=self:currentTarget()
        local _,stoff=df.sizeof(trg.target)
        local size,off=df.sizeof(trg.target:_field(self:getSelectedKey()))
        dialog.showMessage("Offset",string.format("Size hex=%x,%x dec=%d,%d\nRelative hex=%x dec=%d",size,off,size,off,off-stoff,off-stoff),COLOR_WHITE)
    elseif keys[keybindings.displace.key] then
        self:openOffseted(self.subviews.list_main:getSelected())
    elseif keys[keybindings.find.key] then
        self:find()
    elseif keys[keybindings.find_id.key] then
        self:find_id()
    elseif keys[keybindings.lua_set.key] then
        self:set(self:getSelectedKey())
    elseif keys[keybindings.insert.key] then --insert
        self:insertNew()
    elseif keys[keybindings.delete.key] then --delete
        self:deleteSelected(self:getSelectedKey())
    elseif keys[keybindings.reinterpret.key] then
        self:openReinterpret(self:getSelectedKey())
    elseif keys[keybindings.start_filter.key] then
        self:enable_input(true)
        return
    end

    self.super.onInput(self,keys)
end
function getStringValue(trg,field)
    local obj=trg.target

    local text=tostring(obj[field])
    pcall(function()
    if obj._field ~= nil then
        local enum=obj:_field(field)._type
        if enum._kind=="enum-type" then
            text=text.." ("..tostring(enum[obj[field]])..")"
        end
    end
    end)
    return text
end
function GmEditorUi:updateTarget(preserve_pos,reindex)
    local trg=self:currentTarget()
    local filter=self.subviews.filter_input.text

    if reindex then
        trg.keys={}
        for k,v in pairs(trg.target) do
            if filter~= "" then
                local ok,ret=dfhack.pcall(string.match,tostring(k),filter)
                if not ok then
                    table.insert(trg.keys,k)
                elseif ret then
                    table.insert(trg.keys,k)
                end
            else
                table.insert(trg.keys,k)
            end
        end
    end
    self.subviews.lbl_current_item:itemById('name').text=tostring(trg.target)
    local t={}
    for k,v in pairs(trg.keys) do
            table.insert(t,{text={{text=string.format("%-25s",tostring(v))},{gap=1,text=getStringValue(trg,v)}}})
    end
    local last_pos
    if preserve_pos then
        last_pos=self.subviews.list_main:getSelected()
    end
    self.subviews.list_main:setChoices(t)
    if last_pos then
        self.subviews.list_main:setSelected(last_pos)
    else
        self.subviews.list_main:setSelected(trg.selected)
    end
end
function GmEditorUi:pushTarget(target_to_push)
    local new_tbl={}
    new_tbl.target=target_to_push
    new_tbl.keys={}
    new_tbl.selected=1
    new_tbl.filter=""
    if self:currentTarget()~=nil then
        self:currentTarget().selected=self.subviews.list_main:getSelected()
        self.stack[#self.stack].filter=self.subviews.filter_input.text
    end
    for k,v in pairs(target_to_push) do
        table.insert(new_tbl.keys,k)
    end
    new_tbl.item_count=#new_tbl.keys
    table.insert(self.stack,new_tbl)
    self.subviews.filter_input.text=""
    self:updateTarget()
end
function GmEditorUi:popTarget()
    table.remove(self.stack) --removes last element
    if #self.stack==0 then
        self:dismiss()
        return
    end
    self.subviews.filter_input.text=self.stack[#self.stack].filter --restore filter
    self:updateTarget()
end
function show_editor(trg)
    if not trg then
        qerror('Target not found')
    end
    local screen = GmEditorUi{target=trg}
    persist_screen=screen
    screen:show()
end
eval_env = utils.df_shortcut_env()
function eval(s)
    local f, err = load("return " .. s, "expression", "t", eval_env)
    if err then qerror(err) end
    return f()
end
if #args~=0 then
    if args[1]=="dialog" then
        function thunk(entry)
            show_editor(eval(entry))
        end
        dialog.showInputPrompt("Gm Editor", "Object to edit:", COLOR_GRAY, "",thunk)
    elseif args[1]=="free" then
        show_editor(df.reinterpret_cast(df[args[2]],args[3]))
    elseif args[1]=="toggle" then
        if persist_screen then
            if persist_screen:isActive() then
                persist_screen:dismiss()
            else
                persist_screen:show()
            end
        end
    else
        show_editor(eval(args[1]))
    end
else
    show_editor(getTargetFromScreens())
end

Logged

peasant cretin

  • Bay Watcher
  • [MEANDERER][GNAWER]
    • View Profile
Re: What's going on in your adventure?
« Reply #13655 on: January 31, 2017, 01:13:16 am »

Perhaps odd to say, but an Adventure Mode run where your character has immediate access to a library and masterful works, is where that sort of thing is taken for granted. Anything that comes easy is never really valued. Num Muddyboots, as mentioned before, heads west, but now with direction to fortress Lettersnarling. He's never read anything good, but he hopes to.
Spoiler (click to show/hide)

Via slow travel mode, Num makes the journey through The Jungles of Assaulting toward a main road that will lead to fortress Lettersnarling. Things are looking better and better as he finally finds spinach leaves in the wild.
Spoiler (click to show/hide)
He collects about 40 leaves and turns them into a stack. Even though there is no skill attached to the stacking reaction, it still somehow qualifies for the do something creative/craft object needs.

On the main road Num spies a group of wild boar. He's never stayed at an inn/tavern before and figures he can trade the fruits of his profession for drink and a room.
Spoiler (click to show/hide)
The -plum bow- finally makes a name for itself.

Travel by night is pretty scenic.
Spoiler (click to show/hide)
I've got bogeymen off in this world. Once you know how to plan around them (travel via coast/mountain chain) and avoid until you can safely dispatch them (shield/dodger > lvl 10), having them around really doesn't enrich the Adventure Mode experience, particularly since after the first group you kill, all the others are an exercise in tedium.

Being able to sleep outside a mound or a house not only circumvents the need to ask for permission to stay the night, but also seems to give (my Adventure Mode runs at least) this weird "Sancho Panza as dwarf without the supervision of a Don Quixote" quality. You feel free and easy.
Logged

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: What's going on in your adventure?
« Reply #13656 on: February 01, 2017, 04:07:34 am »

found having a shield and a open hand works best for when you need to snap a neck and not worry about the repercussions of failing to attack
so in messing with arena news, I finally went and played around with the fact you can plant trees and use those trees to create floors in that weird void room if you dfhack cut them down. and the process seems to make a hole in the void area.

that all said saving these arenas are very very unstable some times you get it some times you don't others you just wont load if you select it.
but some day someone will figure out how to expand the world and or load up site worlds with dfhack.
I already expanded it, build up high enough to reach the ledge at the southern edge, build a camp there, keep building and you move that way.
oh I got access to dfhack so I could just mode set adv fast travel around the small map. but will test this for later.
I'm guessing when you say "expand the world" you mean this one right?

Spoiler (click to show/hide)
Looks like it's 0/0 to 47/47, so just the one world map tile. None of the things I tried to do to push the edges back further worked, so bleh.
Logged

Rumrusher

  • Bay Watcher
  • current project : searching...
    • View Profile
Re: What's going on in your adventure?
« Reply #13657 on: February 01, 2017, 08:16:22 am »

so adventurer set a weird multi limb lumbering infected named ruindessert who can bite 5 times and grab 60 times on one arm. just realized now that my bites were infecting folks, so operation infect leaders and build army is going nicely.

but the real reason i'm posting this is that I just bowled a newborn baby into their mother.
Spoiler (click to show/hide)
probably my next action is see if this didn't kill either kid or the desert devil mother, say sorry(cant some how undead cant talk), then run out of there... maybe set the mother and or the child if they live as an adventurer so they could track down ruindessert and kill it.

edit: yup she turn into an infected, yeah she mad and hunting this character down.
« Last Edit: February 01, 2017, 08:45:53 am by Rumrusher »
Logged
I thought I would I had never hear my daughter's escapades from some boy...
DAMN YOU RUMRUSHER!!!!!!!!
"body swapping and YOU!"
Adventure in baby making!Adv Homes

TheFlame52

  • Bay Watcher
  • Certified geezer & only man to win 0.40.24
    • View Profile
Re: What's going on in your adventure?
« Reply #13658 on: February 01, 2017, 10:04:07 am »

Rismal got his demon waifu, but he also found a functional underworld spire. He went down fighting - he finally died when a demon made him dodge into a bottomless pit, his waifu having been already killed. RIP

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: What's going on in your adventure?
« Reply #13659 on: February 01, 2017, 10:06:56 am »

Uh, launch normally has the you/your hunt target thing because you showed me and I went "oh god, this is horrible and I love it" so that's the one I pushed upstream.
Logged

StagnantSoul

  • Bay Watcher
  • "Player has withdrawn from society!"
    • View Profile
Re: What's going on in your adventure?
« Reply #13660 on: February 01, 2017, 05:06:27 pm »

Wow, apparently I'm not supposed to play adventure mode today... Three adventurers in a row, two human one dwarf, all died only a single day in their journey, all to night creatures running about town.
Logged
Quote from: Cptn Kaladin Anrizlokum
I threw night creature blood into a night creature's heart and she pulled it out and bled to death.
Quote from: Eric Blank
Places to jibber madly at each other, got it
Quote from: NJW2000
If any of them are made of fire, throw stuff, run, and think non-flammable thoughts.

peasant cretin

  • Bay Watcher
  • [MEANDERER][GNAWER]
    • View Profile
Re: What's going on in your adventure?
« Reply #13661 on: February 01, 2017, 06:04:41 pm »

There's no library here, but there's the rest of the fortress to see, so Num Muddyboots walks the downward ramp.

At Lettersnarling's cavern level one entrance there's a world gen incident involving a dead giant cave toad and two dwarves, the engraver Sakzul Mindefriendly and a fish cleaner. Num decides to have a closer look, but by then the fish cleaner has drowned. It's the first sentient death he's witnessed.
Spoiler (click to show/hide)
Num walks down to warehouse level, mills about for a bit, then heads back to the tavern and surface level. He chooses to go via fast travel to cavern level one which causes the game to offload the cave toad incident and reconstitute just the toad foot and dwarf hand left behind, along with the fish cleaner's copper carving knife.
Spoiler (click to show/hide)

Sakzul isn't at tavern/depot/warehouse level, so Num descends to the sublevels and finds her crawling on the ground.
Spoiler (click to show/hide)
In true DF fashion, Sakzul is shaken to the core, but is quite pleased about improving her swimming. She hasn't reached the "doesn't care about anything anymore" mind-state; the fish cleaner's death has filled her with horror. It's a good thing Num worked through that terrain with those 24 non-sentients to reach "doesn't care about anything anymore." It kills the great horror response, but he's gotten his first taste of great fear—as much as an insensible blockhead can experience such a thing.
Spoiler (click to show/hide)
Logged

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: What's going on in your adventure?
« Reply #13662 on: February 02, 2017, 06:21:58 am »

BWAHAHAHAHA!


Spoiler (click to show/hide)
Logged

Rumrusher

  • Bay Watcher
  • current project : searching...
    • View Profile
Re: What's going on in your adventure?
« Reply #13663 on: February 02, 2017, 07:16:27 am »

well now, good time to see if it possible to update the waypoint script.
Logged
I thought I would I had never hear my daughter's escapades from some boy...
DAMN YOU RUMRUSHER!!!!!!!!
"body swapping and YOU!"
Adventure in baby making!Adv Homes

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: What's going on in your adventure?
« Reply #13664 on: February 02, 2017, 03:06:34 pm »

Yup, also I was testing two things just now, I bragged to someone that I knew how to make Guts properly, metal arm and all, but didn't get it right when they tested it, the arm wasn't showing up so all they could do was shoot fireballs with it, still fun, but not what I wanted.

So I figured out what I did wrong, got it working partially and thought of a way to test it by grabbing a burning corpse, which showed me that amusing fact that I had flesh and bone fingers on a metal upper/lower arm and hand!

Fixed that (first I pulled the left arm out of the humanoid_guts copy of humanoid_neck, then I copied the fingers with con:rh into that body plan, with the guts_arm plan having fingers attaching to con:lh) and went back to test while also working on my KSBD swordmasters, since they've got four "maybe sword" appendages used for the whole flurry of blades type of cinematic effect it's convenient being able to make them out of metals.

Did I mention they're 1:1 prepare/recover with independent multiattack?

Yeah, remember my party trick of smacking someone into the air and cutting their head off?


With these things you can cut off a limb and hit it several times in mid-air before it flies away which really should end up mid-air butchering it, honestly, but is still a surprising discovery.

But yeah, my poor test subject, she's standing there naked and crying, looking at this strange naked woman with a metal arm walking towards her, there's a sudden rush of air and blurred movement between them, then her arm is getting batted around in the air before being picked up and set on fire, and as the horror starts to set in, this metal armed woman starts to bludgeon her with her own burning arm while also crying and bleeding from the parts of her body that don't happen to be fireproof, before the two of them are wreathed in clouds of boiling sweat and blood and tears.

Modding is a weird and dangerous drug.

Still, before I bled out I was able to confirm that it worked, partial cyborg and Berserk-type vaguely-steampunkish mods ahoy!
Logged
Pages: 1 ... 909 910 [911] 912 913 ... 1104