Explanation of "no binding for symbol" !?

Freeform discussion about anything related to modding Transcendence.
Locked
User avatar
dosbox-gamer
Commonwealth Pilot
Commonwealth Pilot
Posts: 66
Joined: Sat Apr 05, 2008 9:41 pm
Location: Utopia Planitia Fleet Yards

Hello all, I have a problem and it's driving me bonkers: What is "No binding for symbol"? It keeps cropping up in my station mods, and thus far, I haven't seen a *definition* of it. I need to know, what it is, what it means, and, most hopefully, if there is any kind of tutorial for handling it. I know its meaning varies in relation to its accompanying script -- for example { no binding for symbol Main ### (gPrevScreen gPrevPane 0) ### }, but still, what exactly is (nb4s)??
Any help would be appreciated, thanks.
"Make no little plans. They have no magic to stir men's blood and probably will not themselves be realized." -- Daniel Hudson Burnham, architect & urban planner
User avatar
ThePrivateer
Militia Captain
Militia Captain
Posts: 943
Joined: Tue Oct 12, 2010 5:12 am
Location: Starton Australia

dosbox-gamer wrote:Hello all, I have a problem and it's driving me bonkers: What is "No binding for symbol"? It keeps cropping up in my station mods, and thus far, I haven't seen a *definition* of it. I need to know, what it is, what it means, and, most hopefully, if there is any kind of tutorial for handling it. I know its meaning varies in relation to its accompanying script -- for example { no binding for symbol Main ### (gPrevScreen gPrevPane 0) ### }, but still, what exactly is (nb4s)??
Any help would be appreciated, thanks.

Eh, wouldn't I like to know. I have this trouble alot. as far as I can tell, it comes about when using the

Code: Select all

"
command incorrectly, or when using

Code: Select all

%name%
or any one of those other things in the wrong sense.

Usually, a bit of blind luck helps me avoid these things, but they are annoying. So far as I can tell, I get them when using :

Code: Select all

(cat
"So the Iocrym says to the human: "Yeah, we said we'd come back but we totally lied about it. That's life, lesser being. ""
In that case, I get the error because

Code: Select all

"
seemingly can't be used within a

Code: Select all

(cat
.

But maybe someone else knows the real reason...? :?:
User avatar
Ttech
Fleet Admiral
Fleet Admiral
Posts: 2767
Joined: Tue Nov 06, 2007 12:03 am
Location: Traveling in the TARDIS
Contact:

Its basically the Error: Error: Syntax Error of Transcendence, while really its more specific then that (as seen above) you usually get it when someone does not match up.
Image
Image
User avatar
alterecco
Fleet Officer
Fleet Officer
Posts: 1658
Joined: Wed Jan 14, 2009 3:08 am
Location: Previously enslaved by the Iocrym

"No binding from symbol" comes about when you try to use a variable in tscript that has not been given a value yet.

Here is an example that would give you that error, followed by an example that would work:

Code: Select all

(dbgLog MyVariable)
The above would fail with the error you have

Code: Select all

(setq myVariable "something")
(dbgLog myVariable)
The above would not fail, since the variable has been bound before use. Note that transcendence has quote a few variables that are bound by the engine, such as gSource, gPlayerShip and several more. These can only bee used within scopes where the engine has bound them.

The error you are receiving however, seems rather cryptic. It would help to get some more context.
User avatar
dosbox-gamer
Commonwealth Pilot
Commonwealth Pilot
Posts: 66
Joined: Sat Apr 05, 2008 9:41 pm
Location: Utopia Planitia Fleet Yards

As requested, some context:
For my station mod, I have a Main/default docking screen, and then one of the choices is MaterialsLevel, where you can buy & sell. For the buy/sell area, I first tried copying the Adventure Outfitters' code line-for-line:

<Panes>
<Default>
(no initialize, I have separate desc= for the Main screen and for MaterialsLevel)
<Actions>
<Action name="Buy Items" ...>
(comShowBuyScreen
"*"
"Main" ; return screen )
</Action>

...But when I tested that code, the MaterialsLevel screen shows nothing, just black (you can Esc out, otherwise the game crashes). But when I tried again, changing a few things (Panes, Default) since those are already on the Main screen (see below), I get the NB4S! :(

<MaterialsLevel
desc= ... >
<Actions>
<Action name="Buy items">
(comShowBuyScreen
"*"
"MaterialsLevel" ; return screen
etc...
"Make no little plans. They have no magic to stir men's blood and probably will not themselves be realized." -- Daniel Hudson Burnham, architect & urban planner
User avatar
dosbox-gamer
Commonwealth Pilot
Commonwealth Pilot
Posts: 66
Joined: Sat Apr 05, 2008 9:41 pm
Location: Utopia Planitia Fleet Yards

BTW, the exact NB4S is... No binding for symbol: MaterialsLevel ### (item returnScreen 0) ### . Does this help?
"Make no little plans. They have no magic to stir men's blood and probably will not themselves be realized." -- Daniel Hudson Burnham, architect & urban planner
User avatar
alterecco
Fleet Officer
Fleet Officer
Posts: 1658
Joined: Wed Jan 14, 2009 3:08 am
Location: Previously enslaved by the Iocrym

I am not really sure why you are seeing that error. Apparently, the code in comShowBuyScreen is trying to get the first item from a list, which is passed in as the seond argument (the one where you pass in "MaterialsLevel")

You can try doing (comShowBuyScreen "*" '("MaterialsLevel nil)). From looking at the code that should work. Why george does not use that in his code i am not sure...
User avatar
dosbox-gamer
Commonwealth Pilot
Commonwealth Pilot
Posts: 66
Joined: Sat Apr 05, 2008 9:41 pm
Location: Utopia Planitia Fleet Yards

Like Doc Brown in the rain: "It works!!! Ha-ha-ha, it works..." Oh, thank you everyone, I'll post the details later (still not sure how it works or why), but still, OMG, it finally works. Thank You! :D
"Make no little plans. They have no magic to stir men's blood and probably will not themselves be realized." -- Daniel Hudson Burnham, architect & urban planner
User avatar
dosbox-gamer
Commonwealth Pilot
Commonwealth Pilot
Posts: 66
Joined: Sat Apr 05, 2008 9:41 pm
Location: Utopia Planitia Fleet Yards

Okay, this still doesn't explain the NB4S. But it does explain what I was doing wrong (and maybe that will help someone else).
It's about Screens and Panes. For my mod (Galactic Outposts v3), I was trying, for the buy/sell screens, to borrow the template from Adventurer Outfitters - but that station has its buy/sell (pane?) right in the main DockScreen. But with my station, the buy/sell comes off a separate "MaterialsLevel" (pane?), which is *not* part of the main DockScreen. So, the better template to use is Corporate Enclave. Also, I was forgetting to keep the "quotes" for the ;return screen. See how that works!? :roll:
"Make no little plans. They have no magic to stir men's blood and probably will not themselves be realized." -- Daniel Hudson Burnham, architect & urban planner
User avatar
digdug
Fleet Admiral
Fleet Admiral
Posts: 2620
Joined: Mon Oct 29, 2007 9:23 pm
Location: Decoding hieroglyphics on Tan-Ru-Dorem

ok, I moved the thread to Shipyards because at the beginning it seemed like an explanation on the game scripting errors but then it became just a mod help.

The argument is still interesting (talking about game error types), so please make another thread in Extension References where we can talk about technical details only.

thanks
User avatar
alterecco
Fleet Officer
Fleet Officer
Posts: 1658
Joined: Wed Jan 14, 2009 3:08 am
Location: Previously enslaved by the Iocrym

dosbox-gamer wrote:Also, I was forgetting to keep the "quotes" for the ;return screen.
That is your source of the "No binding for symbol" error. Forgetting quotes around a string will almost always do that.
Locked