News: Welcome back to Bullworth! If you haven't already, you will need to reset your password..


Author Topic: The Cure: Open Source Mission  (Read 9845 times)

0 Members and 1 Guest are viewing this topic.

Offline DaBOSS54320

  • Hero Member
  • ****
  • Posts: 3,398
  • Gender: Female
    • View Profile
The Cure: Open Source Mission
« 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

and of course, here is the source as well:

Code: [Select]
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 for glitch testing the mission, and playing it all the way through at least 20 times. XD
« Last Edit: November 27, 2014, 06:08:39 PM by DaBOSS54320 »

Offline alontzedaka

  • Like you'd know..
  • Sr. Member
  • ***
  • Posts: 692
  • Gender: Male
    • View Profile
Re: The Cure: Open Source Mission
« Reply #1 on: November 27, 2014, 05:54:59 PM »
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.  ^-^

Offline Unknownsoldier

  • Hero Member
  • ****
  • Posts: 2,773
    • View Profile
Re: The Cure: Open Source Mission
« Reply #2 on: November 27, 2014, 10:37:21 PM »
Awesome job. This was indeed very creative, as well as a challenging mission.  :D

Offline SWEGTA

  • Da Forum Luffs Me!
  • *****
  • Posts: 6,423
  • Gender: Male
  • Swee Gee Tee Ayy
    • View Profile
    • Bully & GTA videos
Re: The Cure: Open Source Mission
« Reply #3 on: November 28, 2014, 12:26:31 AM »
Great job, BOSS!

Offline Ky

  • Full Member
  • ***
  • Posts: 329
  • Gender: Male
  • <3
    • View Profile
Re: The Cure: Open Source Mission
« Reply #4 on: November 28, 2014, 04:58:13 AM »
Wow , Good ..

Offline Ky

  • Full Member
  • ***
  • Posts: 329
  • Gender: Male
  • <3
    • View Profile
Re: The Cure: Open Source Mission
« Reply #5 on: November 28, 2014, 12:14:30 PM »
You must have been a long time on the computer to do this  :a-cheer:

Offline Unknownsoldier

  • Hero Member
  • ****
  • Posts: 2,773
    • View Profile
Re: The Cure: Open Source Mission
« Reply #6 on: November 30, 2014, 03:17:27 AM »
Yup

deadpoolXYZ

  • Guest
Re: The Cure: Open Source Mission
« Reply #7 on: December 01, 2014, 01:45:27 PM »
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.

Offline Ky

  • Full Member
  • ***
  • Posts: 329
  • Gender: Male
  • <3
    • View Profile
Re: The Cure: Open Source Mission
« Reply #8 on: December 05, 2014, 04:19:08 AM »
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

Offline Unknownsoldier

  • Hero Member
  • ****
  • Posts: 2,773
    • View Profile
Re: The Cure: Open Source Mission
« Reply #9 on: December 16, 2014, 07:31:48 PM »

Offline DaBOSS54320

  • Hero Member
  • ****
  • Posts: 3,398
  • Gender: Female
    • View Profile
Review/Gameplay Video
« Reply #10 on: March 30, 2015, 10:27:14 PM »
Thanks to SWEGTA for the video!

Bully MOD - The Cure [REVIEW/GAMEPLAY]


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.

Offline DahCobra33

  • Decepticon
  • Hero Member
  • ****
  • Posts: 3,057
  • Gender: Male
  • I don't deal with psychos,I put em' away...
    • View Profile
Re: The Cure: Open Source Mission
« Reply #11 on: March 31, 2015, 08:38:43 AM »
Nice blowJob!!!!
Hoping to see more cool missions m9!

deadpoolXYZ

  • Guest
Re: The Cure: Open Source Mission
« Reply #12 on: March 31, 2015, 08:46:24 AM »
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.

Offline DaBOSS54320

  • Hero Member
  • ****
  • Posts: 3,398
  • Gender: Female
    • View Profile
Re: The Cure: Open Source Mission
« Reply #13 on: April 01, 2015, 09:23:16 PM »
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.

Offline BloodChuckZ

  • Bullworth God
  • Original Member
  • Define "Life" For Me Again...
  • *
  • Posts: 39,563
  • Gender: Male
  • Are You Insane ???
    • View Profile
Re: The Cure: Open Source Mission
« Reply #14 on: April 01, 2015, 11:03:32 PM »
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 !!!!!