Azlier
Old World Ghost
- Reaction score
- 461
Frankly, MapLock is easy to remove. Scroll to map top, remove. Scroll to map bottom, remove. Done. Ultimaprotect makes removing MapLock a nightmare.
What it does is simply not care. If you remove MapLock, whoop dee doo, game crash. If you remove internal function, it yawns and crashes. If you remove what crashes the game when you remove internal functions, it blows its nose and crashes again.
If you remove seemingly everything having to do with Ultimaprotect, every single function, it still crashes. I love it!
I highly reccommend tweaking it to be unique to your map. The less like the original the better. But be warned. This is like a woman. Only its makers know its internal workings.
Requires a vJass preprocessor and MapLock, by Jesus4Lyf.
Remember, kids. Always modify this monster!
Thanks to Jesus4Lyf for MapLock and Daxtreme for testing it.
And WastedSavior, the innocent bystander to this madness.
Now, we pray to (insert deity here) that Blizzard doesn't fix the return bug. Or C2I.
What it does is simply not care. If you remove MapLock, whoop dee doo, game crash. If you remove internal function, it yawns and crashes. If you remove what crashes the game when you remove internal functions, it blows its nose and crashes again.
If you remove seemingly everything having to do with Ultimaprotect, every single function, it still crashes. I love it!
I highly reccommend tweaking it to be unique to your map. The less like the original the better. But be warned. This is like a woman. Only its makers know its internal workings.
Requires a vJass preprocessor and MapLock, by Jesus4Lyf.
JASS:
scope Ultimaprotect initializer InitBlizzardTriggers
//I HIGHLY reccommend replacing every instance of 'Ultimaprotect'
//with something a little less... obvious.
globals
private constant string MAPLOCK_FUNC_FIRST = "MapLo"
private constant string MAPLOCK_FUNC_MIDDLE = "ckNort"
private constant string MAPLOCK_FUNC_LAST = "h_GetIndex"
//These put together should be a MapLock function.
//It is suggested to mess with these. Just make sure
//that they equal MaplockNorth_GetIndex when all added together.
endglobals
//** Script Code. It is actually reccommended that you tweak this to fit your map. **
// Ultimaprotect is not for the inexperienced. Not for unskilled hackers.
// Not for unskilled Jassers.
globals
private trigger PTrig = null
private triggercondition PTrigCond = null
private trigger Trig = CreateTrigger()
endglobals
private function Foo takes nothing returns boolean
if PTrig == null or PTrigCond == null then
return ExecuteFunc(SCOPE_PRIVATE + "Foo")
endif
return false
endfunction
private function This takes nothing returns nothing
set PTrig = CreateTrigger()
call ExecuteFunc(MAPLOCK_FUNC_FIRST + MAPLOCK_FUNC_MIDDLE + MAPLOCK_FUNC_LAST)
endfunction
//! textmacro ProtectChainFunc takes FUNCNAME, TOEXECUTE
private function $FUNCNAME$ takes nothing returns nothing
call ExecuteFunc(SCOPE_PRIVATE + "$TOEXECUTE$")
call ExecuteFunc(MAPLOCK_FUNC_FIRST + MAPLOCK_FUNC_MIDDLE + MAPLOCK_FUNC_LAST)
endfunction
//! endtextmacro
private function That takes nothing returns boolean
call ExecuteFunc(SCOPE_PRIVATE + "What")
//At this point, you can create a chain of functions.
//There is a textmacro just for the purpose to make chains. Let's make this call one called 'What'
//The last one in the chain must call 'This'
set PTrigCond = TriggerAddCondition(Trig, Condition(function That))
return false
endfunction
//These don't have to be in any particular order. Feel free to add more.
//! runtextmacro ProtectChainFunc ("What", "Huh")
//! runtextmacro ProtectChainFunc ("Huh", "Doh")
//! runtextmacro ProtectChainFunc ("Doh", "Bread")
//! runtextmacro ProtectChainFunc ("Bread", "Cheese")
//! runtextmacro ProtectChainFunc ("Cheese", "This")
//The last must use "This" ^^^^
function InitBlizzardTriggers takes nothing returns nothing
//Or some other official sounding name.
call ExecuteFunc(SCOPE_PRIVATE + "That")
call ExecuteFunc(SCOPE_PRIVATE + "Foo")
if PTrig == null or PTrigCond == null then
call ExecuteFunc("main")
endif
call DestroyTrigger(Trig)
set Trig = null
call ExecuteFunc(MAPLOCK_FUNC_FIRST + MAPLOCK_FUNC_MIDDLE + MAPLOCK_FUNC_LAST)
endfunction
endscope
Remember, kids. Always modify this monster!
Thanks to Jesus4Lyf for MapLock and Daxtreme for testing it.
And WastedSavior, the innocent bystander to this madness.
Now, we pray to (insert deity here) that Blizzard doesn't fix the return bug. Or C2I.