Enabling Singleplayer

General talk about editing, cheating, and deprotecting maps.

Moderator: Cheaters

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

Enabling Singleplayer

Post by DeadlyLegion »

Hey!
I'd like very much to learn how to enable singleplayer in an ORPG map like Defi4nc3 ORPG or Master crafters. I know those maps have already been cheated, but I want to learn how I can do it myself so I can help other people too.
What aproach should I take? Tutorial somewhere?
Thanks in advance to anyone willing to help.
Last edited by DeadlyLegion on May 26th, 2007, 12:32 pm, edited 1 time 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 »

I plan to write a tutorial for this in the near future - but as it is different on just about every rpg it seems, its sorta hard to! =/
bojanglemistser
Old Wrinkly Member
Posts: 238
Joined: March 2nd, 2007, 5:52 pm
Location: USA

Post by bojanglemistser »

Xantan wrote:I plan to write a tutorial for this in the near future - but as it is different on just about every rpg it seems, its sorta hard to! =/

just write a tutorial for several different famous ones and once a month or so u can add a new one =D
when life gives you lemons you use the lemon juice to squirt people in their eyes
DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

Post by DeadlyLegion »

I mean just a general... tip... on what to do - I have no idea where to begin. Do I break something in the Jass or should I deprotect map and then add some misc. trigger?
Image
Adding the FUN in inFUNdibuliform
bojanglemistser
Old Wrinkly Member
Posts: 238
Joined: March 2nd, 2007, 5:52 pm
Location: USA

Post by bojanglemistser »

DeadlyLegion wrote:I mean just a general... tip... on what to do - I have no idea where to begin. Do I break something in the Jass or should I deprotect map and then add some misc. trigger?


this is usualy what i do for some maps in singleplayer

play the game non-hacked in singleplayer and when it says u cannot save because of whatever thats what ur gonna search for in Jasscraft just go to search and type in that message

look for any relation to another trigger that may have somtin to do with playing alone if u notice that this trigger is the trigger that wont let u play in singleplayer then u just have to figure out what to do

usualy for alot of maps i cheat its sorta like this

Code: Select all

function bla bla bla takes nothing returns nothing boolean
if bla bla bla then
return false
endif
return true



Code: Select all

function bla bla bla takes nothing returns nothing boolean
if bla bla bla then
return false <---
endif
return true <----


i usualy switch these =D and thats a solution for some maps

so

Code: Select all

function bla bla bla takes nothing returns nothing boolean
if bla bla bla then
return true
endif
return false


this doesnt always work but its how i did singleplayer for FFF 1c and everquest 3.5 the uncharted lands xD
not to mention some maps may do it differently and i dunno how defiance does it but this is the one ive seen more then any others

btw another way to try to find the no singleplayer thing is to start by typing single, singleplayer, single player, or save into the search box
when life gives you lemons you use the lemon juice to squirt people in their eyes
DeadlyLegion
Member
Posts: 86
Joined: May 11th, 2007, 6:14 pm

Post by DeadlyLegion »

so it's basically just alot of trial and error?

Where is it... that string of jass? Is it under function main or after endglobals?
Image
Adding the FUN in inFUNdibuliform
namespoofer
V.I.P.
Posts: 332
Joined: March 4th, 2007, 12:39 am
Location: United States

Post by namespoofer »

Heh, all I do is just Cntrl-F in JASSCraft, and search for 'save'.

Browse through stuff, heres an example:
(Dawn of the Dead 5.2F)

Code: Select all

boolean array udg_SaveAllowed
trigger gg_trg_Save=null


Code: Select all

function Trig_Save_Func003C takes nothing returns boolean
if(not (udg_SaveAllowed[GetConvertedPlayerId(GetTriggerPlayer())]==false))then
return false
endif
return true
endfunction


Just look for those kind of functions, and usually when you switch the boolean value, it works!

Also you might stumble upon the saves allowed..

Code: Select all

function Trig_Save_Func002C takes nothing returns boolean
if(not (udg_HasSaved[GetConvertedPlayerId(GetTriggerPlayer())]==true))then
return false
endif
return true
endfunction


Switch em' around and you can save as many times as you want.. I think!
I guess you could say it's trial+error..

