Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local ENT = {}
- ENT.Type = "anim"
- ENT.Base = "base_anim"
- ENT.ClassName = "fairy"
- if CLIENT then
- ENT.Size = 1
- function ENT:VectorRandSphere()
- return Angle(math.Rand(-180,180),math.Rand(-180,180),math.Rand(-180,180)):Up()
- end
- function ENT:SetFairyColorEasy(hue)
- self:SetFairyColor(HSVToColor(hue, 0.35, 1))
- end
- function ENT:SetFairyColor(color)
- self.Color = color
- local h,s,v = ColorToHSV(self.Color)
- self.Color2 = HSVToColor(h,0.5,1)
- end
- function ENT:PlayPhrase(text)
- text = text:lower()
- text = text .. " "
- local duration = 0
- local sounds = {}
- local question = text:find("%?") ~= nil
- local total_time = 0
- for chunk in text:gmatch("([%a][aeiou]+[bcdfghjklmnpqrstvwxz]-)") do
- local path = "alan/midna/speech"..tostring(math.max(tonumber(util.CRC(chunk))%47, 1))..".wav"
- local pitch = math.random(120,125)
- local len = SoundDuration(path) * (pitch / 100) - 0.05
- table.insert(
- sounds,
- {
- snd = CreateSound(self, path),
- pitch = pitch,
- len = len,
- }
- )
- total_time = total_time + len
- end
- self.AskingQuestion = question
- self.SoundQueueStart = CurTime()
- self.SoundQueueLength = total_time
- self.SoundQueue = sounds
- end
- function ENT:Ouch()
- local sounds = {}
- local path = "alan/nymph/NymphHit_0"..math.random(4)..".wav"
- local pitch = math.random(95,105)
- local len = SoundDuration(path) * (pitch / 100) - 0.05
- table.insert(
- sounds,
- {
- snd = CreateSound(self, path),
- pitch = pitch,
- len = len,
- }
- )
- self.SoundQueue = sounds
- self.Hurting = true
- timer.Simple(math.Rand(1,2), function() if self:IsValid() then self.Hurting = false end end)
- end
- function ENT:Bounce()
- local csp = CreateSound(self, "alan/bonk.wav")
- csp:PlayEx(100, math.random(95,105))
- end
- function ENT:Laugh()
- local sounds = {}
- local path = "alan/nymph/NymphGiggle_0"..math.random(9)..".wav"
- local pitch = math.random(95,105)
- local len = SoundDuration(path) * (pitch / 100) - 0.05
- table.insert(
- sounds,
- {
- snd = CreateSound(self, path),
- pitch = pitch,
- len = len,
- }
- )
- table.insert(sounds, {path = path, snd = CreateSound(self, path), pitch = math.random(95,105)})
- self.Laughing = true
- self.AskingQuestion = false
- self.SoundQueue = sounds
- end
- function ENT:CalcSoundQueue()
- if self.SoundQueue then
- self.sound_idx = self.sound_idx or 1
- local data = self.SoundQueue[self.sound_idx]
- --LocalPlayer():SetDSP(27)
- if not data then
- self.SoundQueue = nil
- self.question_pitch = 1
- self.sound_idx = 1
- --LocalPlayer():SetDSP(0)
- return
- end
- if not data.len then return end -- ????
- if not data.busy then
- data.busy = true
- data.snd:PlayEx(100, data.pitch)
- data.next = CurTime() + data.len * (100 / 120)
- self.SizePulse = math.Rand(1.3,1.8)
- end
- if self.AskingQuestion and self:GetPhraseFraction() > 0.7 then
- self.question_pitch = self.question_pitch or 1
- self.question_pitch = (self.question_pitch + (self.SoundQueueLength / 300) * (FrameTime() * 130)) ^ 1.056
- data.snd:ChangePitch(data.pitch + self.question_pitch)
- data.next = data.next - (self.question_pitch / 10000)
- end
- if data.next and data.next < CurTime() then
- data.snd:Stop()
- self.sound_idx = self.sound_idx + 1
- end
- end
- end
- local wing_mdl = Model("models/python1320/wing.mdl")
- local wing_mat = "alan/wing"
- ENT.WingSpeed = 6.3
- ENT.FlapLength = 50
- ENT.WingSize = 0.4
- ENT.SizePulse = 1
- local ClientsideModelEx = function(mdl) local ent = ents.Create("prop_physics") ent:SetModel(mdl) return ent end
- function ENT:Initialize()
- self.Emitter = ParticleEmitter(vector_origin)
- self.Emitter:SetNoDraw(true)
- self.leftwing = ClientsideModelEx(wing_mdl)
- self.rightwing = ClientsideModelEx(wing_mdl)
- self.bleftwing = ClientsideModelEx(wing_mdl)
- self.brightwing = ClientsideModelEx(wing_mdl)
- self.leftwing:SetNoDraw(true)
- self.rightwing:SetNoDraw(true)
- self.bleftwing:SetNoDraw(true)
- self.brightwing:SetNoDraw(true)
- self.leftwing:SetMaterial(wing_mat)
- self.rightwing:SetMaterial(wing_mat)
- self.bleftwing:SetMaterial(wing_mat)
- self.brightwing:SetMaterial(wing_mat)
- self.light = DynamicLight(self:EntIndex())
- self.flap = CreateSound(self, "alan/flap.wav")
- self.float = CreateSound(self, "alan/float.wav")
- self.flap:Play()
- self.float:Play()
- self.flap:ChangeVolume(0.2)
- self:SetFairyColorEasy(tonumber(util.CRC(self:EntIndex()))%360)
- self.Size = (tonumber(util.CRC(self:EntIndex()))%100/100) + 0.5
- end
- ENT.RenderGroup = RENDERGROUP_TRANSLUCENT
- function ENT:DrawTranslucent()
- self:CalcAngles()
- self:DrawParticles()
- self:DrawWings()
- self:DrawSprites()
- end
- function ENT:Think()
- self:CalcSounds()
- self:CalcLight()
- self:CalcPulse()
- self.leftwing:SetModelScale(Vector(1,0.5,1)*self.Size*self.WingSize)
- self.rightwing:SetModelScale(Vector(1,0.5,1)*self.Size*self.WingSize)
- self.bleftwing:SetModelScale(Vector()*(self.Size/3*self.WingSize))
- self.brightwing:SetModelScale(Vector()*(self.Size/3*self.WingSize))
- self:NextThink(CurTime())
- return true
- end
- function ENT:CalcPulse()
- self.SizePulse = math.Clamp(self.SizePulse + ((1 - self.SizePulse) * FrameTime() * 5), 1, 3)
- end
- function ENT:CalcAngles()
- if self.Hurting then return end
- local vel = self:GetVelocity()
- if vel:Length() > 2 then
- local ang = vel:Angle()
- self:SetAngles(ang)
- self.last_ang = ang
- elseif self.last_ang then
- self:SetAngles(self.last_ang)
- end
- end
- local function add_0(n)
- return n < 10 and "0"..n or n
- end
- function ENT:Say(txt)
- if LocalPlayer():EyePos():Distance(self:GetPos()) > 2000 then return end
- local tbl = {}
- if self.is_dead then
- table.insert( tbl, Color( 255, 30, 40 ) )
- table.insert( tbl, "*DEAD* " )
- end
- local time = os.date("*t")
- table.insert( tbl, Color(118, 170, 217) )
- table.insert( tbl, string.format("%s:%s", add_0(time.hour), add_0(time.min)) )
- table.insert( tbl, Color( 255, 255, 255 ) )
- table.insert( tbl, " - " )
- table.insert(tbl, self.Color)
- table.insert(tbl, "Fairy")
- table.insert(tbl, color_white)
- table.insert(tbl, ": " .. txt)
- chat.AddText(unpack(tbl))
- self:PlayPhrase(txt)
- end
- function ENT:GetPhraseFraction()
- return -(((self.SoundQueueLength - CurTime()) + self.SoundQueueStart - 1) / 2) + 1
- end
- function ENT:CalcSounds()
- self.speed = 6.3
- if self.Hurting then
- self.flap:Stop()
- else
- self.flap:Play()
- self.flap:ChangeVolume(0.2)
- end
- local length = self:GetVelocity():Length()
- self.float:ChangePitch(length/50+100)
- self.float:ChangeVolume(length/100)
- self.flap:ChangePitch((length/50+100) + self.SizePulse * 20)
- self:CalcSoundQueue()
- end
- function ENT:CalcLight()
- if self.light then
- self.light.Pos = self:GetPos()
- self.light.r = self.Color2.r
- self.light.g = self.Color2.g
- self.light.b = self.Color2.b
- self.light.Brightness = self.Size * 1
- self.light.Size = self.Size * 512
- self.light.Decay = self.Size * 32 * 5
- self.light.DieTime = CurTime() + 1
- end
- end
- local glow = Material("sprites/light_glow02_add")
- local warp = Material("particle/warp2_warp")
- local eye = Material("particle/warp1_warp")
- local blur = Material("sprites/heatwave")
- ENT.Blink = math.huge
- function ENT:DrawSprites()
- local pos = self:GetPos()
- local pulse = math.sin(CurTime()*2) * 0.5
- render.SetMaterial(warp)
- render.DrawSprite(
- pos, 12 * self.Size + pulse,
- 12 * self.Size + pulse,
- Color(self.Color.r, self.Color.g, self.Color.b, 100)
- )
- render.SetMaterial(blur)
- render.DrawSprite(
- pos, (1-self.SizePulse) * 20,
- (1-self.SizePulse) * 20,
- Color(10,10,10, 1)
- )
- render.SetMaterial(glow)
- render.DrawSprite(
- pos,
- 50 * self.Size,
- 50 * self.Size,
- Color(self.Color.r, self.Color.g, self.Color.b, 150)
- )
- render.DrawSprite(
- pos,
- 30 * self.Size,
- 30 * self.Size,
- self.Color
- )
- local fade_mult = math.Clamp(-self:GetForward():Dot((self:GetPos() - LocalPlayer():EyePos()):Normalize()), 0, 1)
- if fade_mult ~= 0 then
- render.SetMaterial(eye)
- if self.Blink > CurTime() then
- render.DrawSprite(
- pos + (self:GetRight() * 0.8 + self:GetUp() * 0.7) * self.Size,
- 0.5 * fade_mult * self.Size,
- 0.5 * fade_mult * self.Size,
- Color(10,10,10,200 * fade_mult)
- )
- render.DrawSprite(
- pos + (self:GetRight() * -0.8 + self:GetUp() * 0.7) * self.Size,
- 0.5 * fade_mult * self.Size,
- 0.5 * fade_mult * self.Size,
- Color(10,10,10,200 * fade_mult)
- )
- else
- self.Blink = math.random() < 0.99 and CurTime()-0.2 or math.huge
- end
- render.DrawSprite(
- pos + (self:GetRight() * -0.05 -self:GetUp() * 0.7) * self.Size,
- 0.8 * fade_mult * self.Size * self.SizePulse,
- 0.8 * fade_mult * self.Size * self.SizePulse,
- Color(10,10,10,200*fade_mult)
- )
- end
- end
- function ENT:DrawSunbeams()
- local pos = self:GetPos():ToScreen()
- if (pos.x > 0 and pos.x < ScrW()) and (pos.y > 0 and pos.y < ScrH()) then
- local mult = -math.Clamp((LocalPlayer():EyePos() - self:GetPos()):LengthSqr()*0.00001, 0, 1) + 1
- if mult ~= 0 then
- DrawSunbeams(0.8, mult * math.Clamp(0.1 * self.Size * self.SizePulse, 0.1, 0.3), 0.05, pos.x / ScrW(), pos.y / ScrH())
- end
- end
- end
- function ENT:DrawParticles()
- --for i=1, 3 do
- local particle = self.Emitter:Add("particle/Particle_Glow_05_AddNoFog", self:GetPos() + (self:VectorRandSphere() * self.Size * 4 * math.random()))
- local mult = math.Clamp((self:GetVelocity():Length() * 0.1), 0, 1)
- particle:SetDieTime(math.Rand(0.5, 2))
- particle:SetColor(self.Color.r, self.Color.g, self.Color.b)
- if self.Hurting then
- particle:SetGravity(physenv.GetGravity())
- particle:SetVelocity((self:GetVelocity() * 0.1) + (self:VectorRandSphere() * math.random(20, 30)))
- particle:SetAirResistance(math.Rand(1,3))
- else
- particle:SetAirResistance(math.Rand(5,15))
- particle:SetVelocity((self:GetVelocity() * 0.1) + (self:VectorRandSphere() * math.random(2, 5)))
- particle:SetGravity(VectorRand())
- end
- particle:SetStartAlpha(0)
- particle:SetEndAlpha(255)
- --particle:SetEndLength(self.Size * 3)
- particle:SetStartSize(math.Rand(1, self.Size*8))
- particle:SetEndSize(0)
- particle:SetCollide(true)
- particle:SetRoll(math.random())
- particle:SetBounce(0.8)
- --end
- self.Emitter:Draw()
- end
- function ENT:DrawWings(offset)
- offset = offset or 0
- self.WingSpeed = (6.3 + (self.SizePulse)) * (self.Hurting and 0 or 1)
- local offsetangle = Angle(0,0,-20)
- local leftposition, leftangles = LocalToWorld(Vector(0), Angle(0,TimedSin(self.WingSpeed,-self.FlapLength,0,offset), 0) + Angle(0,290,0) + offsetangle, self:GetPos(), self:GetAngles())
- local rightposition, rightangles = LocalToWorld(Vector(0), Angle(0,TimedCos(self.WingSpeed,0,self.FlapLength,offset), 0) + Angle(0,290,0) + offsetangle, self:GetPos(), self:GetAngles())
- self.leftwing:SetPos(leftposition)
- self.rightwing:SetPos(rightposition)
- self.leftwing:SetAngles(leftangles)
- self.rightwing:SetAngles(rightangles)
- local bleftposition, bleftangles = LocalToWorld(Vector(0), Angle(TimedSin(self.WingSpeed,-self.FlapLength,0,offset),0, 0) + Angle(20,260,60) + offsetangle, self:GetPos(), self:GetAngles())
- local brightposition, brightangles = LocalToWorld(Vector(0), Angle(TimedCos(self.WingSpeed,0,self.FlapLength,offset),0, 0) + Angle(20,260,60) + offsetangle, self:GetPos(), self:GetAngles())
- self.bleftwing:SetPos(bleftposition)
- self.brightwing:SetPos(brightposition)
- self.bleftwing:SetAngles(bleftangles)
- self.brightwing:SetAngles(brightangles)
- render.SuppressEngineLighting(true)
- render.SetColorModulation(self.Color2.r/200, self.Color2.g/200, self.Color2.b/200)
- self.leftwing:SetupBones()
- self.rightwing:SetupBones()
- self.bleftwing:SetupBones()
- self.brightwing:SetupBones()
- self.leftwing:DrawModel()
- self.rightwing:DrawModel()
- self.bleftwing:DrawModel()
- self.brightwing:DrawModel()
- render.SetColorModulation(0,0,0)
- render.SuppressEngineLighting(false)
- end
- function ENT:OnRemove()
- SafeRemoveEntity(self.leftwing)
- SafeRemoveEntity(self.rightwing)
- SafeRemoveEntity(self.bleftwing)
- SafeRemoveEntity(self.brightwing)
- self.flap:Stop()
- self.float:Stop()
- end
- hook.Add("RenderScreenspaceEffects", "fairy_sunbeams", function()
- if not render.SupportsPixelShaders_2_0() then error("your gpu does not support pixel shader 2.0!") end
- for key, ent in pairs(ents.FindByClass("fairy")) do
- ent:DrawSunbeams()
- end
- end)
- usermessage.Hook("fairy_func_call", function(umr)
- local ent = umr:ReadEntity()
- local func = umr:ReadString()
- local args = glon.decode(umr:ReadString())
- if ent:IsValid() then
- ent[func](ent, unpack(args))
- end
- end)
- end
- if SERVER then
- function ENT:Initialize()
- self:SetModel("models/dav0r/hoverball.mdl")
- self:PhysicsInit(SOLID_VPHYSICS)
- self:SetMoveType(MOVETYPE_VPHYSICS)
- self:SetSolid(SOLID_VPHYSICS)
- self:StartMotionController()
- self:PhysWake()
- self:GetPhysicsObject():EnableGravity(false)
- end
- function ENT:MoveTo(pos)
- self.MovePos = pos
- end
- function ENT:HasReachedTarget()
- return self.MovePos and self:GetPos():Distance(self.MovePos) < 50
- end
- function ENT:PhysicsSimulate(phys)
- if self.STOP_THAT then return end
- if self.GravityOn then return end
- if self.MovePos and not self:HasReachedTarget() then
- phys:AddVelocity(self.MovePos - phys:GetPos())
- phys:AddVelocity(self:GetVelocity() * -0.4)
- self.MovePos = nil
- else
- phys:AddVelocity(math.random() > 0.995 and VectorRand() * 100 or (phys:GetVelocity()*0.01))
- phys:AddVelocity(self:GetVelocity() * -0.05)
- end
- end
- function ENT:Think()
- if self.STOP_THAT then return end
- self:PhysWake()
- local pos = vector_origin
- local tbl = ents.FindByClass("fairy")
- if #tbl >= 2 then
- for idx, ent in pairs(tbl) do
- pos = pos + ent:GetPos() + VectorRand()
- end
- pos = pos/#tbl
- self:MoveTo(pos)
- end
- end
- function ENT:EnableGravity(time)
- local phys = self:GetPhysicsObject()
- phys:EnableGravity(true)
- self.GravityOn = true
- timer.Simple(time, function()
- if phys:IsValid() then
- phys:EnableGravity(false)
- self.GravityOn = false
- end
- end)
- end
- function ENT:CallClientFunction(func, ...)
- umsg.Start("fairy_func_call")
- umsg.Entity(self)
- umsg.String(func)
- umsg.String(glon.encode({...}))
- umsg.End()
- end
- function ENT:OnTakeDamage(dmg)
- if self.STOP_THAT then return end
- local phys = self:GetPhysicsObject()
- phys:AddVelocity(dmg:GetDamageForce())
- self:EnableGravity(math.Rand(1,2))
- self:CallClientFunction("Ouch")
- end
- function ENT:PhysicsCollide(data, phys)
- if self.STOP_THAT then return end
- if data.Speed > 50 and data.DeltaTime > 0.2 then
- self:CallClientFunction("Ouch")
- self:EnableGravity(math.Rand(0.5,1))
- end
- self:LaughAtMe()
- phys:SetVelocity(phys:GetVelocity():Normalize() * data.OurOldVelocity:Length() * 0.99)
- end
- function ENT:OnRemove()
- self.STOP_THAT = true
- end
- function ENT:LaughAtMe()
- for key, ent in pairs(ents.FindByClass("fairy")) do
- if ent ~= self and math.random() > 0.5 then
- ent:CallClientFunction("Laugh")
- end
- end
- end
- local quotes = {
- "No, drink it.",
- "You want more, right?",
- "Then do as I say.",
- "Teacher...",
- "So sad...",
- "You're hurt.",
- "You must've been lonely.",
- "I can feel your pain.",
- "This school's idol, {NAME} {NAME}",
- "Is now his most favorite toy.",
- "It's ok... I'll help you.",
- "Teacher...",
- "More... more...",
- "I'm happy.",
- "You must be in pain, but yet you still answer to me.",
- "More...!",
- "You're admirable.",
- "So sad...",
- "So sad!",
- "My father only worries about his work.",
- "And my mother fools around with different guys.",
- "I'm always alone.",
- "Living in the cold...",
- "After Class Lesson",
- "Lesson 2",
- "Ready?",
- "OK!",
- "Being lonely...",
- "I joined the pep-squad to forget about it, but...",
- "{NAME}, you have to smile.",
- "Be careful.",
- "But I...",
- "I wanted love physically.",
- "And this concludes today's lesson.",
- "Man, it smelled.",
- "Hurry, open the window!",
- "I swear it smells like semen {NAME}!",
- "Lets go to the bathroom together.",
- "OK...",
- "Lets go!",
- "Hope you flowers grow beautifully.",
- "{NAME} Fujiwara, Freshmen, in the pep-squad.",
- "Taking pictures of the flowers?",
- "Y, yeah.",
- "Do you mind?",
- "Of course not!",
- "Aren't they pretty?",
- "I took really good care of them.",
- "And look at how pretty they are now.",
- "Y, yeah.",
- "I'm so happy!",
- "You're alright with me being here?",
- "What do you mean?",
- "Everyone thinks I'm creepy and avoids me...",
- "But aren't you the science teacher?",
- "I admire people like you.",
- "Well, sorry to tell you, but vegetation is not my field.",
- "But you are the scene teacher, right?",
- "Oh, did I say something wrong?",
- "No...",
- "Get away from him, now!",
- "Why do you say that, Si...",
- "You never know what a creepy guy like him will do.",
- "That's why I warn.",
- "Come here now.",
- "OK...",
- "She is my long time friend.",
- "I ask you not to get near her.",
- "Mr. {NAME}.",
- "Why?",
- "Why are you doing such things?",
- "Sis!",
- "Do not call me Sis in public anymore!",
- "I told you many times, get it in your head.",
- "Do you really understand the situation of the family?",
- "Y, yes...",
- "Stop lying.",
- "You'll never understand why.",
- "N, no!",
- "You were planning to go to P.E. like that?",
- "You're grown up now, at least wear a bra.",
- "It hurts, it hurts!",
- "This is a punishment for your slipping mouth.",
- "I'm sorry, I won't do it again!",
- "No, I can't trust you.",
- "You always brake promises.",
- "Class is starting!",
- "There's a test today, I have to attend!",
- "You're saying the test is more important than me?",
- "Such childish-looking panties.",
- "Oh, you're wet.",
- "Why is it?",
- "Don't tell me you actually like it?",
- "No...",
- "Looks like you like it.",
- "How's this?",
- "Do you feel sorry?",
- "Come on, Tell me.",
- "No, d, don't!",
- "You are such a dirty girl...",
- "I'm sorry Sis, forgive me.",
- "Alright, punishment is over then.",
- "N, no!",
- "Don't stop!",
- "See, I knew you like it.",
- "Game set, {NAME} Fukawa.",
- "2 games, Fifty-Love",
- "Mr. {NAME}.",
- "What are you doing?",
- "N, nothing. J, just taking a walk.",
- "Excuse me.",
- "{NAME}, here!",
- "Thank you.",
- "{NAME}, what did you want to talk about?",
- "{NAME}?",
- "Um...",
- "Mr. {NAME}!",
- "{NAME}, great work.",
- "Shall we?",
- "If you scream, people will find out.",
- "Ms. {NAME} ...",
- "What is she to you?",
- "I think you said... Sis?",
- "We're just friends...!",
- "She took care of me... like a sister...",
- "Is that true?",
- "I, it is.",
- "Ouch!",
- "Ouch?",
- "Don't you mean you like it?",
- "So, you liked being a masochist?",
- "I'm sorry, Sis...",
- "This is in the way.",
- "Stupid girl.",
- "Practicing pep-squad while on the rag...",
- "Now that there's nothing blocking here...",
- "Girls on their period are great.",
- "You don't like it?",
- "We have to...",
- "Recording, start.",
- "If you tell me about, Ms. {NAME}",
- "I'll make you feel even more better, but...",
- "Sis.",
- "I'm sorry...",
- "Thanks for telling me.",
- "I'm so happy.",
- "Let me give you a reward.",
- "I am very sure that you would love this.",
- "Stay still.",
- "Keep stay.",
- "Something cold... inside.",
- "N, no!",
- "I, it's going to...",
- "Hold it in until I cum.",
- "Not yet!",
- "Not yet.",
- "Hold it!",
- "Alright, slowly move your hips down.",
- "Go ahead.",
- "Remember, just let it out slowly.",
- "Great job, keep it up.",
- "{NAME}, show me your face.",
- "What a wonderful expression.",
- "{NAME} {NAME} and {NAME} Fujiwara are true sisters.",
- "Their father married a politician's daughter.",
- "{NAME} and {NAME} were given birth by his previous lover.",
- "But {NAME} was left behind to keep the lover's existence a secret.",
- "The Teacher knew {NAME} was tormenting {NAME} because of it.",
- "But I...",
- "I can take care of satisfying him...",
- "You, do you have hatred against her?",
- "I think everyone at school does.",
- "Everyone knows she is nothing but a snobby bitch.",
- "Besides, she's the one who gavehim the nickname 'The {NAME}'",
- "Teacher, that is why we have to teach her a lesson.",
- "OK?",
- "He was already determined to do so without having {NAME} saying so.",
- "Feeling dizzy...",
- "Hello, {NAME} {NAME}.",
- "T, The {NAME}?",
- "{NAME}...",
- "Good job with the drug, you can leave.",
- "Well?",
- "{NAME}, what drug...?",
- "Don't tell me...",
- "No, I'm staying!",
- "I want to see what you're going to do with my sis.",
- "I, I said don't call me that in front of people.",
- "We already know.",
- "We know you two are sisters and why you're hiding it.",
- "Only us, of course.",
- "But if the public finds out...",
- "I'm sure it will be the most talked about news.",
- "W, what do you want?",
- "Not a sports bra?",
- "Oh, you think you're better than that?",
- "What do you think, don't you want to do the same thing to your sister?",
- "{NAME}.",
- "So, what will it be?",
- "S, she's not brave enough to do such a thing.",
- "I, I'll do it!",
- "I've always wanted to try this on Sis.",
- "Sis...",
- "Sis.",
- "Doesn't it hurt?",
- "Not going to scream like me?",
- "Be quiet, I'm not like you.",
- "Don't worry about a thing.",
- "It's just her pride talking.",
- "OK...",
- "I'm sure your sister will become like you.",
- "You smell like sweat.",
- "S, sweat!?",
- "See, you're sister is saying no but her body is saying yes.",
- "Y, yes.",
- "He sure is amazing.",
- "You're sweaty here too.",
- "Which means...",
- "Down here is probably...",
- "No, don't!",
- "P, please, let me take a shower!",
- "I don't want to regret this.",
- "We can't let this smell go to waste.",
- "{NAME}, please ask him to let me take a...!",
- "It's amazing.",
- "N, no, let me shower!",
- "Sis is crying...",
- "My almighty Sis...",
- "{NAME}, please tell him let me take a shower...!",
- "See, {NAME}? The tongue is at the butt...",
- "I'm getting turned on looking at it.",
- "Teacher... so amazing.",
- "{NAME}.",
- "{NAME}?",
- "Me too...",
- "Shall we start the main event?",
- "Use a con...!",
- "No, don't!",
- "I'm going to...",
- "Not inside...",
- "I knew it.",
- "Your workout has made your pussy tight.",
- "You like it?",
- "Who would like such a thing, such a...",
- "You say that, but your pussy is so...",
- "But, I like it rough.",
- "A brat like you being fucked embarrassed and punished.",
- "It's great...",
- "It turns me on more.",
- "S, stop!",
- "It's tight!",
- "I'm going to... cum!",
- "You don't need to worry about getting pregnant with this hole.",
- "But, that's not fun at all.",
- "How is it, isn't it good?",
- "I tasted your pussy earlier.",
- "He has me, but his wishes is to have sex with various girls.",
- "{NAME}.",
- "I have to accept his wishes.",
- "But...",
- "I wasn't able too...",
- "So, who was the next target?",
- "While looking for the next target...",
- "We all spent time together after class.",
- "Alrighty...",
- "Me!",
- "Lets see...",
- "Lets... start with you.",
- "Ms. {NAME}, are you satisfied just by taping?",
- "Huh?",
- "I think you should wet yourself more.",
- "O, OK!",
- "Ms. {NAME}, don't forget to keep taping.",
- "Y, yes...",
- "I want your thing, Mr. {NAME}.",
- "Yeah Sis, it's not fair!",
- "I want it too...",
- "It may have started as a rape.",
- "But he showed us great new pleasures.",
- "He was an absolute presence to us.",
- "Move over.",
- "Hurry and start taping.",
- "Ms. {NAME}, please tape her while she has two objects filling herself.",
- "Teacher, I...",
- "Me too...",
- "Teacher, give it to me!",
- "Teacher, me first!",
- "Teacher...",
- "Teacher?",
- "Next is me...",
- "After Class Lesson",
- "Lesson 3",
- "This was in my box today.",
- "It looks like it was taken at school.",
- "I assume she is one of our students.",
- "How do you explain yourself?",
- "Not a word to say?",
- "So be it.",
- "I will have a meeting immediately.",
- "It's a prank!",
- "What?",
- "It's a dirty prank!",
- "Someone doctored this picture!",
- "A prank?",
- "T, the students do hate me...",
- "I see...",
- "I guess you could be right.",
- "Look like someone is trying to get me out of this school.",
- "If such a thing happens again for sure I would be terminated.",
- "Who did such a thing.",
- "Reveal yourself.",
- "No, no.",
- "Teacher, please don't leave!",
- "If the loyalty of you four are true...",
- "The suspect didn't do this because of hate.",
- "No, Teacher!",
- "The suspect probably did this because she wasn't satisfied with the current situation.",
- "For example, wanting to keep me for herself.",
- "But that is impossible.",
- "I still want to experience this pleasure with other girls...",
- "It was only a matter of time before he made a move on Ms. {NAME}, the shrine maiden.",
- "She is the only succeeder of the 1000 year-old shrine.",
- "She suddenly quit the swim team.",
- "Looks like she's trying to get her back, if you know what I mean.",
- "{NAME}...",
- "Shh, it's me.",
- "N, not right here!",
- "I'm sorry, but {NAME}, I really want to...",
- "Talk it over.",
- "{NAME}...",
- "{NAME}, lets start over...",
- "I told you, I can't go against the teachings!",
- "Who cares about your teachings!",
- "{NAME}...",
- "{NAME}, come on...",
- "No...!",
- "{NAME}!",
- "Pipe down.",
- "I know you like it.",
- "It's so... hard.",
- "{NAME}...",
- "I love you.",
- "Me too...",
- "{NAME}, it tastes really great.",
- "You're so wet.",
- "An endless flood.",
- "I, it's amazing, {NAME}!",
- "Do you want to cum, {NAME}?",
- "{NAME}.",
- "{NAME}, you're alri...!?",
- "Mr. {NAME}?",
- "{NAME}.",
- "{NAME}.",
- "{NAME}.",
- "{NAME}...?",
- "{NAME}, what's this about...?",
- "So you don't have a bra on.",
- "Does that mean...?",
- "Does this mean that you don't need wear anything extra in front of your god?",
- "It's beautiful...",
- "A skin so elegant and fine.",
- "It's so soft...",
- "Yet, it's shaped well.",
- "Oh, did it hurt?",
- "Let me lick it.",
- "Oh, she's clean shaven.",
- "Are all lesbians like this?",
- "{NAME}, do you shave too?",
- "Lets check her out.",
- "S, stop, let go!",
- "Oh my.",
- "So much excess hair.",
- "I guess she doesn't play the male role for nothing.",
- "Shut up, don't speak!",
- "Why, I'm congratulating you.",
- "Shut up!!",
- "I think she's just hairy by nature.",
- "That's is sad.",
- "This honey pot was used by a fake cock.",
- "Look at all this honey dripping out!",
- "It means you like it.",
- "That's right, accept the pleasure.",
- "It's more natural for a woman to be with a man than another woman.",
- "N, no!!",
- "It feels great.",
- "Lets get down to business.",
- "Please tape the whole thing, Ms. {NAME}.",
- "Yes...",
- "This is... fabulous.",
- "Females 'accept' the males.",
- "This is how it should really be done.",
- "I will teach you everything I know.",
- "I knew you were going to be great.",
- "Please stop!",
- "Not yet, we're just getting started!",
- "The thing you did to {NAME} looked fun, I want to try it on you.",
- "Stop!",
- "What?",
- "I, I'm being forced, but I...!?",
- "N, no, I'm cuming!",
- "It doesn't feel good...",
- "I'm not enjoying this...!",
- "Lets try something else next.",
- "Come on {NAME}, open wide.",
- "You're not the male role anymore.",
- "Suck it right.",
- "Don't forget to use your tongue.",
- "You're pretty gentle.",
- "Lets make this rough.",
- "You're have bad manners, {NAME}.",
- "You're disrespecting the teacher.",
- "A girl like you needs to be punished.",
- "Here we go.",
- "Sis, switch places with me.",
- "Be quiet, don't talk to me!",
- "Teacher, can I help you with something?",
- "Actually yes, put this in {NAME}'s mouth.",
- "OK!",
- "I feel like I'm a man, this is fun!",
- "I see, so it's fun.",
- "No, suck it right!",
- "Sorry about earlier.",
- "I was with other teachers.",
- "Yes... oh, I see.",
- "So I guess the wedding will be next year.",
- "It's alright, I understand.",
- "I see...",
- "I guess you could be right.",
- "However... if you are lying just to get out of this!",
- "You will be terminated from here, understand!?",
- "No, don't say that... it's nothing like that.",
- "OK, but you hang up first.",
- "Ms. {NAME}?",
- "Ms. {NAME}, are you here?",
- "What do you think you're doing, Ms. {NAME}...!?",
- "M, Ms. {NAME}?",
- "Girls, what is the meaning of this?",
- "Sorry, but it's not good for his health to worry about his job every day... this was our only choice.",
- "What are you saying, Ms. {NAME}... who is him?",
- "It hurts, stop, stop, no, please stop this!",
- "Oh, there's something red.",
- "Ms. {NAME}, that means you're a...",
- "Teacher, you have a finance right?",
- "Were you saving your virginity for him?",
- "I'm surprised, but in a good way.",
- "Ms. {NAME}, I'm sure you know what will happen if you fire him from this school.",
- "Teachers, parents, everyone will see this footage.",
- "Lets show it to your fiance too.",
- "N, no, don't... anything but that!",
- "Alright.",
- "But in exchange, I'll cum inside.",
- "N, no, please don't do that!",
- "No this, no that.",
- "You sure are a bitch, Ms. {NAME}.",
- "They won't know if you don't scream.",
- "Are you in pain, Teacher?",
- "But your back side is still not filled.",
- "{NAME}, her butt too.",
- "OK.",
- "C, can't hold it...",
- "It's alright, Teacher.",
- "Let it all out.",
- "I can't... let me go to the restroom...",
- "Teacher, you can let it out here.",
- "We want to see it.",
- "W, what are you say...!!!?",
- "No, stop moving, stop moving inside!",
- "I can't, I can't, I can't!!!!",
- "That's a lot, Teacher!",
- "Ms. {NAME}, you're so dirty.",
- "You couldn't hold your peepee.",
- "But also beautiful...",
- "I'm getting horny...",
- "Me too...",
- "Mr. {NAME}.",
- "We want to have fun too.",
- "Alright, I understand.",
- "Ms. {NAME}, please wash Ms. {NAME} clean.",
- "Ms. {NAME}.",
- "Y, yes.",
- "A, amazing Teacher!",
- "Teacher, more, give me more!",
- "Come on, lick it clean girlie!",
- "Make me feel good!",
- "Teacher, you're amazing!",
- "Teacher, I'm next!",
- "No, me!",
- "Me too...",
- "Oh, Ms. {NAME}.",
- "Joining in the fun?",
- "Y, yeah...",
- "W, what's wrong with me!?",
- "Nothing is wrong with you.",
- "B, but, i, it won't stop!",
- "It's only because you've been holding it in this entire time.",
- "and Ms. {NAME}'s wedding arrangements has changed.",
- "For this reason, today is her last day at this school.",
- "Lets have Ms. {NAME} on the stage.",
- "Please come forward.",
- "Yes.",
- "I've been only here for a short time, but thank you.",
- "I will never...",
- "Forget you all, ever.",
- "More, I need to make this dirtier.",
- "Ms. {NAME}.",
- "I bought you your new tapes.",
- "Please leave those on the table.",
- "What's wrong?",
- "It's nothing, excuse me...",
- "Wait.",
- "Y, yes?",
- "Since you're here, pleasure me.",
- "Alright, how would you want it?",
- "Lets see...",
- "Teacher...",
- "Please...",
- "W, why?",
- "What, is there a problem?",
- "No, not at all...",
- "O, ouch, please be more gentle, Teacher!",
- "Did you say something?",
- "I couldn't really hear you.",
- "N, nothing...!",
- "By the way.",
- "Are you the one who stoled the picture?",
- "N, no!",
- "I would never betray you, ever!",
- "I see...",
- "I wasn't lying when I said I didn't do it.",
- "But I'm sure the person who did just wanted to end this.",
- "Just like how I felt about it.",
- "Not much as expected.",
- "W, was I not satisfying?",
- "Lately, I haven't been able to enjoy sex with you.",
- "It's just not exciting.",
- "I, I'm sorry!",
- "P, please give me another chance!",
- "It's nothing like that.",
- "You're... going to look for a new girl?",
- "Lets go home.",
- "I need to lock up.",
- "Go out now.",
- "I couldn't stand him having sex with another girl!",
- "So!!!",
- "He is finally mine...",
- "And then at the bus...",
- "and then what?",
- "What?",
- "Look, it's The {NAME}.",
- "What?",
- "He is...",
- "Mr. {NAME}.",
- "Y, yes, what is it?",
- "Two years in a row, you have the lowest rate",
- "of graduate students making it in to the career field.",
- "I'm doing the best I can...",
- "If the results are the same again this year, it won't be me you'll be talking too...",
- "This time it'll be the dean talking to you.",
- "You know what that means, right?",
- "Well, do your best.",
- "Also...",
- "Can't you do something?",
- "That coat.",
- "I use a lot of chemicals during experiment so...",
- "Mr. {NAME}, you do realize students have a funny nickname for you?",
- "The {NAME}.",
- "You do smell funny.",
- "Please do the laundry from time to time.",
- "Alright...",
- "After Class Lesson",
- "Lesson 1",
- "I'm sure that I've locked it.",
- "It has to be one of the students.",
- "Most likely after the test questions.",
- "Probably.",
- "Last one to leave was...",
- "Mr. {NAME}, did you notice anything happening?",
- "N, no... nothing...",
- "I see.",
- "Sign: Class 3-B)",
- "Sorry, can you lend me your encyclopedia?",
- "OK, hold on a second.",
- "Thanks.",
- "M, Ms. {NAME}.",
- "Yes?",
- "W, what is it?",
- "A, after class, can you please come to the lab?",
- "OK...",
- "I'm here.",
- "Um, what is it? What do you want?",
- "Looks like you are barely passing your classes...",
- "Even science...",
- "I will make it up on next week's test.",
- "Besides, we don't need to practice for a while, so I'll go home early to study.",
- "You seem positive.",
- "But of course, you're the one who stole the test answers...",
- "I admire your dedication, but a stupid move.",
- "Once we realize that the test answer are stolen, the test will get delayed.",
- "Also, the questions will be changed.",
- "W, where are you getting at?",
- "I won't talk.",
- "So...",
- "You know, right?",
- "Is that a threat?",
- "That's fine, but I think you're asking for trouble.",
- "I think this is settled, excuse me.",
- "Let go, stop!",
- "Someone, help!",
- "I don't want to kill you...",
- "There's no merit for the both of us then...",
- "Right?",
- "Look at me... c'mon.",
- "No, not inside!",
- "No!!!",
- "A lot spilled out...",
- "But still more inside...",
- "I told you don't...",
- "I didn't know what to do...",
- "T, Teacher, are you a...",
- "I'm sorry...",
- "A, already!?",
- "No!",
- "Don't!",
- "I am never satisfied!",
- "Great... it's great!",
- "I... I can't... going to... cum!",
- "I came...",
- "I had sex a few times, but this is my first orgasm...",
- "Already...",
- "Your mouth...",
- "Huh?",
- "Your mouth.",
- "Alright.",
- "Smells like a {NAME}.",
- "Stop that.",
- "If you want, I'll have sex with you again.",
- "If I'm bored.",
- "Teacher, you don't have a girlfriend, right?",
- "You probably have a hard time asking out a girl.",
- "It's such a waste because you're so good.",
- "Stuck at the same part, again.",
- "I'm using my break time to help you but you're still stuck at the same place.",
- "I'm sorry.",
- "Just try again.",
- "Yes, understood.",
- "Sign: {NAME} {NAME})",
- "How may I help you?",
- "Enjoy your stay.",
- "Ms. {NAME}, pardon me.",
- "Yes?",
- "It's about your part.",
- "A Note: 6 P.M. Gym storage room)",
- "Alright?",
- "OK.",
- "See you later.",
- "Teacher!",
- "What?",
- "I only have 40 minutes to curfew.",
- "Lets keep our clothes on then.",
- "How is it?",
- "You like it?",
- "I, it's great, Mr. {NAME}!",
- "{NAME}, what do you want to talk about?",
- "I need your help, come.",
- "What is it {NAME}?",
- "{NAME}?",
- "Mr. {NAME}?",
- "{NAME}, what's this about?",
- "I told him I'll take care of him.",
- "I want to try other girls.",
- "Um, I...",
- "still have work to do.",
- "W, what do you want!?",
- "Look at this.",
- "If this goes around, both you and Mr. {NAME} will be expelled.",
- "Unlike the other girls here, you're not wealthy.",
- "That's why you work part time at a cafe to pay the tuitions.",
- "Now, you don't want all your hard work to be pointless, do you?",
- "I, I'm sorry... I won't do it again so forgive me.",
- "No need to apologize.",
- "Mr. {NAME} only wants you to do the same thing as you did with Mr. {NAME}.",
- "So, this is what Mr. {NAME} had for dessert...",
- "Ms. {NAME}, please get the face.",
- "OK...",
- "You had gym today, right?",
- "You smell.",
- "So much juice!",
- "What a girl...",
- "C'mon, say it.",
- "I'm going to suck Mr. {NAME}'s big thing...",
- "What's wrong?",
- "It's almost like blowing on a flute.",
- "Very good...",
- "Looks like Mr. {NAME} trained you well.",
- "But I know you can do better, show me.",
- "Yes, that's great.",
- "Wonderful!",
- "I'm cuming!",
- "Amazed? Isn't it amazing?",
- "Ms. {NAME}, Ms {NAME}'s expression has changed.",
- "Are you getting this?",
- "G, great... too great.",
- "It doesn't feel good...",
- "It's not...!",
- "Hot... my body is burning!",
- "Not there!",
- "It's OK...",
- "You're well lubed.",
- "It might hurt a bit, but...!",
- "A tight fit.",
- "But now, I can unload everything inside!",
- "No, it hurts!",
- "Teacher, me too...",
- "Alright, after this...",
- "It's great, Teacher!",
- "Great... great!",
- }
- hook.Add("Think", "hentai_fairies", function()
- if math.random() > 0.996 then
- local fairies = ents.FindByClass("fairy")
- if #fairies > 0 then
- local self = table.Random(fairies)
- if self.LaughAtMe then
- local str = table.Random(quotes):gsub("{NAME}", (ply or table.Random(player.GetAll())):Nick())
- if str:find("...!", nil, true) then
- self:LaughAtMe()
- end
- self:CallClientFunction("Say", str)
- self.said_something = (self.said_something or 0) + 1
- end
- end
- end
- end)
- end
- scripted_ents.Register(ENT, ENT.ClassName, true)
Advertisement
Add Comment
Please, Sign In to add comment