oh yeah well you could just slap tame and slaughter(both creature flags) on a friendly/citizen and watch them get drag to the butcher workshop.
My only gripe was doing so led to unused material and rotten meat left to waste I don't think this is even connected to ethics and just hardcoded into the game.
oh and before I forget here's the Git Dfusion codes for race change by wounds and type of race so that one could set up either a zombie mod with infections that convert or magical items that change the user into a wizard and grant magical spells.
function tools.lycanressurecttest()
RaceTable=RaceTable or BuildNameTable() --slow.If loaded don't load again
--repeat --remove the "--" if you want this to run while you play
local trgs=selecthuman()
for k,v in pairs(trgs) do
--indx=GetCreatureAtPos(v)
--indx=engine.peek(v,ptr_creature.ID)
--local trgs=selectwolf()
--for t,z in pairs(trgs) do
id2=RaceTable["WIZARD"] -- this is the race the victim will turn into
engine.poke(v,ptr_Creature.race,id2)
print("Infected:"..k) --counts how many turned left in for the player to see if any one converted or not.
v2=engine.peek(v,ptr_Creature.hurt1)
for i=0,v2:size()-1 do
v2:setval(i,0)
end
v2=engine.peek(v,ptr_Creature.hurt2)
v2.type=DWORD
for i=0,v2:size()-1 do
v2:setval(i,0)
end
engine.peek(v,ptr_Creature.civ)
engine.poke(v,ptr_Creature.civ,-1) --for wizard or magical spell caster race transformations remove this and the line above it to prevent hostile demi gods
engine.poke(v,ptr_Creature.bloodlvl,60000) --give blood
engine.poke(v,ptr_Creature.bleedlvl,24) --stop some bleeding...
--end
end
--until k==100 --remove the "--" if you want this to run while you play
end
function selecthuman() -- this will create a list of creatures who been hurt a curtain way and have the same race.
local retvec={} --return vector (or a list)
myoff=offsets.getEx("AdvCreatureVec")
RaceTable=RaceTable or BuildNameTable()
vector=engine.peek(myoff,ptr_vector) --standart start
for i=0,vector:size()-1 do --check all creatures
local off
off=vector:getval(i)
local id=engine.peek(off,ptr_Creature.race)
local v2=engine.peek(off,ptr_Creature.hurt1)
ra=RaceTable["KEEPER"] --genesis
ra2=RaceTable["HUMAN"] --normal
if id==ra or id==ra2 and v2:getval(12)>=1 and v2:getval(8)==0 then -- this checks if the race match ra or ra2 and checks their body parts to see if they aren't dented in the right upper arm and still have their heads
table.insert(retvec,off)--... add it to return vector
end
end
return retvec --return the "return vector" :)
end
function tools.Hurtselected() --this baby is used for modders to test which body part they want to effect the victim and to see if the code above works out.
--repeat
myoff=offsets.getEx("AdvCreatureVec")
vector=engine.peek(myoff,ptr_vector)
indx=GetCreatureAtPos(getxyz())
if indx<0 then return end
--print(string.format("%x",vector:getval(indx)))
v2=engine.peek(vector:getval(indx),ptr_Creature.hurt1)
v3=engine.peek(vector:getval(indx),ptr_Creature.hurt2)
v3.type=DWORD
print("select body part 0=upperbody,1=lowerbody,2=head,3=right front leg,4=left front leg,5=")
r=io.stdin:read()
t=r*4
print("select infliction")
d=io.stdin:read()
v2:setval(t,d)
v3:setval(r,d) --remove zero-th limb or something... same with hurt2
end
tools.menu:add("?harm part?",tools.Hurtselected)
tools.menu:add("?nonsave animal morph?",tools.lycanressurecttest)