Classes and Races...

Is there any way to make a class race specific?
Meaning, can I make a Chieftain class that only people who have chosen orcs as a race can choose.

------------------
Nothing is foolproof to a sufficiently talented fool.

Quote

Originally posted by spitfire:
**Is there any way to make a class race specific?
Meaning, can I make a Chieftain class that only people who have chosen orcs as a race can choose.
**

Yes but you would have to do your class or race selection manually using events.

------------------
Dee Brown
Beenox inc. - (url="http://"http://www.beenox.com")www.beenox.com(/url) (check our new web site!)
(url="http://"http://www.AmbrosiaSW.com/games/coldstone/")Coldstone Game Engine(/url) / (url="http://"http://www.AmbrosiaSW.com/games/pog/")Pillars of Garendall(/url) developers

Ok, how do you set classes to start with specific items?
For example, if I want my Troll Shadow Hunter to begin with a Death blade instead of a short sword. Could I do that?

------------------
Nothing is foolproof to a sufficiently talented fool.

Quote

Originally posted by spitfire:
**Ok, how do you set classes to start with specific items?
For example, if I want my Troll Shadow Hunter to begin with a Death blade instead of a short sword. Could I do that?

**

I think you could do it by editing the event "Main.cet", and putting in some conditionals that compare against the class and/or race type.

Unfortunately, it looks like you can't compare the contents of the "Job" or "Class" variable to a string in that dialog. However, you could make some global variables that are just constants holding the names of hte classes/races. Then, you could use that global as the Object and "Job" or "Race" as the Value in the Conditional action.

Of course, I haven't tried this, and so a hitch might come along, but it seems like it should work.

-Jeff

------------------
Experiences = Integrate( Life, {t, birth, death} )

I tried this, but couldn't compare classes within an event.
I also briefly looked into setting the class within a global variable, but couldn't figure out how I could do that.

------------------
Nothing is foolproof to a sufficiently talented fool.

I did it just fine, you probably made a mistake or didn't read what I had said close enough (I went over it really quickly so that I'm probably the only one that knew what I meant). 🙂

Stay tuned, and I'll type up some good instructions...

-Jeff

------------------
Experiences = Integrate( Life, {t, birth, death} )

Quote

Originally posted by Paploo:
**I think you could do it by editing the event "Main.cet", and putting in some conditionals that compare against the class and/or race type.

Unfortunately, it looks like you can't compare the contents of the "Job" or "Class" variable to a string in that dialog. However, you could make some global variables that are just constants holding the names of hte classes/races. Then, you could use that global as the Object and "Job" or "Race" as the Value in the Conditional action.

Of course, I haven't tried this, and so a hitch might come along, but it seems like it should work.**

You have it all right.

------------------
Dee Brown
Beenox inc. - (url="http://"http://www.beenox.com")www.beenox.com(/url) (check our new web site!)
(url="http://"http://www.AmbrosiaSW.com/games/coldstone/")Coldstone Game Engine(/url) / (url="http://"http://www.AmbrosiaSW.com/games/pog/")Pillars of Garendall(/url) developers

In this example, I will tell how one could make the dagger be the equipped weapon of the character at the start of the game, but only if they are of the Mage class. There may be a slicker way of doing this, but this certainly works.

I will assume that you have already made the dagger item, and that you have already created a "Mage" class (and know how to select it when you create a new game).

Here are the steps to do this:

Add a global:
Open the "Project">"Game options" menu. Go to the "Globals" tab and click on the plus over the list. Type in the variable name: "Mage_CONST". (The name doesn't matter, but for this example, this is what I have chosen). Now click the "Save" button.

Open the Main.cet:
In the Game Browser palette, click the arrow beside the "Events" folder. Then click the arrow besides the "Defs" folder. This (as most of you will know) shows the list of event definitions. Now double click on the event named "Main.cet".

Edit Main.cet:
This is three step process (for this really simple script). First, add a Change Globals action (name it "Set Mage Class Const" or something like that). In the Global variable list, select gb_Mage_CONST. Set the Operator to "Set", and in the Operation value field, type in the class name (which is "Mage" in this example). Click OK.

Now add an Item Wizard action to the Linked actions list (NOT the Main Sequence actions list!!), and name it whatever you want. Select Use/Equip from the Action pop-up, and click on the check box beside the Dagger item. Click OK.

Lastely, add a Conditional Action (to the normal Main Sequence actions list), and name it whatever you want. In the action edit dialog, select "gb_Mage_CONST" in the Object list. Select the "is equal to" operator in the Operator list. For the Value field, type in "&&Job;". Now click the plus in the Condition list section. Lastely, set the 'If true do...' pop-up ti the item wizard you created in the last step. Leave teh 'If true do...' pop-up set to "Nothing". Then click OK.

Save and Compile:
Now save your edited Main.cet event, and run the program. It should work. It worked for me.


In case you want the overview of what I just did, I created a global variable that is eventually set to the name of the class you want to compare against.

Then, I edited the "Main.cet" even (which is the last thing called before giving the user control when creating a new game), so that it sets the value of the global variable, and then compares it against the selected class of the player. If they are equal, then it goes and equips a specific weapon for the player.

Of course, this is a simple example, and the technique can be extended to support a much more complicated logic scheme.

-Jeff

P.S. - I didn't proof read. 🙂

------------------
Experiences = Integrate( Life, {t, birth, death} )

Quote

Originally posted by spitfire:
I also briefly looked into setting the class within a global variable, but couldn't figure out how I could do that.

  1. Add a "Change Globals" action
  2. Select the global that will contain the class name
  3. In the value field, enter "&&Job;" (or select it from the tag helper popup, next to it)

Now you can you conditional with this variable to check if the player is of this or this class and do what you think is appropriate...

------------------
Dee Brown
Beenox inc. - (url="http://"http://www.beenox.com")www.beenox.com(/url) (check our new web site!)
(url="http://"http://www.AmbrosiaSW.com/games/coldstone/")Coldstone Game Engine(/url) / (url="http://"http://www.AmbrosiaSW.com/games/pog/")Pillars of Garendall(/url) developers