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


Show Posts

Messages | * Topics | Attachments

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Unknownsoldier

Pages: 1 2 [3] 4 5 6
31
Community Stories / The Road
« on: June 25, 2015, 06:56:12 AM »
Shitty story I wrote when my internet went out. Laugh all you want, I just wrote whatever came to my mind. So here it is. goddammit fml



The Road

In a remote area in the American state of Minnesota, was a small town, with little known history, so little, few people knew it existed. In that town was a long road, which has many stories told about it, only few knew these stories however. It is rumored that less than 5 people have went down the road, but have not returned.

In this town lived a poor family. Being they had little gas money, and school was out due to it being winter break. The mother did not have a job, and the father was at his job for the majority of the day, which payed very little money. And they had 2 children. The son's name was Blake(19), and the daughter's was Kaitlin(21). The two siblings had little knowledge on the subject. They hardly believed it anyways. One night, Blake was going to sleep. Instead of sleeping however, he decided to think about that road, and if it was real. He thought he had nothing planned in his life, and that he wanted a goal. Something he could look back and say to himself "I did that."

He came to the conclusion that he wanted to know if the road even existed. He wanted to know what would happen if one really did travel down that road. He planned to do it. A few days later, it was a very gloomy day. A day where all your housemates slept through most of the day. That night, when his father came home, Blake waited for everyone to be sound asleep.

It was about 3:00 AM. He took the keys to his dad's car, but with no cell phone, nor any source of communication, he was on his own. He knew it, but did not care. He really wanted to solve the mystery. He entered the car, with nothing but fear in his mind. As he started up the silver sedan, he took one look at the rearview mirror, thinking he had the power and will to fulfill his goal. Not having any street address information of the road, he used it's described adjectives and rumored surroundings to find it. Eventually, he found the road. The little bit he knew, matched everything he was staring at.

Kaitlin had just woken up, and was heading to refill their cat's food. The food was in the garage. She noticed the car was gone. Being alarmed, she ran back to the main corridor to alert her parents the vehicle was missing. Her father filled with fear, anger and confusion decided to call the police. As he described the vehicle, along with the license plate number. Being that the police station was close to the road, they had mentioned they saw a silver sedan going past the station, and behind some trees, on a distant road. The officer contemplated on following the route, as he checked the security camera tapes.

Blake going crazy in his mind, wants to pull over for a break. As he decides to do otherwise, the car ends up stalling in the middle of the long road. After 10 long minutes of trying to get the car started, the engine finally started. he decided to listen to the radio as a rest. He was so far from any stations, but could hear a very fain sound coming from the speakers. He heard weird sounds, and one that sounded like a young girl screaming. He could also here a raspy demonic voice saying "You're next!" repeatedly. Every time he heard it, it seemed to sound more violent, and intense. He turned the radio off. Sitting still, thinking twice about his decision. He then looked behind him, and could see the distance he just drove. Blake did not give up. He shifted gears, and drove on.

As the father complained to Officer Bentley, the officer decided to follow the route he saw in the security tapes. He followed the path, but stayed on his phone with the father. He asked for the father's information prior to doing so. "Jackson" the father replied. "Jackson King" Kaitlin ran back to her room in fear, soon realizing her brother was missing. "It all makes sense!" She ran to her father, interrupting his sentence, explaining that Blake was missing. Jackson explained to the cop his son was missing. The cop then followed the path the sedan drove.

Blake started dozing off. He was getting tired. At this point it was already a few minutes to sunrise, considering it took a long time to even find the road. As he was almost asleep, but a sudden vibration rushed through the car, waking him up. He pulled over once more, and saw a popped tire. He was confused. He looked at the road from a distance, but saw nothing on the ground, other than the street itself. As he looked ahead, he could see nothing but darkness. The sun was rising behind him. He could see the sky turning a shade of orange. As he looked ahead into the darkness, he could see many things. He just stopped thinking about that, and thought it was just his mind playing tricks on him.

Blake walked a few steps forward into the dark oblivion. He didn't want to get any closer, but he couldn't help but to keep walking. His eyes locked on the sight. He felt attracted to the void. As he walked, he was alarmed by screeching voices. The voices were very faint, much similar to the radio ones. He forced himself to believe it was all in his head. "It's all in my head. I can do this. There is nothing to worry about." As slow as he was walking, he started to sweat, but still felt cold. His palms sweating, body shaking, knees nearly giving out, eyes closing and overall gaining fatigue.

The officer had no idea about the road, and thought it was just a regular road. "This has to be it. It's so convincing." The officer drove down the road. The phone call started to decrease in quality. Jackson knew something was wrong. The officer said he felt a chill run down his spine. The officer said he could see a human figure wearing dark clothes, walking away from a silver vehicle. As he drove down the road, Jackson only heard "SHIIIIIIIT!" Loud screams coming from the officer. He could barely make up what he was saying at this point.

Blake was so tired. He wanted to go home. He wanted to lay down on his bed. He just wanted to sleep. But he was far from home. He had to complete his objective. It was mind over matter here. But he thought he could collapse any second. And so he did. He collapsed to the ground, smacking his skull onto the asphalt.

Blake having no consciousness, and the officer losing control of his vehicle, slammed the side of his car into Blake. This killed blake. As the police car rolled over Blake's body causing the vehicle to land with impact, the driver side door was dented and pushed in so deep, it would be sure to trap the driver. The glass from the window stabbed the officer multiple times in multiple areas. Causing him to bleed to death, it was a slow death.

Jackson broke down in tears and lost hope. He wanted to go to the area everything happened in, but at the same time, he knew it would be a huge mistake. He knew it sounded selfish, but he did not want to end up like Blake and Officer Bentley. "Get back to bed. "Everything is going to be alright."

That same morning, only a few more hours into daylight, Kaitlin woke up. She felt extremely tired. In her head, it was all a dream. She poured a bowl of cereal. Before eating, she went to greet her parents. Her father was gone, her brother was gone, and their car was gone.

Back at the road, not only the remains of the disaster between Blake and the officer, but Jackson had joined in on the action, and just added up to the failed attempts.

Kaitlin then ran to her mother in tears. Her mother, Julia, had no idea what was going on. Kaitlin gave her a tight hug. Julia was filled in on everything that happened  only a few hours ago. They cried for nearly half an hour. Kaitlin then knew the legend HAD to be true. They knew there was nothing they could do about it.

The small family then remained, Kaitlin and Julia King.


I apologize if there are any grammar mistakes. My internet went out at like 3:30 AM and around 4 I decided to write this story. I only have 13% battery left. It's 6:36 AM because I kept bouncing back and forth from working on the story to watching George Lopez. I am shocked that I actually got through the night not bored af. And no I don't write to myself, ever. I just decided to write this, and may go to sleep in a bit. I know its a shitty story, but I am writing this in Notes on my iPad.

