Bully-Board
Bully Modding Section => Mod Releases => Topic started by: DaBOSS54320 on November 27, 2014, 05:51:29 PM
-
There aren't many mission mods for Bully as of now, and I think that needs to change! Mission mods can bring a lot of fun to the game, and a lot of playing time. I'm releasing this mod open source for learning, and to hopefully inspire people to make their own missions when they see how easy it really can be.
If you want to download the pre compiled, Scripts.img version of the mod, here is a link. MediaFire Download (https://www.mediafire.com/?avc5yahxaj2r3x9)
and of course, here is the source as well:
local DialougeSpeed = 125
local carModel = 297
local carColor = 25
local endThreads = false
function MissionSetup()
AreaTransitionXYZ(0,269,-116,6)
PlayerSetHealth(PedGetMaxHealth(gPlayer))
PedSetUniqueModelStatus(3,-1)
PedSetUniqueModelStatus(4,-1)
PedSetUniqueModelStatus(10,-1)
PedSetUniqueModelStatus(57,-1)
PedSetUniqueModelStatus(61,-1)
PedSetUniqueModelStatus(130,-1)
PedSetUniqueModelStatus(134,-1)
LoadAllAnim()
end
function MissionCleanup()
TextPrintString('',1,1)
TextPrintString('',1,2)
PlayerSetControl(1)
CameraReturnToPlayer()
CameraSetWidescreen(false)
EffectSetGymnFireOn(false)
SoundStopStream()
DisablePunishmentSystem(false)
PedSetUniqueModelStatus(3,1)
PedSetUniqueModelStatus(4,1)
PedSetUniqueModelStatus(10,1)
endThreads = true
end
function main()
CreateThread("F_SpeedSelect")
--CreateThread("F_SuperSpudGun")
CreateThread("F_StopAdultBust")
F_TalkToPete1()
end
function F_SpeedSelect()
while not endThreads do
if IsButtonBeingPressed(0,1) then
DialougeSpeed = DialougeSpeed - 10
if DialougeSpeed < 0 then
DialougeSpeed = 0
end
TextPrintString("Dialouge Speed: "..DialougeSpeed.."%\n(Lower = Faster | Higher = Slower)",2,2)
elseif IsButtonBeingPressed(1,1) then
DialougeSpeed = DialougeSpeed + 10
if DialougeSpeed > 300 then
DialougeSpeed = 300
end
TextPrintString("Dialouge Speed: "..DialougeSpeed.."%\n(Lower = Faster | Higher = Slower)",2,2)
end
Wait(0)
end
end
function F_SuperSpudGun()
PedSetWeapon(gPlayer,396,8)
while not endThreads do
if PedGetWeapon(gPlayer) == 396 then
GameSetPedStat(gPlayer,31,300)
if IsButtonBeingReleased(12,0) then
Wait(187)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
PedSetWeapon(gPlayer,-1)
Wait(0)
PedSetWeapon(gPlayer,396,8)
end
else
GameSetPedStat(gPlayer,31,100)
end
Wait(0)
end
end
function F_StopAdultBust()
local target = ped
while not endThreads do
ped = PedGetGrappleTargetPed(gPlayer)
if PedIsValid(ped) and PedIsPlaying(ped,"/Global/Actions/Grapples/Front/Grapples/GrappleMoves/Adult_Takedown/Give","Act/Globals.act") then
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
PedSetActionNode(ped,"/Global/Player","Act/Player.act")
end
Wait(0)
end
end
function PedsPrepareConversation(ped1,ped2,distance,walkSpeed)
PlayerSetPunishmentPoints(0)
if PedGetWeapon(gPlayer) == 437 then
PedSetWeapon(gPlayer,-1)
end
if PedIsInAnyVehicle(gPlayer) then
PedWarpOutOfCar(gPlayer)
end
PedStop(ped2)
local x,y,z = PedGetPosXYZ(ped2)
PedMoveToXYZ(ped1,walkSpeed,x,y,z)
local r1 = x + distance
local r2 = y + distance
local r3 = x - distance
local r4 = y - distance
x,y,z = PedGetPosXYZ(ped1)
PedFaceXYZ(ped2,x,y,z)
repeat
Wait(0)
until PedInRectangle(ped1,r1,r2,r3,r4)
PedStop(ped1)
x,y,z = PedGetPosXYZ(ped2)
PedFaceXYZ(ped1,x,y,z)
x,y,z = PedGetPosXYZ(ped1)
PedFaceXYZ(ped2,x,y,z)
end
function AllPedsDead(peds)
for c = 1,table.getn(peds) do
if PedIsValid(peds[c]) and not PedIsDead(peds[c]) then
break
elseif c == table.getn(peds) then
return true
end
Wait(0)
end
return false
end
function F_TalkToPete1()
pete = PedCreateXYZ(134,269,-109,7)
PedSetStationary(pete,true)
PedSetInvulnerable(pete,true)
PlayerSetControl(0)
CameraSetXYZ(272,-107,7)
CameraLookAtXYZ(270,-110,7.5)
CameraSetWidescreen(true)
PedsPrepareConversation(gPlayer,pete,1,0)
TextPrintString("Pete: Yo Jimmy, mah dawg. Algie needs some shit from you dawg.",10,2)
Wait(4250 * (DialougeSpeed/100))
TextPrintString("Jimmy: Okay. Where is he then?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Pete: Umm, bro I gotta go.",10,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString("Jimmy: Can't you tell me where he is first?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Pete: DUDE OMFG GTG",10,2)
Wait(1250 * (DialougeSpeed/100))
TextPrintString('',10,2)
GameSetPedStat(pete,20,222)
PedSetInfiniteSprint(pete,true)
PedSetStationary(pete,false)
PedMoveToXYZ(pete,2,383,-56,7)
PlayerSetControl(1)
CameraReturnToPlayer()
CameraSetWidescreen(false)
F_CatchPete()
end
function F_CatchPete()
gary = PedCreateXYZ(130,306,-77,6)
PedSetStationary(gary,true)
PedSetInvulnerable(gary,true)
TextPrintString("Catch Petey!",4,1)
local x,y = 383,-56
local r1 = x + 1
local r2 = y + 1
local r3 = x - 1
local r4 = y - 1
repeat
Wait(0)
until PedInRectangle(pete,r1,r2,r3,r4)
PedDelete(pete)
TextPrintString("Jimmy: Shit! He got away...",2,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString("Jimmy: Was that Gary I saw by the gates?",3,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString('',1,2)
F_TalkToGary1()
end
function F_TalkToGary1()
TextPrintString("Go meet Gary",4,1)
local blip = BlipAddXYZ(306,-77,6)
local x,y = 306,-77
local r1 = x + 3.5
local r2 = y + 3.5
local r3 = x - 3.5
local r4 = y - 3.5
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
BlipRemove(blip)
PlayerSetControl(0)
CameraSetXYZ(309,-74,7.5)
CameraLookAtXYZ(306,-77,6)
CameraSetWidescreen(true)
PedsPrepareConversation(gPlayer,gary,1,0)
TextPrintString("Gary: So, word on the street is you wanna find Algie?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Not really. He wanted me though I believe.",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Gary: Well fuck you faggot, you want him.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Jimmy: Umm... okay fine. Why, do you know where he is?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Gary: No. Only you, the chosen one, knows where he is.",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: But... I don't.",10,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString("Gary: Oh but you do, you just have to unlock the knowledge by going on a spiritual journey.",10,2)
Wait(3500 * (DialougeSpeed/100))
TextPrintString("Jimmy: How can I do that?",10,2)
Wait(2250 * (DialougeSpeed/100))
orderly = PedCreateXYZ(53,310,-72,7)
PedFaceXYZ(orderly,306,-77,6)
PedSetInvulnerable(orderly,true)
PedSetStationary(orderly,true)
--PedSetActionNode(orderly,AUTHORITY POINT ANIM)
Wait(250)
TextPrintString("Orderly: There's the run-away! You're coming with me.",10,2)
CameraSetXYZ(305,-75.5,7)
CameraLookAtXYZ(310,-72,7)
Wait(3000 * (DialougeSpeed/100))
TextPrintString('',10,2)
PedSetActionTree(gary,"/Global/N_Ranged_A","Act/Anim/N_Ranged_A.act")
PedSetInfiniteSprint(gary,true)
PedSetInfiniteSprint(orderly,true)
GameSetPedStat(gary,20,225)
GameSetPedStat(orderly,20,220)
PedSetStationary(gary,false)
PedSetStationary(orderly,false)
PedMoveToXYZ(gary,2,383,-56,7)
PedMoveToXYZ(orderly,2,383,-56,7)
PlayerSetControl(1)
CameraReturnToPlayer()
CameraSetWidescreen(false)
CreateThread("F_DeleteGary")
Wait(500)
F_TalkToGalloway1()
end
function F_DeleteGary()
local x,y = 383,-56
local r1 = x + 1
local r2 = y + 1
local r3 = x - 1
local r4 = y - 1
repeat
Wait(0)
until PedInRectangle(gary,r1,r2,r3,r4)
PedDelete(gary)
repeat
Wait(0)
until PedInRectangle(orderly,r1,r2,r3,r4)
PedDelete(orderly)
end
function F_TalkToGalloway1()
TextPrintString("Go find a teacher to learn more about spiritual journeys",5,1)
galloway = PedCreateXYZ(57,-560,319,-1)
PedSetStationary(galloway,true)
PedSetInvulnerable(galloway,true)
PedFaceXYZ(galloway,-564,317,0)
local blip = BlipAddXYZ(-653,-291,0)
local x,y = -653,-291
local r1 = x + 2
local r2 = y + 2
local r3 = x - 2
local r4 = y - 2
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
PlayerSetPunishmentPoints(0)
AreaTransitionXYZ(15,-564,317,-1)
BlipRemove(blip)
PlayerSetControl(0)
CameraSetXYZ(-558,321,0)
CameraLookAtXYZ(-561,318,-1)
CameraSetWidescreen(true)
PedsPrepareConversation(gPlayer,galloway,1,0)
TextPrintString("Galloway: Jimmy! What's up with you, my number one nigga?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: I need help going on a spiritual journey, can you help me?",10,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString("Galloway: Oh but of course! Here, try some of this stuff, it'll get your journey started.",10,2)
Wait(3250 * (DialougeSpeed/100))
TextPrintString('',10,2)
Wait(100)
PedSetWeapon(gPlayer,327,1)
Wait(100)
ExecuteActionNode(gPlayer,"/Global/2_S05/Anims/Drink","Act/Conv/2_S05.act")
Wait(6000)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
PlayerSetControl(1)
CameraReturnToPlayer()
CameraSetWidescreen(false)
EffectSetGymnFireOn(true)
Wait(4000)
TextPrintString("Jimmy: Shit... I'm not feeling so good... I hope I don't blackout.",10,2)
Wait(3650 * (DialougeSpeed/100))
TextPrintString('',1,2)
F_BunnyFight()
end
function F_BunnyFight()
AreaTransitionXYZ(8,-772,-134,6)
local spawns = {{-772,-129},{-766,-136},{-767,-139},{-771,-141},{-776,-139},{-776,-130}}
local styles = {"P_Bif","G_Johnny","BOSS_Darby","Nemesis","BOSS_Russell"}
local enemies = {}
SoundPlayStream("MS_WildstyleHigh.rsm",0.5)
for c = 1,table.getn(spawns) do
local enemy = PedCreateXYZ(165,spawns[c][1],spawns[c][2],6)
PedSetWeapon(enemy,-1)
PedSetHealth(enemy,290)
PedSetMaxHealth(enemy,290)
GameSetPedStat(enemy,6,0)
GameSetPedStat(enemy,7,0)
GameSetPedStat(enemy,8,100000)
GameSetPedStat(enemy,12,86)
GameSetPedStat(enemy,13,94)
GameSetPedStat(enemy,14,100)
GameSetPedStat(enemy,39,95)
GameSetPedStat(enemy,63,0)
PedSetInfiniteSprint(enemy,true)
PedAttackPlayer(enemy,3)
PedSetPedToTypeAttitude(enemy,13,0)
local style = styles[math.random(1,table.getn(styles))]
PedSetActionTree(enemy,"/Global/"..style,"Act/Anim/"..style..".act")
AddBlipForChar(enemy,0,26,4)
table.insert(enemies,enemy)
Wait(0)
end
TextPrintString("Defeat the fluffy pink bunnies",4,1)
repeat
Wait(0)
until AllPedsDead(enemies)
Wait(750)
for c = 1,table.getn(enemies) do
if PedIsValid(enemies[c]) then
PedDelete(enemies[c])
end
Wait(0)
end
PlayerSetHealth(PedGetMaxHealth(gPlayer))
PlayerSetPunishmentPoints(0)
SoundStopStream()
EffectSetGymnFireOn(false)
F_TalkToGalloway2()
end
function F_TalkToGalloway2()
PlayerSetControl(0)
PedSetPosXYZ(gPlayer,-772,-134,6)
Wait(0)
CameraSetXYZ(-775,-130,7)
CameraLookAtXYZ(-772,-134,6)
CameraSetWidescreen(true)
PedSetPosXYZ(galloway,-771,-126,8)
PedSetStationary(galloway,false)
PedsPrepareConversation(galloway,gPlayer,1,0)
TextPrintString("Galloway: James, what the hell are you doing?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Jimmy: I was defeating the army of bunnies!",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Galloway: I watched you the whole time, you were just hallucinating. There are no bunnies.",10,2)
Wait(3500 * (DialougeSpeed/100))
TextPrintString("Galloway: Anyways, did you have your vision?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Jimmy: No... I didn't have the vision yet.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Galloway: Shit... guess we'll just have to keep trying.",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString('',1,2)
Wait(100)
PedSetWeapon(gPlayer,327,1)
Wait(100)
ExecuteActionNode(gPlayer,"/Global/2_S05/Anims/Drink","Act/Conv/2_S05.act")
Wait(6000)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
CameraSetWidescreen(false)
CameraReturnToPlayer()
PlayerSetControl(1)
F_AlgieDream()
end
function F_AlgieDream()
AreaTransitionXYZ(37,-746,-535,8)
algie = PedCreateXYZ(4,-748,-541,10)
PedSetInvulnerable(algie,true)
PedFaceXYZ(gPlayer,-748,-541,10)
PedFaceXYZ(algie,-746,-535,8)
EffectSetGymnFireOn(true)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(-742,-532,9)
CameraLookAtXYZ(-748,-541,11)
local defaultFOV = CameraGetFOV()
TextPrintString("Algie: Jimmy.....",10,2)
Wait(1750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Um... yes?",10,2)
Wait(1750 * (DialougeSpeed/100))
TextPrintString("Algie: Jimmy.....",10,2)
Wait(1750 * (DialougeSpeed/100))
TextPrintString("Jimmy: What?",10,2)
Wait(1750 * (DialougeSpeed/100))
TextPrintString("Algie: JIMMY!!!",10,2)
CameraSetFOV(8)
Wait(1750 * (DialougeSpeed/100))
TextPrintString("Jimmy: AHHHHH!!!",10,2)
for fov = 8,defaultFOV,3 do
CameraSetFOV(fov)
Wait(0)
end
CameraSetFOV(defaultFOV)
Wait(1500 * (DialougeSpeed/100))
F_TalkToGalloway3()
end
function F_TalkToGalloway3()
AreaTransitionXYZ(8,-772,-134,6)
EffectSetGymnFireOn(false)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(-775,-130,7)
CameraLookAtXYZ(-772,-134,6)
PedsPrepareConversation(galloway,gPlayer,1,0)
PedSetStationary(galloway,true)
TextPrintString("Galloway: Jimmy, wake up!",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Oh shit, what the hell?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Galloway: What did you see?",10,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString("Jimmy: I seen... OH SHIT! I had my vision! I know where Algie is! Thanks Galloway.",10,2)
Wait(3250 * (DialougeSpeed/100))
TextPrintString("Galloway: Where is he?",10,2)
Wait(2000 * (DialougeSpeed/100))
TextPrintString("Jimmy: The funhouse, but I better hurry before he leaves.",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Galloway: Hmm, you'll need something fast then. Take my truck.",10,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString("Jimmy: But... I've been drinking, and I don't even have a license.",10,2)
Wait(3250 * (DialougeSpeed/100))
TextPrintString("Galloway: Never stopped me.",10,2)
Wait(2000 * (DialougeSpeed/100))
TextPrintString('',1,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
F_TalkToAlgie1()
end
function F_TalkToAlgie1()
car = VehicleCreateXYZ(carModel,197,-11,5.5)
VehicleSetColor(car,carColor)
CreateThread("F_DriveCar")
TextPrintString("Get in Galloway's truck",4,1)
local blip = BlipAddXYZ(197,-11,7)
repeat
Wait(0)
until PedIsInVehicle(gPlayer,car)
BlipRemove(blip)
TextPrintString("Go see Algernon",3.5,1)
PedSetPosXYZ(algie,129,435,7)
PedSetStationary(algie,true)
dog = PedCreateXYZ(219,128,436,7)
PedRecruitAlly(algie,dog)
PedSetInvulnerable(dog,true)
blip = BlipAddXYZ(129,435,7)
local x,y = 129,435
local r1 = x + 4
local r2 = y + 4
local r3 = x - 4
local r4 = y - 4
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
BlipRemove(blip)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(132,436,7)
CameraLookAtXYZ(129,435,7)
PedsPrepareConversation(gPlayer,algie,1,0)
TextPrintString("Algie: Jimmy! There you are.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Jimmy: You needed me?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Algie: Yes, I need your help. I'll pay you 2 bucks as usual.",10,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString("Jimmy: And of course that means 5, right?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Algie: Yeah sure whatever. Just help me, please?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Okay, what do you need?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Algie: My dog has ebola. Can you cure him?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Okay I'll try.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString('',1,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
F_TalkToBeatrice1()
end
function F_TalkToBeatrice1()
TextPrintString("Find a cure for ebola",3,1)
beatrice = PedCreateXYZ(3,247,-14,7)
PedSetStationary(beatrice,true)
PedSetInvulnerable(beatrice,true)
local blip = BlipAddXYZ(247,-14,7)
local x,y = 247,-14
local r1 = x + 3.5
local r2 = y + 3.5
local r3 = x - 3.5
local r4 = y - 3.5
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
if PedIsInVehicle(gPlayer,car) then
PedWarpOutOfCar(gPlayer)
VehicleDelete(car)
car = VehicleCreateXYZ(carModel,244,-32,8)
VehicleSetColor(car,carColor)
end
BlipRemove(blip)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(245,-12,7)
CameraLookAtXYZ(247,-14,7)
PedsPrepareConversation(gPlayer,beatrice,1,0)
TextPrintString("Beatrice: Oh hi there.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Jimmy: Hello, do you know a cure for ebola?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Beatrice: Maybe, but what's in it for me?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString('',1,2)
TextPrintString("Hit Beatrice",1,1)
PlayerSetControl(1)
PedSetStationary(gPlayer,true)
PedSetInvulnerable(beatrice,false)
DisablePunishmentSystem(true)
repeat
Wait(0)
until PedGetWhoHitMeLast(beatrice) == gPlayer or DialougeSpeed < 1
PedSetStationary(gPlayer,false)
PedSetInvulnerable(beatrice,true)
DisablePunishmentSystem(false)
PlayerSetControl(0)
TextPrintString("Beatrice: Okay okay!",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Beatrice: I've been working on a cure, but Hatrick took it away in class! But then he got fired before he could give it back...",10,2)
Wait(3750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Hmm, guess I'll go check out his house.",10,2)
Wait(2800 * (DialougeSpeed/100))
TextPrintString('',1,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
F_GoToHatrick()
end
function F_GoToHatrick()
TextPrintString("Go to Mr. Hattrick's house",4,1)
bill = PedCreateXYZ(77,404,520,23)
PedSetStationary(bill,true)
local blip = BlipAddXYZ(401,516,23)
local x,y = 401,516
local r1 = x + 6.5
local r2 = y + 6.5
local r3 = x - 6.5
local r4 = y - 6.5
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
if PedIsInVehicle(gPlayer,car) then
PedWarpOutOfCar(gPlayer)
VehicleDelete(car)
car = VehicleCreateXYZ(carModel,394,504,23.5)
VehicleSetColor(car,carColor)
end
BlipRemove(blip)
DisablePunishmentSystem(true)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(406,517,24)
CameraLookAtXYZ(404,520,24)
PedsPrepareConversation(gPlayer,bill,1,1)
TextPrintString("Bill: What are you doing here you little shit?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: I'm here to see Hatrick.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Bill: This party is for grown ups!",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString('',1,2)
TextPrintString("Hit Bill",1,1)
PlayerSetControl(1)
PedSetStationary(gPlayer,true)
repeat
Wait(0)
until PedGetWhoHitMeLast(bill) == gPlayer or DialougeSpeed < 1
PedSetStationary(gPlayer,false)
PlayerSetControl(0)
TextPrintString("Bill: FUCK YOU!!! EAT MY DICK YOU LITTLE BITCH!!!",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString('',1,1)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
PedSetStationary(bill,false)
F_HatrickFight1()
end
function F_HatrickFight1()
TextPrintString("Defeat Bill",3,1)
PedSetActionTree(bill,"/Global/G_Striker_A","Act/Anim/G_Striker_A.act")
PedSetWeapon(bill,-1)
PedSetHealth(bill,365)
PedSetMaxHealth(bill,365)
GameSetPedStat(bill,6,0)
GameSetPedStat(bill,7,0)
GameSetPedStat(bill,8,100000)
GameSetPedStat(bill,12,90)
GameSetPedStat(bill,13,95)
GameSetPedStat(bill,14,100)
GameSetPedStat(bill,63,0)
PedSetInfiniteSprint(bill,true)
PedSetPedToTypeAttitude(bill,13,0)
PedAttackPlayer(bill,3)
AddBlipForChar(bill,0,26,4)
repeat
Wait(0)
until not PedIsValid(bill) or PedIsDead(bill)
local spawns = {{386,556,76},{380,555,78},{373,549,79},{370,540,80},{375,533,81},{375,541,108},{383,549,144}}
local styles = {"P_Bif","G_Johnny","BOSS_Darby","Nemesis","J_Melee_A"}
local enemies = {}
for c = 1,table.getn(spawns) do
local enemy = PedCreateXYZ(spawns[c][3],spawns[c][1],spawns[c][2],25)
PedSetWeapon(enemy,-1)
PedSetHealth(enemy,365)
PedSetMaxHealth(enemy,365)
GameSetPedStat(enemy,6,0)
GameSetPedStat(enemy,7,0)
GameSetPedStat(enemy,8,100000)
GameSetPedStat(enemy,12,86)
GameSetPedStat(enemy,13,94)
GameSetPedStat(enemy,14,100)
GameSetPedStat(enemy,63,0)
PedSetInfiniteSprint(enemy,true)
local style = styles[math.random(1,table.getn(styles))]
PedSetActionTree(enemy,"/Global/"..style,"Act/Anim/"..style..".act")
table.insert(enemies,enemy)
Wait(0)
end
TextPrintString("Beat up the rest of the partiers",5,1)
PAnimOpenDoors(401,516,23,3)
local blip = BlipAddXYZ(379,540,26)
local x,y = 379,540
local r1 = x + 1
local r2 = y + 1
local r3 = x - 1
local r4 = y - 1
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
BlipRemove(blip)
PAnimOpenDoors(379,540,26,5)
SoundPlayStream("MS_FightingJohnnyVincentFight.rsm",0.5)
if DialougeSpeed > 0 then
TextPrintString("Crowd: Get dat lil mother fucker!",4,2)
end
for c = 1,table.getn(enemies) do
PedSetPedToTypeAttitude(enemies[c],13,0)
PedAttackPlayer(enemies[c],3)
AddBlipForChar(enemies[c],0,26,4)
Wait(0)
end
repeat
Wait(0)
until AllPedsDead(enemies)
Wait(500)
F_HatrickFight2()
end
function F_HatrickFight2()
TextPrintString("Confront Hatrick",3,1)
hatrick = PedCreateXYZ(61,372,549,26)
PedSetInvulnerable(hatrick,true)
PedSetStationary(hatrick,true)
local blip = BlipAddXYZ(372,549,26)
local x,y = 372,549
local r1 = x + 4.5
local r2 = y + 4.5
local r3 = x - 4.5
local r4 = y - 4.5
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
BlipRemove(blip)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(373,546,27.5)
CameraLookAtXYZ(372,549,26.5)
PedsPrepareConversation(gPlayer,hatrick,1,0)
TextPrintString("Hatrick: Good god! My party is ruined! You will pay for this!",10,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString("Jimmy: Bring it on.",10,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString('',10,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
TextPrintString("Defeat Hatrick",3,1)
PedSetActionTree(hatrick,"/Global/Russell_102","Act/Anim/Russell_102.act")
PedSetInvulnerable(hatrick,false)
PedSetStationary(hatrick,false)
PedSetWeapon(hatrick,-1)
PedSetHealth(hatrick,615)
PedSetMaxHealth(hatrick,615)
GameSetPedStat(hatrick,6,0)
GameSetPedStat(hatrick,7,0)
GameSetPedStat(hatrick,8,100000)
GameSetPedStat(hatrick,12,86)
GameSetPedStat(hatrick,13,94)
GameSetPedStat(hatrick,14,100)
GameSetPedStat(hatrick,63,0)
PedSetInfiniteSprint(hatrick,true)
PlayerSetMinPunishmentPoints(100)
PedSetPedToTypeAttitude(hatrick,13,0)
PedAttackPlayer(hatrick,3)
AddBlipForChar(hatrick,0,26,4)
repeat
Wait(0)
until not PedIsValid(hatrick) or PedIsDead(hatrick)
PlayerSetMinPunishmentPoints(0)
Wait(500)
SoundStopStream()
DisablePunishmentSystem(false)
F_TalkToBeatrice2()
end
function F_TalkToBeatrice2()
TextPrintString("Return Beatrice's notebook",4,1)
local blip = BlipAddXYZ(247,-14,7)
local x,y = 247,-14
local r1 = x + 3.5
local r2 = y + 3.5
local r3 = x - 3.5
local r4 = y - 3.5
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
if PedIsInVehicle(gPlayer,car) then
PedWarpOutOfCar(gPlayer)
VehicleDelete(car)
car = VehicleCreateXYZ(carModel,244,-32,8)
VehicleSetColor(car,carColor)
end
BlipRemove(blip)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(245,-12,7)
CameraLookAtXYZ(247,-14,7)
PedsPrepareConversation(gPlayer,beatrice,1,0)
TextPrintString("Jimmy: Here you go.",10,2)
Wait(2000 * (DialougeSpeed/100))
TextPrintString("Beatrice: Okay, now I can make the cure.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Beatrice: Here you go.",10,2)
Wait(2000 * (DialougeSpeed/100))
TextPrintString("Jimmy: Thanks, and do you know where Algie is?",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Beatrice: Yes, he's at the library.",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Beatrice: Oh I'm so happy! I'm going to deliver this cure to all the hospitals in the world and be famous!",10,2)
Wait(3600 * (DialougeSpeed/100))
TextPrintString('',1,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
F_TalkToAlgie2()
end
function F_TalkToAlgie2()
PedSetPosXYZ(algie,180,-150,8)
PedSetPosXYZ(dog,179,-149,8)
if PedGetAllyFollower(algie) ~= dog then
PedDismissAllAllies(algie)
PedRecruitAlly(algie,dog)
end
TextPrintString("Deliver the cure to Algernon",4,1)
local blip = BlipAddXYZ(180,-150,8)
local x,y,z = 180,-150,8
local r1 = x + 4
local r2 = y + 4
local r3 = x - 4
local r4 = y - 4
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
if PedIsInVehicle(gPlayer,car) then
PedWarpOutOfCar(gPlayer)
VehicleDelete(car)
car = VehicleCreateXYZ(carModel,172.5,-147,9)
VehicleSetColor(car,carColor)
end
BlipRemove(blip)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(183,-147,8)
CameraLookAtXYZ(180,-150,8.5)
PedsPrepareConversation(gPlayer,algie,1,0)
TextPrintString("Jimmy: Here ya go. So, my money?",10,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString("Algie: Thanks Jimmy! Come here Mr. Pickles.",10,2)
Wait(2500 * (DialougeSpeed/100))
x,y,z = PedGetPosXYZ(dog)
PedFaceXYZ(algie,x,y,z)
x,y,z = PedGetPosXYZ(algie)
PedFaceXYZ(dog,x,y,z)
PedSetActionNode(algie,"/Global/1_11X2/Animations/KneelFeed/KneelFeed","Act/Conv/1_11X2.act")
repeat
Wait(0)
until not PedIsPlaying(algie,"/Global/1_11X2/Animations/KneelFeed/KneelFeed","Act/Conv/1_11X2.act")
PedSetActionNode(dog,"/Global/1_11X2/Animations/DogChew/ChewIn","Act/Conv/1_11X2.act")
repeat
Wait(0)
until not PedIsPlaying(dog,"/Global/1_11X2/Animations/DogChew/ChewIn","Act/Conv/1_11X2.act")
Wait(500)
PedSetActionNode(dog,"/Global/4_05/Anims/StealCostumeCut/KnockedOut","Act/Conv/4_05.act")
x,y,z = PlayerGetPosXYZ()
PedFaceXYZ(algie,x,y,z)
TextPrintString("Algie: You... you killed my dog!",10,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString("Algie: DIE YOU FUCKING DONKEY CUNT!!!",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString('',1,2)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
PedSetActionNode(algie,"/Global/N_Striker_B","Act/N_Striker_B.act")
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
F_FightAlgie()
end
function F_FightAlgie()
TextPrintString("Defeat Algernon",3,1)
PedSetActionTree(algie,"/Global/BOSS_Russell","Act/Anim/BOSS_Russell.act")
PedSetInvulnerable(algie,false)
PedSetStationary(algie,false)
PedSetWeapon(algie,-1)
PedSetHealth(algie,320)
PedSetMaxHealth(algie,320)
GameSetPedStat(algie,6,0)
GameSetPedStat(algie,7,0)
GameSetPedStat(algie,8,100000)
GameSetPedStat(algie,12,86)
GameSetPedStat(algie,13,94)
GameSetPedStat(algie,14,100)
GameSetPedStat(algie,39,95)
GameSetPedStat(algie,63,0)
PedSetInfiniteSprint(algie,true)
PedSetPedToTypeAttitude(algie,13,0)
PedAttackPlayer(algie,3)
AddBlipForChar(algie,0,26,4)
repeat
Wait(0)
until not PedIsValid(algie) or PedIsDead(algie)
if PedIsInVehicle(gPlayer,car) then
PedWarpOutOfCar(gPlayer)
VehicleDelete(car)
car = VehicleCreateXYZ(carModel,172.5,-147,9)
VehicleSetColor(car,carColor)
end
Wait(500)
F_FightEarnest()
end
function F_FightEarnest()
earnest = PedCreateXYZ(10,188,-155,9)
PedFaceXYZ(earnest,188,-152,8)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(189,-150,7.5)
CameraLookAtXYZ(188,-155,10.5)
PedDelete(dog)
TextPrintString("Algie! I'll avenge you!",10,2)
Wait(2250 * (DialougeSpeed/100))
TextPrintString("It'll be easy with my new ULTRA SPUD GUN!",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString('',1,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
PedSetWeapon(earnest,-1)
PedSetInfiniteSprint(earnest,true)
PedSetPedToTypeAttitude(earnest,13,0)
PedAttackPlayer(earnest,3)
AddBlipForChar(earnest,0,26,4)
TextPrintString("Take down Earnest before he can get out his Ultra Spudgun!",5,1)
Wait(2000)
PedSetWeapon(earnest,396,8)
GameSetPedStat(earnest,10,300)
GameSetPedStat(earnest,11,300)
GameSetPedStat(earnest,31,300)
repeat
Wait(0)
until not PedIsValid(earnest) or PedIsDead(earnest)
Wait(500)
CreateThread("F_SuperSpudGun")
TextPrintString("Jimmy: Ooh, this new spud gun is pretty nice. I wonder how powerful it is...",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Jimmy: Oh shit! Beatrice is about to send that cure out, and it kills people!",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString('',1,2)
F_TalkToBeatrice3()
end
function F_TalkToBeatrice3()
TextPrintString("Warn Beatrice that the cure kills!",4.5,1)
local blip = BlipAddXYZ(247,-14,7)
local x,y = 247,-14
local r1 = x + 3.5
local r2 = y + 3.5
local r3 = x - 3.5
local r4 = y - 3.5
repeat
Wait(0)
until PedInRectangle(gPlayer,r1,r2,r3,r4)
BlipRemove(blip)
PlayerSetControl(0)
CameraSetWidescreen(true)
CameraSetXYZ(245,-12,7)
CameraLookAtXYZ(247,-14,7)
PedsPrepareConversation(gPlayer,beatrice,1,0)
TextPrintString("Jimmy: Don't send the cure yet!",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Beatrice: What? Why not?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Jimmy: It killed Algie's dog!",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Beatrice: Oh I know... that's my plan, I'm going to end ebola once and for all...",10,2)
Wait(3250 * (DialougeSpeed/100))
TextPrintString("Jimmy: By killing them?",10,2)
Wait(2500 * (DialougeSpeed/100))
TextPrintString("Beatrice: Yes, that is the only way we can stop it from spreading.",10,2)
Wait(3000 * (DialougeSpeed/100))
TextPrintString("Jimmy: That's terrible! I have to stop you!",10,2)
Wait(2750 * (DialougeSpeed/100))
TextPrintString("Beatrice: Bitch please, I gave myself superhuman strength with a potion I cooked up while you were getting my notebook.",10,2)
Wait(3250 * (DialougeSpeed/100))
TextPrintString('',1,2)
PlayerSetControl(1)
CameraSetWidescreen(false)
CameraReturnToPlayer()
F_FightBeatrice()
end
function F_FightBeatrice()
TextPrintString("Defeat Beatrice",3,1)
PedSetActionTree(beatrice,"/Global/P_Bif","Act/Anim/P_Bif.act")
PedSetInvulnerable(beatrice,false)
PedSetStationary(beatrice,false)
PedSetWeapon(beatrice,-1)
PedSetHealth(beatrice,9500)
PedSetMaxHealth(beatrice,17500)
GameSetPedStat(beatrice,6,0)
GameSetPedStat(beatrice,7,0)
GameSetPedStat(beatrice,8,100000)
GameSetPedStat(beatrice,12,95)
GameSetPedStat(beatrice,13,100)
GameSetPedStat(beatrice,14,100)
GameSetPedStat(beatrice,63,0)
PedSetInfiniteSprint(beatrice,true)
PedSetPedToTypeAttitude(beatrice,13,0)
PedAttackPlayer(beatrice,3)
AddBlipForChar(beatrice,0,26,4)
repeat
Wait(0)
until not PedIsValid(beatrice) or PedIsDead(beatrice)
Wait(500)
F_Ending()
end
function F_Ending()
TextPrintString("Jimmy: I did it! I defeated her!",10,2)
Wait(2850 * (DialougeSpeed/100))
TextPrintString("Jimmy: And cured Algie's dog! Or wait no... I killed him",10,2)
Wait(3350 * (DialougeSpeed/100))
TextPrintString("Jimmy: And um beat up Algie and Earnest...",10,2)
Wait(2850 * (DialougeSpeed/100))
TextPrintString("Jimmy: And I totally crashed Hatrick's party... oh well, he was a dick",10,2)
Wait(3600 * (DialougeSpeed/100))
TextPrintString("Jimmy: And well... shit, I guess I shouldn't be so proud after all",10,2)
Wait(3400 * (DialougeSpeed/100))
TextPrintString("Jimmy: Oh well, at least I stopped Beatrice from killing everyone!",10,2)
Wait(3400 * (DialougeSpeed/100))
TextPrintString("Jimmy: So uh... I win. Nobody wants to kiss me or anything? No crowd?",10,2)
Wait(3500 * (DialougeSpeed/100))
TextPrintString("Jimmy: Well this is a shitty ending...",10,2)
Wait(2850 * (DialougeSpeed/100))
MissionSucceed()
end
function F_DriveCar()
local x,y,r1,r2,r3,r4 = 0,0,0,0,0,0
while true do
x,y = VehicleGetPosXYZ(car)
r1 = x + 1.75
r2 = y + 1.75
r3 = x - 1.75
r4 = y - 1.75
if PedInRectangle(gPlayer,r1,r2,r3,r4) and IsButtonBeingReleased(9,0) and not PedIsInAnyVehicle(gPlayer) and not IsButtonPressed(10,0) and not PedIsValid(PedGetGrappleTargetPed()) and not PedIsDead(gPlayer) then
PedSetWeapon(gPlayer,-1)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
Wait(50)
PedWarpIntoCar(gPlayer,car)
end
Wait(0)
end
end
function LoadAllAnim()
LoadAnimationGroup("Authority")
LoadAnimationGroup("Boxing")
LoadAnimationGroup("B_Striker")
LoadAnimationGroup("CV_Female")
LoadAnimationGroup("CV_Male")
LoadAnimationGroup("DO_Edgar")
LoadAnimationGroup("DO_Grap")
LoadAnimationGroup("DO_StrikeCombo")
LoadAnimationGroup("DO_Striker")
LoadAnimationGroup("F_Adult")
LoadAnimationGroup("F_BULLY")
LoadAnimationGroup("F_Crazy")
LoadAnimationGroup("F_Douts")
LoadAnimationGroup("F_Girls")
LoadAnimationGroup("F_Greas")
LoadAnimationGroup("F_Jocks")
LoadAnimationGroup("F_Nerds")
LoadAnimationGroup("F_OldPeds")
LoadAnimationGroup("F_Pref")
LoadAnimationGroup("F_Preps")
LoadAnimationGroup("G_Grappler")
LoadAnimationGroup("G_Johnny")
LoadAnimationGroup("G_Striker")
LoadAnimationGroup("Grap")
LoadAnimationGroup("J_Damon")
LoadAnimationGroup("J_Grappler")
LoadAnimationGroup("J_Melee")
LoadAnimationGroup("J_Ranged")
LoadAnimationGroup("J_Striker")
LoadAnimationGroup("LE_Orderly")
LoadAnimationGroup("Nemesis")
LoadAnimationGroup("N_Ranged")
LoadAnimationGroup("N_Striker")
LoadAnimationGroup("N_Striker_A")
LoadAnimationGroup("N_Striker_B")
LoadAnimationGroup("P_Grappler")
LoadAnimationGroup("P_Striker")
LoadAnimationGroup("PunchBag")
LoadAnimationGroup("Qped")
LoadAnimationGroup("Rat_Ped")
LoadAnimationGroup("Russell")
LoadAnimationGroup("Russell_Pbomb")
LoadAnimationGroup("Straf_Dout")
LoadAnimationGroup("Straf_Fat")
LoadAnimationGroup("Straf_Female")
LoadAnimationGroup("Straf_Male")
LoadAnimationGroup("Straf_Nerd")
LoadAnimationGroup("Straf_Prep")
LoadAnimationGroup("Straf_Savage")
LoadAnimationGroup("Straf_Wrest")
LoadAnimationGroup("TE_Female")
end
I did not put many comments (if any) in the script, but I am pretty neat so hopefully it is still understandable. Any questions you have can be posted here, and I'll try to answer them.
Thanks to alontzedaka (http://www.bully-board.com/index.php?action=profile;u=41344) for glitch testing the mission, and playing it all the way through at least 20 times. XD
-
It was great fun DaBoss. I'm glad I could be a part of it :D
I'll gladly accept more missions for glitch testing when you make them. ^-^
-
Awesome job. This was indeed very creative, as well as a challenging mission. :D
-
Great job, BOSS!
-
Wow , Good ..
-
You must have been a long time on the computer to do this :a-cheer:
-
Yup
-
Nice mod, the ending is kinda lol
I noticed in my first try that if you are outside Hattrick's house when he spawns, you are stuck in the cutscene and have to start it all over again. Still a very enjoyable and creative mission.
-
Nice mod, the ending is kinda lol
I noticed in my first try that if you are outside Hattrick's house when he spawns, you are stuck in the cutscene and have to start it all over again. Still a very enjoyable and creative mission.
really
-
The Miz - Really?! (http://www.youtube.com/watch?v=MNZTifzpwkU#)
-
Thanks to SWEGTA for the video!
Bully MOD - The Cure [REVIEW/GAMEPLAY] (http://www.youtube.com/watch?v=Qi3UM__cPzI#)
2 responses to the video from me though:
1) During the Beatrice fight, you should have an "Ultra Spudgun" from beating Earnest that you can use against Beatrice, which SWEGTA didn't appear to do (The ultra spud gun is basically the super spudgun, but it's semi automatic, infinite ammo, and deals more damage)
2) This mission does not at all show a complex storyline, it's meant as a stupid lil comedy, so if you want something in-depth... this may not be for you. You will just go from stupid objective 1 to stupid objective 2 with a few plot holes in it, but if you don't think about the story too hard, you should be able to enjoy it for being the stupid funny piece of shit it is.
-
Nice
blowJob!!!!
Hoping to see more cool missions m9!
-
Rip daboss.
I think the mission was ok, I didn't mind talking to people after people but you are driving half of the time in the mission. If it wasn't for the vehicle that you get it would take forever.
I will try to make a mission but it will be around the school only so it doesn't become too complex.
-
Well fellas, I should clear some of this up. I know this seems like pure excuses (because well, it is, but honest ones from before the mission was released) but here's an explanation for some things. Still, I do not claim this to be an in-depth story, but SWEGTA did miss some things so here I'll address some things. Some things he didn't notice and some were my fault for getting lazy half way through. Also I had these plot explanations thought out, but didn't really show them in the mission well and maybe expected too much implication.
The context for Pete being outside, is well, Jimmy walks outside of the dorm and Pete happens to be there. You find out why when you talk to him. Jimmy would walk out of the dorm like that any other day so it should seem normal. Pete was waiting outside to tell Jimmy something and Jim noticed him so he walked over.
The reason Pete ran off was he actually needed to find his crack dealer. He was hopped up on drugs too so that is why he runs fast. The mission was meant to be like 2x longer, and after you killed Beatrice you were going to meet Gary to ask wtf is up with Pete, and you two would go to find Pete and get in a drug shoot-out with the new ultra spud-gun and possibly a police shoot-out for the lolz on top of it. A shoot out because Pete fails to pay his drug debts. And the reason Pete doesn't tell you where Algie is is because he's in a rush for drugs.
Gary then when you talk to him, doesn't know where Algie is. But he has a theory that if you need to find him, you will have to be the one to find him, and it must be inside you but you just don't realize it. To find the knowledge of where Algie is, you need to go on a spiritual journey through your mind. How will you do this? I dunno, so let's ask a teacher!
Galloway, Jimmy asks him because Jimmy and Galloway have a better relationship than most teachers because of the favors Jimmy did for him. Galloway still being a drunk ol' bastard currently has some booze, and well when you get enough of a buzz... you may see things. So Galloway thinks giving Jimmy the booze will help him see his vision that reveals where Algie is.
The first attempt is a failure however... Jimmy just had a wicked dream about bunnies. Galloway doesn't take him to the hole, but Jimmy being drunk ends up in the hole. He was too wasted to remember how he got there so it's blacked out, but we'd assume it was chasing bunnies to the hole to begin with.
Galloway follows you but, he just let you do your thing and when you calmed down (as in, stopped punching the air) he talks to you. It was a failure you two find out... so... let's try again!
This time you have a stupid lil dream that shows Algie at the funhouse. He silently and creepily says "Jimmy..." then after a few time shouts "JIMMY!!!". So you figure... algie? Funhouse? He must be at the funhouse!
You go there, and you see Algie is there with his dog. Why the funhouse? Because Algie wanted to be there with his dog. He wasn't just going to stand around the library and wait for Jimmy, he wants to enjoy his day, so he goes to the funhouse while he waits. Why doesn't he go to Jimmy in the dorm though in the first place? Well, Jimmy is sleeping and we all know Jimmy has some intense anger issues, so waking him up would result in some heavy shit. So he told Pete to tell Jimmy about him. But god dammit Pete... you and your drugs couldn't tell us where he was before running off!
Now you think... cure ebola? Da fuq? Beatrice is smart... she may have something! Maybe she's at the girls dorm...
She is! Doing what? Standing there. Why? Because she's a lonely fuck and was just standing outside of the dorm. If she was in the dorm she'd probably be picked on by Mandy anyway so she just stepped out.
She's got one! But dammit hatrick.... took it away. To the Gallo-mobile!
Now arriving at Hatrick's party, we see one of the partiers made his way outside. Perhaps he was waiting for someone at the gates. He notices young Jimmy... a bit young for this party, so he doesn't let him in. Jimmy uses his wits to outsmart (punch) him. Then they fight to the death! knock-out.
Now it's time to go get our paper back... but as all cliche bosses are, they wait until you kill all their minions to come out because they are cowards. Hatrick lets you deal with all the partiers before showing himself.
The house has glitchy AI, but is still fightable.
Hatrick, I wasn't even aware of the apologize bug, but he was just at a party.... maybe he got a lil drunk at the party and well... couldn't even remember what the fuck was goin' on.
Now... back to Beatrice! She's in the same place because she has nothing better to do than study, and if she goes in to study Mandy will just torment her. You obtain the supposed cure.
Now... to Algie! Algie and his dog are a bit more mobile, they decided to go to the library and leave the funhouse while you were out doing your thing. He's there because he got bored of the funhouse.
You cunt! The "cure" killed his dog! Fight!
Oh shit... you fuckin' wit da nerds? Well... Earnest doesn't like you messing with his clique. here he comes with his new Ultra spud gun. A semi auto-matic potato-generating (infinite ammo) spudgun that deals additional damage! You have a few seconds to kill him before he readys the gun and starts firing. If i made him fire right away... the player would totally get butt fucked hard. Now you have the ultra spud gun after beating him, and it indeed is semi automatic so you can just spam the fire button and deal tons of damage to Beatrice upcoming.
Beatrice... what'd you do? You'll die for trying to kill everyone! To what SWEGTA said, she wants it done now, she doesnt want to wait and allow the ebola to spread and get to more people, so she must exterminate NOW.
At this point, Jimmy helped Algie (or, tried) and saved the world from beatrice, so he fulfilled his duty. He however didn't check on Pete's drug habbit, because I got lazy.
-
I find the whole thing funny and hilarious as shit !!!!!! Laughing hard all the way through Swegta's whacky description also.
Maybe the storyline was a little hinky, but so what ? I still had a fun fart attack while watching. Keep those creative juices flowing !!!!!