Alright. You'll need to make 1 duplicate object of your clickup and clickdown objects per possibility, so 2x24.
Each duplicate will trigger a different set of Responders, which will enable or disable other objects accordingly.
For instance, when clicking the 10th clickup, you disable clickup 10 and clickdown 10, enable clickup 11 and clickdown 11, and enable an extra object (like a counter light).
To toggle objects, you can use the "enable/disable" message in the picture below (the Responder command box must be attached to a Responder State).
You'll see however, that you'll end up with a LOT of nodes all over the place.
Tutorial and Information Requests
Re: Tutorial and Information Requests
- Attachments
-
- enableobj.jpg (19.39 KiB) Viewed 11682 times
Re: Tutorial and Information Requests
NOTE: This method described here retains our Prefix Sequence of 4113 so you need to go to your test dat folder and remove your LinkToAge additions or the Prefix Sequence Clash will cause failure.
Just saying.
Description: Magic Ball
Saved LinkToAge.blend as MagicBall.blend
Added a new Object
Mesh icosphere
Name: Ball
Size x = 1, y = 1, z = 1 Location x = 0, y = 0, z = 7
Plasma Object = True
Colour: = New Material = White
On the Node Panel Deleted “Node Link to Age”
Add – Message – Enable/Disable
click selected visibility select Cmd: = "Enable"
linked "Responder Command" output to "Enable/Disable" input
Add – Message – Send To Object
click drop down box and selected “Ball”
linked "Enable/Disable" output to "Send To Object" top message input
Retuned to 3D Window Panel and selected "click" object
In the Physics Panel click Link to Age and click Minus button to remove this item and clicked Plus button twice
Rename first new item as “Enable/Disable” Set Version to Myst Online: Uru Live(70) only
Click and select Node Tree: as “NodeTree”
Click and select Node ref: as “Enable/Disable”
Rename second new item as “Send to Object” Set Version to “Myst Online: Uru Live(70)” only
Click and select Node Tree: as “NodeTree”
Click and select Node ref: as “Send To Object”
Exported to dirtsand test dat folder.
What Happened.:
Linked to age “MagicBall”
There was the floating ball as expected clicked my click object and the ball dropped and embedded in the floor. Linked back to relto and returned to age “MagicBall” the ball was floating again and the click performed the action where it embedded in the floor.
Feedback:
Unexpected but satisfactory result.
I was expecting the Ball to possibly disappear but I at least have a new action to play with.
[edit]
On Node Panel I Changed "Enable/Disable" Cmd: to Disable
This time my Ball disappeared.
Relto and return takes a long time to get back to the MagicBall age but it resets. However using the Plasma Console just to "net.linktoage magicball" after the click relinks quickly and resets the ball.
Experimentation continues I will now add a second click object and try and make my MagicBall Toggle Appear/Disappear
[/edit]
Just saying.
Description: Magic Ball
Saved LinkToAge.blend as MagicBall.blend
Added a new Object
Mesh icosphere
Name: Ball
Size x = 1, y = 1, z = 1 Location x = 0, y = 0, z = 7
Plasma Object = True
Colour: = New Material = White
On the Node Panel Deleted “Node Link to Age”
Add – Message – Enable/Disable
click selected visibility select Cmd: = "Enable"
linked "Responder Command" output to "Enable/Disable" input
Add – Message – Send To Object
click drop down box and selected “Ball”
linked "Enable/Disable" output to "Send To Object" top message input
Retuned to 3D Window Panel and selected "click" object
In the Physics Panel click Link to Age and click Minus button to remove this item and clicked Plus button twice
Rename first new item as “Enable/Disable” Set Version to Myst Online: Uru Live(70) only
Click and select Node Tree: as “NodeTree”
Click and select Node ref: as “Enable/Disable”
Rename second new item as “Send to Object” Set Version to “Myst Online: Uru Live(70)” only
Click and select Node Tree: as “NodeTree”
Click and select Node ref: as “Send To Object”
Exported to dirtsand test dat folder.
What Happened.:
Linked to age “MagicBall”
There was the floating ball as expected clicked my click object and the ball dropped and embedded in the floor. Linked back to relto and returned to age “MagicBall” the ball was floating again and the click performed the action where it embedded in the floor.
Feedback:
Unexpected but satisfactory result.
I was expecting the Ball to possibly disappear but I at least have a new action to play with.