32
Bully Modding Archives / Auto 100%?
« on: June 09, 2015, 12:18:12 AM »
I was looking through a script, and I found this:
Code: [Select]
main = function()
  MissionForceCompleted("1_01")
  MissionSuccessCountInc("1_01")
  MissionForceCompleted("1_02")
  MissionSuccessCountInc("1_02")
  MissionForceCompleted("1_02A")
  MissionSuccessCountInc("1_02A")
  MissionForceCompleted("1_02B")
  MissionSuccessCountInc("1_02B")
  MissionForceCompleted("1_02B_Dummy")
  MissionSuccessCountInc("1_02B_Dummy")
  MissionForceCompleted("1_02C")
  MissionSuccessCountInc("1_02C")
  MissionForceCompleted("1_03")
  MissionSuccessCountInc("1_03")
  MissionForceCompleted("Post_1_03")
  MissionSuccessCountInc("Post_1_03")
  MissionForceCompleted("1_04")
  MissionSuccessCountInc("1_04")
  MissionForceCompleted("1_05")
  MissionSuccessCountInc("1_05")
  MissionForceCompleted("1_06_01")
  MissionSuccessCountInc("1_06_01")
  MissionForceCompleted("1_06_02")
  MissionSuccessCountInc("1_06_02")
  MissionForceCompleted("1_06_03")
  MissionSuccessCountInc("1_06_03")
  MissionForceCompleted("1_06_04")
  MissionSuccessCountInc("1_06_04")
  MissionForceCompleted("1_06_07")
  MissionSuccessCountInc("1_06_07")
  MissionForceCompleted("1_06_08")
  MissionSuccessCountInc("1_06_08")
  MissionForceCompleted("1_07")
  MissionSuccessCountInc("1_07")
  MissionForceCompleted("1_08")
  MissionSuccessCountInc("1_08")
  MissionForceCompleted("1_G1")
  MissionSuccessCountInc("1_G1")
  MissionForceCompleted("1_09")
  MissionSuccessCountInc("1_09")
  MissionForceCompleted("1_11_HallStrt")
  MissionSuccessCountInc("1_11_HallStrt")
  MissionForceCompleted("1_11x1")
  MissionSuccessCountInc("1_11x1")
  MissionForceCompleted("1_11xp")
  MissionSuccessCountInc("1_11xp")
  MissionForceCompleted("1_11x2Unlock")
  MissionSuccessCountInc("1_11x2Unlock")
  MissionForceCompleted("1_11x2")
  MissionSuccessCountInc("1_11x2")
  MissionForceCompleted("1_11_Dummy")
  MissionSuccessCountInc("1_11_Dummy")
  MissionForceCompleted("2_S04")
  MissionSuccessCountInc("2_S04")
  MissionForceCompleted("1_10")
  MissionSuccessCountInc("1_10")
  MissionForceCompleted("1_B")
  MissionSuccessCountInc("1_B")
  MissionForceCompleted("Chapt1Trans")
  MissionSuccessCountInc("Chapt1Trans")
  MissionForceCompleted("2_R11_Chad")
  MissionSuccessCountInc("2_R11_Chad")
  MissionForceCompleted("2_R11_Justin")
  MissionSuccessCountInc("2_R11_Justin")
  MissionForceCompleted("2_R11_Parker")
  MissionSuccessCountInc("2_R11_Parker")
  MissionForceCompleted("2_R11_Bryce")
  MissionSuccessCountInc("2_R11_Bryce")
  MissionForceCompleted("2_R11_Random")
  MissionSuccessCountInc("2_R11_Random")
  MissionForceCompleted("1_S01")
  MissionSuccessCountInc("1_S01")
  MissionForceCompleted("2_01")
  MissionSuccessCountInc("2_01")
  MissionForceCompleted("2_R03")
  MissionSuccessCountInc("2_R03")
  MissionForceCompleted("2_R03_X")
  MissionSuccessCountInc("2_R03_X")
  MissionForceCompleted("2_02")
  MissionSuccessCountInc("2_02")
  MissionForceCompleted("2_03")
  MissionSuccessCountInc("2_03")
  MissionForceCompleted("2_06")
  MissionSuccessCountInc("2_06")
  MissionForceCompleted("2_G2")
  MissionSuccessCountInc("2_G2")
  MissionForceCompleted("2_S06")
  MissionSuccessCountInc("2_S06")
  MissionForceCompleted("2_04")
  MissionSuccessCountInc("2_04")
  MissionForceCompleted("2_07")
  MissionSuccessCountInc("2_07")
  MissionForceCompleted("3_R08_Rich1")
  MissionSuccessCountInc("3_R08_Rich1")
  MissionForceCompleted("3_R08_Rich2")
  MissionSuccessCountInc("3_R08_Rich2")
  MissionForceCompleted("3_R08_Rich3")
  MissionSuccessCountInc("3_R08_Rich3")
  MissionForceCompleted("3_R08_Rich4")
  MissionSuccessCountInc("3_R08_Rich4")
  MissionForceCompleted("3_R08_Rich5")
  MissionSuccessCountInc("3_R08_Rich5")
  MissionForceCompleted("3_R08_Rich6")
  MissionSuccessCountInc("3_R08_Rich6")
  MissionForceCompleted("3_R08_Rich7")
  MissionSuccessCountInc("3_R08_Rich7")
  MissionForceCompleted("3_R08_Business1")
  MissionSuccessCountInc("3_R08_Business1")
  MissionForceCompleted("3_R08_Business2")
  MissionSuccessCountInc("3_R08_Business2")
  MissionForceCompleted("3_R08_Business3")
  MissionSuccessCountInc("3_R08_Business3")
  MissionForceCompleted("3_R08_Business4")
  MissionSuccessCountInc("3_R08_Business4")
  MissionForceCompleted("3_R08_Poor1")
  MissionSuccessCountInc("3_R08_Poor1")
  MissionForceCompleted("3_R08_Poor2")
  MissionSuccessCountInc("3_R08_Poor2")
  MissionForceCompleted("3_R08_School1")
  MissionSuccessCountInc("3_R08_School1")
  MissionForceCompleted("3_R09_P3")
  MissionSuccessCountInc("3_R09_P3")
  MissionForceCompleted("2_05")
  MissionSuccessCountInc("2_05")
  MissionForceCompleted("2_08")
  MissionSuccessCountInc("2_08")
  MissionForceCompleted("2_09")
  MissionSuccessCountInc("2_09")
  MissionForceCompleted("2_B")
  MissionSuccessCountInc("2_B")
  MissionForceCompleted("Chapt2Trans")
  MissionSuccessCountInc("Chapt2Trans")
  MissionForceCompleted("2_S05")
  MissionSuccessCountInc("2_S05")
  MissionForceCompleted("3_R09_N")
  MissionSuccessCountInc("3_R09_N")
  MissionForceCompleted("3_01")
  MissionSuccessCountInc("3_01")
  MissionForceCompleted("3_02")
  MissionSuccessCountInc("3_02")
  MissionForceCompleted("3_08_Launch")
  MissionSuccessCountInc("3_08_Launch")
  MissionForceCompleted("3_08")
  MissionSuccessCountInc("3_08")
  MissionForceCompleted("3_08_PostDummy")
  MissionSuccessCountInc("3_08_PostDummy")
  MissionForceCompleted("2_S02")
  MissionSuccessCountInc("2_S02")
  MissionForceCompleted("3_04")
  MissionSuccessCountInc("3_04")
  MissionForceCompleted("3_S10")
  MissionSuccessCountInc("3_S10")
  MissionForceCompleted("3_R09_G3")
  MissionSuccessCountInc("3_R09_G3")
  MissionForceCompleted("3_G3")
  MissionSuccessCountInc("3_G3")
  MissionForceCompleted("3_05")
  MissionSuccessCountInc("3_05")
  MissionForceCompleted("3_06")
  MissionSuccessCountInc("3_06")
  MissionForceCompleted("3_B")
  MissionSuccessCountInc("3_B")
  MissionForceCompleted("Chapt3Trans")
  MissionSuccessCountInc("Chapt3Trans")
  MissionForceCompleted("4_S12")
  MissionSuccessCountInc("4_S12")
  MissionForceCompleted("2_S05B")
  MissionSuccessCountInc("2_S05B")
  MissionForceCompleted("4_02")
  MissionSuccessCountInc("4_02")
  MissionForceCompleted("4_B1")
  MissionSuccessCountInc("4_B1")
  MissionForceCompleted("3_S11")
  MissionSuccessCountInc("3_S11")
  MissionForceCompleted("3_R09_J3")
  MissionSuccessCountInc("3_R09_J3")
  MissionForceCompleted("4_01")
  MissionSuccessCountInc("4_01")
  MissionForceCompleted("4_03")
  MissionSuccessCountInc("4_03")
  MissionForceCompleted("4_04")
  MissionSuccessCountInc("4_04")
  MissionForceCompleted("4_05")
  MissionSuccessCountInc("4_05")
  MissionForceCompleted("4_G4")
  MissionSuccessCountInc("4_G4")
  MissionForceCompleted("4_06")
  MissionSuccessCountInc("4_06")
  MissionForceCompleted("4_B2")
  MissionSuccessCountInc("4_B2")
  MissionForceCompleted("Chapt4Trans")
  MissionSuccessCountInc("Chapt4Trans")
  MissionForceCompleted("3_S03")
  MissionSuccessCountInc("3_S03")
  MissionForceCompleted("5_09")
  MissionSuccessCountInc("5_09")
  MissionForceCompleted("5_01")
  MissionSuccessCountInc("5_01")
  MissionForceCompleted("5_04")
  MissionSuccessCountInc("5_04")
  MissionForceCompleted("5_03")
  MissionSuccessCountInc("5_03")
  MissionForceCompleted("3_R09_D3")
  MissionSuccessCountInc("3_R09_D3")
  MissionForceCompleted("5_05")
  MissionSuccessCountInc("5_05")
  MissionForceCompleted("5_G5")
  MissionSuccessCountInc("5_G5")
  MissionForceCompleted("5_02")
  MissionSuccessCountInc("5_02")
  MissionForceCompleted("6_Dummy")
  MissionSuccessCountInc("6_Dummy")
  MissionForceCompleted("6_01_Launch")
  MissionSuccessCountInc("6_01_Launch")
  MissionForceCompleted("6_01")
  MissionSuccessCountInc("6_01")
  MissionForceCompleted("5_06")
  MissionSuccessCountInc("5_06")
  MissionForceCompleted("5_07a")
  MissionSuccessCountInc("5_07a")
  MissionForceCompleted("5_B")
  MissionSuccessCountInc("5_B")
  MissionForceCompleted("6_02")
  MissionSuccessCountInc("6_02")
  MissionForceCompleted("6_03")
  MissionSuccessCountInc("6_03")
  MissionForceCompleted("6_B")
  MissionSuccessCountInc("6_B")
  MissionForceCompleted("6_PassAll")
  MissionSuccessCountInc("6_PassAll")
  MissionForceCompleted("GoKart_GP1")
  MissionSuccessCountInc("GoKart_GP1")
  MissionForceCompleted("GoKart_GP2")
  MissionSuccessCountInc("GoKart_GP2")
  MissionForceCompleted("GoKart_GP3")
  MissionSuccessCountInc("GoKart_GP3")
  MissionForceCompleted("GoKart_GP4")
  MissionSuccessCountInc("GoKart_GP4")
  MissionForceCompleted("GoKart_GP5")
  MissionSuccessCountInc("GoKart_GP5")
  MissionForceCompleted("GoKart_SR1")
  MissionSuccessCountInc("GoKart_SR1")
  MissionForceCompleted("GoKart_SR2")
  MissionSuccessCountInc("GoKart_SR2")
  MissionForceCompleted("GoKart_SR3")
  MissionSuccessCountInc("GoKart_SR3")
  MissionForceCompleted("LawnMowing1a")
  MissionSuccessCountInc("LawnMowing1a")
  MissionForceCompleted("LawnMowing1b")
  MissionSuccessCountInc("LawnMowing1b")
  MissionForceCompleted("LawnMowing1c")
  MissionSuccessCountInc("LawnMowing1c")
  MissionForceCompleted("LawnMowing2a")
  MissionSuccessCountInc("LawnMowing2a")
  MissionForceCompleted("LawnMowing2b")
  MissionSuccessCountInc("LawnMowing2b")
  MissionForceCompleted("LawnMowing2c")
  MissionSuccessCountInc("LawnMowing2c")
  MissionForceCompleted("LawnMowing3a")
  MissionSuccessCountInc("LawnMowing3a")
  MissionForceCompleted("LawnMowing3b")
  MissionSuccessCountInc("LawnMowing3b")
  MissionForceCompleted("LawnMowing3c")
  MissionSuccessCountInc("LawnMowing3c")
  MissionForceCompleted("JobLawnMowing1a")
  MissionSuccessCountInc("JobLawnMowing1a")
  MissionForceCompleted("JobLawnMowing1b")
  MissionSuccessCountInc("JobLawnMowing1b")
  MissionForceCompleted("JobLawnMowing1c")
  MissionSuccessCountInc("JobLawnMowing1c")
  MissionForceCompleted("JobLawnMowing2a")
  MissionSuccessCountInc("JobLawnMowing2a")
  MissionForceCompleted("JobLawnMowing2b")
  MissionSuccessCountInc("JobLawnMowing2b")
  MissionForceCompleted("JobLawnMowing2c")
  MissionSuccessCountInc("JobLawnMowing2c")
  MissionForceCompleted("P_Snow1")
  MissionSuccessCountInc("P_Snow1")
  MissionForceCompleted("P_Snow2")
  MissionSuccessCountInc("P_Snow2")
  MissionForceCompleted("P_Snow3")
  MissionSuccessCountInc("P_Snow3")
  MissionForceCompleted("P_Snow4")
  MissionSuccessCountInc("P_Snow4")
  MissionForceCompleted("P_Snow5")
  MissionSuccessCountInc("P_Snow5")
  MissionForceCompleted("P_Snow6")
  MissionSuccessCountInc("P_Snow6")
  MissionForceCompleted("C_Chem_1")
  MissionSuccessCountInc("C_Chem_1")
  MissionForceCompleted("C_Chem_2")
  MissionSuccessCountInc("C_Chem_2")
  MissionForceCompleted("C_Chem_3")
  MissionSuccessCountInc("C_Chem_3")
  MissionForceCompleted("C_Chem_4")
  MissionSuccessCountInc("C_Chem_4")
  MissionForceCompleted("C_Chem_5")
  MissionSuccessCountInc("C_Chem_5")
  MissionForceCompleted("C_Chem_5_repeat")
  MissionSuccessCountInc("C_Chem_5_repeat")
  MissionForceCompleted("C_Art_1")
  MissionSuccessCountInc("C_Art_1")
  MissionForceCompleted("C_Art_2")
  MissionSuccessCountInc("C_Art_2")
  MissionForceCompleted("C_Art_3")
  MissionSuccessCountInc("C_Art_3")
  MissionForceCompleted("C_Art_4")
  MissionSuccessCountInc("C_Art_4")
  MissionForceCompleted("C_Art_5")
  MissionSuccessCountInc("C_Art_5")
  MissionForceCompleted("C_Art_5_repeat")
  MissionSuccessCountInc("C_Art_5_repeat")
  MissionForceCompleted("Dummy_Wrestling_1")
  MissionSuccessCountInc("Dummy_Wrestling_1")
  MissionForceCompleted("Dummy_Wrestling_2")
  MissionSuccessCountInc("Dummy_Wrestling_2")
  MissionForceCompleted("Dummy_Wrestling_3")
  MissionSuccessCountInc("Dummy_Wrestling_3")
  MissionForceCompleted("Dummy_Wrestling_4")
  MissionSuccessCountInc("Dummy_Wrestling_4")
  MissionForceCompleted("Dummy_Wrestling_5")
  MissionSuccessCountInc("Dummy_Wrestling_5")
  MissionForceCompleted("C_Wrestling_1")
  MissionSuccessCountInc("C_Wrestling_1")
  MissionForceCompleted("C_Wrestling_2")
  MissionSuccessCountInc("C_Wrestling_2")
  MissionForceCompleted("C_Wrestling_3")
  MissionSuccessCountInc("C_Wrestling_3")
  MissionForceCompleted("C_Wrestling_4")
  MissionSuccessCountInc("C_Wrestling_4")
  MissionForceCompleted("C_Wrestling_5")
  MissionSuccessCountInc("C_Wrestling_5")
  MissionForceCompleted("C_Photography_1")
  MissionSuccessCountInc("C_Photography_1")
  MissionForceCompleted("C_Photography_2")
  MissionSuccessCountInc("C_Photography_2")
  MissionForceCompleted("C_Photography_3")
  MissionSuccessCountInc("C_Photography_3")
  MissionForceCompleted("C_Photography_4")
  MissionSuccessCountInc("C_Photography_4")
  MissionForceCompleted("C_Photography_5")
  MissionSuccessCountInc("C_Photography_5")
  MissionForceCompleted("C_English_1")
  MissionSuccessCountInc("C_English_1")
  MissionForceCompleted("C_English_2")
  MissionSuccessCountInc("C_English_2")
  MissionForceCompleted("C_English_3")
  MissionSuccessCountInc("C_English_3")
  MissionForceCompleted("C_English_4")
  MissionSuccessCountInc("C_English_4")
  MissionForceCompleted("C_English_5")
  MissionSuccessCountInc("C_English_5")
  MissionForceCompleted("C_English_5_unlocked")
  MissionSuccessCountInc("C_English_5_unlocked")
  MissionForceCompleted("C_Shop_1")
  MissionSuccessCountInc("C_Shop_1")
  MissionForceCompleted("C_Shop_2")
  MissionSuccessCountInc("C_Shop_2")
  MissionForceCompleted("C_Shop_3")
  MissionSuccessCountInc("C_Shop_3")
  MissionForceCompleted("C_Shop_4")
  MissionSuccessCountInc("C_Shop_4")
  MissionForceCompleted("C_Shop_5")
  MissionSuccessCountInc("C_Shop_5")
  MissionForceCompleted("C_Shop_5_repeat")
  MissionSuccessCountInc("C_Shop_5_repeat")
  MissionForceCompleted("C_Dodgeball_1")
  MissionSuccessCountInc("C_Dodgeball_1")
  MissionForceCompleted("C_Dodgeball_2")
  MissionSuccessCountInc("C_Dodgeball_2")
  MissionForceCompleted("C_Dodgeball_3")
  MissionSuccessCountInc("C_Dodgeball_3")
  MissionForceCompleted("C_Dodgeball_4")
  MissionSuccessCountInc("C_Dodgeball_4")
  MissionForceCompleted("C_Dodgeball_5")
  MissionSuccessCountInc("C_Dodgeball_5")
  MissionSucceed(false, false, false)
