Willow and the Storm

May 4, 2010 at 5:08 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
Celtic Minstrel said:
If you wanted to make a command for this, a teleporter slot is cleared by shifting down the entries that come after it and then zeroing the resulting duplicate entry.

You could try zeroing only the entry you want to get rid of, though; it may be sufficient. If so, that'd be a pretty short command (just a couple of "copy 0 as a long to this place in memory).

Interesting idea, but covered with a simple TSC solution:

Code:
//Unused - No flag set

#1000
<KEY<MSG<TUR[NULL OPTION]<WAI9999<END
#1001
<KEY<FLJ0029:1007<FLJ0030:1013<FLJ0031:1019<FLJ0032:1025<FLJ0033:1031<FLJ0034:1037<FLJ0035:1043<FLJ0036:1049<MSG<TUROption 1<WAI9999<END
#1002
<KEY<FLJ0029:1008<FLJ0030:1014<FLJ0031:1020<FLJ0032:1026<FLJ0033:1032<FLJ0034:1038<FLJ0035:1044<FLJ0036:1050<MSG<TUROption 2<WAI9999<END
#1003
<KEY<FLJ0029:1009<FLJ0030:1015<FLJ0031:1021<FLJ0032:1027<FLJ0033:1033<FLJ0034:1039<FLJ0035:1045<FLJ0036:1051<MSG<TUROption 3<WAI9999<END
#1004
<KEY<FLJ0029:1010<FLJ0030:1016<FLJ0031:1022<FLJ0032:1028<FLJ0033:1034<FLJ0034:1040<FLJ0035:1046<FLJ0036:1052<MSG<TUROption 4<WAI9999<END
#1005
<KEY<FLJ0029:1011<FLJ0030:1017<FLJ0031:1023<FLJ0032:1029<FLJ0033:1035<FLJ0034:1041<FLJ0035:1047<FLJ0036:1053<MSG<TUROption 5<WAI9999<END
#1006
<KEY<FLJ0029:1012<FLJ0030:1018<FLJ0031:1024<FLJ0032:1030<FLJ0033:1036<FLJ0034:1042<FLJ0035:1048<FLJ0036:1054<MSG<TUROption 6<WAI9999<END

//Alchemy 1 - Flag 29

#1007
<MSG<TURLesser Healing Tonic
[Bottled Air + White Stone]<WAI9999<END
#1008
<MSG<TUREssence Chip
[Bottled Air + Charcoal]<WAI9999<END
#1009
<MSG<TURCrude Trans. - Earth/Fire
[Bottled Air + Rainwater]<WAI9999<END
#1010
<MSG<TURCrude Trans. - Air/Water
[White Stone + Charcoal]<WAI9999<END
#1011
<MSG<TURRallying Cry
[White Stone + Rainwater]<WAI9999<END
#1012
<MSG<TURMalicious Malignants
[Charcoal + Rainwater]<WAI9999<END

//Alchemy 2 - Flag 30

#1013
<MSG<TURGreater Healing Tonic
[Kite Down + Black Sand]<WAI9999<END
#1014
<MSG<TUREssence Fragment
[Kite Down + Flint]<WAI9999<END
#1015
<MSG<TURRefined Trans. - Earth/Fire
[Kite Down + Dew]<WAI9999<END
#1016
<MSG<TURRefined Trans. - Air/Water
[Black Sand + Flint]<WAI9999<END
#1017
<MSG<TURShadow Ally
[Black Sand + Dew]<WAI9999<END
#1018
<MSG<TURProdigy Parasite
[Flint + Dew]<WAI9999<END

//Alchemy 3 - Flag 31

#1019
<MSG<TURBodyforger
[Danderspore + Prismstone]<WAI9999<END
#1020
<MSG<TUREssence Shard
[Danderspore + Sundrop]<WAI9999<END
#1021
<MSG<TURPerfect Trans. - Earth/Fire
[Danderspore + Hoarfrost]<WAI9999<END
#1022
<MSG<TURPerfect Trans. - Air/Water
[Prismstone + Sundrop]<WAI9999<END
#1023
<MSG<TURKings' Army
[Prismstone + Hoarfrost]<WAI9999<END
#1024
<MSG<TURSynthesis Symbiote
[Sundrop + Hoarfrost]<WAI9999<END

//Spells - Flag 32