[edit]
On Node Panel I Changed "Enable/Disable" Cmd: to Disable
This time my Ball disappeared.
Relto and return takes a long time to get back to the MagicBall age but it resets. However using the Plasma Console just to "net.linktoage magicball" after the click relinks quickly and resets the ball.
Experimentation continues I will now add a second click object and try and make my MagicBall Toggle Appear/Disappear
[/edit]
Re: Tutorial and Information Requests
Wow!
Duplicated click object and renamed the object as “secondclick“
Dragged it to x = -3
Changed the colour to a new material = Green
On the Node panel used the Plus to create a new NodeTree and re-named it “NodeTree2”
In the NodeTree click [a] to select all [Ctrl][c] to copy switch to NodeTree2 [Ctrl][v] to paste
Note you may need to scroll out to find it!
On NodeTree2
You need to change the clickable selection to “secondclick”
Change Enable/Disable node to “Enable”
Note I have re used the Avatar detection Region "reg" because both clickables are inside.
Go back to the 3D panel and with the secondclick selected choose the Physics Panel
All of the Modifiers should have been duplicated so selecting each of Items in the Advanced Modifier
Change the Node Tree: selection to be “NodeTree2”
Now Export.
Testing Results:
The red clickable made the ball disappear the green clickable made the ball reappear embedded in the floor?
Thereafter red and green toggled the ball on and off embedded in the floor.
I consider this a success although I have yet to figure out why it ends up embedded in the floor.
[edit]
Should this move to a new thread because this has stopped being a request and started to become research/lessons on Node experiments in Korman?
Is there anyone other than me finding this useful?
Also a first attempt at attaching an upload file.
[/edit]
Duplicated click object and renamed the object as “secondclick“
Dragged it to x = -3
Changed the colour to a new material = Green
On the Node panel used the Plus to create a new NodeTree and re-named it “NodeTree2”
In the NodeTree click [a] to select all [Ctrl][c] to copy switch to NodeTree2 [Ctrl][v] to paste
Note you may need to scroll out to find it!
On NodeTree2
You need to change the clickable selection to “secondclick”
Change Enable/Disable node to “Enable”
Note I have re used the Avatar detection Region "reg" because both clickables are inside.
Go back to the 3D panel and with the secondclick selected choose the Physics Panel
All of the Modifiers should have been duplicated so selecting each of Items in the Advanced Modifier
Change the Node Tree: selection to be “NodeTree2”
Now Export.
Testing Results:
The red clickable made the ball disappear the green clickable made the ball reappear embedded in the floor?
Thereafter red and green toggled the ball on and off embedded in the floor.
I consider this a success although I have yet to figure out why it ends up embedded in the floor.