end

This seems like something that completes all the goals in the game. The only part I don't understand is that last part MissionSucceed(false, false, false)

I haven't tried this out yet, and may not. But if I do I will leave my results here.

33
Mod Releases / HD Terrain Retexture
« on: May 03, 2015, 08:54:51 PM »
This is a complete retexture of the Z_terrain file. In case any of you remember my old one(which was later lost), this is a re design from that old one. But completely re-made.

Bully SE: Summer Textures

Yes, I am using some of Rambo7's models.




34
Mod Releases / Bully SE Trainer
« on: April 14, 2015, 09:01:35 PM »
Bully SE Trainer

http://www.bully-board.com/index.php?action=downloads;sa=view;down=170

the Readme file i put in there shows you how to use the trainer

35
Mod Releases / Casey + Fighting Style
« on: April 14, 2015, 09:01:31 PM »
Casey + Fighting Style

http://www.bully-board.com/index.php?action=downloads;sa=view;down=188

You can now play as Casey!

36
Mod Releases / Bully Audio Ripping Tools
« on: April 14, 2015, 09:01:28 PM »
Bully Audio Ripping Tools

http://www.bully-board.com/index.php?action=downloads;sa=view;down=189

There are instructions...

Link to original(No instructions) http://www.mediafire.com/download/by365024r8j5n1n/Bully+Audio+Ripping+Tools.zip
#######################################################################


QuickBMS
by Luigi Auriemma
e-mail: [email protected]
web:    aluigi.org
home:   http://aluigi.org/papers.htm#quickbms


#######################################################################


1) Introduction
2) Usage
3) Reimport the extracted files
4) How to create scripts (for developers only!)
5) Experimental input, output and other features
6) Notes
7) Support
8) Additional credits


#######################################################################

===============
1) Introduction
===============


QuickBMS is a multiplatform extractor engine that can be programmed
through some simple textual scripts for extracting files and
information from the archives of any program and moreover games.

The script language from which QuickBMS is derived is MexScript
documented here: http://wiki.xentax.com/index.php/BMS
So QuickBMS is FULLY compatible with that original syntax and all the
scripts that were created here:
http://forum.xentax.com/viewtopic.php?t=1086