#0025
<MSG<TURBrimstone Barrage<WAI9999<END
#0026
<MSG<TURThunderclap Torrent<WAI9999<END
#0027
<MSG<TURShadow Servant<WAI9999<END
#0028
<MSG<TURKnitting Wounds<WAI9999<END
#0029
<MSG<TURNimble Nimbus<WAI9999<END
#0030
<MSG<TURRecall<WAI9999<END

//Basic Shop - Flag 33

#0031
<MSG<TUR<WAI9999<END
#0032
<MSG<TUR<WAI9999<END
#0033
<MSG<TUR<WAI9999<END
#0034
<MSG<TUR<WAI9999<END
#0035
<MSG<TUR<WAI9999<END
#0036
<MSG<TUR<WAI9999<END

//Advanced Shop - Flag 34
//Unused - Flag 35
//Unused - Flag 36

#0037
You cannot create this.<WAI9999<END

[Indicates notes to myself that may appear in the final version]
//Indicates comments

Basically, calling the teleport menu prompts a chain of flag checks (the flags in question being toggled right before the alchemy/shop/spell/etc calls the menu), and depending on which flag is left set will display the appropriate information for each teleport menu item.
Only one flag is left set at a time, leaving only one option possible of being displayed.
The fact that setting no flag gives a null menu is not an oversight; it's intentionally left that way as a debugging measure; it may get used for a plot event in the future, though.
As well, the shops may or may not actually occur, and the last 2 menu options (flags 35 and 36) are, again, reserved for a plot-based menus*.

Either way, I'm as far as I can go with scripting the guts**, so I'mma be tilesetting it up for a while.


* Although I'm tempted to make the shops 6th menu item be 'Sell', and on the sell menu it'll display 'Buy'; which would use the 35 and 36 menus. Shops will only buy things they sell, because they're jerks, and they'll buy your items for half of what they sell them for.

** I'm waitin' on you! (Lace)
 
Jun 1, 2010 at 3:23 AM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Nov 3, 2009
Location: United States, East Coast
Posts: 150
I have a simple quest that would happen during the "War" time of the game. You find a soldier dying on the floor (maybe in the outer plains?) and he begs for you to save him. You need some Greater Healing Tonic (alchemy FTW) to revive him. (to make it really difficult you could put on a timer; if you don't get back in time he is dead.)*

Anyway, you give him the tonic and he then realizes that his sword is broken. He asks you to bring his sword back to the Aristocrats (he has a friend among them, maybe a red-haired man in a golden robe?) and have them pay to get it fixed. When you do that, you must bring the weapon back to him.*

When he recieves the weapon, he will fight ahead, either like curly assisting you, or in cutscenes where you follow him. In some area the soldier is killed and his weapon lands on the floor. If you pick it up you get the *Golden Sword*! Of you aren't of the right class to wield a sword you can being it back to the soldier's friend and exchange it for an upgraded weapon in whatever class you're in.

I'm not sure if you could do something like that, but it would be a pretty cool sidequest for a better weapon...
 
Jun 1, 2010 at 5:31 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
igotsthepower9000 said:
I have a simple quest that would happen during the "War" time of the game. You find a soldier dying on the floor (maybe in the outer plains?) and he begs for you to save him. You need some Greater Healing Tonic (alchemy FTW) to revive him. (to make it really difficult you could put on a timer; if you don't get back in time he is dead.)*

Anyway, you give him the tonic and he then realizes that his sword is broken. He asks you to bring his sword back to the Aristocrats (he has a friend among them, maybe a red-haired man in a golden robe?) and have them pay to get it fixed. When you do that, you must bring the weapon back to him.*

When he recieves the weapon, he will fight ahead, either like curly assisting you, or in cutscenes where you follow him. In some area the soldier is killed and his weapon lands on the floor. If you pick it up you get the *Golden Sword*! Of you aren't of the right class to wield a sword you can being it back to the soldier's friend and exchange it for an upgraded weapon in whatever class you're in.

I'm not sure if you could do something like that, but it would be a pretty cool sidequest for a better weapon...

Interesting thought.
Could be done with a few modifications to fit the current canon I have in mind.
Doubtful I could put it on a timer, though.
And a red-haired man in a golden robe?
Sounds like a reference/self-insert. : P
Doubtful there would be any "war" times, though, as this mod is set within the borders of the Emerald Empire, which has know peace since it... 'took over' its enemies about 400 years before the start of the game.
Potentially a riot, but that's about it.

ANYWAYS!

I've essentially come to the following conclusions:
1.) I shouldn't draw. Everything I've tried to draw has either come out looking super-cartoony or super-phallic. :/
2.) I shouldn't be doing tilesets, either... Except for maybe an SMB3 mod...
3.) I can design an evil map and not think it so evil because I made it.

