HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Making an Open RPG

01-30-2006, 11:05 AM#1
Bob27
Introduction
Making an Open Rpg is pretty easy, but making a good one can be very hard. An Open Rpg should have more then one race, should have quests and an extra inventry system.

Planning, Terraining, Object Data and Hero Selection System
The first thing that should be done is to plan what you want your Open Rpg to turn out as. What races, classes and places do you want in your map? One other thing that I surgest you do is make up names for your towns/cities/places. When you have finished planning you need to have a basic idea in your head where different places will be. If possible try drawing a map or write some notes down on a peice of paper. The first part of the terraining will be the starting city/town. I surgest that you use a normel town as the starting location and not a major city. Also suround a small area of the town with forest/desert/plains. This will also be the time to import units/building/doodads/ect. Now its time to start the Object Data. A basic tuorial for Object Data can be found Here. For now just do any doodads/destructables that will be needed in the starting town and the heros players can select from. Now for the Hero Selection System it can be done in a number of ways. You can have a wisp or some other unit that you move into a circle of power infront of a hero, selecting that hero. That can be used useing a trigger something like this.
Trigger:
Archer
Collapse Events
Unit - A unit enters Archer <gen>
Collapse Conditions
(Unit-type of (Entering unit)) Equal to Wisp
Collapse Actions
Unit - Create 1 Snake Aes for (Owner of (Entering unit)) at (Center of Start2 <gen>) facing Default building facing (270.0) degrees
Hero - Create Ankh of Reincarnation and give it to (Last created unit)
If ((Owner of (Entering unit)) Equal to Player 1 (Red)) then do (Set Player1 = (Last created unit)) else do (Do nothing)
If ((Owner of (Entering unit)) Equal to Player 2 (Blue)) then do (Set Player2 = (Last created unit)) else do (Do nothing)
If ((Owner of (Entering unit)) Equal to Player 6 (Orange)) then do (Set Player6 = (Last created unit)) else do (Do nothing)
If ((Owner of (Entering unit)) Equal to Player 7 (Green)) then do (Set Player7 = (Last created unit)) else do (Do nothing)
Unit - Remove (Entering unit) from the game
You can also use Dialogs. The next way is using Chat Commands. The trigger for that would be something like this.
Trigger:
Player One Choose Humans
Collapse Events
Player - Player 1 (Red) types a chat message containing -Human as An exact match
Conditions
Collapse Actions
Trigger - Turn off (This trigger)
Camera - Apply Choose Human <gen> for Player 1 (Red) over 0.00 seconds
Game - Display to (All players) for 10.00 seconds the text: Now Choose a class ...
Trigger - Turn on Player One Choose Hunter <gen>
Trigger - Turn on Player One Choose Priest <gen>
Trigger - Turn on Player One Choose Warrier <gen>

This trigger is chooseing the race, chooseing the class would be something like this.
Trigger:
Player One Choose Warrier
Collapse Events
Player - Player 1 (Red) types a chat message containing -Warrier as An exact match
Conditions
Collapse Actions
Player - Make Player 1 (Red) treat Player 10 (Light Blue) as an Ally
Player - Make Player 10 (Light Blue) treat Player 1 (Red) as an Ally
Unit - Create 1 Human Warrier for Player 1 (Red) at (Center of Human Spawn <gen>) facing 90.00 degrees
Set Player_One_Character = (Last created unit)
Trigger - Turn off Player One Choose Hunter <gen>
Trigger - Turn off Player One Choose Priest <gen>
Trigger - Turn off Player One Choose Warrier <gen>