QuickBMS supports also the WCX plugins of Total Commander:
  http://www.totalcmd.net/directory/packer.html
  http://www.ghisler.com/plugins.htm

I improved the original BMS language for removing some implied fields
(like the file number in some commands) and adding new commands (like
Encryption) and behaviours (like negative GoTo) that allow QuickBMS to
work with tons of simple and complex formats and even doing things like
modifying files, creating new files with headers and reimporting files
back in their archives.

The tool is open source under the GPL license and works on both Windows
and Linux and on both little and big endian architectures like Intel
and PPC.

The official homepage of QuickBMS is:

  http://quickbms.aluigi.org

For Linux users there is a Makefile in the src folder, the only
requirements are openssl, zlib and bzip2 while the optional components
are ucl, mcrypt and tomcrypt (uncomment the commented line near the
end of the Makefile to enable them).
If your distro supports apt-get and you have problems during the usage
of make try the following:

  apt-get install gcc g++ zlib1g-dev libbz2-dev libssl-dev liblzo2-dev


#######################################################################

========
2) Usage
========


Simple and quick:
- double-click on quickbms.exe
- select the script or the plugin for the type of archive you want to
  extract (for example zip.bms if it's a zip file)
- select the archive or multiple files
  you can also select a whole folder by entering in it and then typing
  * or "" in the "File name:" field and select Open
- select the output folder where extracting the files (you can specify
  any filename, it will be ignored because only the directory is taken)
- watch the progress of the extraction

That one was the simple "GUI" usage but QuickBMS can do various other
things when launched from the console because it supports various
command-line options for advanced users or for who writes scripts.
You can view all the available options simply launching QuickBMS
without arguments, example:

    Usage: quickbms [options] <script.BMS> <input_archive/folder> [output_folder]

    Options:
    -l     list the files without extracting them
    -f W   filter the files to extract using the W wildcard, example -f "*.mp3"
           example: quickbms -f "*.mp3" script.bms archive.dat output_folder
    -F W   as above but works only with the files in the input folder (if used)
           example: quickbms -F "*.dat" script.bms input_folder output_folder
    -o     if the output files already exist this option will overwrite them
           automatically without asking the user confirmation
    -r     experimental reimport option that should work with many archives:
             quickbms script.bms archive.pak output_folder
             modify the needed files in output_folder and maybe remove the others
             quickbms -w -r script.bms archive.pak output_folder
           you must read section 3 of quickbms.txt before using this feature
    -s SF  add a script file or command before the execution of the input script,
           useful if an archive uses a different endianess or encryption and so on

    Advanced options:
    -d     automatically create an additional output folder with the name of the
           input file processed without extension
    -E     experimental option for automatically reversing the endianess of any
           file simply reading it field by field (so each get will produce a put)
    -c     quick list of the basic BMS commands and some notes about this tool
    -S CMD execute the command CMD on each file extracted, you must specify the
           #INPUT# placeholder which will be replaced by the name of the file
           example: -S "lame -b 192 -t --quiet #INPUT#"

    Debug and experimental options:
    -v     verbose debug information, useful for verifying possible errors
    -V     alternative verbose output, useful for programmers
    -L F   dump the offset/size/name of the files inside the file F
    -x     use the hexadecimal notation in myitoa (debug)
    -0     no extraction of files, useful for testing a script without using space
    -R     needed for the programs that act as interface for QuickBMS
    -a S   pass arguments to the input script like quickbms_arg1, 2, 3 and so on
    -H     cool HTML hex viewer output, use it only with very small files!
    -9     toggle XDBG_ALLOC_ACTIVE  (enabled)
    -8     toggle XDBG_ALLOC_INDEX   (enabled)
    -7     toggle XDBG_ALLOC_VERBOSE (disabled)
    -6     toggle XDBG_HEAPVALIDATE  (disabled)

    Features and security activation options:
    -w     enable the write mode required to write physical input files with Put*
    -C     enable the usage of CallDll without asking permission
    -n     enable the usage of network sockets
    -p     enable the usage of processes
    -A     enable the usage of audio device
    -g     enable the usage of video graphic device
    -m     enable the usage of Windows messages
    -C     enable CallDll without asking permission

Remember that the script and the input archive/folder are ever REQUIRED
and must be specified at the end of the command-line so if you want to
list all the mp3 files in a particular archive you must use:

  quickbms -l -f "*.mp3" zip.bms myfile.zip

QuickBMS supports also a folder as input which means that with a single
command it's possible to unpack all the archives of a game directly
using QuickBMS.

Imagine to use the zip.bms script with all the zip files located in the
c:windows   emp folder:

  quickbms -F "*.zip" zip.bms "c:Program Files" c:output_folder

Note: in case "*.zip" doesn't work you can use {} instead of *: "{}.zip"

Except for -l, -f, -F and maybe -o and -s options the other are
intended for debugging, special features or enabling/disabling some
options and so should be ignored by the normal users.

If the extraction with a particular script is too slow or scanning a
folder takes too much memory and time try using the -9 option that
disables the memory protection.

You can apply these options directly in a link to quickbms so that you
can use the double-click method and all the command-line options you
desire.

In the same package you should find also quickbms_4gb_files.exe
(previously known as quickms64_test.exe) that is an "experimental"
version that uses 64bit numbers instead of the original 32 bits:
- it supports archives and files bigger than 4 gigabytes
- it may have problems to work with some "particular" scripts
- it's a native 32bit application so works on both 32 and 64bit systems
- it's experimental and so not much supported, problems like crashes
  and incorrect math operations can happen often

---

Advanced users could find useful also the other options:

-d automatically creates a folder with the name of the input file where
   placing all the files, sometimes it could be useful in some rare
   cases where users needed it.

-E if you have a bms script that simply reads a file format you can
   change the endianess of all its numeric fields on the fly simply
   using this option.
   for example if you have a "get SIZE long" a 32bit number will be
   read as usual and additionally it will be reversed (0x11223344 to
   0x44332211) and placed at the same location.
   remember that you need to specify also the -w option with physical
   files, alternatively you can save the whole file in a memory file
   and then dumping it so that -w is not needed.
   with this option is really a joke to convert the endianess of files
   between different platforms, like xbox 360 and PC.


#######################################################################

===============================
3) Reimport the extracted files
===============================


As already said QuickBMS is primarly an extraction tool, anyway from
version 0.4.9 it supports also the -r option that transforms the tool
in a simple reimporter/reinjector and so could be useful in some cases
for who wants to mod or translate a game.

The idea consists in being able to reimport ("injecting back") the
modified files in the majority archives without touching a single line
of the script, yeah just reusing the same bms scripts that already
exist!

-----------------------------------------------------------------------

Using this feature is really trivial and the following is an example
step-by-step:

- make a backup copy of the original archive!

- extract the files or only those you want to modify (-f option) as you
  do normally via the GUI (double-click on quickbms.exe) OR via
  command-line:

    quickbms script.bms archive.pak output_folder

- do your modifications to the extracted files and I suggest to delete
  the files that have not been modified so that the reimporting process
  will be faster, so if you can it's better if in the folder you leave
  only the files you have changed
  note that their size must be minor or equal than the original!

- reimport the files in the archive via the GUI by clicking on the
  file called "reimport" (it's a normal link) OR via command-line:

    quickbms -w -r script.bms archive.pak output_folder

- test the game with the modified archive

I repeat that you can use the GUI for the reimporting procedure, just
click on the "reimport" link found in the quickbms package (it contains
the command quickbms.exe -w -r).

-----------------------------------------------------------------------

Another example:
- first use QuickBMS normally:
  archive.pak -> file1.txt
              -> file2.dat
              -> file3.jpg

- second step:
  - delete file1.txt and file2.dat
  - modify file3.jpg, for example adding a "smile" in it
  - save file3.jpg and be sure that it's size is SMALLER or EQUAL than
    the original

- third step, use the "reimport" link provided in quickbms:
  archive.pak <- file1.txt  (doesn't exist so it's not reimported)
              <- file2.dat  (doesn't exist so it's not reimported)
              <- file3.jpg  (successfully reimported)

-----------------------------------------------------------------------

Now some important notes about this particular reimporting process:
- you CANNOT increase the size of the files you want to reimport, so
  the new files must be minor or equal than the originals
- if the script uses zlib (like comtype zlib or no comtype at all) or
  deflate then QuickBMS will automatically use the kzip method which
  uses an external executable (kzip.exe) and requires more time and
  resources... I enabled this method only because often many users
  complain about the size of recompressed files which is too big
- for the maximum compatibility within the thousands of available file
  formats I decided to not use tricks for modifying the original
  size and compressed_size values (think to those formats that use
  encrypted information tables or the scripts that use MEMORY_FILEs
  for such tables or that use things like "math SIZE *= 0x800")
- the script is just the same for both the extraction and the
  reimporthing steps which means that many of the scripts written by me
  and the other users already work, cool!
- the reimporting of compressed files is perfectly possible because
  the tool automatically switches to the relative compression algorithm
  if available (for example zlib->zlib_compress)
- if the original archive uses complex encryptions that require the
  usage of MEMORY_FILEs to perform temporary decryptions then it's NOT
  supported and the same is valid for chunked content (like the usage
  of the command Append)
- FileXor, FileRot, Encryption and Filecrypt should work correctly
- things like CRCs and hashes can't be supported
- it's possible to reimport also the nameless files (log "" OFFSET SIZE)
  the tool will automatically check for files with the same number
  so if the file was saved as 00000014.xml it will be reimported
  perfectly


#######################################################################

===============================================
4) How to create scripts (for developers only!)
===============================================