In remedy to these points:
1.) If you'd like to doodle an enemy/villiager/nobleman/whatever sprite and drop it in this thread, I'd appreciate it very much.
2.) If you'd prefer to do a tileset, drop it here as well.
3.) I need a map tester. The maps that shall be tested will probably not appear in the final version as-is (I would hope not with PrtTestDummy.bmp as the tileset), but the layouts may make an appearance.

In anycase, no promises what you make will be used.
This will basically be done on a drop-in basis rather than requiring a dedicated artist.
Anything you make is appreciated, but the general guidelines:

= People =

- Only noblemen or the Royal Family may wear green (specifically emerald green)
- Merchants should favour brighter/exotic colors
- Townsfolk should look like middle ages middle-class peasants
- All people will probably have to fit into the shovel brigade/prisoner Mimiga size of sprite

= Enemies =

- Try and match a colour to an element (Fire = Red, Water = Blue, Air = White, Earth = Brown)
- Magical enemies should have som indication of their magical-ness
- The enemy entities I'm going to be using will be: Droll, Stumpy, Orangebell, All Critters, Power Critters and All Bats. Any of these could appear in any elemental guise, so recolors/edits are fine if you'd like to submit an entire sheetset for each element.

= Save-points, health refillers, and such =

- Basically just try to stick with the fantasy setting

= Whatever =

- Extrapolate from the above themes if you'd like to drop somthing that isn't catagorizable.
 
Jun 1, 2010 at 5:39 AM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 31
DragonBoots said:
I've essentially come to the following conclusions:
1.) I shouldn't draw. Everything I've tried to draw has either come out looking super-cartoony or super-phallic. :/
2.) I shouldn't be doing tilesets, either... Except for maybe an SMB3 mod...
3.) I can design an evil map and not think it so evil because I made it.

How do sprites become phallic? How, how do you pull that off :S ? From the sounds of these points, well it almost just sounds like you shouldn't be modding AT ALL, but I saw the TDP and it was pretty good.

As far as the map thing goes, well I think this applies to every modder, and depends on how much knowledge of the map helps the playthrough of the map. It nearly always does though.

I could be a testplayer for you, since although I make a mean mod, I have some strict-ish standards when it comes to playing other mods and judging their difficulty. I might be able to draw some tilesets for you to, but that would be on a "when I have time" basis, what with work on my own project and all.

PM me I guess if you want me to test play and do other stuffs.
 
Jun 1, 2010 at 7:02 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
GIRakaCHEEZER said:
How do sprites become phallic? How, how do you pull that off :S ? From the sounds of these points, well it almost just sounds like you shouldn't be modding AT ALL, but I saw the TDP and it was pretty good.

As far as the map thing goes, well I think this applies to every modder, and depends on how much knowledge of the map helps the playthrough of the map. It nearly always does though.

I could be a testplayer for you, since although I make a mean mod, I have some strict-ish standards when it comes to playing other mods and judging their difficulty. I might be able to draw some tilesets for you to, but that would be on a "when I have time" basis, what with work on my own project and all.

PM me I guess if you want me to test play and do other stuffs.

Cool.
GIR will do map concept testing.
And, uh... They become phallic quite easilly... ^^;
Also... "The TDP" = "The The Dark Platform". :/

I dunno... I've never been very good at "art" type things.
But I do enjoy scripting and laying maps out, and to a degree debugging.
I wouldn't say I shouldn't mod at all, but still...

Anyways, if it wasn't clear in my last post, sprites/tilesets are a no-commitment at-your-leisure thing.
 
Jun 1, 2010 at 7:52 AM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6210
Age: 38
Throwing the spriting task out there to everyone will result in varying art styles for your sprites, as well as getting what everyone else thinks you want. Work on the game with your own sprites and tiles, release it, then upgrade the graphics at your leasure or give it to people who understand what you want now that they have seen the game with their own eyes.

Alternatively you could find someone to partner with in the creation of this mod.
 