[edit]
Should this move to a new thread because this has stopped being a request and started to become research/lessons on Node experiments in Korman?
Is there anyone other than me finding this useful?
Also a first attempt at attaching an upload file.
[/edit]
- Attachments
-
- MagicBall.rar
- Attached Blend File for the interested
- (79.97 KiB) Downloaded 495 times
Re: Tutorial and Information Requests
Sorry it's taken so long, but I've published the completely revamped and updated wiki reference page for the Global Python Scripts. There is surely more information that could be added, but as an initial reference I hope it helps reveal what's available, and provides at least a basic idea of what each one does. Examples and specific tutorials may be added.J'Kla wrote:I found the scripts so this is now a straight request for a Tutorial on how to use them.Deledrius wrote:xStandardDoor is probably the right script. Make a PFM node, load that script, and then just hook up the empty slots.
There are a lot of really handy pre-made scripts that do most of the work for you, you just plug in the clickables, the regions, and the animation responders for the door. I would suggest looking through the available scripts (especially the ones starting with x, since those are the global convenience scripts) and finding the ones that apply to what you want to do.
What is a PFM node?
As for the Python File Mod (PFM), check out that wiki link for the information Doobes has provided. In order to use the global scripts, you will want to create a PFM, select the script, and attach the appropriate nodes for each parameter with the values you desire. If the PFM uses SDL (most do), you will need to add or create an SDL file for your Age (this must be done manually in Korman currently, and PyPRP always) and include the variable(s) you specify in the attribute(s) for the PFM. In the absence of more detailed tutorials, looking at the game's existing SDL files may help.
Re: Tutorial and Information Requests
Very good points. We've talked about the need to make some version-agnostic wrapper scripts to accomplish this sort of thing (and a few others). Another thing on the big long list of things that would make everyone's lives easier, but hasn't been done yet.Sirius wrote:The LinkToAge message you can see in Korman can break saved games if used incorrectly - this is a rather serious issue, and Diafero has always warned people to never use it. There is a workaround for Complete Chronicles, but it's not available in MOULa as far as I know.
Could someone knowledgeable about MOUL/Dirtsand Shard tell us if there is already a "recommended way" to do linking (and linking books) on these servers ?
More info on the issue:
Due to how linking rules/instancing/ownership works, LinkToAge messages incorrectly setup can mess up with Age instancing (including duplicating of the Age). D'Lanor wrote about it here.
As a workaround/hack, the Offline-KI provides a Python linking manager, which is very simple to use and ensures linking rules are setup correctly (it also prevents you from linking to missing Ages).
Creating linking books on CC was done using D'Lanor's Book Template (very flexible but too complex for most users. It also required every Age to ship its own version of the script, which is bad). Later I released a simpler Python script, which doesn't require users to do any Python coding, and is also simpler to setup. Both use the OKI's link manager, ensuring safe linking.
However I don't know if there is an equivalent on MOUL/DS shards. MOUL instancing is different from DI instancing, but I think avoiding the LinkToAge message in favor of Python linking is still desirable.
To make things simpler for builders, maybe we could convert my scripts (xSimpleLinkingBook and xSimpleBahroStone) to MOULa ? This would allow linking books in Korman to work the same in both versions of the engine, and means we can prevent wrong links. It would require a new helper script with its own link database to handle linking though. But at least this would ensure all Shards can handle linking the way they see fit, and quickly patch any wrong link.
With some new functionality that Hoikas is working on, this may become easier for us to enable soon, as well as add the above-mentioned custom scripts to a game's installation or an export archive.Sirius wrote:Doors are more complex to setup, because they use SDLs which can't be setup directly in Korman. When I have more time I'll try to provide an example blender file for it too.
It really isn't worth reserving, as it's not a standalone Age, and isn't meant to be used that way.Sirius wrote:Oh, uh, yeah, I just dragged the sequence prefix bar at random. I don't know if it's worth reserving a sequence prefix for this Age as it's just an example draft, reallyJ'Kla wrote:We go to the global settings window and set the age ID to 4113 this is a prefix that at present has no allocation on the database so should not clash![]()
Not really. One thing to keep in mind is that Sequence Prefixes are relevant only to a specific server/installation. The reserved numbers on the wiki are great to make sure no one's going to release an Age with the same number as someone else, but "reserving" it is really not especially useful in general and just ends up with a lot of dead numbers. Additionally, it really only matters for Ages that are on Deep Island or downloaded for offline play through something like ULM or Drizzle. Any server is likely to maintain its own list, and will convert incoming Ages to use an assigned Sequence Prefix (this is what we do with Fan Ages we add to Gehn).J'Kla wrote:I believe this could be useful for reserving the Sequence Prefix for a test age.
Unless I misunderstand, this .blend file provided by Sirius is simply an example of a specific set of components. The only thing you need to worry about with the sequence prefix is that it doesn't collide with anything in your testing installation, and even then only if you plan to explore his .blend file exported for play in-game. I didn't get the impression that this was the intent, so there's certainly no need to reserve it globally for a file that isn't going to be distributed as an Age on the aforementioned platforms.
I provisionally disagree. While knowing this information is useful and not harmful on its own, if you use linking methods that are known to be destructive you can cause issues not only for yourself but also for other people down the road. Don't be too focused on the ends justifying the means, even though it's tempting since Korman is still in development and not everything is fully implemented. Using the Linking Manager script that Sirius mentioned would be a much better option if you need to get going right now.J'Kla wrote:There can't be any harm in producing methods of learning ways of adding functionality to fan ages by any method.
Re: Tutorial and Information Requests
Wow, that's what I was thinking about but was too lazy to do ! Nice job !Deledrius wrote:Sorry it's taken so long, but I've published the completely revamped and updated wiki reference page for the Global Python Scripts.
(I was actually thinking about writing a tutorial that would cover how to write and maintain SDLs -including the version number bump you mentioned in the other topic-, how to use the global scripts, and how to setup those in NodeTrees to achieve various effects. But that would take some time and I haven't done this in Korman before, so I didn't want to rush into it)
Yes ! I saw that yesterday as I'm subscribed to the Github. Neat ! Having all from within Blender sounds cool.Deledrius wrote:With some new functionality that Hoikas is working on, this may become easier for us to enable soon, as well as add the above-mentioned custom scripts to a game's installation or an export archive.
Would that include a foolproof GUI editor for SDLs ? Something that wouldn't require text and bump the version number automatically.
This is low priority though. SDLs aren't hard to do by hand.
Heh. When I think of all the Fan-Ages we have, and how many of them have almost no logic in them... I'm glad we had PyPRP at that time, but I'm even more delighted that we can switch to Korman now.
Now that I think about it, Korman will soon be just as efficient as the Max plugin... Max probably has more Plasma components available, but Korman probably wins for simplicity.
Re: Tutorial and Information Requests
It's because it's hard.Sirius wrote:When I think of all the Fan-Ages we have, and how many of them have almost no logic in them...