Making Cp's, Quests and systems
The next thing to do is the make the object data for the Cps. Create gaurds, civillions, workers and bosses. Bosses are heros that can either be on a team or be a creep. Bosses on a team should have a rank (eg, captain, luitenant, king, ect). Now all you have to do is place them around the city. Now the quests will mostly wait for a while but for now we will make a story quest. Story quests are things that should lead up to some event happening. Even though it will be a multiplayer Open Rpg it should have some sought of story to it. The players should spawn right next to the person who will start the story quests.
Trigger:
Quest One The Knights of Asiria Player One
Collapse Events
Unit - A unit Is issued an order targeting an object
Collapse Conditions
(Target unit of issued order) Equal to Captain 0029 <gen>
(Owner of (Triggering unit)) Equal to Player 1 (Red)
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Player_One_Character has an item of type Pirates Battle Plans) Equal to True
Collapse Then - Actions
Cinematic - Turn cinematic mode On for Player Group - Player 1 (Red)
Hero - Order Player_One_Character to Give Captain 0029 <gen> to (Item carried by Player_One_Character of type Pirates Battle Plans)
Player - Add 30 to Player 1 (Red) Current gold
Cinematic - Send transmission to Player Group - Player 1 (Red) from Captain 0029 <gen> named Captain Hafer: Play No sound and display Well done! I'll jus.... Modify duration: Add 0.00 seconds and Wait
Cinematic - Send transmission to Player Group - Player 1 (Red) from Captain 0029 <gen> named Captain Hafer: Play No sound and display Here is your reward.... Modify duration: Add 0.00 seconds and Wait
Cinematic - Turn cinematic mode Off for Player Group - Player 1 (Red)
Trigger - Turn off (This trigger)
Trigger - Turn on Quest Two The Scorpians Player One <gen>
Collapse Else - Actions
Cinematic - Turn cinematic mode On for Player Group - Player 1 (Red)
Cinematic - Send transmission to Player Group - Player 1 (Red) from Captain 0029 <gen> named Captain Hafer: Play No sound and display The king has ordere.... Modify duration: Add 0.00 seconds and Wait
Cinematic - Send transmission to Player Group - Player 1 (Red) from Captain 0029 <gen> named Captain Hafer: Play No sound and display First of all you mu.... Modify duration: Add 0.00 seconds and Wait
Cinematic - Send transmission to Player Group - Player 1 (Red) from Captain 0029 <gen> named Captain Hafer: Play No sound and display Then come back to m.... Modify duration: Add 0.00 seconds and Wait
Cinematic - Turn cinematic mode Off for Player Group - Player 1 (Red)
This code is a basic quest. Although the conditions, ect will be different for quest the trigger should mostly be the same. Now this is also time to import systems. These will include things like extra inventory systems, weapon wielding systems and camera systems (all are optional). This is a good weapon wielding system I found and is easy to change because its in Gui.
Trigger:
Wield
Collapse Events
Unit - A unit Uses an item
Collapse Conditions
((Triggering unit) is A Hero) Equal to True
Collapse Or - Any (Conditions) are true
Collapse Conditions
(Item-type of (Item being manipulated)) Equal to Katana
(Item-type of (Item being manipulated)) Equal to Claw
(Item-type of (Item being manipulated)) Equal to Saber
(Item-type of (Item being manipulated)) Equal to Short Sword
Collapse Actions
-------- This if/then/else is to not show a message like "Wielding Weapon: <Empty String>" when you didn't had a weapon wielded before. --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
Weapon[(Player number of (Owner of (Triggering unit)))] Not equal to No item
Collapse Then - Actions
Game - Display to (Player group((Owner of (Hero manipulating item)))) for 2.50 seconds the text: ((Unwielding Weapon: |CFF0000FF + (Name of Weapon_Bonus[(Player number of (Owner of (Hero manipulating item)))])) + |r)
Collapse Else - Actions
Game - Display to (Player group((Owner of (Hero manipulating item)))) for 2.50 seconds the text: Unwielding Weapon: ...
Unit - Remove Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] from (Triggering unit)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Item-type of (Item being manipulated)) Equal to Katana
Collapse Then - Actions
Set Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] = Katana
Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Item-type of (Item being manipulated)) Equal to Claw
Collapse Then - Actions
Set Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] = Claw
Collapse Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Item-type of (Item being manipulated)) Equal to Saber
Collapse Then - Actions
Set Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] = Saber
Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Item-type of (Item being manipulated)) Equal to Short Sword
Collapse Then - Actions
Set Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] = Short Sword
Else - Actions
Unit - Add Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] to (Triggering unit)
Set Weapon[(Player number of (Owner of (Triggering unit)))] = (Item being manipulated)
Game - Display to (Player group((Owner of (Hero manipulating item)))) for 2.50 seconds the text: ((Wielding Weapon: |CFF0000FF + (Name of Weapon_Bonus[(Player number of (Owner of (Hero manipulating item)))])) + |r)
Item - Set charges remaining in (Item being manipulated) to 1
Hero - Drop (Item being manipulated) from (Triggering unit)
Hero - Give (Item being manipulated) to (Triggering unit)

Trigger:
Drop Weapon
Collapse Events
Unit - A unit Loses an item
Conditions
Collapse Actions
Wait 0.30 seconds
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Triggering unit) has an item of type (Item-type of Weapon[(Player number of (Owner of (Triggering unit)))])) Equal to False
(Item being manipulated) Equal to Weapon[(Player number of (Owner of (Triggering unit)))]
Collapse Then - Actions
Game - Display to (Player group((Owner of (Triggering unit)))) for 2.50 seconds the text: ((Unwielding Weapon: |CFF0000FF + (Name of Weapon_Bonus[(Player number of (Owner of (Triggering unit)))])) + |r)
Unit - Remove Weapon_Bonus[(Player number of (Owner of (Triggering unit)))] from (Triggering unit)
Set Weapon[(Player number of (Owner of (Triggering unit)))] = No item
Else - Actions

Creeps
Now its time to add Creeps to the area of terrain you have already finished. In starting locations there should be creeps that can be killed by levels 1-10, cities 5-20, forests, plains, deserts, ect 5-40, dungeons, creep bosses 40-60. You should also increase the maxinum hero level to 60 through the Advanced-Game Interface menu.

Finish the map
Now you just have to fill in the rest of the map. Finish the terrain, quests, cps, systems and races in a simular way to what is said above. If you have any question you can private message me.
02-06-2006, 04:33 PM#2
Lucavixp
Pretty neat! Especially for beginners, though you should say that people shouldn't directly use this, but should use it as a guide. it would suck to see 283728 maps all the same.
02-06-2006, 04:42 PM#3
Drek-ker
I CAN USE THIS another time.thx bob after reading all those triggers a few times i got the hang of all that, very well displayed out.
02-06-2006, 07:24 PM#4
Meanie
Im making an RPG.. sort off and i read this tutorial not that i needed it but and inspiration it puts people in the right track...btw its spelled Warrior or?
02-06-2006, 09:51 PM#5
Datajax
It's spelt warrior.
02-06-2006, 09:59 PM#6
Murder1833
Nice tut, but what about creep respawns? You definatly need to add that.
02-10-2006, 09:31 AM#7
Bob27
ok well this is just getting an RPG started. I'll make some tutorials on the more advanced stuff soon. I might even go into things such as what terrains good for an Open RPG and so on.
03-03-2006, 12:07 AM#8
darkblade65
this helped alot, i didnt read any of it except choosing hero but i skimmed thru it and so far looks pretty good, ima check it out later, good job!
06-24-2007, 02:14 PM#9
Strategy
Cool!! Very easy to practice it... But maybe someday, u can gimme trigger to save and load a hero(Jass is ok) like RPG map do...