Manual for Dummies?

Is there a manual for Dummies? I can't for the life of me figure out why the Class and Race stats don't work. I've entered them along with a description so that the Player can choose strengths and weaknesses of his or her character. Why on earth would they have that option for the Designer but it doesn't work for the Player?

I go through my Startup Screen and into my first map location with my Player. I call up the stats and everything is wrong. I appreciated the reply about Race + Class, but didn't understand that either.

I find it very difficult. I especially do NOT understand globals. :frown:

Yes, I've subscribed to the list.

Oh well. I'll just keep on working on my maps I guess. Until perhaps a better manual comes out.

------------------
-- Debra
Danillitphil Productions

For Race and Class attributes, you must first understand that these are not set values, merely modifiers to random values. These random scores are roughly in the range of 6 to 17, and the numbers you enter in the Race and Class files are added to these totals. Now, it seems you want pre-set attribute scores. To do this, create an event chain that sets all scores to a preset level, say 10 across the board. Then, have the events check the player race and class and assign bonus points accordingly. Make sense?

Globals are basically pieces of data in numerical form. (similar to ints and doubles in C++ or Java, if that means anything to you) Events can check the value (using greater than, less than, equal to, etc.), or modify the vaule.

------------------
Consider. If passion rules our reasoning, and we are ruled by logic, we are all simply unwitting slaves to emotion, pretending to be greater than what we truly are.

I can't help you with the class+race (mainly because i completely avoided it, the medieval game doesn't even use that it sets the stats manually)

but as for globals(which are the biggest necessity):
is a variable, a variable stores a value like 'n=Pauline' or 'chumbawumba=78'
variables can be;
local meaning only a specified section of the program can have access to it
global meaning that it can be operated on through out the program

variables are often used to provide/modify setting (i.e. the attribute wizard,item wizard,gold wizard,spell wizard,change global action all are used to change variables) you change globals in order to see the effect of them changing, the engine automatically takes care of showing you the results:

  • if you change the player's name to 'Alabaster' when the player goes to the stat screen he now sees that his name is 'Alabaster'

  • you lower the value of the variable 'Stamina' then your player has health with which to contend with the forces of...

when you create your own variable you must handle the testing and results for them, most of the timethey'll be used as switches variables that contain either a true or false value.

  • you create a variable called 'has_Omicron_been_Slayed' this value is initially 0 by default but within the 'NPC Death' parameter exists an action of change global which sets 'has_Omicron_been_Slayed' to 1. Great now you want the 'spyMaster' to award you with a new '+5 Volvo of justice' well you can't do that if you don't have a conditional action? When you go back to the location, of type 'map' the map has a local initialization event that has a conditional, this conditional does/says the following:
    if 'has_Omicron_been_Slayed' then do linked action (of type item wizard) 'gimme my car already', if false do action (of type dialog) 'get back to work' .

No matter what anyone might tell you, you'll have to do some form of this no matter what; Language,Editor,Engine, you use.
I gar-un-tee.

------------------

Okay. Thanks. 🙂

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
I especially do NOT understand globals.

Debra,

Unfortunately globals are one of those things you are going to have to learn. A game without globals will be very, very limited and unchanging.

I wrote a short piece about globals that may or may not help you to understand them. It is included in a "how-to" guide that is still being developed for people interested in writing plug-ins for PoG, but a lot of the information is relevant to any other Coldstone-based creation.

The globals explanation is located (url="http://"http://stark.evula.net/plugin_faq.htm#globals")here(/url). Give 'er a read if you have the time and if you still have questions please post them. We'll try to help you understand them as best we can, because they are a very important part to any game.

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url)

Thank you VERY much for letting me read your plug-in manual. I knew that events and globals are important, but I couldn't make sense out of what I was reading and seeing. For instance, I created a global in the options file. But it didn't make any sense to me at all why I would "change global" in the event when the global is named but not defined in the options. I admire the work that you and others have done.

I think your manual is for the plug-in application, so I'll tell you what I see so that I can communicate as well as possible. I see "Project --> Game options which is the same as the second to the right tool icon on the upper toolbar. I can name a global there , which I've done. (It is now gb_TryGlobal). I can't do anything else with global under Game options.

