Unofficial SSVM

Forum for the Vore games, and other downloads
Forum rules
Don't ask about updates. If there is an update, it will simply be posted. If someone is committing to a timeline, they will just tell you the timeline without needing anyone to ask.

Use Looking for master thread when you are not posting about an existing game.


You use this forum and website at your own risk for all links and uploads. There is no quality control or malware scanning or testing done here. Proceed with caution and use a virtual machine (VM) for any uploads strongly recommended. Virus/malware scanners alone are generally not good enough.

Re: Unofficial SSVM, Version 8.0.1

Postby MikhailOberchav » Tue Apr 26, 2016 12:17 am

This may have been covered before, but as a starbound newbie i don't really know how to spawn guard tenants, especially the ones that come with this mod. If someone could offer any advice to that that would be wonderful as my villages have become overrun with mini enemies that seem to never go away T_T
User avatar
MikhailOberchav
Somewhat familiar
 
Posts: 62
Joined: Mon Mar 23, 2015 3:01 pm

Re: Unofficial SSVM, Version 8.0.1

Postby Sheights » Tue Apr 26, 2016 12:31 am

MikhailOberchav wrote:This may have been covered before, but as a starbound newbie i don't really know how to spawn guard tenants, especially the ones that come with this mod. If someone could offer any advice to that that would be wonderful as my villages have become overrun with mini enemies that seem to never go away T_T


Okay so to spawn a guard you need 8 combat tiles and 8 racial tiles, for the lamia guard, floran. I'm assuming you already know how to spawn other tenants because you have "villages"

You can find combat tiles on those weapon chests you see everywhere. The glitch have a lot of objects with combat on them as well as the floran, but the floran ones are found much later on high tier planets.

Now it's time to power it up. I'm sure you've seen each of the furniture made from metals. When you place 12 tiles worth of that junk in a room, the guard will spawn with that tier equipment.

Now add a vore badge, the guard doesn't eat anyone and I'm not sure if I should allow them too. This is just to make sure our guards and the Starbound Default guards, don't mix.

Place down a colony deed and you're set.
Sheights
Intermediate Vorarephile
 
Posts: 446
Joined: Thu Dec 25, 2008 12:00 am

Re: Unofficial SSVM, Version 8.0.1

Postby MikhailOberchav » Tue Apr 26, 2016 10:28 am

thank you much. :)
User avatar
MikhailOberchav
Somewhat familiar
 
Posts: 62
Joined: Mon Mar 23, 2015 3:01 pm

Re: Unofficial SSVM, Version 8.0.1

Postby bloodle8 » Tue Apr 26, 2016 5:26 pm

So, um, the mall lags REALLY HARD the longer I'm in it. I think it has to do with all of the NPCs running about. Anything you guys can do about this? I can hardly move while I'm in the mall.
User avatar
bloodle8
Participator
 
Posts: 167
Joined: Sat Aug 07, 2010 4:02 pm

Re: Unofficial SSVM, Version 8.0.1

Postby necryel » Tue Apr 26, 2016 5:43 pm

bloodle8 wrote:So, um, the mall lags REALLY HARD the longer I'm in it. I think it has to do with all of the NPCs running about. Anything you guys can do about this? I can hardly move while I'm in the mall.

This is an issue with MANY machines. Starbound has a LOT of inefficient code that they have been working cleaning up and slimming done the code and making it run much smoother. For now, a big help can be to launch the game without using Steam/Humble. As that is one less application running and draining system resources.
Food can be friends and friends can be food.
User avatar
necryel
Somewhat familiar
 
Posts: 148
Joined: Mon Mar 02, 2009 9:45 pm

Re: Unofficial SSVM, Version 8.0.1

Postby MeTheMe » Tue Apr 26, 2016 6:55 pm

bloodle8 wrote:So, um, the mall lags REALLY HARD the longer I'm in it. I think it has to do with all of the NPCs running about. Anything you guys can do about this? I can hardly move while I'm in the mall.

The only thing I've found to help my system is to shrink the window to a lower resolution, not a great solution, but it helps a little.
Have a taste of my art if want! https://aryion.com/g4/gallery/MeTheMe

My Seeking RP Thread viewtopic.php?f=31&t=11807
User avatar
MeTheMe
Semi-final Boss
 
