Bully-Board
Bully Modding Section => Bully Modding => Bully Modding Archives => Topic started by: Fritz on May 27, 2016, 11:30:39 AM
-
Well, I didn't know where to put this topic, since this mod isn't mine, but I've never seen any mention of it, and I'm redistributing here for reasons that'll be stated below. The particular mod in question is Fastman92's Limit Adjuster. This mod was originally made for SA, although has been adapted to multiple games since then, Bully SE being one of them.
It's an .asi script that essentially allows you to "breaks the barriers" of the game by setting your own limits within the configuration file, making it more possible than ever to add new items to Bully without replacing anything. The inside of the configuration file looks like this::
; fastman92limitAdjuster_BullyScholarschip_dev.ini
[DYNAMIC LIMITS]
; ColModels (4150)
#ColModels = 4150
; PtrNodes (15000)
#PtrNodes = 15000
; EntryInfoNodes (2000)
#EntryInfoNodes = 2000
[IPL]
; IPL : inst section, buildings (2250)
#Buildings = 2250
; IPL: inst section, dummies (300)
#Dummies = 300
[ID LIMITS]
#Apply ID limit patch = 0
; NIF (12200)
#FILE_TYPE_NIF = 12200
; NFT (10000)
#FILE_TYPE_NFT = 10000
; COL (500)
#FILE_TYPE_COL = 500
; AGR (580)
#FILE_TYPE_AGR = 580
; IPB (100)
#FILE_TYPE_IPB = 100
; LIP (493)
#FILE_TYPE_LIP = 493
; CAT (120)
#FILE_TYPE_CAT = 120
; LUR (75)
#FILE_TYPE_LUR = 75
[ADDONS]
#Enable not a prop ID range loader = 0
[MAIN]
author = fastman92
donation window disable code =
; Crash expection handler
; You should leave it enabled, or there will be no crash log!
; Please don't disable it unless you have a good reason.
Register global expection handler = 1
; Enable windowed mode
Enable windowed mode = 0
Which pretty much breaks down to this::
Original Line in Config::
; NIF (12200)
#FILE_TYPE_NIF = 12200
Limit Adjusted Config Line:
; NIF (12200)
FILE_TYPE_NIF = 12201
Full Explination of the Lines::
; NIF (12200)
#FILE_TYPE_NIF = 12200
Original Limit
New Limit
Callsign (Remove to activate new limit)
Fastman92 claims on his website (http://fastman92.ml/) that you need an .asi loader to use this, and the one that he used was found here (https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases).
Although the GTA versions have been mass distributed throughout the internet as standalone versions by Fastman92 and others, No one has posted the standalone version for Bully SE, and it's really rare to come by without compiling it from his website. So, even though it's not mine, I figured I'd upload it. This comes with the required .asi loader already included::
Fastman92's Limit Adjuster (BullySE Standalone Version) (http://www.mediafire.com/download/vk93a5aaokyk4hi/Fastman92%27s+Limit+Adjuster+-+BullySE.rar)
With all of that said, I was wondering if you guys had ever heard of this mod or if you knew it had BullySE support, and what your guys's opinions on it are. :)
Have a great day everyone,
-Fritz.
Edit::
If for some reason the .asi loader doesn't work, this was ThirteenAG's footnote about it::
In order to install it, you just need to place DLL into game directory. Usually it works as dinput8.dll, but if it's not, there is a possibility to rename it to d3d8.dll, d3d9.dll, d3d11.dll, winmmbase.dll, dinput8.dll, dsound.dll, vorbisFile.dll or ddraw.dll(for old games, like GTA2).
-
I didn't even know an .asi loader was ever released for Bully. I know a few people made script hooks in the past but they were all private.
This is definitely something I'll have to check out later, thanks m8.
-
No problem, man. :) I was digging through a website full of bug fixes for GTA SA that don't change it from its default form this morning and just read "now supports BullySE" in the fine print this mod on the website I was on, and immediately had to track it down. I haven't even had the chance to mess around with it myself yet.
Also, For convenience of it all being on one page, I added the note to the first post that ThirteenAG mentioned about the .asi loader, just in case it doesn't work the way it's setup. When I test it, if the .dll for the .asi loader needs to be changed I'll re-upload this standalone with the correction though.
-
With all of that said, I was wondering if you guys had ever heard of this mod or if you knew it had BullySE support, and what your guys's opinions on it are. :)
I heard about it.
It works amazingly well, uses continously evolving sophisticated patching solution.
It wasn't until the FLA came that the complicated limits could be hacked.
Here's the project topic :http://gtaforums.com/topic/733982-fastman92-limit-adjuster/page-1
-
With all of that said, I was wondering if you guys had ever heard of this mod or if you knew it had BullySE support, and what your guys's opinions on it are. :)
I heard about it.
It works amazingly well, uses continously evolving sophisticated patching solution.
It wasn't until the FLA came that the complicated limits could be hacked.
Here's the project topic :http://gtaforums.com/topic/733982-fastman92-limit-adjuster/page-1
Haha, Fastman, Your work is truly great. I've never been technical enough to create something like that, just knowledgeable enough to understand how it functions. I guess that's why I've always been a model and texture guy. Much respect. (http://www.stripers247.com/phpBB2/images/smilies/icon_salute2.gif)
-
@Fastman92
Are you the real fastman92?
if you are the real one, can you show to us, how to use your script and break bully limitation?
It would be great if you can help this little community, because nowadays there is no more significant discovery for bully modding
BTW, Bully limitation
peds: max 23 - 24, I guess
vehicles: max 11 - 13, I guess
effects: max 10 - 15, I guess
props & breakable props: I don't know
-
This forum has big disadvantage: I waited over day just to get approved by administrator. Time matters.
It's unnacceptable.
Coming in the next version:
[DYNAMIC LIMITS]
; Peds (24)
#Peds = 24
; Vehicles (15)
#Vehicles = 15
; Objects (275)
#Objects = 275
CPools::ms_pPropAnimPool - 220
CPools::ms_pEntityEffectKeeperPool - 24
The Bully has very similar limits and the structure of files to GTA games.
Here's the project topic: http://gtaforums.com/topic/733982-fastman92-limit-adjuster
void __cdecl CPools::Initialise()
// fastman92 reverse engineering
{
CPool *v0; // eax@1
CPool *v1; // esi@1
CPool *v2; // eax@4
CPool *v3; // esi@4
CPool *v4; // eax@7
CPool *v5; // esi@7
CPool *v6; // eax@10
CPool *v7; // esi@10
CPool *v8; // eax@13
CPool *v9; // esi@13
CPool *v10; // eax@16
CPool *v11; // esi@16
CPool *v12; // eax@19
CPool *v13; // esi@19
CPool *v14; // eax@22
CPool *v15; // esi@22
CPool *v16; // eax@25
CPool *v17; // esi@25
CPool *v18; // eax@28
CPool *v19; // esi@28
CPool *v20; // eax@31
CPool *v21; // esi@31
CPool *v22; // eax@34
CPool *v23; // esi@34
CPool *v24; // eax@37
CPool *v25; // esi@37
CPool *v26; // eax@40
CPool *v27; // esi@40
CPool *v28; // eax@43
CPool *v29; // esi@43
CPool *v30; // eax@46
CPool *v31; // esi@46
CPool *v32; // eax@49
CPool *v33; // esi@49
CPool *v34; // eax@52
CPool *v35; // esi@52
CPool *v36; // eax@55
CPool *v37; // esi@55
CPool *v38; // eax@58
CPool *v39; // esi@58
CPool *v40; // eax@61
CPool *v41; // esi@61
CPool *v42; // eax@64
CPool *v43; // esi@64
CPool *v44; // eax@67
CPool *v45; // esi@67
CPool *v46; // eax@70
CPool *v47; // esi@70
CPool *v48; // eax@73
CPool *v49; // esi@73
CPool *v50; // eax@76
CPool *v51; // esi@76
CPool *v52; // eax@79
CPool *v53; // esi@79
CPool *v54; // eax@82
CPool *v55; // esi@82
CPool *v56; // ecx@85
CPool *v57; // ecx@88
sub_5EF0A0(6);
v0 = (CPool *)operator new(0x1Cu);
v1 = v0;
if ( v0 )
{
v0->pOtherPool = 0;
v0->pObjects = 0;
v0->flags = 0;
v0->field_14 = 0;
v0->field_18 = 1;
v0->NumberOfElements = 15000;
v0->bInitializeWithConstructors = 0;
sub_44A760(v0);
CPools::ms_pPtrNodeSingleLinkPool = v1;
}
else
{
CPools::ms_pPtrNodeSingleLinkPool = 0;
}
v2 = (CPool *)operator new(0x1Cu);
v3 = v2;
if ( v2 )
{
v2->pOtherPool = 0;
v2->pObjects = 0;
v2->flags = 0;
v2->field_14 = 0;
v2->field_18 = 1;
v2->NumberOfElements = 2000;
v2->bInitializeWithConstructors = 0;
sub_44A850(v2);
CPools::ms_pEntryInfoNodePool = v3;
}
else
{
CPools::ms_pEntryInfoNodePool = 0;
}
v4 = (CPool *)operator new(0x1Cu);
v5 = v4;
if ( v4 )
{
v4->pOtherPool = 0;
v4->pObjects = 0;
v4->flags = 0;
v4->field_14 = 0;
v4->field_18 = 1;
v4->NumberOfElements = 15;
v4->bInitializeWithConstructors = 0;
sub_44CB90(v4);
CPools::ms_pVehiclePool = v5;
}
else
{
CPools::ms_pVehiclePool = 0;
}
v6 = (CPool *)operator new(0x1Cu);
v7 = v6;
if ( v6 )
{
v6->pOtherPool = 0;
v6->pObjects = 0;
v6->flags = 0;
v6->field_14 = 0;
v6->field_18 = 1;
v6->NumberOfElements = 24;
v6->bInitializeWithConstructors = 0;
sub_44A8D0(v6);
CPools::ms_pPedPool = v7;
}
else
{
CPools::ms_pPedPool = 0;
}
v8 = (CPool *)operator new(0x1Cu);
v9 = v8;
if ( v8 )
{
v8->pOtherPool = 0;
v8->pObjects = 0;
v8->flags = 0;
v8->field_14 = 0;
v8->field_18 = 1;
v8->NumberOfElements = 24;
v8->bInitializeWithConstructors = 0;
sub_44B130(v8);
CPools::ms_pEntityEffectKeeperPool = v9;
}
else
{
CPools::ms_pEntityEffectKeeperPool = 0;
}
v10 = (CPool *)operator new(0x1Cu);
v11 = v10;
if ( v10 )
{
v10->pOtherPool = 0;
v10->pObjects = 0;
v10->flags = 0;
v10->field_14 = 0;
v10->field_18 = 1;
v10->NumberOfElements = 24;
v10->bInitializeWithConstructors = 0;
sub_44B260(v10);
CPools::ms_pAccessoryContainerPool = v11;
}
else
{
CPools::ms_pAccessoryContainerPool = 0;
}
v12 = (CPool *)operator new(0x1Cu);
v13 = v12;
if ( v12 )
{
v12->pOtherPool = 0;
v12->pObjects = 0;
v12->flags = 0;
v12->field_14 = 0;
v12->field_18 = 1;
v12->NumberOfElements = 24;
v12->bInitializeWithConstructors = 0;
sub_44B390(v12);
CPools::ms_pAttitudeSetPool = v13;
}
else
{
CPools::ms_pAttitudeSetPool = 0;
}
v14 = (CPool *)operator new(0x1Cu);
v15 = v14;
if ( v14 )
{
v14->pOtherPool = 0;
v14->pObjects = 0;
v14->flags = 0;
v14->field_14 = 0;
v14->field_18 = 1;
v14->NumberOfElements = 24;
v14->bInitializeWithConstructors = 0;
sub_44B440(v14);
CPools::ms_pPedActionTreePool = v15;
}
else
{
CPools::ms_pPedActionTreePool = 0;
}
v16 = (CPool *)operator new(0x1Cu);
v17 = v16;
if ( v16 )
{
v16->pOtherPool = 0;
v16->pObjects = 0;
v16->flags = 0;
v16->field_14 = 0;
v16->field_18 = 1;
v16->NumberOfElements = 24;
v16->bInitializeWithConstructors = 0;
sub_44B590(v16);
CPools::ms_pTargetingSystemPool = v17;
}
else
{
CPools::ms_pTargetingSystemPool = 0;
}
v18 = (CPool *)operator new(0x1Cu);
v19 = v18;
if ( v18 )
{
v18->pOtherPool = 0;
v18->pObjects = 0;
v18->flags = 0;
v18->field_14 = 0;
v18->field_18 = 1;
v18->NumberOfElements = 24;
v18->bInitializeWithConstructors = 0;
sub_44B650(v18);
CPools::ms_pWeaponAccessoryContainerPool = v19;
}
else
{
CPools::ms_pWeaponAccessoryContainerPool = 0;
}
v20 = (CPool *)operator new(0x1Cu);
v21 = v20;
if ( v20 )
{
v20->pOtherPool = 0;
v20->pObjects = 0;
v20->flags = 0;
v20->field_14 = 0;
v20->field_18 = 1;
v20->NumberOfElements = 24;
v20->bInitializeWithConstructors = 0;
sub_44B780(v20);
CPools::ms_MotionControllerPool = v21;
}
else
{
CPools::ms_MotionControllerPool = 0;
}
v22 = (CPool *)operator new(0x1Cu);
v23 = v22;
if ( v22 )
{
v22->pOtherPool = 0;
v22->pObjects = 0;
v22->flags = 0;
v22->field_14 = 0;
v22->field_18 = 1;
v22->NumberOfElements = 48;
v22->bInitializeWithConstructors = 0;
sub_44B8B0(v22);
CPools::ms_JointConstraintPool = v23;
}
else
{
CPools::ms_JointConstraintPool = 0;
}
v24 = (CPool *)operator new(0x1Cu);
v25 = v24;
if ( v24 )
{
v24->pOtherPool = 0;
v24->pObjects = 0;
v24->flags = 0;
v24->field_14 = 0;
v24->field_18 = 1;
v24->NumberOfElements = 24;
v24->bInitializeWithConstructors = 0;
sub_44BAB0(v24);
dword_C0F648 = v25;
}
else
{
dword_C0F648 = 0;
}
v26 = (CPool *)operator new(0x1Cu);
v27 = v26;
if ( v26 )
{
v26->pOtherPool = 0;
v26->pObjects = 0;
v26->flags = 0;
v26->field_14 = 0;
v26->field_18 = 1;
v26->NumberOfElements = 48;
v26->bInitializeWithConstructors = 0;
sub_44BB60(v26);
dword_C0F64C = v27;
}
else
{
dword_C0F64C = 0;
}
v28 = (CPool *)operator new(0x1Cu);
v29 = v28;
if ( v28 )
{
v28->pOtherPool = 0;
v28->pObjects = 0;
v28->flags = 0;
v28->field_14 = 0;
v28->field_18 = 1;
v28->NumberOfElements = 57;
v28->bInitializeWithConstructors = 0;
sub_44BC10(v28);
dword_C0F654 = v29;
}
else
{
dword_C0F654 = 0;
}
v30 = (CPool *)operator new(0x1Cu);
v31 = v30;
if ( v30 )
{
v30->pOtherPool = 0;
v30->pObjects = 0;
v30->flags = 0;
v30->field_14 = 0;
v30->field_18 = 1;
v30->NumberOfElements = 8;
v30->bInitializeWithConstructors = 0;
sub_44B960(v30);
CPools::ms_LuaScriptPool = v31;
}
else
{
CPools::ms_LuaScriptPool = 0;
}
v32 = (CPool *)operator new(0x1Cu);
v33 = v32;
if ( v32 )
{
v32->pOtherPool = 0;
v32->pObjects = 0;
v32->flags = 0;
v32->field_14 = 0;
v32->field_18 = 1;
v32->NumberOfElements = 300;
v32->bInitializeWithConstructors = 0;
sub_44ABD0(v32);
CPools::ms_pDummyPool = v33;
}
else
{
CPools::ms_pDummyPool = 0;
}
v34 = (CPool *)operator new(0x1Cu);
v35 = v34;
if ( v34 )
{
v34->pOtherPool = 0;
v34->pObjects = 0;
v34->flags = 0;
v34->field_14 = 0;
v34->field_18 = 1;
v34->NumberOfElements = 220;
v34->bInitializeWithConstructors = 0;
sub_44CFD0(v34);
CPools::ms_pPropAnimPool = v35;
}
else
{
CPools::ms_pPropAnimPool = 0;
}
v36 = (CPool *)operator new(0x1Cu);
v37 = v36;
if ( v36 )
{
v36->pOtherPool = 0;
v36->pObjects = 0;
v36->flags = 0;
v36->field_14 = 0;
v36->field_18 = 1;
v36->NumberOfElements = 2250;
v36->bInitializeWithConstructors = 0;
sub_44AC90(v36);
CPools::ms_pBuildingPool = v37;
}
else
{
CPools::ms_pBuildingPool = 0;
}
v38 = (CPool *)operator new(0x1Cu);
v39 = v38;
if ( v38 )
{
v38->pOtherPool = 0;
v38->pObjects = 0;
v38->flags = 0;
v38->field_14 = 0;
v38->field_18 = 1;
v38->NumberOfElements = 1;
v38->bInitializeWithConstructors = 0;
sub_44AD50(v38);
CPools::ms_pTreadablePool = v39;
}
else
{
CPools::ms_pTreadablePool = 0;
}
v40 = (CPool *)operator new(0x1Cu);
v41 = v40;
if ( v40 )
{
v40->pOtherPool = 0;
v40->pObjects = 0;
v40->flags = 0;
v40->field_14 = 0;
v40->field_18 = 1;
v40->NumberOfElements = 48;
v40->bInitializeWithConstructors = 0;
sub_44AE10((int)v40);
CPools::ms_pAccessoryPool = v41;
}
else
{
CPools::ms_pAccessoryPool = 0;
}
v42 = (CPool *)operator new(0x1Cu);
v43 = v42;
if ( v42 )
{
v42->pOtherPool = 0;
v42->pObjects = 0;
v42->flags = 0;
v42->field_14 = 0;
v42->field_18 = 1;
v42->NumberOfElements = 4150;
v42->bInitializeWithConstructors = 0;
sub_44AED0(v42);
CPools::ms_pColModelPool = v43;
}
else
{
CPools::ms_pColModelPool = 0;
}
v44 = (CPool *)operator new(0x1Cu);
v45 = v44;
if ( v44 )
{
v44->pOtherPool = 0;
v44->pObjects = 0;
v44->flags = 0;
v44->field_14 = 0;
v44->field_18 = 1;
v44->NumberOfElements = 87;
v44->bInitializeWithConstructors = 0;
sub_44B000(v44);
CPools::ms_pStimulusPool = v45;
}
else
{
CPools::ms_pStimulusPool = 0;
}
v46 = (CPool *)operator new(0x1Cu);
v47 = v46;
if ( v46 )
{
v46->pOtherPool = 0;
v46->pObjects = 0;
v46->flags = 0;
v46->field_14 = 0;
v46->field_18 = 1;
v46->NumberOfElements = 275;
v46->bInitializeWithConstructors = 0;
sub_44A990(v46);
CPools::ms_pObjectPool = v47;
}
else
{
CPools::ms_pObjectPool = 0;
}
v48 = (CPool *)operator new(0x1Cu);
v49 = v48;
if ( v48 )
{
v48->pOtherPool = 0;
v48->pObjects = 0;
v48->flags = 0;
v48->field_14 = 0;
v48->field_18 = 1;
v48->NumberOfElements = 35;
v48->bInitializeWithConstructors = 0;
sub_44AA50(v48);
CPools::ms_pProjectilePool = v49;
}
else
{
CPools::ms_pProjectilePool = 0;
}
v50 = (CPool *)operator new(0x1Cu);
v51 = v50;
if ( v50 )
{
v50->pOtherPool = 0;
v50->pObjects = 0;
v50->flags = 0;
v50->field_14 = 0;
v50->field_18 = 1;
v50->NumberOfElements = 30;
v50->bInitializeWithConstructors = 0;
sub_44AB10(v50);
CPools::ms_pCutScenePool = v51;
}
else
{
CPools::ms_pCutScenePool = 0;
}
v52 = (CPool *)operator new(0x1Cu);
v53 = v52;
if ( v52 )
{
v52->pOtherPool = 0;
v52->pObjects = 0;
v52->flags = 0;
v52->field_14 = 0;
v52->field_18 = 1;
v52->NumberOfElements = 48;
v52->bInitializeWithConstructors = 0;
sub_44BCC0(v52);
dword_C0F620 = v53;
}
else
{
dword_C0F620 = 0;
}
v54 = (CPool *)operator new(0x1Cu);
v55 = v54;
if ( v54 )
{
v54->pOtherPool = 0;
v54->pObjects = 0;
v54->flags = 0;
v54->field_14 = 0;
v54->field_18 = 1;
v54->NumberOfElements = 200;
v54->bInitializeWithConstructors = 0;
sub_44BD70(v54);
dword_C0F624 = v55;
}
else
{
dword_C0F624 = 0;
}
v56 = CPools::ms_pObjectPool->pOtherPool;
if ( v56 )
sub_4498C0(v56, CPools::ms_pProjectilePool);
else
CPools::ms_pObjectPool->pOtherPool = CPools::ms_pProjectilePool;
v57 = CPools::ms_pObjectPool->pOtherPool;
if ( v57 )
{
sub_4498C0(v57, CPools::ms_pCutScenePool);
ms_pPtrNodeSingleLinkObjectArray = (int)CPools::ms_pPtrNodeSingleLinkPool->pObjects;
sub_5EF100();
}
else
{
CPools::ms_pObjectPool->pOtherPool = CPools::ms_pCutScenePool;
ms_pPtrNodeSingleLinkObjectArray = (int)CPools::ms_pPtrNodeSingleLinkPool->pObjects;
sub_5EF100();
}
}
I also have a very powerful tool for IDE and IPL processing that supports multiple games: GTA III, GTA VC, GTA SA, GTA IV, GTA V and Bully Scholarship Edition.
That includes binary files like IDB and IPL from Bully.
For GTA IV both little and big endian binary placement files are supported.
The powerful classes can be adapted to perform various tasks; conversion between game formats is just one of many possibilities.
To be released soon.
Follow my webpage: http://fastman92.ml
-------------------------------
This forum has big disadvantage: I waited over day just to get approved by administrator. Time matters.
It's unnacceptable.
-
any new's? your website seems to be fucked
am just waiting for the new update
i honestly cant wait if we'd be able to modify ped capacity so we can spawn so much fucking more that's just awesome
dumb question ~
how do you use this
-
any new's? your website seems to be fucked
am just waiting for the new update
i honestly cant wait if we'd be able to modify ped capacity so we can spawn so much fucking more that's just awesome
dumb question ~
how do you use this
The currently available version 3.45 contains the limit that you're interested in:
[DYNAMIC LIMITS]
; Peds (24)
#Peds = 24
If you have any further questions, please ask in the official topic: http://gtaforums.com/topic/733982-fastman92-limit-adjuster/