Okay, I've gone into a create a new event. I've dragged Change Globals from the Action Lib into the Main Sequence Actions window. Another window opens. I see "Global Variable" and have highlighted gb_TryGlobal. Operator doesn't make sense to me. How can you manipulate something that hasn't been defined? Does "set" mean that you're defining the global? And what, exactly happens when you add, divide, or subtract?

Let's say that you're defining the global. If you choose "set", does that define the global, and then you again drag "Change Globals" into the window, choose the same global and then change it?

The "Operator Value" also doesn't make any sense to me. How can you change something that isn't defined? I see all sorts of good things on the right when I select the arrow beside the Operator Value, but I have no clue what any of it means, or, especially, if I select it, what it does. What is a string?

Does Coldstone use certain words that you're supposed to name a global in order to define its function? I guess I don't need a "for instance" as much as I need to know the steps to do this as well as clear definitions of functions. That's why the Something for Dummies is so popular.

I'm sorry I'm so ignorant about common wording in the computer gaming field, and I truly appreciate your help. I am building a game from scratch. A decent manual would be very helpful.

Thanks!

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
Thank you VERY much for letting me read your plug-in manual.

You're welcome. I hope it helps to get things to make more sense.

Quote

I think your manual is for the plug-in application, so I'll tell you what I see so that I can communicate as well as possible. I see "Project -- > Game options which is the same as the second to the right tool icon on the upper toolbar. I can name a global there , which I've done. (It is now gb_TryGlobal). I can't do anything else with global under Game options.

Yes, the "Project-->Game options" is the same as the icon on the toolbar. And this is where you define a globals existance(ie, tell Coldstone that you want to create a global named "gb_TryGlobal"). This is all that this screen is used for, but you need to do this in order to use a global.

Quote

Okay, I've gone into a create a new event. I've dragged Change Globals from the Action Lib into the Main Sequence Actions window. Another window opens. I see "Global Variable" and have highlighted gb_TryGlobal. Operator doesn't make sense to me. How can you manipulate something that hasn't been defined? Does "set" mean that you're defining the global? And what, exactly happens when you add, divide, or subtract?

When a global is first created it is defined as "null" which for most purposes is 0. If you use a conditional on this variable it will equate to 0, but if you print it then nothing will be displayed; hence "null" value.

When you use a change globals you are re-defining the value of the global. If you are using integers(numbers) then anything you add/subtract/multiply/divide/random to this variable will be done to the value "0." If you choose to set the value of the global then you will define it directly(ie, you can set it to be equal to "4" or to be equal to the string "cat").

If you define the global, and then later wish to manipulate it, you can use the change globals event object to do whatever you want to the value that is stored within it. Ie, you can "add" the value '2' to the existing value of '4' and the variable will now equate to '6.' Or you can "add" 'bert' to 'cat' and the variable will equate to 'catbert.'

Quote

Let's say that you're defining the global. If you choose "set", does that define the global, and then you again drag "Change Globals" into the window, choose the same global and then change it?

Yes. As mentioned above when you first create the global it will be given a value of null. The global variable remains null until it is modified with a change global event object. You can either define it with this, or if you wanted the global to be the integer 0 you can leave it as this until you wish to change it, and then use the change globals event object to alter the value.

Quote

The "Operator Value" also doesn't make any sense to me. How can you change something that isn't defined? I see all sorts of good things on the right when I select the arrow beside the Operator Value, but I have no clue what any of it means, or, especially, if I select it, what it does. What is a string?

Set defines the variable directly with whatever value you give it.
Add/subtract/multiply/divide are simply mathematical equations that can affect the variable by the value you supply(ie, if the global is currently 2 and you choose 'multiply' and give it a value of 3, then this will multiply the current value(2) by 3, so the global variable will now be equal to 6).
Random will set the global variable to a random integer number between 0 and the number you specify. If you specify 6, then the global variable will be set to a number between 0 and 6.

A string is text. It is a word used to differentiate between text and numbers. '4' is a number. 'four' is a string. Furthermore, '4' can be a string if you are using it as a word instead of a number. 🙂

The bottom line on strings is that if a value isn't a number, it is a string.

Quote