Posts: 4889
Joined: Fri Apr 04, 2008 11:00 pm
Location: Next Location

Re: Unofficial SSVM, Version 8.0.1

Postby PerfectDark » Wed Apr 27, 2016 10:02 am

bloodle8 wrote:So, um, the mall lags REALLY HARD the longer I'm in it. I think it has to do with all of the NPCs running about. Anything you guys can do about this? I can hardly move while I'm in the mall.


Have you tried running it in OpenGL mode, or x64 bit if your pc supports it? Cleared up alot of issues on my end at least.
User avatar
PerfectDark
Somewhat familiar
 
Posts: 92
Joined: Sat Jun 27, 2009 10:17 am

Re: Unofficial SSVM, Version 8.0.1

Postby Ominom » Fri Apr 29, 2016 4:43 pm

Sheights, DesNight and I have been wondering if there are there any plans to add player-wearable Elite costumes including the armored and under-armor/ripped under-armor sprites that TreeBuddy made way back? Are there also any plans to make a Hylotl vore belly (for a female in particular) that is player-wearable? The Hylotl girl SPO's belly could be repurposed for it.
Ominom
Been posting for a bit
 
Posts: 58
Joined: Wed Dec 19, 2012 7:30 pm
Location: BC, Canada

Re: Unofficial SSVM, Version 8.0.1

Postby Vae » Mon May 02, 2016 11:27 am

2 questions.

Lee-zha is awesome but how do you interact with her beyond the initial swallowing? is she supposed to push you into her tail belly window thing after a while? 'cause I cant figure it out beyond getting swallowed like a normal SPO

all my prey npc's I spawn say "I don't want to be eaten" and wont let me swallow them... I had it work one time, and I don't know what I did differently. what am I doing wrong here?
User avatar
Vae
Somewhat familiar
 
Posts: 151
Joined: Wed Nov 27, 2013 4:46 am

Re: Unofficial SSVM, Version 8.0.1

Postby nyanyan » Mon May 02, 2016 12:17 pm

Vae wrote:all my prey npc's I spawn say "I don't want to be eaten" and wont let me swallow them... I had it work one time, and I don't know what I did differently. what am I doing wrong here?



I can't help with the first one, but for the npcs, I have a similar problem. I've noticed that it's a range problem on my end. In the beginning, the npc is hard to eat, so I usually spam them, eventually it works. After that, I can usually get them down first try if I'm a certain distance away, right about the point where if they move much further I wouldn't be able to interact with them again.
User avatar
nyanyan
Intermediate Vorarephile
 
Posts: 426
Joined: Thu May 28, 2009 1:06 am

Re: Unofficial SSVM, Version 8.0.1

Postby ArgobargSoup » Mon May 02, 2016 1:35 pm

Vae wrote:Lee-zha is awesome but how do you interact with her beyond the initial swallowing? is she supposed to push you into her tail belly window thing after a while? 'cause I cant figure it out beyond getting swallowed like a normal SPO

Ya, she's supposed ta deposit you in the belly window, but not through scriptin', just the "offset" value. Said offset trick is very finicky, though, and has issues with switchin' between left and right. Try flippin' her around.

She's a WIP, so not all her features are quite ready.

Vae wrote:all my prey npc's I spawn say "I don't want to be eaten" and wont let me swallow them... I had it work one time, and I don't know what I did differently. what am I doing wrong here?


It's a range thing. Try not ta stand too close, but also not too far. I think the optimum range is about 1-2 blocks of space between you and them. Also make sure other NPCs aren't too close.
I be fulla sharp things.
User avatar
ArgobargSoup
Intermediate Vorarephile
 
Posts: 518
Joined: Mon Apr 29, 2013 4:01 pm

Re: Unofficial SSVM, Version 8.0.1

Postby jaebomber » Mon May 02, 2016 9:26 pm

it works all the time for me just step far away from the npc pred just to where you can reach them and smash e alot then youll eat them
User avatar
jaebomber
Somewhat familiar
 
Posts: 124
Joined: Sun Apr 12, 2015 5:41 pm

Re: Unofficial SSVM, Version 8.0.1

Postby Elaine0991 » Mon May 02, 2016 10:06 pm

