[Hack Request] Defi4nc3's Open Rpg

For fulfilled maps that most likely don't work on the latest patch (1.24 or later).

Moderator: Cheaters

DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

[Hack Request] Defi4nc3's Open Rpg

Post by DeadlyLegion »

Defi4nc3's Open Rpg

Hey, this map is an ORPG where you play as a team in a forest and kill creeps and do quests ect.

The save code saves the following information:
gold
wood
hero level
inventory
stats(maybe I am not shure)

I was wondering if you could enable saving/loading in singleplayer and add the following cheats:
"-cheated by wc3edit.net" to activate cheats

(Requires no unit selection)

-mh for map hack (Does not share vis with allies)
-gold x
-lumber x
-nocd (No cooldowns)
-cdon (Cooldowns)
-mana (Use of spells costs no mana)
-nomana (Use of spells cost mana)

(Uses on all units currently selected - Best used with -mh)
NOTE: The selection trigger does not use "SyncSelections()" so it does NOT lock up units or cause errors!

-int x
-agi x
-str x
-lvl x
-xp x
-hp x
-mp x
-ms x (Move speed)
-invul
-vul
-kill
-pathoff (Disables collision a.k.a. walk through walls/cliffs ect.)
-pathon (Opposite)

Key Bindings: Allows you to bind a command to an arrow key

-clearkeys (Clears all commands registered on arrow keys)
-bindup x (x=Command you want to bind; ie: -bindup -hp 300 --> Pressing Up Arrow Key will be as if you typed the command -hp 300)
-bindleft x (Same but with left arrow key)
-bindright x (Same but with right arrow key)
-binddown x (Same but with down arrow key)

Note: Multiple commands cannot be bound to a single key and the new command will overwrite the old

Note: As an anti-leak and multi-execution measure, if you bind a command to an arrow key and type the binding command anywhere in a chat string, the command bound will be erased and probably overridden with something you dont want.

Note: Key bindings can hold 4 different commands (One for each arrow...) for all players. Key bindings are multi-instanceable.

From Aero's Jass trigger pack
Anticheat: When I tried to cheat in this map, adding the jass was no problem, everything went smoothly - but when I came into the game, when I tryed out some of the commands like -lvl (commands that change stuff) the game seemed to detect the changes and stamped me as a cheater and I got disconnected (Good thing I had a namespoofer ^^)

Also! The game seems to take the text you type and enhances it (puts it into a global message), like the ones you see in the begining of the map with the name of the mapmaker or when you get a new quest or information about the item you just picked up.

Otherwise I did not notice anything out of the orionary.

Map link: http://www.epicwar.com/maps/download/54 ... 0.16D!.w3x

Note: Copy+Paste link in browser.

PS: I got my first hatemail yesterday :D Man I was so happy someone finally noticed my potential :P. I'm really moving up in this map hacking/deprotecting :twisted:
Image
Adding the FUN in inFUNdibuliform
User avatar
Dekar
Forum Drunk
Posts: 2899
Joined: January 17th, 2007, 4:22 pm
Has thanked: 1 time
Been thanked: 1 time

Post by Dekar »

Image
DOWNLOAD
i messed around with this anti cheating trigger, so sometimes it detects, sometimes not -.o w/e just try it another time :)
maybe some commands trigger it but others dont, i dont care... and you are able to cheat ;)
Don't pm me with Warcraft questions, this is a forum so just make a post!
In the world of thinking we are all immigrants. -Robert Nozick
AsdGod
Member
Posts: 50
Joined: February 27th, 2007, 11:17 pm

Post by AsdGod »