Originally the tool was created for myself for making me able to write
quick extractors for simple archives immediately without writing a line
of C but it revealed to be a so powerful tool that now I use it really
for everything included the parsing of some protocols and much more.

So, how to write these scripts?
Well I guess that giving a look at http://wiki.xentax.com/index.php/BMS
is a good first step to understand at least the basis of this language
originally written by Mike Zuurman (alias Mr.Mouse of XeNTaX) in the
far 1997.
Then it's good to take a look at the various examples provided on
http://quickbms.aluigi.org and http://forum.xentax.com/viewforum.php?f=10
and obviously to the following list of available commands and their
description.

A programming knowledge and background is not required but it's very
useful for entering in the "logic" of the scripts, while it's required
the full knowledge of the format to implement: reversing is ever useful
for figuring the needed fields.

Luckily in the extraction process is not needed to know all the fields
of an archive so a field like a CRC just doesn't matter while the
important fields are ever the filename, the offset and the size of the
files to extract.
You can notice all these useless fields in my scripts because I assign
them the name DUMMY.

Note that I will try to keep the following documentation updated as
much as I can, in any case refer also to the source code of quickbms.c
for any other technical doubt or possible additions or particular
behaviour of the tool in particular circumstances.
The fields between [] are optionals.

---

A quick list of available commands is available also when QuickBMS is
launched with the -c option, and REMEMBER to read the notes specified
there like the fact that:

- everything is considered a variable except if it starts with a number
  in which case it's considered a numeric constant so when in this
  text I talk about VAR, STRING and other types of data I refer EVER to
  both variables and constants because they are EXACTLY the SAME thing

- all the commands and the names of the variables are case INsensitive
  so "get OFFSET long" is the same as "GeT oFfSeT lOnG"

- everything works with signed 32 bit numbers (-2147483648 to
  2147483647) so QuickBMS at the moment could not work well with files
  over 2 gigabytes but it can seek on files of 4 gigabytes
  so consider the following limits:
  - max 4gb for archives
  - max 2gb for the contained files
  you can try quickbms_4gb_files.exe for working with bigger archives

- the so called constant strings (depends by the context of the command)
  are handled as strings in C notation like "x12x34hello"bye�"
  and so on, in this case you must know a bit how this representation
  works.
  the keyword is "C language escape characters" or escape sequences,
  they are very simple, take a look here:
  http://msdn.microsoft.com/en-us/library/h21280bw%28VS.80%29.aspx
  http://www.acm.uiuc.edu/webmonkeys/book/c_guide/1.1.html
  ONLY some commands support this C string notation for the escape
  characters, a quick way to find them is searching the keyword
  "(cstring)" without quotes in this document 

- also hexadecimal numbers are supported if they start with 0x so
  1234 and 0x4d2 are the same thing

- any operation made on fields bigger than 8 bits is controlled by the
  global endianess, which means that any number and unicode field is
  read in little endian by default otherwise it's valid the endianess
  specified with the Endian command

