That seemingly simple question is actually quite disastrous lol.
There are 2 ways to save your hero:
1. Use a bank and use 'store unit' and 'restore unit' for saving/loading. This is HIGHLY unprotected and will be cheated/edited.
2. Use a bank and convert your hero's exp, abilities, items, type, etc, into one giant string like War3 RPG's had (e.g. EFAGDSA&GH734GJIOR) with some protection like checking certain digits have to be certain values or a checksum. Then save this string into the bank and load it on the next game. This will stop 99% of cheaters but one dude may crack it.
In my RPG project which you may have seen the videos for, I use option # 2 which took me 3-4 days to put in place (and i work really fast and have a lot of experience). It wasn't bug free for weeks either.
The other thing is rather than save when someone leaves (because you can't since they left the game you can't write to their bank file), I run my save trigger on EVERY action a player performs so it saves constantly. The player never has to type -save or know its happening.
There's still one problem which is copying your bank file, then give your friend some of your nice items, then paste your old bank file and have all of your old items back. Now both players have your nice items. Not to mention, if people crack my 'code' they can give themselves anything.
Well, I may do a bank tutorial soon but it will be the lazy #1 type of bank, which works by all means, but is completely unguarded. I could never do a tutorial on #2 because it's not feasible. Maybe a shortened version but I'm really hoping Blizz will just give us server-side banks and we can be free of cheating.
I'm told that the solution is to put the flags of "Burrowed" and "Cloaked" on skybox unit... and then make the skybox for each player rather than for player 0. Haven't confirmed this personally.
Don't be so hard on yourself, the mist looks fine to me. I think this looks really cool, definitely push it further and instead of just remaking AC130, make your own thing up and actually make an FPS map... I'd like to see what comes out of it :D
Honestly I still don't full understand each field for doing fog... you'll have to really play around. But, once you get the skybox in there instead of the black wall, suddenly that fog won't look as bad. Definitely play around with the fields to increase the end and start fog distance (somehow lol).
Keep in mind though, no matter how smooth you make it, the problem will still exist. Even WoW has it and their fog distance is HUGE so it can be much smoother. Remember this is an RTS though and we have limitations :(
Also I don't mind if you spread my tutorials or the knowledge I present into Russian tutorials on your site... if you aren't already... definitely would be cool.
Haha I hate going back and adding/changing stuff as a '4th part'... maybe a separate tutorial is better. ALso, I just reformatted the transcript a bit.
I actually didn't because I didn't have any to see / test with... but if you had it happen you could see where they shit and shift it...
Also, i didn't do any testing with selecting multiple units since in the tutorial it can never happen... you only have one hero. But that frame may be way off (the one with unit group wireframes)
Okay, (long post) here's my transcript, sorry if it's a bit raw... also attached the image showing the interface layout changes:
3rd Person RPG Tutorial
(1 Player)
-------------------------------------
Demo & Part 1 (Terrain+Setup)
-------------------------------------
New Agria map
Stretch out camera bounds of your map to make use of as much room as possible
Paint terrain and cliffs WoW style using the height tool rather than basic cliffs of war3/sc2 style. See video for how I paint it.
Paint no pathing on our WoW-style cliffs to prevent player from wandering off the map.
Place and space out agria trees
Data editor->Actors (All doodads are actors), find art- scale field on Agria tree... make agria tree have 2.0 scale
Place a zeratul at a start position... and place a camera over his shoulder... and make sure Far Clip of 55 on cam.
-------------------------------------
Part 2 (Camera & Skybox)
-------------------------------------
Open Data editor, go to units tab, and search for Zeratul.
Zeratul - remove cloaked flag from flags.
Click on zeratul's actor in tree-view (or find his actor in actors tab). Find field named Status Bar Flags. Uncheck everything. This will remove his HP bar/energy bar.
Go to Cameras tab of data editor:
Default Camera - remove all zoom levels in zoom levels+ field.
Head on over to the trigger editor...
Click on the Melee Initialization trigger and remove all of the ACTIONS that are there. Then add the following:
Camera - Apply Camera 001 for player 1 over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Include Target
Camera - Lock camera input for player 1
Camera - Follow for player 1 (Unit group(Zeratul [29.98, 19.77])) with the camera and Clear Current Target
Visibility - Create a visibility revealer for player 1 within (Entire map)
New trigger, make it the following:
Camera Rotation Trigger:
Events
Unit - Any Unit is issued an order to Any Ability Command
Local Variables
Conditions
(Triggering unit) == Zeratul [29.98, 19.77]
Actions
General - Wait 0.15 Real Time seconds
General - Repeat (Actions) 3 times
Actions
Camera - Apply camera object Rotation (Facing of Zeratul [29.98, 19.77]) for player 1 over 2.0 seconds with Existing Velocity% initial velocity and 4% deceleration
General - Wait 0.3 Real Time seconds
Another new trigger, for adjusting camera pitch up:
Camera Pitch Up Trigger:
Events
UI - Player Any Player presses Up key Up with shift Allow, control Allow, alt Allow
Local Variables
Conditions
Actions
Camera - Apply camera object Angle Of Attack ((Current camera pitch of player 1) + 10.0) for player 1 over 1.5 seconds with Existing Velocity% initial velocity and 4% deceleration
And for pitch down:
Camera Pitch Down Trigger:
Events
UI - Player Any Player presses Down key Up with shift Allow, control Allow, alt Allow
Local Variables
Conditions
Actions
Camera - Apply camera object Angle Of Attack ((Current camera pitch of player 1) - 10.0) for player 1 over 1.5 seconds with Existing Velocity% initial velocity and 4% deceleration
For the interaction to test fighting:
Place some zerglings and hydralisks back in the terrain editor
Skybox:
Go to data editor, open models tab. Make a new model based on Generic etc...
Make skybox model have belshir skybox as model field, and scale min/max be 0.007.
Go to Unit tab:
Duplicate probe and strip it, speed of 5, no collisions, height of -1.5, remove turning flag, make unselectable untargetable and not on radar flags checked, invulnerable flag checked, and make model for actor the skybox be the model we made earlier with belshir.
Back in INIT trigger add the lines:
Unit - Create 1 Player Sky Box for player 0 at (Position of Zeratul [29.98, 19.77]) facing 270.0 degrees (Ignore Placement)
Unit - Order (Last created unit) to ( Move targeting Zeratul [29.98,c 19.77]) (Replace Existing Orders)
To set the fog to prevent harsh edge of skybox:
Open Terrain Texture Sets tab, find Agria:
Fog Color: White
Fog Density: 1.0
Fog distance falloff: 4
Fog distance far: 60
Fog distance near: 35
Fog enabled: Enabled
Fog falloff: 0.11
Fog Starting Height: -25
-------------------------------------
Part 3 (Interface Layout)
-------------------------------------
In the data editor in Game UI, set world console bottom to 0.
Download SC2Layouts from sc2mapster to desktop or somewhere quick/easy. (Helral's tutorial)
The following will take Blizzard's UI and make it as in the attached image of this post...
Open CommandPanel.sc2layout (drag into notepad):
Make buttons 05 and 10 relative to 04 and 09 instead of 00 and 05.
The way to do this is to change the following data:
1. set the relative for both positions to $parent/CommandButton04 (09 for Button10)
2. set the Top pos to Min and the offset to 0
3. set the Left pos to Max and the offset to "#CommandButtonGap"
THEN CHANGE COMMANDTOOLTIP TO BE:
<Anchor side="Bottom" relative="$parent" pos="Max" offset="-100"/>
<Anchor side="Left" relative="$parent" pos="Min" offset="200"/>
Then change CommandButton00 to have TOP offset of 30
Then change CommandTargetPrompt to have TOP offset of 0
Open GameUI.sc2layout
CommandPanel:
Width to 3x bigger (1200), height to be 130.
Bottom offset from -18 to 0
Anchor of Right becomes Left, pos Min, and offset of 250.
InfoPanel (right below):
GET RID of height and make it:
<Anchor side="Left" relative="$parent" pos="Min" offset="0"/>
<Anchor side="Bottom" relative="$parent" pos="Max" offset="0"/>
<Anchor side="Right" relative="$parent" pos="Mid" offset="0"/>
<Anchor side="Top" relative="$parent" pos="Min" offset="0"/>
Open InfoPanel.SC2layout
FIND THE FOLLOWING AND CHANGE IT:
<Frame type="InfoPaneUnit" name="InfoPaneUnit" template="InfoPaneUnit/InfoPaneUnitTemplate">
<Anchor side="Top" relative="$parent" pos="Mid" offset="400"/>
<Anchor side="Bottom" relative="$parent" pos="Max" offset="0"/>
<Anchor side="Left" relative="$parent" pos="Min" offset="-65"/>
<Width val="402"/>
</Frame>
Open InfoPaneUnit.SC2Layout
For NameLabel, make offset for Top to be -820, and offset for Left to be -30
Open MenuBar.SC2Layout
Find MenuButton... change left anchor line to be <Anchor side="Left" relative="$parent" pos="Min" offset="200"/>
Open ResourcePanel.sc2layout
SupplyLabel frame, find anchor of Right, and change offset to -300
Head back into editor and open trigger window:
Go into INIT trigger, show/hide UI Frame:
UI - Hide Console Panel for (All players)
UI - Hide Hero Panel for (All players)
UI - Hide Achievements Menu Button for (All players)
Finally, go to import manager of editor, right click, import files, click browse... choose highest level "UI" folder that you downloaded... then you should see a tree-view with checkboxes of UI/UI/Layout/UI/... you can watch my video tutorial at this point of how I check off the right level, but the idea is to check off just under the first UI.... well, once it's imported it should look like:
UI
Layout
UI
achievement.sc2layout
etc etc..
It's recommended to watch the video for this part ^ as it is difficult to explain the proper technique of importing. Once this is done, the tutorial is over!
To SoulCarver: I honestly prefer reading text too as a 'user'. However I personally find it easier to make videos as a tutorial-maker because I just go through the steps and there's visual proof. What I will do (if I didn't delete it hopefully) is paste in my own "Plan.txt" which does have every step I did in the videos you see. I'll look for it when I get home later.
That is much harder though; especially with inventory... good luck getting items pickup-able and movable in your inventory. As well, targeting abilities may be painful :/
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
@Selfcreation: Go
Be warned though that the interface layout system has changed... see Helrals post! the fundamental idea is the same though.
@HatsuneMikuMegurine: Go
Look at Helral's post about the new way of doing UI layouts. It's a bit of work for me to try and change it atm.
@dipstickk: Go
That seemingly simple question is actually quite disastrous lol.
There are 2 ways to save your hero:
1. Use a bank and use 'store unit' and 'restore unit' for saving/loading. This is HIGHLY unprotected and will be cheated/edited.
2. Use a bank and convert your hero's exp, abilities, items, type, etc, into one giant string like War3 RPG's had (e.g. EFAGDSA&GH734GJIOR) with some protection like checking certain digits have to be certain values or a checksum. Then save this string into the bank and load it on the next game. This will stop 99% of cheaters but one dude may crack it.
In my RPG project which you may have seen the videos for, I use option # 2 which took me 3-4 days to put in place (and i work really fast and have a lot of experience). It wasn't bug free for weeks either.
The other thing is rather than save when someone leaves (because you can't since they left the game you can't write to their bank file), I run my save trigger on EVERY action a player performs so it saves constantly. The player never has to type -save or know its happening.
There's still one problem which is copying your bank file, then give your friend some of your nice items, then paste your old bank file and have all of your old items back. Now both players have your nice items. Not to mention, if people crack my 'code' they can give themselves anything.
Well, I may do a bank tutorial soon but it will be the lazy #1 type of bank, which works by all means, but is completely unguarded. I could never do a tutorial on #2 because it's not feasible. Maybe a shortened version but I'm really hoping Blizz will just give us server-side banks and we can be free of cheating.
@Conradjd: Go
Not that I know of conrad. Anyone else know?
I know you can set occlusion to 'on' for any models you want... e.g. trees. This will make them go half invis when the camera passes through them.
@UninvitedSC: Go
I'm told that the solution is to put the flags of "Burrowed" and "Cloaked" on skybox unit... and then make the skybox for each player rather than for player 0. Haven't confirmed this personally.
@gamemore: Go
Don't be so hard on yourself, the mist looks fine to me. I think this looks really cool, definitely push it further and instead of just remaking AC130, make your own thing up and actually make an FPS map... I'd like to see what comes out of it :D
@gamemore: Go
OMFG that looks AWESOME. Is that with skybox too?
@gamemore: Go
Honestly I still don't full understand each field for doing fog... you'll have to really play around. But, once you get the skybox in there instead of the black wall, suddenly that fog won't look as bad. Definitely play around with the fields to increase the end and start fog distance (somehow lol).
Keep in mind though, no matter how smooth you make it, the problem will still exist. Even WoW has it and their fog distance is HUGE so it can be much smoother. Remember this is an RTS though and we have limitations :(
WoW examples:
http://huntsmanslodge.com/wp-content/gallery/world-explorer/wow_explorer_eversong_woods_coast.jpg
http://huntsmanslodge.com/wp-content/gallery/world-explorer/wow_explorer_murlocs_tirisfal_coast.jpg
http://farm4.static.flickr.com/3352/3555550940_0d20348a2a.jpg
^ See the land in the distance is completely shaded out.
@Pinachet:
Thanks! Anything in particular you want to see?
Also I don't mind if you spread my tutorials or the knowledge I present into Russian tutorials on your site... if you aren't already... definitely would be cool.
@SouLCarveRR:
Agreed
@SouLCarveRR:
Haha I hate going back and adding/changing stuff as a '4th part'... maybe a separate tutorial is better. ALso, I just reformatted the transcript a bit.
@SouLCarveRR: Go
I actually didn't because I didn't have any to see / test with... but if you had it happen you could see where they shit and shift it...
Also, i didn't do any testing with selecting multiple units since in the tutorial it can never happen... you only have one hero. But that frame may be way off (the one with unit group wireframes)
@SouLCarveRR:
Okay, (long post) here's my transcript, sorry if it's a bit raw... also attached the image showing the interface layout changes:
3rd Person RPG Tutorial
(1 Player)
-------------------------------------
Demo & Part 1 (Terrain+Setup)
-------------------------------------
New Agria map
Stretch out camera bounds of your map to make use of as much room as possible
Paint terrain and cliffs WoW style using the height tool rather than basic cliffs of war3/sc2 style. See video for how I paint it.
Paint no pathing on our WoW-style cliffs to prevent player from wandering off the map.
Place and space out agria trees
Data editor->Actors (All doodads are actors), find art- scale field on Agria tree... make agria tree have 2.0 scale
Place a zeratul at a start position... and place a camera over his shoulder... and make sure Far Clip of 55 on cam.
-------------------------------------
Part 2 (Camera & Skybox)
-------------------------------------
Open Data editor, go to units tab, and search for Zeratul.
Zeratul - remove cloaked flag from flags.
Click on zeratul's actor in tree-view (or find his actor in actors tab). Find field named Status Bar Flags. Uncheck everything. This will remove his HP bar/energy bar.
Go to Cameras tab of data editor:
Default Camera - remove all zoom levels in zoom levels+ field.
Head on over to the trigger editor...
Click on the Melee Initialization trigger and remove all of the ACTIONS that are there. Then add the following:
Camera - Apply Camera 001 for player 1 over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Include Target
Camera - Lock camera input for player 1
Camera - Follow for player 1 (Unit group(Zeratul [29.98, 19.77])) with the camera and Clear Current Target
Visibility - Create a visibility revealer for player 1 within (Entire map)
New trigger, make it the following:
Camera Rotation Trigger:
Events
Unit - Any Unit is issued an order to Any Ability Command
Local Variables
Conditions
(Triggering unit) == Zeratul [29.98, 19.77]
Actions
General - Wait 0.15 Real Time seconds
General - Repeat (Actions) 3 times
Actions
Camera - Apply camera object Rotation (Facing of Zeratul [29.98, 19.77]) for player 1 over 2.0 seconds with Existing Velocity% initial velocity and 4% deceleration
General - Wait 0.3 Real Time seconds
Another new trigger, for adjusting camera pitch up:
Camera Pitch Up Trigger:
Events
UI - Player Any Player presses Up key Up with shift Allow, control Allow, alt Allow
Local Variables
Conditions
Actions
Camera - Apply camera object Angle Of Attack ((Current camera pitch of player 1) + 10.0) for player 1 over 1.5 seconds with Existing Velocity% initial velocity and 4% deceleration
And for pitch down:
Camera Pitch Down Trigger:
Events
UI - Player Any Player presses Down key Up with shift Allow, control Allow, alt Allow
Local Variables
Conditions
Actions
Camera - Apply camera object Angle Of Attack ((Current camera pitch of player 1) - 10.0) for player 1 over 1.5 seconds with Existing Velocity% initial velocity and 4% deceleration
For the interaction to test fighting:
Place some zerglings and hydralisks back in the terrain editor
Skybox:
Go to data editor, open models tab. Make a new model based on Generic etc...
Make skybox model have belshir skybox as model field, and scale min/max be 0.007.
Go to Unit tab:
Duplicate probe and strip it, speed of 5, no collisions, height of -1.5, remove turning flag, make unselectable untargetable and not on radar flags checked, invulnerable flag checked, and make model for actor the skybox be the model we made earlier with belshir.
Back in INIT trigger add the lines:
Unit - Create 1 Player Sky Box for player 0 at (Position of Zeratul [29.98, 19.77]) facing 270.0 degrees (Ignore Placement)
Unit - Order (Last created unit) to ( Move targeting Zeratul [29.98,c 19.77]) (Replace Existing Orders)
To set the fog to prevent harsh edge of skybox:
Open Terrain Texture Sets tab, find Agria:
Fog Color: White
Fog Density: 1.0
Fog distance falloff: 4
Fog distance far: 60
Fog distance near: 35
Fog enabled: Enabled
Fog falloff: 0.11
Fog Starting Height: -25
-------------------------------------
Part 3 (Interface Layout)
-------------------------------------
In the data editor in Game UI, set world console bottom to 0.
Download SC2Layouts from sc2mapster to desktop or somewhere quick/easy. (Helral's tutorial)
The following will take Blizzard's UI and make it as in the attached image of this post...
Open CommandPanel.sc2layout (drag into notepad):
Make buttons 05 and 10 relative to 04 and 09 instead of 00 and 05.
The way to do this is to change the following data:
1. set the relative for both positions to $parent/CommandButton04 (09 for Button10)
2. set the Top pos to Min and the offset to 0
3. set the Left pos to Max and the offset to "#CommandButtonGap"
THEN CHANGE COMMANDTOOLTIP TO BE:
<Anchor side="Bottom" relative="$parent" pos="Max" offset="-100"/>
<Anchor side="Left" relative="$parent" pos="Min" offset="200"/>
Then change CommandButton00 to have TOP offset of 30
Then change CommandTargetPrompt to have TOP offset of 0
Open GameUI.sc2layout
CommandPanel:
Width to 3x bigger (1200), height to be 130.
Bottom offset from -18 to 0
Anchor of Right becomes Left, pos Min, and offset of 250.
MinimapPanel (right above)...
CHANGE ANCHoRS TO BE:
<Anchor side="Right" relative="$parent" pos="Max" offset="0"/>
<Anchor side="Top" relative="$parent" pos="Min" offset="0"/>
InfoPanel (right below):
GET RID of height and make it:
<Anchor side="Left" relative="$parent" pos="Min" offset="0"/>
<Anchor side="Bottom" relative="$parent" pos="Max" offset="0"/>
<Anchor side="Right" relative="$parent" pos="Mid" offset="0"/>
<Anchor side="Top" relative="$parent" pos="Min" offset="0"/>
Open InfoPanel.SC2layout
FIND THE FOLLOWING AND CHANGE IT:
<Frame type="InfoPaneUnit" name="InfoPaneUnit" template="InfoPaneUnit/InfoPaneUnitTemplate">
<Anchor side="Top" relative="$parent" pos="Mid" offset="400"/>
<Anchor side="Bottom" relative="$parent" pos="Max" offset="0"/>
<Anchor side="Left" relative="$parent" pos="Min" offset="-65"/>
<Width val="402"/>
</Frame>
Open InfoPaneUnit.SC2Layout
For NameLabel, make offset for Top to be -820, and offset for Left to be -30
Open MenuBar.SC2Layout
Find MenuButton... change left anchor line to be <Anchor side="Left" relative="$parent" pos="Min" offset="200"/>
Open ResourcePanel.sc2layout
SupplyLabel frame, find anchor of Right, and change offset to -300
Head back into editor and open trigger window:
Go into INIT trigger, show/hide UI Frame:
UI - Hide Console Panel for (All players)
UI - Hide Hero Panel for (All players)
UI - Hide Achievements Menu Button for (All players)
Finally, go to import manager of editor, right click, import files, click browse... choose highest level "UI" folder that you downloaded... then you should see a tree-view with checkboxes of UI/UI/Layout/UI/... you can watch my video tutorial at this point of how I check off the right level, but the idea is to check off just under the first UI.... well, once it's imported it should look like:
UI
Layout
UI
achievement.sc2layout
etc etc..
It's recommended to watch the video for this part ^ as it is difficult to explain the proper technique of importing. Once this is done, the tutorial is over!
@zeldarules28: Go
Thanks!
To SoulCarver: I honestly prefer reading text too as a 'user'. However I personally find it easier to make videos as a tutorial-maker because I just go through the steps and there's visual proof. What I will do (if I didn't delete it hopefully) is paste in my own "Plan.txt" which does have every step I did in the videos you see. I'll look for it when I get home later.
@Nebuli2: Go
That is much harder though; especially with inventory... good luck getting items pickup-able and movable in your inventory. As well, targeting abilities may be painful :/