Okey So, stupid Question, Might have been answeared befor... But... I have tried so hard, to get Glaze to chat like the Animated Sergal Do... But she just refuse to speak.. I used the same script commands from Sergal.lua. Hopeing i could take that shortcut but... No matter what, she won't open her gob.. Anyone got any ideas?.
Remember The Legless 1 HP Browncoat Guy.
User avatar
Elaine0991
Participator
 
Posts: 189
Joined: Sun Jan 06, 2013 8:45 pm
Location: Ye'old England

Re: Unofficial SSVM, Version 8.0.1

Postby ArgobargSoup » Mon May 02, 2016 10:53 pm

Elaine0991 wrote:Okey So, stupid Question, Might have been answeared befor... But... I have tried so hard, to get Glaze to chat like the Animated Sergal Do... But she just refuse to speak.. I used the same script commands from Sergal.lua. Hopeing i could take that shortcut but... No matter what, she won't open her gob.. Anyone got any ideas?.

Could ya copy and paste yer code attempt in code and spoiler tags? I'll try and help ya, if I can see what ya tried.
I be fulla sharp things.
User avatar
ArgobargSoup
Intermediate Vorarephile
 
Posts: 518
Joined: Mon Apr 29, 2013 4:01 pm

Re: Unofficial SSVM, Version 8.0.1

Postby Vae » Mon May 02, 2016 10:59 pm

Thanks for the help guys! got both my problems resolved now.
User avatar
Vae
Somewhat familiar
 
Posts: 151
Joined: Wed Nov 27, 2013 4:46 am

Re: Unofficial SSVM, Version 8.0.1

Postby Elaine0991 » Mon May 02, 2016 11:30 pm

Spoiler: show
-- Makes detection area around the predatores.
if not virtual then
self.detectArea = entity.configParameter("detectArea")
self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
end

-- Imports the lines from the predatores object file.
chatOptions = entity.configParameter("chatOptions", {})
gulpLines = entity.configParameter("gulpLines", {})
rubLines = entity.configParameter("rubLines", {})