Does Coldstone use certain words that you're supposed to name a global in order to define its function? I guess I don't need a "for instance" as much as I need to know the steps to do this as well as clear definitions of functions. That's why the Something for Dummies is so popular.

I don't quite understand this question.

You can name a global whatever you want. It helps if you name a global based on what you intend to use it. Ie, for a global that keeps track of the player's class the name "&&gb;_Player_Class" is a good name. Much easier to glance at the global and remember what it is used for than if you had named it "&&gb;_global001"

Anything you do to modify the globals will be done with the Change Globals event object. And within this object you will select the global that you wish to modify. So its name isn't important to the code.

Also, you will reference your globals most commonly with the "conditional" event object. This is a comparison and is used to check a global variable against either a constant value(such as a player's job or race), a game variable(such as experience points or level), or another global variable that you have defined.

Quote

I'm sorry I'm so ignorant about common wording in the computer gaming field, and I truly appreciate your help. I am building a game from scratch. A decent manual would be very helpful.

No need to appologize. If anything I have mentioned above sounds odd or difficult to understand, please ask additional questions.

We'll get you up to speed, I promise!

(edit) Highlighted certain parts for easier reading (/edit)
(edit) And fixed typos. Darn typos! (/edit)
------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url)

(This message has been edited by Stark Bledfast (edited 10-23-2002).)

(This message has been edited by Stark Bledfast (edited 10-23-2002).)

Wow! That was an incredibly fast reply!!! Thank you!

Okay. So, let's say that I want to check a particular Player's Class (I call "Druid") statistics. I create a global name called gb_DruidStats. I go to the event icon and create a new event. For all of this, I drag in "Change Globals" into the Main part (not local part) of the event window.

I choose gb_DruidStats. I choose "set" and also Job. And that means that the engine will check and see a Player's Class, and the engine will recognize that the Player has chosen Druid.

Right below that, I drag in another Change Globals and again choose gb_DruidStats. I choose "set" and then choose "Strength". This means that the engine will check and see what the stats are for Strength under the class Druid, which I've already defined the stats elsewhere.

Then in the process of the game, I want the Player to increase his Strength by 2 after he finds the kind of herb (item) he needs. So I'll call up another Event for when he reaches the herb on the map. Drag in the Change Globals into the Local (not the Main). I highlight gb_DruidStats, choose "add" and type in "2". This is because I know that the engine identifies gb_DruidStats as a Druid class with a Strength value defined when I created the class. And the engine then adds 2 to the Strength value.

Am I getting it yet? Thanks!

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
Wow! That was an incredibly fast reply!!! Thank you!

Actually, you caught me between tasks at work(I had been away from my desk for a bit, came back, and just now returned). 🙂

Quote

**
Okay. So, let's say that I want to check a particular Player's Class (I call "Druid") statistics. I create a global name called gb_DruidStats. I go to the event icon and create a new event. For all of this, I drag in "Change Globals" into the Main part (not local part) of the event window.

I choose gb_DruidStats. I choose "set" and also Job. And that means that the engine will check and see a Player's Class, and the engine will recognize that the Player has chosen Druid.**

Ok, in the above what you have just done is defined "gb_DruidStats" to be equal to the player's class(defined in &&Job;). This is what the "set" operator does; it makes your global variable equal to the value field.

Quote

Right below that, I drag in another Change Globals and again choose gb_DruidStats. I choose "set" and then choose "Strength". This means that the engine will check and see what the stats are for Strength under the class Druid, which I've already defined the stats elsewhere.

Alright, now what you have done is redefined "&&gb;_DruidStats" to be equal to the characters strength(defined in &&Strength;).

Quote

Then in the process of the game, I want the Player to increase his Strength by 2 after he finds the kind of herb (item) he needs. So I'll call up another Event for when he reaches the herb on the map. Drag in the Change Globals into the Local (not the Main). I highlight gb_DruidStats, choose "add" and type in "2". This is because I know that the engine identifies gb_DruidStats as a Druid class with a Strength value defined when I created the class. And the engine then adds 2 to the Strength value.

Yes, it's beginning to make sense. I'm home now and can fool around with this. I take it that you can have many things happen in the same event, right? Anyway, I'll see what I can learn tonight.