Jun 2, 2010 at 12:41 AM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Nov 3, 2009
Location: United States, East Coast
Posts: 150
DragonBoots said:
Doubtful there would be any "war" times, though, as this mod is set within the borders of the Emerald Empire, which has know peace since it... 'took over' its enemies about 400 years before the start of the game.
Potentially a riot, but that's about it.

DragonBoots said:
When - WatS is broken into 3 chapters; 'Beginning', 'Training' and 'War' Pick a chapter.


...what?

And actually the red haired guy with a golden robe was a spur of the moment idea...
 
Jun 2, 2010 at 5:22 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
andwhyisit said:
Throwing the spriting task out there to everyone will result in varying art styles for your sprites, as well as getting what everyone else thinks you want. Work on the game with your own sprites and tiles, release it, then upgrade the graphics at your leasure or give it to people who understand what you want now that they have seen the game with their own eyes.

Alternatively you could find someone to partner with in the creation of this mod.
I'm actually kinda aiming for a semi-inconsistant style which is why I figure this would be the best approach.
I mean, I suppose I could make it a 4-man team (myself, Lace, Wedge and another) by adding a dedicated artist...
But when it comes to spriting it's the one thing I hate to ask for because frankly I'm too lax in my judgement.
:/

Well, I'll leave it at this: If anyone would like to volunteer for the position of Head Artist, be my guest.
I will be pretty demanding, though.
igotsthepower9000 said:
...what?

And actually the red haired guy with a golden robe was a spur of the moment idea...

lol
I see.
Interesting spur-of-the-moment-idea. :)

And those are chapter development codes.
Sorta like how the Mirrodin block of Magic: The Gathering was codenamed Control, Alt and Delete during development.

The actual chapter names are:

Chapter 1: Upon The Winds of Time
Chapter 2: Trial by Fire
Chapter 3: The Stone Crumbles
Chapter 4: Shores of Madness

Any anyways, I'm in the progress of overhauling all the scripting I've done to this point with regards to the alchemy system.

I've come to the following conclusions:
1.) No money system. This was decided because, simply put, it was a bad idea in the first place.
2.) Alchemy items are not consumed, except the base material (which isn't consumed during a transmutation but is still required). This makes transmutations much more useful as it gives you access to 2 of 5 combinations with only 2 elements and anything with 3. This come about as a result of early testing and much thought - Having to farm alchemy items turns this into too much of an RPG.
2.5) Transmutation alchemy will be reduced to a single option per rank that brings up a second menu that allows you to perform any conversion you like (Eg. Fire-Air > Water-Earth).
2.75) There will be an additional alchemy item per rank to replace the lost 2nd trans. Not sure what yet, but it will exist. So your alchemy menu will look like...

[Healing] [Energy] [Ally] [Parasite] [????] [Transmute]

This of course kinda breaks my earlier idea of having 6 combinations, but the 5th will take either one combination or another and result in *slightly* different results depending - Sorta like the Alpha and Omega combinations for each rank (like... An ally that heals you or a parasite that gives energy?).

3.) You will only be allowed to carry (or need) 1 of the alchemy elements, which will lighten head.tsc considerably as well as the time spent farming them.

3.5) You can carry up to 12 of the base materials. I *think* I'm gonna make them available in packs of 3. Or I may make them good for 12 uses.

4.) I'm not sure how I'm going to do the multiple sprite thing... The system Lace has designed doesn't save to profile.dat, so would require flags and stuff on the load script... :/ This is mostly a pointless point.

5.) All of the above may take me a month or more because I'm now working 5 days/nights a week...

Anyways, yeah.
Backfeed as always?
 
Jun 2, 2010 at 7:30 AM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6210
Age: 38
DragonBoots said:
4.) I'm not sure how I'm going to do the multiple sprite thing... The system Lace has designed doesn't save to profile.dat, so would require flags and stuff on the load script... :/ This is mostly a pointless point.
Mychar sprites?

Anyway.. as I said before it is probably beneficial in the long run to write a TSC script (assuming this is possible with a TSC script) or TSC command (via assembly) that can save decimal values to flags as binary data using the length in bits, the starting flag number, and the decimal value that you wish to store. To match you would probably need a script/command that does the reverse (binary to decimal).

Though you could probably just do something like this pseudocode example (because I have no experience with TSC):

Code:
if flag1 is off:
if flag2 is off:
sprite1
else:
sprite2
endif;
else:
if flag2 is off:
sprite3
else:
sprite4
endif;
endif;
 