- comments can be used in C (// and /* */) and BMS syntax (#)


File numbers:
  every file opened in QuickBMS has a number assigned to it and in all
  the commands that access to files this number is 0 (main file) if not
  specified.
  the first opened file is the input archive to which is assigned the
  number 0 (zero), the others must be opened with the Open command

MEMORY_FILEs:
  this is a particular type of temporary file which resides in memory
  and works exactly like a normal file.
  it's extremely useful for doing tons of things and are supported
  various memory files: MEMORY_FILE, MEMORY_FILE2, MEMORY_FILE3 and so
  on.
  MEMORY_FILE and MEMORY_FILE1 are the same.

TEMPORARY_FILE:
  exists also another type of file called TEMPORARY_FILE which instead
  resides phisically on the hard-disk with that exact name.
  although its "temporary" name it's not deleted by the output folder
  (anyway at the end of the process QuickBMS will ask if the user wants
  to remove it or not) and is created even when it's used the -l option
  for listing the files which makes it ideal in certains situations
  like when it's used a chunks based file system.
  .
  indeed in this case using a MEMORY_FILE is a bad idea because the
  continuous reallocation of the memory makes it terribly slow except
  if you have pre-allocated the space of the MEMORY_FILE with the
  PutVarChr command but in that case remains the problem of using too
  much memory.
  .
  for using the temporary file remember to use it like in the following
  example:
    log TEMPORARY_FILE 0 0      # reset it in case it already exists (optional)
    append                      # enables the append mode
    ...
        log TEMPORARY_FILE OFFSET SIZE
    ...
    append                      # disable the append mode
    open "." TEMPORARY_FILE 1   # open the temporary file on the file number 1


Types of variables supported, also know as datatypes or types:
    STRING      null delimited string (one byte for each char)
    BYTE        8 bit, 0 to 0xff
    SHORT       16 bit (aka INT), 0 to 0xffff
    THREEBYTE   24 bit, 0 to 0xffffff
    LONG        32 bit, 0 to 0xffffffff
    LONGLONG    fake 64 bit, so only 0 to 0xffffffff but takes 8 bytes in Get
    FLOAT       32 bit, 123.345 is got as 123
    DOUBLE      64 bit, 123.345 is got as 123
    LONGDOUBLE  96 bit, 123.345 is got as 123
    VARIABLE    read byte per byte till the byte is negative
    VARIABLE2   Unreal engine index numbers
    VARIABLE3   used in various software
    VARIABLE4   used in Battlefield 3 (Frostbite engine)
    VARIANT     VB/C++ variant type (http://en.wikipedia.org/wiki/Variant_type)
    TIME        time_t Unix 32bit time
    TIME64      64bit time used as FILETIME on Windows
    CLSID       ClassID like 00000000-0000-0001-0000-000000000000
    IPV4        7f 00 00 01 = "127.0.0.1"
    IPV6        like 2001:0db8:85a3:0000:0000:8a2e:0370:7334
    ASM         x86 assembly
    ASIZE       special type used to return the size of the opened file,
                used only with the GET command
    FILENAME    special type used to return the name of the opened file
                like "myfile.zip", used only with the GET command
    BASENAME    special type used to return the base name of the opened
                file like "myfile", used only with the GET command
    EXTENSION   special type used to return the extension of the opened
                file like "zip", used only with the GET command
    UNICODE     special type used for unicode utf16 strings, the
                endianess of the utf16 is the same used globally in the
                script (watch the Endian command), it's used also for
                converting an unicode string to an ascii one:
                  Set ASCII_STRING UNICODE UNICODE_STRING
                obviously this is a fake utf16 so it's good only for
                english strings
    BINARY      special type used for binary strings in C notation like
                "xffx00x12x34", used mainly as a constant (cstring)
    COMPRESSED  a special type used for setting big strings and memory
                files using a small amount of text, for using this type
                you must take the original text/file, compress it with
                zlib (you can use my packzip tool) and then encoding the
                outputfile with base64 (you can use my bde64 tool) and
                placing the result like the following:
                  set MEMORY_FILE compressed eNrtwbEJACAMBMBecIfvnMUxPuEJAe0UHN81LLzrbYKwDOjI96IN1cLveRfAGqYu
                this type is very useful if you want to embed a dll inside
                a script without wasting much space
    LINE        special type used for carriage return/line feed delimited
                string (so any string ending with a 0x00, 0x0a or 0x0d)
    FULLNAME    full path of the file, in reality at the moment it returns
                the same path used in the input filename
    CURRENT_FOLDER
                the path from which has been launched QuickBMS
    FILE_FOLDER the path of the loaded input file
    BMS_FOLDER  the folder where is located the bms script
    OUTPUT_FOLDER
                the extraction folder (the last argument of QuickBMS)
    INPUT_FOLDER
                same as above
    ALLOC       a type used only in the Set command for a particular thing
    SIGNED_BYTE
    SIGNED_SHORT
    SIGNED_THREEBYTE
    SIGNED_LONG

QuickBMS supports also the experimental multidimensional arrays inside
the variables, example:

    for i = 0 < 10
        get VAR long
        for j = 0 < 5
            get VAR2[j] long
        next j
    next i

But it's possible to access that variable ONLY by specifying the
original name and index, so:

    print "%VAR[0]%"    # fail!

    math i = 0
    print "%VAR%"    # ok

And now the list of commands in the same order in which they are listed
in the QuickBMS source code in the function parse_bms():

.......................................................................
QuickBMSver VERSION
    checks if the current version of QuickBMS is enough recent to
    support the script... used rarely, mainly for scripts created after
    I added or fixed a functionality of the tool.

    arguments:
      VERSION   oldest version of QuickBMS for which was created the script.
                it's also possible to add some options that are suggested
                by the script to the user who must enable them at runtime
                if he desires, -9 is the only one supported at the moment

    examples:
      QuickBMSver 0.2.4
      QuickBMSver "0.5.14 -9"

.......................................................................
Clog NAME OFFSET ZSIZE SIZE [FILENUM]
    Extracts the file decompressing it in real-time, this operation
    doesn't affect the current position of the input file.
    The decompression algorithm used in the operation is decided by the
    ComType command.
    The content of the extracted file can be decrypted automatically
    using the Encryption command.

    arguments:
      NAME      name of the output file
      OFFSET    position of the archive where is located the file
      ZSIZE     size of the compressed data in the archive
      SIZE      size of the uncompressed file
      FILENUM   number of the file associated to the archive (0)

    examples:
      Clog NAME OFFSET ZSIZE SIZE
      Clog "dump.dat" 0 ZSIZE 10000000 # the file will have the real size and not 10000000

.......................................................................
FindLoc VAR TYPE STRING [FILENUM] [ERR_VALUE]
    It finds the first occurrency of a given string or number from the
    current offset of the archive.
    It's used in those cases when the format of the archive is not known
    or it's a particular text file.

    arguments:
      VAR       the variable which will receive the offset of the occurrency
      TYPE      can be STRING, UNICODE or a number
      STRING    string in C notation or number, depending by the TYPE
                (cstring)
      FILENUM   number of the file associated to the archive (0)
      ERR_VALUE by default FindLoc terminates the script if no string
                is found but if ERR_VALUE is specified this value will
                be assigned to VAR without terminating when there are no
                other occurrencies

    examples:
      For
          FindLoc OFFSET string "filename="
          ...
          FindLoc OFFSET string "filename=" 0 ""
          if OFFSET == ""
              cleanexit
          endif
      Next

.......................................................................
For [VAR] [OP] [VALUE] [COND] [VAR]
...
Next [VAR]
    A classical "for" loop with initializers, conditions and
    incrementers.
    There is also the Break instruction available to break the loop at
    any moment (note that the Break instruction is not suggested in
    presence of multiple For because in some rare cases it could give
    problems).
    Next is the command which delimits the loop and at the same time
    increments the given variable if specified.
    Practically it means:
    - give VALUE to VAR (or performs a mathematical operation on it)
    - perform a loop till the two VARs match the "condition"
    - perform all the operations between For and Next
    - increment VAR
    all the parameters are optionals.

    arguments:
      VAR       variable to which assign a value
      OP        any of the available Math operators
      VALUE     value to assign to the variable or part of the math operation
      COND      condition, the same of the IF command
      VAR       second part of the condition

    examples:
      For i = 0 < FILES
          ...
      next i
      For
         # do what you want here, this is an endless loop
      Next
      For VAR1 = VAR1 != VAR2
         # this is exactly the same of using while(VAR1 != VAR2) {...} in C
      Next

.......................................................................
Get VAR TYPE [FILENUM]
    It reads strings and numbers from the open files, it's also the most
    used command.

    arguments:
      VAR       variable which will receive the read data
      TYPE      watch the description of the types explained before
      FILENUM   number of the file associated to the archive (0)

    examples:
      Get OFFSET long
      Get NAME string

.......................................................................
GetDString VAR LENGTH [FILENUM]
    It reads a defined amount of data from the file and stores it in the
    given variable.
    It's useful with filenames and other strings that have a length
    specified in a previous 8, 16 or 32 bit field.

    arguments:
      VAR       variable which will receive the read data
      LENGTH    amount of bytes to read, there is also an experimental
                method LENGTH*NUM, for example:
                getdstring ARRAY NUMBERS*4
      FILENUM   number of the file associated to the archive (0)

    examples:
      GetDString NAME NAME_LENGTH
      GetDString NAME 0x100

.......................................................................
GoTo OFFSET [FILENUM] [TYPE]
    It changes the current position in the file, just like fseek()

    arguments:
      OFFSET    position to reach, if it's negative it will be considered
                an "OFFSET bytes from the end of the file" position.
                only the constants can be negative with GoTo while all
                the variables will be handled as unsigned (0 to
                0xffffffff)
      FILENUM   number of the file associated to the archive (0)
      TYPE      SEEK_SET (default), SEEK_CUR, SEEK_END

    examples:
      GoTo OFFSET
      GoTo 0x100
      GoTo -4   # 4 bytes before the end of the file

.......................................................................
IDString [FILENUM] STRING
    It terminates the program if the signature at the current position
    of the file differs than the provided string.
    If the string doesn't match and it's 4 bytes long QuickBMS will
    automatically swap it and perform the compare again, if this time
    it matches then the endianess will be changed making the majority
    of the scripts written for an architecture (for example PC)
    virtually compatible with others (for example Xbox360).
    Pay attention to the FILENUM/VAR order different than other commands
    (it's the original BMS syntax), anyway QuickBMS will try to fix the
    order in case you invert them.

    arguments
      FILENUM   number of the file associated to the archive (0)
      STRING    string in C notation (cstring)

    examples:
      IDString "PKx03x04"
      IDString " KAP"

.......................................................................
Log NAME OFFSET SIZE [FILENUM]
    It extracts the file, this operation doesn't affect the current
    position of the input file.
    The content of the extracted file can be decrypted automatically
    using the Encryption command.

    arguments:
      NAME      name of the output file
      OFFSET    position in the archive where is located the file
      SIZE      amount of the data to extract
      FILENUM   number of the file associated to the archive (0)

    examples:
      Log NAME OFFSET SIZE
      Log "dump.dat" 0 SIZE

.......................................................................
Math VAR OP VAR
    Mathematical operation between the two variables with the result
    placed in the first one.
    Note that for compatibility all the operations are performed using
    signed 32 bit numbers by default.
    This makes the difference with some operation like the shift ones,
    so pay attention!
    For unsigned operations add an 'u' before OP.

    arguments
      VAR       variable which acts as input and output
      OP        +   sum
                *   multiplication
                /   division
                -   substraction
                ^   xor
                &   and
                |   or
                %   modulus
                !   negation of var2 (0 becomes 1 and any other value becomes 0)
                ~   complement of var2 (like "xor 0xffffffff")
                <   shift left
                >   shift right
                l   rotate left
                r   rotate right
                s   byte swapping
                w   bit swapping
                =   assign var2 to var1
                n   negative value of var2 (so -var2)
                a   absolute value of var2
                v   radix
                p   power
                x   alignment, examples:
                    var1=1, var2=16, result=16
                    var1=16, var2=16, result=16
                    var1=17, var2=16, result=32
                z   common bitswapping:
                    var1=0xab, var2=4, result=0xba
                    var1=0xabcd, var2=4, result=0xdc
                    var1=0xabcd, var2=8, result=0xcdab
                add a 'u' before or after OP for forcing the usage of unsigned
                operations useful with shift, divisions and possibly other
                operations
                any operation starting with a '?' will be considered a
                verbose operation, for example ?add is the same of +
                QuickBMS supports also all the functions available in
                math.h like ?sin, ?cos, ?atan and so on
      VAR       other input variable

    examples:
      Math SIZE *= 0x100
      Math OFFSET <<= 2
      Math OFFSET u<<= 2
      Math TMP = SIZE
      Math TMP ~ TMP
      Math TMP n TMP
      Math TMP2 a TMP
      Math SIZE u/ 5
      Math RADIX v= 2

.......................................................................
Open FOLDER NAME [FILENUM] [EXISTS]
    It opens a file for reading, practically it assigns a file number/id
    to an existent file that you want to use

    arguments:
      FOLDER    FDDE, means that you want to open the file in the same
                  location of the input one which has the extension
                  provided with NAME
                FDSE, it will consider NAME as a file located in the
                  same folder of the input file (very useful)
                any other value is considered the folder where is located
                  the file to load so use "." for the current output
                  folder
      NAME      read above, NAME can be also a ? in which case QuickBMS
                will ask the user to insert the name of the file to open
                manually
                if NAME is "" then will be performed a flush operation
                that could be useful (or not?) only in write mode
      FILENUM   number of the file associated to the archive (0)
      EXISTS    if the file doesn't exist this variable will be set to
                0 otherwise 1 (exists). by default QuickBMS terminates
                with an error if the file doesn't exist.

    examples:
      Open FDDE DAT 0
      Open FDDE IDX 1
      Open FDSE "myfile.zip"
      Open "." TEMPORARY_FILE 1

.......................................................................
SavePos VAR [FILENUM]
    Current position of the file, like ftell().

    arguments:
      VAR       variable which will contain the offset
      FILENUM   number of the file associated to the archive (0)

    examples:
      SavePos OFFSET

.......................................................................
Set VAR [TYPE] VAR
    Command for assigning a constant or a variable to another variable
    with the possibility of changing its type (like with unicode)

    arguments:
      VAR       output variable or memory file
      TYPE      useless type, indeed it can be also not specified in
                which case will be used the String value.
                it's useless because in QuickBMS doesn't exist a real
                difference between numbers and strings except some
                cases (like unicode, filename, basename, extension
                and possibly others).
                the STRLEN type can be used as alternative at the
                Strlen command
                other special types are:
                - unicode
                - binary (cstring)
                - alloc: allocates memory
                - filename: takes the filename part from a string (myfile.txt)
                - basename: takes the basename part from a string (myfile)
                - extension: takes the extension part from a string (txt)
      VAR       variable or constant to assign

    examples:
      Set i long 0
      Set TMP long SIZE
      Set TMPNAME NAME
      Set MEMORY_FILE binary "x12x34x56x78"
      Set ASCII_VAR unicode UNICODE_VAR # from unicode to string

.......................................................................
Do
...
While VAR COND VAR
    A not so useful type of cycle where it's performed the check of the
    condition at the end of the cycle... really rarely used.
    If you need a C-like "while(...) {...}" use the For command.

    arguments:
      VAR       first part of the condition
      COND      condition, check the If command below for additional info
      VAR       second part of the condition

    examples:
      Do
          ...
      While OFFSET < MAX_OFFSET

.......................................................................
String VAR OP VAR
    The equivalent of the Math command for the strings

    arguments:
      VAR       input and output variable
      OP        =   just a copy or if var2 is a number it will consider it
                    a raw string:
                      var2="0x44434241", result="ABCD"
                +   append the second string to the first one
                -   if the second variable is a positive number the
                      string will be truncated at that amount of bytes
                      from the end
                    if the second variable is a negative number the
                      string will be truncated at that amount of bytes
                      from the beginning
                    otherwise will be removed all the occurrencies of
                    the second string in the variable
                ^   xoring of the string with the second one (looped if shorter)
                <   like strrchr/strrstr but returns the part before it
                      var1="thisisastring", var2="4", result="isastring"
                %   truncate the variable at the position obtained by
                    the modulus of its length and the number in the second
                    variable
                &   strchr/strstr
                      var1="thisisastring", var2="isa", result="isastring"
                |   strchr/strstr + var2 length
                      var1="thisisastring", var2="isa", result="string"
                $   strrchr/strrstr
                !   strrchr/strrstr + var2 length
                >   if the second variable is a number:
                      var1="thisisastring", var2="4", result="thisisast"
                    otherwise:
                      var1="thisisastring", var2="isa", result="this"
                r   reversed string
                b   byte2hex of var2: var2="abc", result="616263"
                B   as above but uses the var2 as a null delimited string (strlen)
                h   hex2byte of var2: var2="616263", result="abc"
                e   experimental encryption based on the Encryption command
                E   as above but uses the var2 as a null delimited string (strlen)
                c   experimental compression based on the ComType command
                C   as above but uses the var2 as a null delimited string (strlen)
                u   toupper: var2="hello", result="HELLO"
                l   tolower: var2="HELLO", result="hello"
                R   replace chars
                p   a printf-like experimental work-around
                    the format for float (f) and double (g) works only
                    for one element, so:
                        get VAR_LONG long
                        String TMP p= "%10.10f" VAR_LONG # no VAR2 or VAR3
                        print "%TMP%"
                s   a sscanf-like experimental work-around
      VAR       the second variable or string

    note:
      you can use also some keywords like strstr instead of & or printf
      instead of p and so on

    examples:
      string FULLPATH += NAME
      string FULLPATH +=
      string NAME -= ".zip"
      string NAME -= 4
      string PATH R= "." "/"
      string FULLPATH p= "c:folder\%04x%04x.dat" VAR1 VAR2     # VAR1/2 are the input
      string FULLPATH s= "c:folder\%04x%04x.dat" VAR1 VAR2     # VAR1/2 are the output

.......................................................................
CleanExit
    terminates the script, it's possible also to use just Exit

.......................................................................
If VAR COND VAR
...
[Elif VAR COND VAR]
...
[Else]
...
EndIf
    It checks various conditions and performes the needed operation
    when the condition is verified, in short:
    - If is ever the first condition
    - Elif is another condition and can be used endless times
    - Else is the operation to do when no conditions are met, the last
    - EndIf delimits the If command

    arguments:
      VAR       first part of the condition
      COND      valid for both strings and numbers:
                <   minor
                >   major
                !=  different
                ==  equal
                >=  major/equal
                <=  minor/equal
                &   string: var2 is included in var1
                    number: logical AND
                ^   string: equal
                    number: logical XOR
                |   number: logical OR
                %   number: modulus
                /   number: division
                <<  number: shift left
                >>  number: shift right
                !   number: negation
                !!  number: true, use it to know if VAR is non-zero
                ~   number: complement
                ext compares the string after the last dot
                basename    compares the string before the last dot
                any other operation supported by the Math command (valid
                  only for the numeric variables)
                add a 'u' before COND for forcing the usage of unsigned
                operations useful with shift, divisions and possibly other
                operations
      VAR       second part of the condition

    Examples:
      If NAME != ""
          ...
      Endif
      If MASK & 1
      Elif MASK & 2
      Elif MASK & 4
      Elif MASK & 8
      Else
      Endif

.......................................................................
GetCT VAR TYPE CHAR [FILENUM]
    It reads a string till the reaching of the CHAR delimiter.

    arguments
      VAR       output variable
      TYPE      only unicode is the alternative type, any other value
                is just ignored because doesn't matter for this
                operation
      CHAR      the delimiter character as 8bit number
      FILENUM   number of the file associated to the archive (0)

    examples:
      GetCT NAME string 0x0a
      GetCT NAME string 0x3b
      set DELIMITER_BYTE long 0x0a
      GetCT NAME string DELIMITER_BYTE
      GetCT NAME unicode 0x0a

.......................................................................
ComType ALGO [DICT]
    It selects the specified compression algorithm to use with the Clog
    command.
    It's also possible to choose a number as ALGO for an "utopic" idea
    about a scanner for being able to guess the possible compression
    algorithm in an unknown compressed data block:
      http://aluigi.org/papers/bms/comtype_scan2.bat
      http://aluigi.org/papers/bms/comtype_scan2.bms
      comtype_scan2.bat comtype_scan2.bms input_file output_folder
      comtype_scan2.bat comtype_scan2.bms input_file output_folder uncompressed_size
    Obviously this feature is only for advanced people who knows exactly
    what they are doing... and works really perfectly.
    Note that some algorithms may work only on Windows

    arguments:
      ALGO      copy, simple copy that could be useful in some rare cases with
                  data encrypted with block ciphers like AES and blowfish so
                  use comtype copy and encryption
                zlib, RFC 1590 (aka windowbit 15, the data starts with a 'x')
                  DICT supported
                deflate, RFC 1591 (aka windowbit -15) used for example in the ZIP files
                  DICT supported
                lzo1a till lzo2a, LZO (remember that the most used is lzo1x)
                  DICT supported
                lzss, with default configuration (dictionary of 4096 bytes)
                  this particular algorithm can be fully configured setting the
                  EI, EJ and

37
Mod Releases / Fighting Styles
« on: April 14, 2015, 09:01:14 PM »
Fighting Styles

http://www.bully-board.com/index.php?action=downloads;sa=view;down=194

If you can't find the one you want, just ask me to make one! :D

38
Mod Releases / Black Bullworth Vest
« on: April 14, 2015, 09:01:12 PM »
Black Bullworth Vest

http://www.bully-board.com/index.php?action=downloads;sa=view;down=190

I used to wish that Rockstar Games had made the Bullworth Vest black. If you're like me, then this is the mod for you!

39
Mod Releases / Bird's Eye View + FOV adjuster
« on: March 25, 2015, 10:27:13 PM »
Bully SE: Bird's Eye View Mod

My first release in a while.
Also my first camera mod.

Use the left and right arrow keys to change the FOV.  Play the arcade machine in the boys dorm to activate.


40
Community Stories / The Grudge
« on: March 08, 2015, 04:07:43 AM »
• Keep adding onto the story •




DAY 1

Jimmy walked down streets of Bullworth Town, where he met Gary. Jimmy gives Gary a dirty look, then Gary, being the evil villain he is, refuses and throw punch to Jimmy causing him to fall. He smacked his  head on the concrete, now he have to go to hospital. there is no hospital in the game so he go to drug store. he asks for pain killers, and something to wrap his skull in. With a severe concussion, he could not attend classes, therefore he had to miss a day. Being that he lives in a dormitory in the same campus. Jimmy not realising his injury so severe, attends the first period class, experiencing severe headaches. During that class, Gary went inside the bike store, which was located in the area where the incident took place. Checking all the security camera footage, realizing where Jimmy had came from. Gary had no idea Jimmy was coming from Mr Hattrick's house. Gary then came up with the theory Jimmy had bought tests from Hattrick.

Jimmy was then excused from his class, to pay a visit to the nurse. The nurse had discovered a trauma. Gary made his way over to the school from Shiny Bikes near the Carnival. Not knowing which class Jimmy was in, he decided to take it to the principal, to call Jimmy up to the office for a talk. Gary had already notified the owner of the bike shop to delete all security camera recordings from that week. With no evidence to back it up, Gary reported Jimmy playing hooky as he had been absent prior to this day. Miss Danvers calls Jimmy up from the nurse, to get his side of the story.

41
Bully Modding Archives / [WIP]UFC/MMA Mod
« on: February 15, 2015, 01:04:27 PM »
I really want to drift away from Style modding, but after working with it for a while, it is not going to be easy to come up with ideas for original mods.

I had the idea, that would make most modded styles, to be fun. So, I started working on an MMA mod. Right now, it's not that advanced, but I do have ideas in my mind that don't seem very complicated to do. Here is a list of things I hope to add to it:

• Difficulty Select
• Slowmotion before knockout
• Camera effect when Player's health is low
• Commentator(prep)'s speech in background(Probably wont happen)
• Training (punch bags)
• Stats

Like I said, they are things I hope to add to it, since I will not be able to add most of them. I may just call off the whole announcer/commentator thing. But the rest of it seems pretty possible.

After I post this, I am going to add a new style to it. One thing I already got added, is your style for fighting, and your stance. Don't think it is just every full style, or just make your own. It is mostly just your stance.  And since this is MMA, you can grapple, and I will be getting help from Jedijosh920(GreenOmnitrix) for the grapple attacks.

It is open-source. so anyone can edit the styles

42
Mod Releases / Johnny Full Boss Style *RELEASE*
« on: February 10, 2015, 12:06:20 AM »
Since nobody else uploaded it, I did.

CONTROLS:

  Target Button + Grapple Button = Throat Grab
  Target Button + Right Task Button = Gut Kick(straight)
  Target Button + Left Task Button = Left Gut Kick
  Target Button + Weapon Fire Button = Overhead Kick combo
  Target Button + Jump Button = Johnny 3 punch combo
  Crouch Button + Enter Greaser Mode



Those are all the 1 controller ones.

If you have a second controller, there are a few other features. Here are the second controller controls:

  Left Task Button - Switch to Player AI
  Right Task Button - Switch to Gary AI (auto attack, but can execute some other nodes like the right gut kick)
  Jump Button - Import the 2_B script (changes the overhead kick combo to Johnny's beta tornado kick)



DOWNLOAD

43
TUTORIALS / [LUA TUTORIAL] Making a basic menu
« on: February 05, 2015, 08:14:53 PM »
Making a menu in Bully is very easy. It can be done in a matter of seconds to minutes, depending on how big your menu table is.
Today I will show how to make a simple, basic menu.

First off, you want to setup your table. It doesn't matter what script you are using. Both STimeCycle and ArcRace1 should work fine. Just make sure the names aren't already used, which you normally won't have to worry about. To setup your table, you can either do it all in the MissionSetup(or main), or create your own function that just holds the menu table. In this tutorial, we will create a new function(NOT a new script). Go anywhere in your script. Make sure you are not creating a new function, inside another function. Like this:
Code: [Select]
F_MenuTableSetup()

end

Now, we want to create the table itself. To create a table, add this to your new function:
Code: [Select]
new_table = {}
^ This will create a table named "new_table". You can change the name to any name you want. However, do NOT name it "table", or it will cause problems, due to it already being a reserved variable as I said in an earlier post.

Now that we have the table created, we need to insert contents into our new table. To do this, we can use: table.insert
It can also be defined in a local, but for this tutorial, we will just use it directly. Note the table names will not be shown in game, unless you use TextPrintString, and put the name.

Code: [Select]
F_MenuTableSetup()
  new_table = {}
  table.insert(new_table, {Text1 = "one", sec = 2})
  table.insert(new_table, {Text1 = "two", sec = 4})
  table.insert(new_table, {Text1 = "three", sec = 5})
  table.insert(new_table, {Text1 = "four", sec = 3})
end

You can edit any of the values here, and add more. Here are the parimeters of the table.insert function:
table.insert(Table_Name, {Variable1 = value here, Var2 = val here}) -- And it can go on and on.

Remember that ALL table variables, can be equal to anything. Not just strings. It can be equal to 1 and 2 and so on.

To make the table work, you MUST call it in a main function. So just put F_MenuTableSetup() in a function that only runs once.

We have gotten the table/menu setup now, we just need to make the menu navigator itself. Before we can even make the menu able to navigate, we need to create a new variable.

I like to make it at the very top of my scripts, so it looks neater. Make sure you don't repeat the variable, or the menu won't be able to navigate.

So to do this, we can go to the top of the script(NOT IN A FUNCTION), and make a variable. I will call mine "l_0_0" since it is easy to remember.

When you do that, it should look similar to this:
Code: [Select]
local l_0_0 = 1

function MissionSetup()
  AreaTransitionXYZ(0,270,-110,7)
  PlayerSetHealth(1000)
end

function MissionCleanup()
  gMissionRunning = false
  PlayerSetHealth(PedGetMaxHealth(gPlayer))
  PlayerSetControl(1)
  PedSetAITree(gPlayer, "/Global/PlayerAI", "Act/PlayerAI.act")
  collectgarbage()
end

main = function()
  gMissionRunning = true
  WeaponRequestModel({
  396,
  395,
  394,
  393,
  392,
  391,
  390})
  while gMissionRunning do
    Wait(0)
   end
end

This script^ is NOT for use, it is just showing how the variable should be placed in your script.

It is probably best to keep it equal to 1, so it will be realistic.  We can finally, move on to the buttons.

This is the final part in the script. It will be a bit harder to explain, and a bit more complicated to understand.

Instead of making every button binded for 1 local, we will use a shortcut that I learned from DaBOSS.

Now, you should have 1 repeat loop in your main function. If not, there should be a "while loop" there. Nomatter what it is. Under "repeat" or "while ___ do", put the name of the buttons function.
You can name it whatever you want, but I will be calling it "TL_Buttons".

In the function, you need to think of the 2 buttons you want to use for navigation. And for some people, a select button. I will use the arrow keys.

I really don't know how to explain this part, so I will give you an example of the function.

Code: [Select]
TL_Buttons = function()
  if IsButtonBeingPressed(0, 0) then
    l_0_0 = l_0_0 - 1 -- l_0_0 is equal to 1 number lower than it currently is
if l_0_0 < 1 then -- if l_0_0 is less than 1
  l_0_0 = table.getn(new_table) -- table.getn gets the length of a table
end
  elseif IsButtonBeingPressed(1, 0) then
    l_0_0 = l_0_0 + 1 -- l_0_0 is equal to 1 number above itself
if l_0_0 < table.getn(new_table) then -- if l_0_0 is higher than the length of table (This will prevent possible menu stops)
  l_0_0 = 1 -- makes l_0_0 equal to 1
end
  elseif IsButtonBeingPressed(3, 0) then
    -- Here, you put what you want to happen
TextPrintString(new_table[l_0_0].Text1, 5, 1)
end
To get something from a table, you need to select it. like TABLENAME[VARIABLE].OPTION

That is how you make a mod menu.  If you need any help, leave comments, and I will try to answer.

Sorry if I misspelled anything.

Thanks to DaBOSS54320 for helping on making menus

44
Modding Questions/Help Archives / Can't edit Textures
« on: February 01, 2015, 12:34:06 AM »
Everytime I try to edit a texture, it's fine, and I save the NFT file. Then, when I try to open it again, it gives me this error:





Any ideas?

45
Script Modding / Enable Fighting Prefects
« on: January 29, 2015, 07:20:50 PM »
This function will allow you the attack prefects, not get red meter, and also be able to have the prefects FIGHT back at the player(instead of busting), when the player is attacking:

Code: [Select]
function F_CantBeBusted(F_CantBeBusted_max001, F_CantBeBusted_isRunning001)
   Wait(0)
  repeat
    local pedG = PedGetGrappleTargetPed(gPlayer)
    if PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 0 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 7 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 8 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 9 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 10 then
PedSetActionNode(PedGetGrappleTargetPed(gPlayer), "/Global/1_02/ShortIdle", "Act/Conv/1_02.act")
PedSetActionNode(gPlayer, "/Global/1_02/ShortIdle", "Act/Conv/1_02.act")
PedSetFaction(PedGetGrappleTargetPed(gPlayer),6)
Wait(1)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
  elseif PlayerGetPunishmentPoints() > F_CantBeBusted_max001then
    PlayerSetPunishmentPoints(F_CantBeBusted_max001)
  end
  Wait(0)
  until not F_CantBeBusted_isRunning001
end 

Here is how to make it work in your mod:

This function should only be called once in your script instead of repeating.

Simply, Copy&Paste the function into an empty space in your script, then, in a function that only runs once(eg. MissionSetup, main, F_MissionSetup etc.), use these perimeters:

F_CantBeBusted(Max_Trouble_Points, true)

Replace "Max_Trouble_Points" with the highest amount of points YOU want it to go to. Here is an example of it being used in a script:

Code: [Select]
function MissionSetup()
  AreaTransitionXYZ(0, 270, -110, 7)
  PlayerSetHealth(500)
end

function MissionCleanup()
  collectgarbage()
end

function main()
 
  F_CantBeBusted(200, true)
 
  gMissionRunning = true
  while gMissionRunning do
    Wait(0)
  end
end

function F_CantBeBusted(F_CantBeBusted_max001, F_CantBeBusted_isRunning001)
   Wait(0)
  repeat
    local pedG = PedGetGrappleTargetPed(gPlayer)
    if PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 0 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 7 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 8 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 9 or PedGetFaction(PedGetGrappleTargetPed(gPlayer)) == 10 then
PedSetActionNode(PedGetGrappleTargetPed(gPlayer), "/Global/1_02/ShortIdle", "Act/Conv/1_02.act")
PedSetActionNode(gPlayer, "/Global/1_02/ShortIdle", "Act/Conv/1_02.act")
PedSetFaction(PedGetGrappleTargetPed(gPlayer),6)
Wait(1)
PedSetActionNode(gPlayer,"/Global/Player","Act/Player.act")
  elseif PlayerGetPunishmentPoints() > F_CantBeBusted_max001then
    PlayerSetPunishmentPoints(F_CantBeBusted_max001)
  end
  Wait(0)
  until not F_CantBeBusted_isRunning001
end 

Note that I used "200" as max, because 200 points is RIGHT before red.

Pages: 1 2 [3] 4 5 6