I know I gave up making Ages because adding decent interactivy to them through AlcScript etc was too convoluted.. I just read all the releases note for all 6 versions of Korman and it looks really neat!

Re: Tutorial and Information Requests
Yep that's why most of my Ages are pretty but have no interactive elements, it's a pain in the neck to implement.
Re: Tutorial and Information Requests
Sorry to keep harping on about this But you keep using PFM Nodes and even following the link I find no Reference to PFM there is Python File Nodes which contracts down to PFN please remember one of my primary motives is to make all of this Noob proof and strange three letter acronyms have been the scourge of the MS-DOS universe since the days of MS-DOS 3.x and its 8.3 file naming.Deledrius wrote: As for the Python File Mod (PFM), check out that wiki link for the information Doobes has provided. In order to use the global scripts, you will want to create a PFM, select the script, and attach the appropriate nodes for each parameter with the values you desire. If the PFM uses SDL (most do), you will need to add or create an SDL file for your Age (this must be done manually in Korman currently, and PyPRP always) and include the variable(s) you specify in the attribute(s) for the PFM. In the absence of more detailed tutorials, looking at the game's existing SDL files may help.

So please Yes or No are "PFM Nodes" Python File Nodes?

Just as an aside even the Wiki refers to these as Korman "Python File Mod logic nodes" in the script that then links to a page Titled "Python Nodes" please stop confusing Noob's and start calling them Korman "Python Nodes" and lets get rid of the secret language.
Re: Tutorial and Information Requests
It's not a secret language and I don't appreciate the accusatory tone.
The context here is that the Python File Modifier is a modifier much like any other modifier, and it can be applied to objects in Plasma.
A Python File Node is a node in the node tree options of Korman that allows you to apply a Python File Modifier as part of a node tree.
Two different contexts, two slightly different names.
A noob won't need to know or care about the difference, just follow tutorials.
Someone who isn't a noob will make the inference that these things are related, and perhaps that one is a specific instance of the other, or will be able to respectfully ask questions.
The context here is that the Python File Modifier is a modifier much like any other modifier, and it can be applied to objects in Plasma.
A Python File Node is a node in the node tree options of Korman that allows you to apply a Python File Modifier as part of a node tree.
Two different contexts, two slightly different names.
A noob won't need to know or care about the difference, just follow tutorials.
Someone who isn't a noob will make the inference that these things are related, and perhaps that one is a specific instance of the other, or will be able to respectfully ask questions.