Dekar wrote:Image
DOWNLOAD
i messed around with this anti cheating trigger, so sometimes it detects, sometimes not -.o w/e just try it another time :)
maybe some commands trigger it but others dont, i dont care... and you are able to cheat ;)
it's like mine it won't detect it but i need to find the function where the anticheat removes your hero (Anyway u can repick it :P) after that incident, i added a simple system that stores your hero and restores when you put -lhero :P (It's simple 'cause it's not for much players)
Whoa
DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

Post by DeadlyLegion »

Wow that was fast! Thanks Dekar!

PS: Did you add Aero's triggers or your own? Because there are some parts of the game, particularly the end-game (I just found out using your hacked version Dekar) where you have to be 3 ppl, but with Aero's no collision (Noclip) cheat you would be able to bypass the wall without incident.
Image
Adding the FUN in inFUNdibuliform
User avatar
Dekar
Forum Drunk
Posts: 2899
Joined: January 17th, 2007, 4:22 pm
Has thanked: 1 time
Been thanked: 1 time

Post by Dekar »

just add his cheats yourself... maybe it would be clever to change his commands :D
Don't pm me with Warcraft questions, this is a forum so just make a post!
In the world of thinking we are all immigrants. -Robert Nozick
DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

Post by DeadlyLegion »

I don't know how to chane the commands exactly, but here's my theory, please tell me if it's right.

In the function you post under endglobals. I guess but I don't know, please tell me, you would have to edit these lines:
function KeyWait takes player p, string s returns nothing
local trigger t=CreateTrigger()
call TriggerRegisterPlayerChatEvent(t,p,"-clearkeys",true)
call TriggerRegisterPlayerChatEvent(t,p,s,false)
loop
call TriggerSleepAction(1.00)
exitwhen GetTriggerExecCount(t)>0
endloop
call DestroyTrigger(t)
set t=null
endfunction
function WaitForDisable takes player p, string s returns nothing
local trigger t=CreateTrigger()
call TriggerRegisterPlayerChatEvent(t,p,s,true)
loop
call TriggerSleepAction(1.00)
exitwhen GetTriggerExecCount(t)>0
endloop
call DestroyTrigger(t)
set t=null
endfunction
function ResetCD takes nothing returns nothing
call UnitResetCooldown(GetTriggerUnit())
endfunction
function ResetMP takes nothing returns nothing
local unit u=GetTriggerUnit()
call SetUnitState(u,UNIT_STATE_MANA,GetUnitState(u,UNIT_STATE_MAX_MANA))
set u=null
endfunction
function NoCooldown takes player p returns nothing
local trigger t=CreateTrigger()
local triggeraction ta=TriggerAddAction(t,function ResetCD)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_CAST,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_FINISH,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_CHANNEL,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_ENDCAST,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
call WaitForDisable(p,"-cdon") <----
call DisableTrigger(t)
call TriggerRemoveAction(t,ta)
call DestroyTrigger(t)
set t=null
set ta=null
endfunction
function InfMana takes player p returns nothing
local trigger t=CreateTrigger()
local triggeraction ta=TriggerAddAction(t,function ResetMP)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_CAST,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_FINISH,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_CHANNEL,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_ENDCAST,null)
call TriggerRegisterPlayerUnitEvent(t,p,EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
call WaitForDisable(p,"-nomana") <----
call DisableTrigger(t)
call TriggerRemoveAction(t,ta)
call DestroyTrigger(t)
set t=null
set ta=null
endfunction
function Cheatz takes player p, string s returns nothing
local integer i=S2I(SubString(s,5,20))
local integer z=S2I(SubString(s,4,19))
local group g=CreateGroup()
local unit u
if SubString(s,0,5)=="-gold" then <----
call SetPlayerState(p,PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(p,PLAYER_STATE_RESOURCE_GOLD )+S2I(SubString(s,6,13)))
elseif SubString(s,0,7)=="-lumber" then <----
call SetPlayerState(p,PLAYER_STATE_RESOURCE_LUMBER,GetPlayerState(p,PLAYER_STATE_RESOURCE_LUMBER )+S2I(SubString(s,8,15)))
elseif SubString(s,0,5)=="-mana" then <----
call InfMana(p)
elseif SubString(s,0,5)=="-nocd" then <----
call NoCooldown(p)
endif
call GroupEnumUnitsSelected(g,p,null)
loop
set u=FirstOfGroup(g)
exitwhen u==null
if i>=1 then
if SubString(s,0,4)=="-int" then <----
call SetHeroInt(u,i,true)
elseif SubString(s,0,4)=="-agi" then <----
call SetHeroAgi(u,i,true)
elseif SubString(s,0,4)=="-str" then <----
call SetHeroStr(u,i,true)
endif
endif
if SubString(s,0,4)=="-lvl" then <----
call SetHeroLevelBJ(u,i,false)
elseif SubString(s,0,3)=="-xp" then <----
call SetHeroXP(u,z,false)
elseif SubString(s,0,3)=="-hp" then <----
call SetUnitState(u,UNIT_STATE_LIFE,z)
elseif SubString(s,0,3)=="-mp" then <----
call SetUnitState(u,UNIT_STATE_MANA,z)
elseif SubString(s,0,6)=="-invul" then <----
call SetUnitInvulnerable(u,true)
elseif SubString(s,0,4)=="-vul" then <----
call SetUnitInvulnerable(u,false)
elseif SubString(s,0,5)=="-kill" then <----
call KillUnit(u)
elseif SubString(s,0,3)=="-ms" then <----
call SetUnitMoveSpeed(u,z)
elseif SubString(s,0,7)=="-pathon" then <----
call SetUnitPathing(u,true)
elseif SubString(s,0,8)=="-pathoff" then <----
call SetUnitPathing(u,false)
endif
call GroupRemoveUnit(g,u)
endloop
call DestroyGroup(g)
if SubString(s,0,3)=="-mh" then <----
call FogModifierStart(CreateFogModifierRect(p,FOG_OF_WAR_VISIBLE,bj_mapInitialPlayableArea,false,false))
endif
set g=null
endfunction
function SendUp takes nothing returns nothing
call Cheatz(GetTriggerPlayer(),GetStoredString(CACHE,I2S(GetPlayerId(GetTriggerPlayer())),"up"))
endfunction
function SendRight takes nothing returns nothing
call Cheatz(GetTriggerPlayer(),GetStoredString(CACHE,I2S(GetPlayerId(GetTriggerPlayer())),"right"))
endfunction
function SendLeft takes nothing returns nothing
call Cheatz(GetTriggerPlayer(),GetStoredString(CACHE,I2S(GetPlayerId(GetTriggerPlayer())),"left"))
endfunction
function SendDown takes nothing returns nothing
call Cheatz(GetTriggerPlayer(),GetStoredString(CACHE,I2S(GetPlayerId(GetTriggerPlayer())),"down"))
endfunction
function BindKey takes player p, string s, integer i returns nothing
local trigger t=CreateTrigger()
local triggeraction ta
if i==1 then
set ta=TriggerAddAction(t,function SendUp)
call TriggerRegisterPlayerEvent(t,p,EVENT_PLAYER_ARROW_UP_DOWN)
call StoreString(CACHE,I2S(GetPlayerId(p)),"up",s)
call KeyWait(p,"-bindup") <---- Not these, because there are no binds in Dekar's cheat pack
elseif i==2 then
set ta=TriggerAddAction(t,function SendLeft)
call TriggerRegisterPlayerEvent(t,p,EVENT_PLAYER_ARROW_LEFT_DOWN)
call StoreString(CACHE,I2S(GetPlayerId(p)),"left",s)
call KeyWait(p,"-bindleft")
elseif i==3 then
set ta=TriggerAddAction(t,function SendRight)
call TriggerRegisterPlayerEvent(t,p,EVENT_PLAYER_ARROW_RIGHT_DOWN)
call StoreString(CACHE,I2S(GetPlayerId(p)),"right",s)
call KeyWait(p,"-bindright")
elseif i==4 then
set ta=TriggerAddAction(t,function SendDown)
call TriggerRegisterPlayerEvent(t,p,EVENT_PLAYER_ARROW_DOWN_DOWN)
call StoreString(CACHE,I2S(GetPlayerId(p)),"down",s)
call KeyWait(p,"-binddown")
endif
call DisableTrigger(t)
call TriggerRemoveAction(t,ta)
call DestroyTrigger(t)
set t=null
set ta=null
endfunction
function DirectCheat takes nothing returns nothing
local player p=GetTriggerPlayer()
local string s=GetEventPlayerChatString()
if SubString(s,0,10)=="-clearkeys" then
call FlushStoredMission(CACHE,I2S(GetPlayerId(p)))
call DisplayTimedTextToPlayer(p,0,0,5.,"|cffff0000Key Bindings Cleared.")
elseif SubString(s,0,7)=="-bindup" then
call DisplayTextToPlayer(p,0,0,"|cffff0000'"+SubString(s,8,30)+"' was bound to Up Arrow Key")
call BindKey(p,SubString(s,8,30),1)
elseif SubString(s,0,9)=="-bindleft" then
call DisplayTextToPlayer(p,0,0,"|cffff0000'"+SubString(s,10,30)+"' was bound to Left Arrow Key")
call BindKey(p,SubString(s,10,30),2)
elseif SubString(s,0,10)=="-bindright" then
call DisplayTextToPlayer(p,0,0,"|cffff0000'"+SubString(s,11,30)+"' was bound to Right Arrow Key")
call BindKey(p,SubString(s,11,30),3)
elseif SubString(s,0,9)=="-binddown" then
call DisplayTextToPlayer(p,0,0,"|cffff0000'"+SubString(s,10,30)+"' was bound to Down Arrow Key")
call BindKey(p,SubString(s,10,30),4)
else
call Cheatz(p,s)
endif
set s=""
set p=null
endfunction
function CheatUse takes nothing returns nothing
local player p=GetTriggerPlayer()
if SubString(GetEventPlayerChatString(),0,23)=="-cheated by wc3edit.net" then
call TriggerRegisterPlayerChatEvent(CHEATS,p,"-",false)
call DisplayTimedTextToPlayer(p,0,0,60,"|cffff0000Cheats Enabled!|r")
endif
set p=null
endfunction
So -lvl would be -alvl and -mh would be -amh (a is for Aero)
Image
Adding the FUN in inFUNdibuliform
User avatar
Xantan
Honorary wc3edit.net Traitor
Posts: 2507
Joined: February 1st, 2007, 4:11 pm
Location: NEVADA

Post by Xantan »

yes, that is correct, but you need to change the sub-string stuffs too, aero has it all setup.

instead of for instance 0,3 = -mh
you'd do 0,4 = -amh.

Edit:
btw, I haven't received one hatemail, though I have received at least one AIM-Hate-Thing... some guy just flamed me, then blocked me instantly after, hahahaha.
DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

Post by DeadlyLegion »

So... How do I exactly know what to write in the substring? Should I just add +1 to all substrings I have addad a a to?
Last edited by DeadlyLegion on May 24th, 2007, 9:18 am, edited 2 times in total.
Image
Adding the FUN in inFUNdibuliform
User avatar
Xantan
Honorary wc3edit.net Traitor
Posts: 2507
Joined: February 1st, 2007, 4:11 pm
Location: NEVADA

Post by Xantan »

on the second number, yes.
DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

Post by DeadlyLegion »

Ahh damn it! It did not work for some reason =/ It would be easyer if I just could add aero's jass to a clean map copy with a broken cheat detector =/
Image
Adding the FUN in inFUNdibuliform