Jun 2, 2010 at 2:41 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Oh come on lace didn't give you the fix for that?
Just change like ONE thing and it'll replace a handful of flags (between 8 and 32 depending on if you need 255 characters or 2 billion) and save to profile.dat, I can do it for you after my banishment has been lifted.
 
Jun 2, 2010 at 7:59 PM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
andwhyisit said:
Mychar sprites?

Anyway.. as I said before it is probably beneficial in the long run to write a TSC script (assuming this is possible with a TSC script) or TSC command (via assembly) that can save decimal values to flags as binary data using the length in bits, the starting flag number, and the decimal value that you wish to store. To match you would probably need a script/command that does the reverse (binary to decimal).

Would be handy...
Would have to be something like...
<BINXXXX:YYYY:ZZZZ - Utilize flags X through Y inclusive to register value Z
<BI+XXXX:YYYY:ZZZZ - Add Z to range X:Y
<BI-XXXX:YYYY:ZZZZ - Subtract Z from range X:Y

andwhyisit said:
Though you could probably just do something like this pseudocode example (because I have no experience with TSC):
Code:
if flag1 is off:
  if flag2 is off:
    sprite1
  else:
    sprite2
  endif;
else:
  if flag2 is off:
    sprite3
  else:
    sprite4
  endif;
endif;
TSC lacks a proper way to emulate a sequence of IF statements (at least within one event).
Could be done, mind you, but it wouldn't be pretty or effecient, and would take up an event per possible outcome.
May not sound like a problem, but this goes in Head.tsc, so every additional event pushes the number of events I can have on a map to a smaller number.
It also means that the first event on a map will be, like... #0500

But, for gits and shiggles:
Code:
== Sequencial flag-per-mask ==

#0100
<FLJ0001:0101<FLJ0002:0102<FLJ0003:0103<FLJ0004:0104[...]<END // Default
#0101
<MIM0001<END // 1st
#0102
<MIM0002<END // 2nd
#0103
<MIM0003<END // 3rd
#0104
<MIM0004<END // 4th
[...]

// Expandable, but requires m+1 events and m flags. Also assumes that only one of the flags will be set. But in terms of simplicity for debugging, a beauty.

= Bitwise (3-bits)  =

#0100
<FLJ0001:0101<FLJ0002:0102<FLJ0003:0103<END // If no flags then default sprite
#0101
<FLJ0002:0104<FLJ0003:0105<MIM0001<END // 1st mask if only flag 1st is set
#0102
<FLJ0003:0106<MIM0002<END // 2nd mask if only 2nd flag is set
#0103
<MIM0003<END // 3rd mask if only 3rd is set
#0104
<FLJ0003:0107<MIM0004<END // 4th mask if 1st and 2nd are set
#0105
<MIM0005<END // 5th mask if 1st and 3rd are set
#0106
<MIM0006<END // 6th mask if 2nd and 3rd are set
#0107
<MIM0007<END // 7th mask if all are set

// Requires 7 (n) events but only 3 ((n-1)/2) flags. A 3-bit flag processor. More effecient than the above, but still a headache due to the fact a misplaced jump could screw it up royally.

Noxid said:
Oh come on lace didn't give you the fix for that?
Just change like ONE thing and it'll replace a handful of flags (between 8 and 32 depending on if you need 255 characters or 2 billion) and save to profile.dat, I can do it for you after my banishment has been lifted.

Banishment?
And I think I may have an idea...
(See above code)
 
Jun 3, 2010 at 12:35 PM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6210
Age: 38
DragonBoots said:
Code:
= Bitwise (3-bits)  =

#0100
<FLJ0001:0101<FLJ0002:0102<FLJ0003:0103<END // If no flags then default sprite
#0101
<FLJ0002:0104<FLJ0003:0105<MIM0001<END // 1st mask if only flag 1st is set
#0102
<FLJ0003:0106<MIM0002<END // 2nd mask if only 2nd flag is set
#0103
<MIM0003<END // 3rd mask if only 3rd is set
#0104
<FLJ0003:0107<MIM0004<END // 4th mask if 1st and 2nd are set
#0105
<MIM0005<END // 5th mask if 1st and 3rd are set
#0106
<MIM0006<END // 6th mask if 2nd and 3rd are set
#0107
<MIM0007<END // 7th mask if all are set