Thanks! 😄

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
Yes, it's beginning to make sense. I'm home now and can fool around with this. I take it that you can have many things happen in the same event, right? Anyway, I'll see what I can learn tonight.

Great, I'm glad things are beginning to make sense. I think when this is all done I'm going to go through the questions you asked and the responses I gave, and re-do my globals section on the (url="http://"http://stark.evula.net/plugin_faq.htm")How to write a PoG plugin(/url) guide. 🙂

And yes, an event can have many, many things happen in it. A single event can check things(using conditionals) and do different things based on the evaluation. They can call other events to execute, they can move the player, play a movie, play a sound or change the background music, alter the map, etc. Events are powerful.

Once again, feel more than free to ask any additional questions you may have, whether it be a continuation of globals or something else like events.

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url)

Well, I've fooled around quite a bit with it last night, and things are beginning to work. Your help has been excellent. 🙂

I admit that I don't quite get everything. But I'm beginning to see the logic.

I didn't know that the engine would read "Druid," although I did define it under Create New Class. So I didn't know that there was a connection between Attribute and the string, Druid.

So, globals begin as nothing at all until you change it. And you change globals in the main, and because it's Main and not Local, the definition of the global will continue beyond that specific event. But because you're trying to create a specific event, you connect your definition of a global via a conditional to the Attribute that's in the local column. Right? You also set up your conditionals in the Main column. And because one global has only one definition, you need to define a different global in order to compare the two in order to connect to an Attribute. Am I getting it yet?

(In Main: Change Globals) gb_PlayerClass = &&job;
(In Main: Change Globals) gb_DruidClass = Druid (You simply type Druid in the text window.)

(In Local: Attribute) AttributeStrength: Strength is set at 2

(In Main: Conditional) If gb_PlayerClass (is equal to) gb_DruidClass, then AttributeStrength.

And that sets your Druid Strength to 2.

Whew! 😄

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
So, globals begin as nothing at all until you change it. And you change globals in the main, and because it's Main and not Local, the definition of the global will continue beyond that specific event. But because you're trying to create a specific event, you connect your definition of a global via a conditional to the Attribute that's in the local column. Right? You also set up your conditionals in the Main column. And because one global has only one definition, you need to define a different global in order to compare the two in order to connect to an Attribute. Am I getting it yet?

This is more or less correct, yes.

The one thing I will point out that may just be a miscommunication or phraseology problem, but I'd rather point it out and nail it down than to have it cause problems for you later, is the difference between main and linked lists in the events.

Everything within the main list(left side) will get executed when the event is run, unless an End Event is called. Ie, if you place a conditional somewhere within the main list and have as one of its evaluation links to link to an End Event in the linked list(right side), then the event stops and no more event objects are executed. But otherwise, everything in the main list gets executed in order of appearance.

Event objects in the linked list(right side) will not execute unless called by an object in the main list(left side). However, if an object in the linked list is executed, there is no difference between its execution in the linked list and if it had been executed in the main list. Ie, if you use a Change Globals object in the main list to change a global, and it is executed(based on a link from the main list), then that global is changed, just as if it had been called from the main list. The only difference is that while the event object in the main list is always executed(unless stopped previously by an End Event), the event objects in the linked list are not always executed, but only when called.

Make sense?

Quote

**(In Main: Change Globals) gb_PlayerClass = &&job;
(In Main: Change Globals) gb_DruidClass = Druid (You simply type Druid in the text window.)

(In Local: Attribute) AttributeStrength: Strength is set at 2

(In Main: Conditional) If gb_PlayerClass (is equal to) gb_DruidClass, then AttributeStrength.

And that sets your Druid Strength to 2.**

You, my dear, are quite correct. 🙂

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url)

Whaa! (As they say in the North Country.)

I think that what you write makes sense. I noticed that last night, when I put an End Event after the Attribute in the Link column, the values quit changing whenever the Player ran over the space where the event was placed. But I do understand, now that you pointed it out, that the Main column will continue unless I have an End Event in the conditional. At least I think I understand?

In my example, which was, I'll proudly (the kiss-the-ground type of proud) say, correct, were there any global definition changes?