And I think you have to change it where all the other functions are.. After endglobals..

Edit: Also see how Xantan put it.. he makes way more sense than I do..
http://forum.wc3edit.net/viewtopic.php?t=429
Image
Doesn't Dekar make the world easier?

"I Wumbo. YOU Wumbo. He she me.. WUMbo. Wumbo; WumboING; WumBOLogy; the study of WUMBO. It's first grade, Spongebob!"
"I'm sorry I doubted your great wisdom Patrick!"

Catch me on Azeroth (U.S. East) - NameSpoofer
chiem
Newcomer
Posts: 22
Joined: March 16th, 2007, 2:59 am

Post by chiem »

WOW THAT REALLY HELPED!! thx!!! And if u guys played guantlet dark ends part 2, I found that the creator of the map made cheats!!! !!!! WOAH!! i can edit these for my name!!!!! want me to show u the cheats?

Code: Select all

function InitTrig_Dark_End_Mask_of_Kial_Thul takes nothing returns nothing
 set gg_trg_Dark_End_Mask_of_Kial_Thul = CreateTrigger( )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Mask_of_Kial_Thul, Player(0), "K$LAF", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Mask_of_Kial_Thul, Player(1), "K$LAF", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Mask_of_Kial_Thul, Player(2), "K$LAF", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Mask_of_Kial_Thul, Player(3), "K$LAF", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Mask_of_Kial_Thul, Player(4), "K$LAF", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Mask_of_Kial_Thul, Player(5), "K$LAF", true )
 call TriggerAddAction( gg_trg_Dark_End_Mask_of_Kial_Thul, function Trig_Dark_End_Mask_of_Kial_Thul_Actions )
endfunction
function Trig_Dark_End_Armageddon_Armor_Actions takes nothing returns nothing
 call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_1671" )
 call CreateItemLoc( 'rde0', GetRectCenter(gg_rct_TownArea) )
 call UnitAddItemSwapped( GetLastCreatedItem(), udg_PlayerHeroArray[GetConvertedPlayerId(GetTriggerPlayer())] )
endfunction
function InitTrig_Dark_End_Armageddon_Armor takes nothing returns nothing
 set gg_trg_Dark_End_Armageddon_Armor = CreateTrigger( )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Armageddon_Armor, Player(0), "DarkEndZeroHour", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Armageddon_Armor, Player(1), "DarkEndZeroHour", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Armageddon_Armor, Player(2), "DarkEndZeroHour", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Armageddon_Armor, Player(3), "DarkEndZeroHour", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Armageddon_Armor, Player(4), "DarkEndZeroHour", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Armageddon_Armor, Player(5), "DarkEndZeroHour", true )
 call TriggerAddAction( gg_trg_Dark_End_Armageddon_Armor, function Trig_Dark_End_Armageddon_Armor_Actions )
endfunction
function Trig_Dark_End_Destruction_Shield_Actions takes nothing returns nothing
 call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_1672" )
 call CreateItemLoc( 'I00G', GetRectCenter(gg_rct_TownArea) )
 call UnitAddItemSwapped( GetLastCreatedItem(), udg_PlayerHeroArray[GetConvertedPlayerId(GetTriggerPlayer())] )
endfunction
function InitTrig_Dark_End_Destruction_Shield takes nothing returns nothing
 set gg_trg_Dark_End_Destruction_Shield = CreateTrigger( )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Destruction_Shield, Player(0), "DAO5R3W", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Destruction_Shield, Player(1), "DAO5R3W", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Destruction_Shield, Player(2), "DAO5R3W", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Destruction_Shield, Player(3), "DAO5R3W", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Destruction_Shield, Player(4), "DAO5R3W", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Destruction_Shield, Player(5), "DAO5R3W", true )
 call TriggerAddAction( gg_trg_Dark_End_Destruction_Shield, function Trig_Dark_End_Destruction_Shield_Actions )
endfunction
function Trig_Dark_End_Blood_Crown_Actions takes nothing returns nothing
 call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_1673" )
 call CreateItemLoc( 'I00F', GetRectCenter(gg_rct_TownArea) )
 call UnitAddItemSwapped( GetLastCreatedItem(), udg_PlayerHeroArray[GetConvertedPlayerId(GetTriggerPlayer())] )