// Requires 7 (n) events but only 3 ((n-1)/2) flags. A 3-bit flag processor. More effecient than the above, but still a headache due to the fact a misplaced jump could screw it up royally.
That is some clever scripting. Although..

DragonBoots said:
// If all flags set then default sprite
// 1st mask if only 1st flag is not set
// 2nd mask if only 2nd flag is not set
// 3rd mask if only 3rd is not set
// 4th mask if 1st and 2nd are not set
// 5th mask if 1st and 3rd are not set
// 6th mask if 2nd and 3rd are not set
// 7th mask if no flags are set
Fixed. :(
 
Jun 3, 2010 at 9:55 PM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
andwhyisit said:

Look again.
It's using <FLJ, not the hypothetically existing <FNJ.
This means it can only jump if the flag is set.

'Course there is the other thing to this - In order to check which mask you're using (or whatever this processor is being used for) you basically have to duplicate it in its entirety.
This is where flag-per-item becomes MORE effecient, as you can easilly just check for the appropriate flag rather than having to check which flags of the series are set.

This leads me to the following conclusions:

1.) Bit-wise TSC processors are good for things that will remain static or for very large lists (more than ~16 items) as it consumes fewer flags. However, making it able to increment and decrement can be tricky, as you have to check (for either) what your current value is before incrementing or decrementing, which expands the script tremendously.

2.) Flag-Per-Item counters are best for short lists of things that will be frequently changed. Incrementing or decrementing the stored value is basically as simple as a string of flag checks that lead to different events to decrement or increment appropriately (which could appear as <FL-XXXX<FL-XXXX<FL-XXXX<FL+YYYY if it's tracking something like a quantity - Since only the flag for the "current" quantity needs to be set).
 
Jun 3, 2010 at 11:47 PM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 31
DragonBoots said:
Look again.
It's using <FLJ, not the hypothetically existing <FNJ.
This means it can only jump if the flag is set.

Why don't you just make <FNJ then?

Or, you know what I mean, get lace too.

It'd make designing all these scripts a lot easier.
 
Jun 4, 2010 at 4:07 AM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6210
Age: 38
I still think writing commands for these operations would be the best solution since it uses less copypasta.

I am thinking of something like this:

<BINXXXX:YYYY:ZZZZ - Store Z to range X:Y
<BI+XXXX:YYYY:ZZZZ - Add Z to range X:Y
<BI-XXXX:YYYY:ZZZZ - Subtract Z from range X:Y
<BIJXXXX:YYYY:ZZZZ - Add the values from Z and range X:Y together and run the resulting event number.

DragonBoots said:
Look again.
It's using <FLJ, not the hypothetically existing <FNJ.
This means it can only jump if the flag is set.
Yeah. My bad.
 
Jun 4, 2010 at 5:34 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
GIRakaCHEEZER said:
Why don't you just make <FNJ then?

Or, you know what I mean, get lace too.

It'd make designing all these scripts a lot easier.
At last update Lace was/is working on it, so yeah... ^^;
andwhyisit said:
I still think writing commands for these operations would be the best solution since it uses less copypasta.

I am thinking of something like this:

<BINXXXX:YYYY:ZZZZ - Store Z to range X:Y
<BI+XXXX:YYYY:ZZZZ - Add Z to range X:Y
<BI-XXXX:YYYY:ZZZZ - Subtract Z from range X:Y
<BIJXXXX:YYYY:ZZZZ - Add the values from Z and range X:Y together and run the resulting event number.

Not sure how well <BIJ would work like that, seeing as this concept would be used for multiple things and not just one, and lower event numbers are used for things like savepoints and lifeups, and I'd have to do an event range caluclation for each implimentation (so the Z value doesn't over/undershoot the intended event).
That, and, well... Yeah.

Probably work best as <BIJWWWW:XXXX:YYYY:ZZZZ
Check range W:X. If it's equal to Y, run event Z.
Means that I'd have a string of <BIJ to check, but it would be easier to use overall (more akin to a standard TSC-style jump).

That all said, and while it would make this 75% easier to do, I may do it the manual way to prove a point - that it can be done.

If I do impliment it the non-manual way, I may as well add a currency system (which will have to feature a way to deduct more than 1 "coin" at a time).

Anyways, I think I know what the most awesomest feature that could be added is: A way to store a variable without the use of flags.

My thought would be this:

<VARXXXX - Stores variable X. 0000 should clear. Should only accept standard numerical values.
<VA+ - Increments existing variable X
<VA- - Decrements existing variable X

And then, when you wish to use the variable:

<TRA0100:0050:0020:XXXX < Replace the value you want to use the variable for in the TSC command with XXXX.

Suppose it could be expanded to something like this, too:

<VARXXXX:YYYY - Store variable X to slot Y (must be between 0000 and 0255 or such)
<VA+XXXX:YYYY - Increment variable in slot X by Y
<VA-XXXX:YYYY - Decrement variable in slot X by Y

Then the replacement in a TSC command would be:

<TRA0100:0050:0020:V001 for the first variable (the "V" informing it to check the slot).
 
Jun 4, 2010 at 5:38 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Just gonna say the variable thing looks like a rough piece of work based on how the TSC parser interprets numerical input, I suppose it wouldn't be impossible but you also come to the issue of "There isn't really any RAM to make variables in" as far as I know.. Well, unless you kill the Old Map data. Or that smidgen at 4bba00 lace told me bout'.
Also, I swear if you go and use flags to manually check MyChar instead of using my fix to have it *automatically* and *accurately* save and draw the proper character then I will be extremely disappointed.
I don't care how clever your scripts are.
 
Jun 4, 2010 at 5:46 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
Noxid said:
Just gonna say the variable thing looks like a rough piece of work based on how the TSC parser interprets numerical input, I suppose it wouldn't be impossible but you also come to the issue of "There isn't really any RAM to make variables in" as far as I know.. Well, unless you kill the Old Map data. Or that smidgen at 4bba00 lace told me bout'.
Also, I swear if you go and use flags to manually check MyChar instead of using my fix to have it *automatically* and *accurately* save and draw the proper character then I will be extremely disappointed.
I don't care how clever your scripts are.

It all depends on Lace in that regard, my dear Noxid.
And with regards to the variable idea... Think it's possible?
(I mean implimenting it effeciently, of course. I'm sure you could make the game poop rainbows and read Shakespear if you press the T key if you really wanted.)

Either way, these processors we're discussing could be used for other things, too - like item quantities, puzzles, and even death counting (XD).
I'm gonna write an XLS file to do most of the work for me so it shouldn't be too hard to share when I'm done.
 
Jun 4, 2010 at 5:53 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Upon further reflection the <VARXXXX would probably be fairly simple I suppose; It's not that hard to throw in a check for the V and it wouldn't really mess up the Ascii to Num function as you could just sub off the "v*1000" before using the value. If you only needed the one variable then t'would be easy enough to use a bit of 4bba00 as mentioned before as long as lace hasn't used it all up already.
If the variable had to save, then I'd endorse the use of some flag data unless you were feeling like hacking the save feature which I've not actually looked into myself so I can't vouch for the feasability.
<VARXXXX:YYYY would be more challenging but only so far as actually finding a place to store and retrieve the variables from. Could you use the old map data? I actually have never tried using it as ram. You do use CE right?
 
Jun 4, 2010 at 6:01 AM
Cold Agony of Resolute Vacuum
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jan 1, 2008
Location: Elsewhere
Posts: 1973
Noxid said:
Upon further reflection the <VARXXXX would probably be fairly simple I suppose; It's not that hard to throw in a check for the V and it wouldn't really mess up the Ascii to Num function as you could just sub off the "v*1000" before using the value. If you only needed the one variable then t'would be easy enough to use a bit of 4bba00 as mentioned before as long as lace hasn't used it all up already.
If the variable had to save, then I'd endorse the use of some flag data unless you were feeling like hacking the save feature which I've not actually looked into myself so I can't vouch for the feasability.
<VARXXXX:YYYY would be more challenging but only so far as actually finding a place to store and retrieve the variables from. Could you use the old map data? I actually have never tried using it as ram. You do use CE right?

Hm...
Doubt saving them would be too useful, as if you want to save them use them to save themselves as flags, I guess.
The idea behind <VARXXXX:YYYY is to have dynamic scripting possible - that is to say make it possible to have a single block of script that, by changing a few variables before it's called, could serve multiple, similar funtions - Eg. By changing a string of variables it could go from managing one item with flags to another.

Anyways! I gots an XLS file to make!
How far should I go in the world of bit-wise? 8? 32? 255?

Key point (tl:dr): Saving variables isn't required.
 
Top