You're spending quite a lot of time on my thick-headedness. I appreciate it.

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
I noticed that last night, when I put an End Event after the Attribute in the Link column, the values quit changing whenever the Player ran over the space where the event was placed. But I do understand, now that you pointed it out, that the Main column will continue unless I have an End Event in the conditional. At least I think I understand?

Sounds like you are understanding fairly well now. Experience will aid your learning as well through trial and error.

Quote

In my example, which was, I'll proudly (the kiss-the-ground type of proud) say, correct, were there any global definition changes?

There were 2:

gb_PlayerClass = &&job; - You defined "gb_PlayerClass" to be equal to the current value of &&Job;

gb_DruidClass = Druid - You defined "gb_DruidClass" to be equal to the text string "Druid"

Both of these are "global definitions" so that once this event is executed the above global variables are defined with the above definitions, and will remain so until changed again. So if you later have an event and check the value of "gb_DruidClass" you will receive the value "Druid" provided A) the first event that defined it was previously executed, and 🆒 you have not since changed the value of this global variable.

Quote

You're spending quite a lot of time on my thick-headedness. I appreciate it.

Your appreciativeness(is that a word?) makes it worthwhile. Anytime.

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url)

Quote

Originally posted by Stark Bledfast:
**Your appreciativeness(is that a word?)

**

Appreciation.

------------------
Consider. If passion rules our reasoning, and we are ruled by logic, we are all simply unwitting slaves to emotion, pretending to be greater than what we truly are.

So globals don't change in an event Main conditional, but has to be executed by an attribute?

Humm, I feel like I just took one step backward!! 🙂

I don't know if this means much to you, but I intend to place your name, Stark Bledfast, in the credits under Special Thanks. Unless you'd rather I didn't. You've helped me begin to learn the globals thing. But don't hold your breath. This is going to take me a while.

And I have much appreciativeness. 😄

------------------
-- Debra
Danillitphil Productions

Quote

Originally posted by Debra:
So globals don't change in an event Main conditional, but has to be executed by an attribute?

Again, I think this is a phraseology problem.

Global Variables - these are variables that you create. They will always have the prefix "&&gb;_" because this is how Coldstone distinguishes a global variable. Global variables can only be altered with a Change Globals event object.

Game Variables - these are variables that Coldstone has pre-defined for you. These include &&Name;, &&Job;, &&Race;, &&Level;, &&Experience;, &&Strength;, &&Dexterity;, etc. Not all game variables can be altered once Coldstone has given them a value(such as &&Job; and &&Race;). Game Variables can only be altered with an Attribute Wizard event object.

Conditional - This is an event object that creates a comparison between 2 things. This can be between 2 global variables, 2 game variables, a global variable and a game variable, a global variable and a constant value(a constant meaning something a number or string you insert directly into the value field, as opposed to a variable that could get changed elsewhere and thus have differing values depending on when it is called), or a game variable and a constant value. Conditionals only compare 2 things, they can not change a value directly. However, if you have an event object linked to a conditional, then the event object can change one or more of the compared values or other global or game variables.

Quote

Humm, I feel like I just took one step backward!!

Sometimes it feels that way, but I don't think you did. Sometimes when you start understanding something you will become confused(because you start thinking about questions you never had enough knowledge to ask before, and you aren't sure of the answers yet). This confusion is good; it means you're learning. Just keep asking questions and you will be alright. 🙂

Quote

**I don't know if this means much to you, but I intend to place your name, Stark Bledfast, in the credits under Special Thanks. Unless you'd rather I didn't. You've helped me begin to learn the globals thing. But don't hold your breath. This is going to take me a while.

And I have much appreciativeness. :D**

That sounds nice. I'd be honored.

Thank you for the kind words and the offer.

(edit) Fixed a bad UBB call. Bad UBB! (/edit)
------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url)

(This message has been edited by Stark Bledfast (edited 10-25-2002).)

Thanks, much! I think I'm on my own now for quite a while. If I'm stuck again and unable to progress, I'll post a specific problem in a different topic. Meanwhile, if you continue to develop your manual, please let us know.

Off to my own world!!! Thanks again!! 😄

------------------
-- Debra
Danillitphil Productions