endfunction
function InitTrig_Dark_End_Blood_Crown takes nothing returns nothing
 set gg_trg_Dark_End_Blood_Crown = CreateTrigger( )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Blood_Crown, Player(0), "AOXLOC2", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Blood_Crown, Player(1), "AOXLOC2", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Blood_Crown, Player(2), "AOXLOC2", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Blood_Crown, Player(3), "AOXLOC2", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Blood_Crown, Player(4), "AOXLOC2", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Blood_Crown, Player(5), "AOXLOC2", true )
 call TriggerAddAction( gg_trg_Dark_End_Blood_Crown, function Trig_Dark_End_Blood_Crown_Actions )
endfunction
function Trig_Dark_End_War_Ring_Actions takes nothing returns nothing
 call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_1012" )
 call CreateItemLoc( 'rde2', GetRectCenter(gg_rct_TownArea) )
 call UnitAddItemSwapped( GetLastCreatedItem(), udg_PlayerHeroArray[GetConvertedPlayerId(GetTriggerPlayer())] )
endfunction
function InitTrig_Dark_End_War_Ring takes nothing returns nothing
 set gg_trg_Dark_End_War_Ring = CreateTrigger( )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_War_Ring, Player(0), "UU3M9", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_War_Ring, Player(1), "UU3M9", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_War_Ring, Player(2), "UU3M9", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_War_Ring, Player(3), "UU3M9", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_War_Ring, Player(4), "UU3M9", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_War_Ring, Player(5), "UU3M9", true )
 call TriggerAddAction( gg_trg_Dark_End_War_Ring, function Trig_Dark_End_War_Ring_Actions )
endfunction
function Trig_Dark_End_Battle_Drums_Actions takes nothing returns nothing
 call DisplayTextToForce( GetForceOfPlayer(GetTriggerPlayer()), "TRIGSTR_1010" )
 call CreateItemLoc( 'ward', GetRectCenter(gg_rct_TownArea) )
 call UnitAddItemSwapped( GetLastCreatedItem(), udg_PlayerHeroArray[GetConvertedPlayerId(GetTriggerPlayer())] )
endfunction
function InitTrig_Dark_End_Battle_Drums takes nothing returns nothing
 set gg_trg_Dark_End_Battle_Drums = CreateTrigger( )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Battle_Drums, Player(0), "589Z1", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Battle_Drums, Player(1), "589Z1", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Battle_Drums, Player(2), "589Z1", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Battle_Drums, Player(3), "589Z1", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Battle_Drums, Player(4), "589Z1", true )
 call TriggerRegisterPlayerChatEvent( gg_trg_Dark_End_Battle_Drums, Player(5), "589Z1", true )
 call TriggerAddAction( gg_trg_Dark_End_Battle_Drums, function Trig_Dark_End_Battle_Drums_Actions )
endfunction
User avatar
weirdone2
Forum Staff
Posts: 926
Joined: June 3rd, 2007, 8:03 pm

Post by weirdone2 »

Here's some general tips on finding the no single.

Trigger disabled, this is when the game doesn't end but you can no longer save just look for disable trigger, make sure its the no single trig and do w/e you want to it.

Game Ends, easyest to find just look for customdefeat, make sure it's the rite one and then do w/e you want to it.

Disabled menus and all that good shit, I actually don't know the trigger for this so either get someone to tell you the jass for doing this so that you may find it or look for the no single thru fucntions with GetPlayerSlotState and GetPlayerController, and make sure what you found is indeedy the single and then do whatever you want to it.

Something thats not 1 of those 3, well then if the map hasnt had all the trigs, variables renamed see if you can't find something with a name pertaining to no single, if it has been renamed or you can't find anything try searching for the slotstate's and playercontrollers like in number3. Other wise try and figure out what the did and look for that. Like if they just remove your hero search for a unit remove trig.(though i dont think any maps implement this.) :)

Thats pretty much all the protection ever implemented in no Single that i've ever seen at least, it's sad I know. :(

Still can't find it? Then you don't have enough patience, or your just dumb, or I finally got off my lazy ass and made a map with all my protection skills. :P