Skip to content

Instantly share code, notes, and snippets.

View warmist's full-sized avatar
💭
Making a game or sth

Warmist warmist

💭
Making a game or sth
View GitHub Profile
@warmist
warmist / Death Finder
Created April 2, 2012 16:49
A dfusion script to find places that set death flag.
function DEATH_FIND()
local unit=df.global.world.units.all[0]
local offset=select(2,df.sizeof(unit:_field("flags1")))-select(2,df.sizeof(unit))
print(string.format("flags offset:%x",offset))
local list=offsets.findall(GetTextRegion().start,0x83,ANYBYTE,DWORD_,offset,2)
for k,v in pairs(list) do
local call_pos=offsets.find(v,0xe8,DWORD)
if call_pos~=nil and call_pos~=0 and call_pos-v<1000 then
print(string.format("%3d.%6d =>%6x",k,(call_pos-v),v))
@warmist
warmist / foot.lua
Created April 9, 2012 18:09
Foot finding...
vec=df.global.world.items.other.ANY_CORPSE
pos=df.global.cursor
unit_id=-1
for k,v in pairs(vec) do
if v.pos.x==pos.x and v.pos.y==pos.y and v.pos.z==pos.z then
print("corpse pieces with unit_Id:"..v.unit_id)
unit_id=v.unit_id
end
end
@warmist
warmist / Healunit.lua
Created April 9, 2012 18:19
Healing a unit.
function heal(unit)
unit.body.wounds:resize(0) -- memory leak here :/
unit.body.blood_count=unit.body.blood_max
--set flags for standing and grasping...
unit.status2.able_stand=4
unit.status2.able_stand_impair=4
unit.status2.able_grasp=4
unit.status2.able_grasp_impair=4
--should also set temperatures, and flags for breath etc...
unit.flags1.dead=false
@warmist
warmist / check.lua
Created April 10, 2012 19:56
Imigrant check
vec=df.global.world.units.all
pos=df.global.cursor
civ=df.global.ui.civ_id
fixed=false
for k,v in pairs(vec) do
if v.pos.x==pos.x and v.pos.y==pos.y and v.pos.z==pos.z then
print("unit id at cursor position:"..v.id)
print("Flags2:")
for f_name,f_val in pairs(v.flags2) do
print(f_name,f_val)
@warmist
warmist / movetoitem.lua
Created April 11, 2012 17:55
Pot A Creature
function putInItem(item,unit)
local u_ref=df.general_ref_contains_unitst:new()
u_ref.unit_id=unit.id
item.itemrefs:insert(#item.itemrefs,u_ref)
local u_cr_ref=df.general_ref_contained_in_itemst:new()
unit.flags1.caged=true
u_cr_ref.item_id=item.id
unit.refs:insert(#unit.refs,u_cr_ref)
end
@warmist
warmist / getinv.lua
Created May 9, 2012 20:36
A script to return bodypart with item ref
function getInv(unit)
local ret={}
if unit==nil then
error("Failed to list unit's items. Unit not selected/valid")
end
for k,v in ipairs(unit.inventory) do
local caste=df.global.world.raws.creatures.all[unit.race].caste[unit.caste]
local bp_code=caste.body_info.body_parts[v.body_part_id].part_code
local key=bp_code
--print("Item:"..tostring(v.item).." "..key)
@warmist
warmist / companions.lua
Created May 24, 2012 21:25
experminetal companion list extraction
function getCompanions()
local ret={}
local adv=df.global.world.units.active[0]
for k,v in pairs(df.global.world.units.active) do
if v.relations.group_leader_id==adv.id then
table.insert(ret,v)
end
end
return ret
@warmist
warmist / bloom.cpp
Created June 29, 2012 17:17
Bloom implementacija
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
vector<bool> bloom;
const unsigned int bloomsize=1024;
//-----------------------------------------------------------------------------
// MurmurHash2, by Austin Appleby
-- missing.md
arr={1,2,3,4,6,8,7,9,10,11,12}
sum=0
for k,v in pairs(arr) do
sum=bit32.bxor(sum,v)
end
for i=1,#arr+1 do
sum=bit32.bxor(sum,i)
end
@warmist
warmist / stuff.lua
Created September 19, 2012 20:50
Add raws to entity
function getMyEntity()
return df.historical_entity.find(df.global.ui.group_id)
end
function getWorkshopId(token)
for k,v in pairs(df.global.world.raws.buildings.all) do
if token==v.code then
return v.id
end
end
end