function update(dt)
-- Uses the previously made detection area to say the IdleFull or IdleEmpty lines when a player is closeby.
local players = world.entityQuery(self.detectArea[1], self.detectArea[2], {
includedTypes = {"player"},
boundMode = "CollisionArea"
})
local chatIdleEmpty = entity.configParameter("chatIdleEmpty", {})
local chatIdleFull = entity.configParameter("chatIdleFull", {})
-- Only displays the lines if more than 0 players are in, and ohSnap is false (to prevent spam).
if #players > 0 and not ohSnap then
-- Displays the empty lines if the predator is empty, else full.
if world.loungeableOccupied(entity.id()) == false then
-- But only if it isnt already displaying a line.
if #chatIdleEmpty > 0 then
entity.say(chatIdleEmpty[math.random(1, #chatIdleEmpty)])
end
else
if #chatIdleFull > 0 then
entity.say(chatIdleFull[math.random(1, #chatIdleFull)])
end
end
ohSnap = true
-- Sets ohSnap to false when no players are within the dection area.
elseif #players == 0 and ohSnap then
ohSnap = false
end
-- Randomly displays the "Player inside Pred" lines
if world.loungeableOccupied(entity.id()) and math.random(150) == 1 then
if #chatOptions > 0 then
entity.say(chatOptions[math.random(1, #chatOptions)])
end
end


Basicly all i tried was to have her Say Text-lines when the player goes near her, is eaten, digested. Just like the Sergal Does... But i guess copy-paste the code bits wasn't enough. ^^; Not sure if i should post the Whole Code or the bits (i think) that are importent...
Remember The Legless 1 HP Browncoat Guy.
User avatar
Elaine0991
Participator
 
Posts: 189
Joined: Sun Jan 06, 2013 8:45 pm
Location: Ye'old England

Re: Unofficial SSVM, Version 8.0.1

Postby ArgobargSoup » Tue May 03, 2016 12:10 am

Elaine0991 wrote:
Spoiler: show
-- Makes detection area around the predatores.
if not virtual then
self.detectArea = entity.configParameter("detectArea")
self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
end

-- Imports the lines from the predatores object file.
chatOptions = entity.configParameter("chatOptions", {})
gulpLines = entity.configParameter("gulpLines", {})
rubLines = entity.configParameter("rubLines", {})

function update(dt)
-- Uses the previously made detection area to say the IdleFull or IdleEmpty lines when a player is closeby.
local players = world.entityQuery(self.detectArea[1], self.detectArea[2], {
includedTypes = {"player"},
boundMode = "CollisionArea"
})
local chatIdleEmpty = entity.configParameter("chatIdleEmpty", {})
local chatIdleFull = entity.configParameter("chatIdleFull", {})
-- Only displays the lines if more than 0 players are in, and ohSnap is false (to prevent spam).
if #players > 0 and not ohSnap then
-- Displays the empty lines if the predator is empty, else full.
if world.loungeableOccupied(entity.id()) == false then
-- But only if it isnt already displaying a line.
if #chatIdleEmpty > 0 then
entity.say(chatIdleEmpty[math.random(1, #chatIdleEmpty)])
end
else
if #chatIdleFull > 0 then
entity.say(chatIdleFull[math.random(1, #chatIdleFull)])
end
end
ohSnap = true
-- Sets ohSnap to false when no players are within the dection area.
elseif #players == 0 and ohSnap then
ohSnap = false
end
-- Randomly displays the "Player inside Pred" lines
if world.loungeableOccupied(entity.id()) and math.random(150) == 1 then
if #chatOptions > 0 then
entity.say(chatOptions[math.random(1, #chatOptions)])
end
end


Basicly all i tried was to have her Say Text-lines when the player goes near her, is eaten, digested. Just like the Sergal Does... But i guess copy-paste the code bits wasn't enough. ^^; Not sure if i should post the Whole Code or the bits (i think) that are importent...

Was sorta askin' fer the full file, but yah. Ya need an ohSnap boolean (code uses said boolean ta stop it from spammin' lines), and ya actually need ta have the chat lines in the .object file.

Made some code fer ya, a glazedanger.lua, that I'm pretty sure should work. Just remember that ya also need ta copy over the actual chat lines from the sergal's .object file; the lua file looks fer the lines in the .object file.
Spoiler: show
Code: Select all
function init()
-- Makes detection area around the predatores.
  if not virtual then
    self.detectArea = entity.configParameter("detectArea")
    self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
    self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
  end
-- Imports the lines from the predatores object file.
  chatOptions = entity.configParameter("chatOptions", {})
  gulpLines = entity.configParameter("gulpLines", {})
  rubLines = entity.configParameter("rubLines", {})
-- Chat related
  ohSnap = false
 
-- Animation related
  animLock = false
  soundLock = false
  releaseLock = false
  idleTimer = 0
  eatingTimer = 0
  releaseTimer = 0
-- Health related
  preyMaxHealth = 0
  preyCurrentHealth = 0
  preyPercentHealth = 0
  digestState = 0
end

function update(dt)
-- Uses the previously made detection area to say the IdleFull or IdleEmpty lines when a player is closeby.
  local players = world.entityQuery(self.detectArea[1], self.detectArea[2], {
      includedTypes = {"player"},
      boundMode = "CollisionArea"
    })
  local chatIdleEmpty = entity.configParameter("chatIdleEmpty", {})
  local chatIdleFull = entity.configParameter("chatIdleFull", {})

  -- Only displays the lines if more than 0 players are in, and ohSnap is false (to prevent spam).
   if #players > 0 and not ohSnap then
      -- Displays the empty lines if the predator is empty, else full.
     if world.loungeableOccupied(entity.id()) == false then
        -- But only if it isnt already displaying a line.
       if #chatIdleEmpty > 0 then
        entity.say(chatIdleEmpty[math.random(1, #chatIdleEmpty)])
      end
     else
       if #chatIdleFull > 0 then
        entity.say(chatIdleFull[math.random(1, #chatIdleFull)])
      end
     end
     ohSnap = true
    -- Sets ohSnap to false when no players are within the dection area.
   elseif #players == 0 and ohSnap then
     ohSnap = false
   end
-- Randomly displays the "Player inside Pred" lines
   if world.loungeableOccupied(entity.id()) and math.random(150) == 1 then
     if #chatOptions > 0 then
        entity.say(chatOptions[math.random(1, #chatOptions)])
      end
    end

  -- Animations that happens while the predator is empty (hungry).
  if world.loungeableOccupied(entity.id()) == false then
   if digestState == 4 then
     entity.setAnimationState("bodyState", "idle1")
     eatingTimer = 0
     animLock = true
   end
   
   -- Resets the digestState checker.
   digestState = 0
    
   -- Resets the predator to the idle state
    if animLock == false then
     entity.setAnimationState("bodyState", "idle1")
     idleTimer = 0
      releaseLock = false
      releaseTimer = 0
       -- If player leaves after being eaten, it plays the release animation.
      if eatingTimer >= 20 then
        animLock = true
        eatingTimer = 0
        releaseLock = true
        entity.setAnimationState("bodyState", "release")
        entity.playSound("lay")
      end
     end
   -- Randomises different animations, like idle2, blink and waiting.
   if animLock == false and math.random(200) == 1 then
     animLock = true
     entity.setAnimationState("bodyState", "idle2")
   end
    
   if animLock == false and math.random(100) == 1 then
     animLock = true
     entity.setAnimationState("bodyState", "blink")
   end
    
   if idleTimer >= 28 or releaseTimer >= 9 then
     animLock = false
   end
    
   -- Counts time being idle and empty.
   idleTimer = idleTimer + 1
    
   if releaseLock == true then
     releaseTimer = releaseTimer + 1
   end
  elseif world.loungeableOccupied(entity.id()) == true and eatingTimer <= 20 then
    -- Swallow animation
   if soundLock == false then
     entity.playSound("swallow")
      soundLock = true
   end
    
   entity.setAnimationState("bodyState", "swallow")
   eatingTimer = eatingTimer + 1
    
  else
    -- Animations that happens while the predator is full (digesting).
   
    -- Math to find player percent health
   preyCurrentHealth = world.entityHealth(prey)[1] * 100
   preyMaxHealth = world.entityHealth(prey)[2]
   preyPercentHealth = math.floor(preyCurrentHealth / preyMaxHealth)
   
   soundLock = false
   -- Changes player state based on their current percent health
   if preyPercentHealth <= 100 and digestState == 0 then
     entity.setAnimationState("bodyState", "fullbig")
     digestState = digestState + 1
   elseif preyPercentHealth <= 55 and digestState == 1 then
     entity.setAnimationState("bodyState", "bigtosmall")
      digestState = digestState + 1
   elseif preyPercentHealth <= 25 and digestState == 2 then
     entity.setAnimationState("bodyState", "smalltomicro")
     digestState = digestState + 1
   elseif preyPercentHealth <= 3 and digestState == 3 then
     entity.setAnimationState("bodyState", "microtonone")
     digestState = digestState + 1
   end
  end
end
 
function onInteraction(args)

  if not prey then
    prey = nil
  end

  -- Makes sure only the pred only checks the health of the prey inside.
  if world.loungeableOccupied(entity.id()) == false then
    if #gulpLines > 0 then
      entity.say(gulpLines[math.random(1, #gulpLines)])
   end
    prey = args.sourceId
  elseif world.loungeableOccupied(entity.id()) and prey ~= args.sourceId then
    if #rubLines > 0 then
      entity.say(rubLines[math.random(1, #rubLines)])
   end
  end

end
Haven't quite tested it myself, been messin' with Space Station 13 stuff all day.
I be fulla sharp things.
User avatar
ArgobargSoup
Intermediate Vorarephile
 
Posts: 518
Joined: Mon Apr 29, 2013 4:01 pm

Re: Unofficial SSVM, Version 8.0.1

Postby Elaine0991 » Tue May 03, 2016 12:15 am

ArgobargSoup wrote:
Elaine0991 wrote:
Spoiler: show
-- Makes detection area around the predatores.
if not virtual then
self.detectArea = entity.configParameter("detectArea")
self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
end

-- Imports the lines from the predatores object file.
chatOptions = entity.configParameter("chatOptions", {})
gulpLines = entity.configParameter("gulpLines", {})
rubLines = entity.configParameter("rubLines", {})

function update(dt)
-- Uses the previously made detection area to say the IdleFull or IdleEmpty lines when a player is closeby.
local players = world.entityQuery(self.detectArea[1], self.detectArea[2], {
includedTypes = {"player"},
boundMode = "CollisionArea"
})
local chatIdleEmpty = entity.configParameter("chatIdleEmpty", {})
local chatIdleFull = entity.configParameter("chatIdleFull", {})
-- Only displays the lines if more than 0 players are in, and ohSnap is false (to prevent spam).
if #players > 0 and not ohSnap then
-- Displays the empty lines if the predator is empty, else full.
if world.loungeableOccupied(entity.id()) == false then
-- But only if it isnt already displaying a line.
if #chatIdleEmpty > 0 then
entity.say(chatIdleEmpty[math.random(1, #chatIdleEmpty)])
end
else
if #chatIdleFull > 0 then
entity.say(chatIdleFull[math.random(1, #chatIdleFull)])
end
end
ohSnap = true
-- Sets ohSnap to false when no players are within the dection area.
elseif #players == 0 and ohSnap then
ohSnap = false
end
-- Randomly displays the "Player inside Pred" lines
if world.loungeableOccupied(entity.id()) and math.random(150) == 1 then
if #chatOptions > 0 then
entity.say(chatOptions[math.random(1, #chatOptions)])
end
end


Basicly all i tried was to have her Say Text-lines when the player goes near her, is eaten, digested. Just like the Sergal Does... But i guess copy-paste the code bits wasn't enough. ^^; Not sure if i should post the Whole Code or the bits (i think) that are importent...

Was sorta askin' fer the full file, but yah. Ya need an ohSnap boolean (code uses said boolean ta stop it from spammin' lines), and ya actually need ta have the chat lines in the .object file.

Made some code fer ya, a glazedanger.lua, that I'm pretty sure should work. Just remember that ya also need ta copy over the actual chat lines from the sergal's .object file; the lua file looks fer the lines in the .object file.
Spoiler: show
Code: Select all
function init()
-- Makes detection area around the predatores.
  if not virtual then
    self.detectArea = entity.configParameter("detectArea")
    self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
    self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
  end
-- Imports the lines from the predatores object file.
  chatOptions = entity.configParameter("chatOptions", {})
  gulpLines = entity.configParameter("gulpLines", {})
  rubLines = entity.configParameter("rubLines", {})
-- Chat related
  ohSnap = false
 
-- Animation related
  animLock = false
  soundLock = false
  releaseLock = false
  idleTimer = 0
  eatingTimer = 0
  releaseTimer = 0
-- Health related
  preyMaxHealth = 0
  preyCurrentHealth = 0
  preyPercentHealth = 0
  digestState = 0
end

function update(dt)
-- Uses the previously made detection area to say the IdleFull or IdleEmpty lines when a player is closeby.
  local players = world.entityQuery(self.detectArea[1], self.detectArea[2], {
      includedTypes = {"player"},
      boundMode = "CollisionArea"
    })
  local chatIdleEmpty = entity.configParameter("chatIdleEmpty", {})
  local chatIdleFull = entity.configParameter("chatIdleFull", {})

  -- Only displays the lines if more than 0 players are in, and ohSnap is false (to prevent spam).
   if #players > 0 and not ohSnap then
      -- Displays the empty lines if the predator is empty, else full.
     if world.loungeableOccupied(entity.id()) == false then
        -- But only if it isnt already displaying a line.
       if #chatIdleEmpty > 0 then
        entity.say(chatIdleEmpty[math.random(1, #chatIdleEmpty)])
      end
     else
       if #chatIdleFull > 0 then
        entity.say(chatIdleFull[math.random(1, #chatIdleFull)])
      end
     end
     ohSnap = true
    -- Sets ohSnap to false when no players are within the dection area.
   elseif #players == 0 and ohSnap then
     ohSnap = false
   end
-- Randomly displays the "Player inside Pred" lines
   if world.loungeableOccupied(entity.id()) and math.random(150) == 1 then
     if #chatOptions > 0 then
        entity.say(chatOptions[math.random(1, #chatOptions)])
      end
    end

  -- Animations that happens while the predator is empty (hungry).
  if world.loungeableOccupied(entity.id()) == false then
   if digestState == 4 then
     entity.setAnimationState("bodyState", "idle1")
     eatingTimer = 0
     animLock = true
   end
   
   -- Resets the digestState checker.
   digestState = 0
    
   -- Resets the predator to the idle state
    if animLock == false then
     entity.setAnimationState("bodyState", "idle1")
     idleTimer = 0
      releaseLock = false
      releaseTimer = 0
       -- If player leaves after being eaten, it plays the release animation.
      if eatingTimer >= 20 then
        animLock = true
        eatingTimer = 0
        releaseLock = true
        entity.setAnimationState("bodyState", "release")
        entity.playSound("lay")
      end
     end
   -- Randomises different animations, like idle2, blink and waiting.
   if animLock == false and math.random(200) == 1 then
     animLock = true
     entity.setAnimationState("bodyState", "idle2")
   end
    
   if animLock == false and math.random(100) == 1 then
     animLock = true
     entity.setAnimationState("bodyState", "blink")
   end
    
   if idleTimer >= 28 or releaseTimer >= 9 then
     animLock = false
   end
    
   -- Counts time being idle and empty.
   idleTimer = idleTimer + 1
    
   if releaseLock == true then
     releaseTimer = releaseTimer + 1
   end
  elseif world.loungeableOccupied(entity.id()) == true and eatingTimer <= 20 then
    -- Swallow animation
   if soundLock == false then
     entity.playSound("swallow")
      soundLock = true
   end
    
   entity.setAnimationState("bodyState", "swallow")
   eatingTimer = eatingTimer + 1
    
  else
    -- Animations that happens while the predator is full (digesting).
   
    -- Math to find player percent health
   preyCurrentHealth = world.entityHealth(prey)[1] * 100
   preyMaxHealth = world.entityHealth(prey)[2]
   preyPercentHealth = math.floor(preyCurrentHealth / preyMaxHealth)
   
   soundLock = false
   -- Changes player state based on their current percent health
   if preyPercentHealth <= 100 and digestState == 0 then
     entity.setAnimationState("bodyState", "fullbig")
     digestState = digestState + 1
   elseif preyPercentHealth <= 55 and digestState == 1 then
     entity.setAnimationState("bodyState", "bigtosmall")
      digestState = digestState + 1
   elseif preyPercentHealth <= 25 and digestState == 2 then
     entity.setAnimationState("bodyState", "smalltomicro")
     digestState = digestState + 1
   elseif preyPercentHealth <= 3 and digestState == 3 then
     entity.setAnimationState("bodyState", "microtonone")
     digestState = digestState + 1
   end
  end
end
 
function onInteraction(args)

  if not prey then
    prey = nil
  end

  -- Makes sure only the pred only checks the health of the prey inside.
  if world.loungeableOccupied(entity.id()) == false then
    if #gulpLines > 0 then
      entity.say(gulpLines[math.random(1, #gulpLines)])
   end
    prey = args.sourceId
  elseif world.loungeableOccupied(entity.id()) and prey ~= args.sourceId then
    if #rubLines > 0 then
      entity.say(rubLines[math.random(1, #rubLines)])
   end
  end

end
Haven't quite tested it myself, been messin' with Space Station 13 stuff all day.


Worked like a Charm. Thanks Alot =3
Remember The Legless 1 HP Browncoat Guy.
User avatar
Elaine0991
Participator
 
Posts: 189
Joined: Sun Jan 06, 2013 8:45 pm
Location: Ye'old England

Re: Unofficial SSVM, Version 8.0.1

Postby Fevix » Sat May 07, 2016 6:54 am

SMall issue: There seem to be pred NPCs in the mall, but they're unable to actually eat you because of the player immunity there (similar to that of the ship)
User avatar
Fevix
Somewhat familiar
 
Posts: 152
Joined: Fri Jul 31, 2009 12:18 am

Re: Unofficial SSVM, Version 8.0.1

Postby Sheights » Sat May 07, 2016 10:49 am

Fevix wrote:SMall issue: There seem to be pred NPCs in the mall, but they're unable to actually eat you because of the player immunity there (similar to that of the ship)

Nope, they are designed to not eat you, so they don't ruin your shopping experience
Sheights
Intermediate Vorarephile
 
Posts: 446
Joined: Thu Dec 25, 2008 12:00 am

PreviousNext

Return to Vore game