Sparkles are really easy with ffc, or even global scripts. Just scan all lweapons on the screen, find the arrow, check one of the arrows Misc arrays if it's 0 or lower, spawn a sparkle Lweapon on top of the lweapon and set it's sprite, else, lower the value of the Misc Array. It works really well in global scripts, and it doesn't waste a FFC.
Zelda Classic 2.50.2
#91
Posted 27 November 2015 - 10:44 AM
#92
Posted 27 November 2015 - 11:37 AM
Sparkles are really easy with ffc, or even global scripts. Just scan all lweapons on the screen, find the arrow, check one of the arrows Misc arrays if it's 0 or lower, spawn a sparkle Lweapon on top of the lweapon and set it's sprite, else, lower the value of the Misc Array. It works really well in global scripts, and it doesn't waste a FFC.
I've tried that in the past, however it doesn't replicate the way that sparkles look, or work, effectively.
#93
Posted 27 November 2015 - 06:09 PM
Also just for curiosity, why the engine not compile the script when the quest is loaded, but you have to compile it before.
That I think would solve all the stupid global variable issue. Just save the script code in the quest, and compile it when it is loaded. It should not be a problem right?
#94
Posted 27 November 2015 - 06:33 PM
Also just for curiosity, why the engine not compile the script when the quest is loaded, but you have to compile it before.
That I think would solve all the stupid global variable issue. Just save the script code in the quest, and compile it when it is loaded. It should not be a problem right?
It wouldn't change anything, actually, and here's why:
The compiler converts all ZScript instructions, into ZASM instructions, and stores them in a table, with a word-based (byte) lookup scheme. All the global variables are stored in a predetermined area of that table, of which there are 255 free registers. When a quest is loaded, the number of registers used for variables is locked in the save file, and all the other registers are effectively reserved for running function calls.
The ZC engine itself, uses the word table to look up what instructions do, in the form of an internal opcode system. When a word matches an opcode instruction, in a table, that instruction is then translated to the engine itself. It's actually quite messy, and to add anything, the entire bytecode needs to be modified, the quest format updated to support the new table, and the save file format updated to handle the new quest format.
It's really the save file format that plays havoc, if someone adds, or modifies a global variable. That said, I believe that if you pre-declare a large global array, you can always remap its indices via constants, without this problem. I'd need to do some extensive testing on that, but I believe it works. That also gives you as many single global variables as you could possibly want, but it doesn't solve the gd register issue entirely, particularly with regard to hardcoded strings, or function call limitations. .
- Evan20000 likes this
#95
Posted 27 November 2015 - 06:45 PM
It wouldn't change anything, actually, and here's why:
The compiler converts all ZScript instructions, into ZASM instructions, and stores them in a table, with a word-based (byte) lookup scheme. All the global variables are stored in a predetermined area of that table, of which there are 255 free registers. When a quest is loaded, the number of registers used for variables is locked in the save file, and all the other registers are effectively reserved for running function calls.
The ZC engine itself, uses the word table to look up what instructions do, in the form of an internal opcode system. When a word matches an opcode instruction, in a table, that instruction is then translated to the engine itself. It's actually quite messy, and to add anything, the entire bytecode needs to be modified, the quest format updated to support the new table, and the save file format updated to handle the new quest format.
It's really the save file format that plays havoc, if someone adds, or modifies a global variable. That said, I believe that if you pre-declare a large global array, you can always remap its indices via constants, without this problem. I'd need to do some extensive testing on that, but I believe it works. That also gives you as many single global variables as you could possibly want, but it doesn't solve the gd register issue entirely, particularly with regard to hardcoded strings, or function call limitations. .
Ah interesting, but it would be good to have a way to solve this issue somehow.
#96
Posted 28 November 2015 - 12:30 PM
It's really the save file format that plays havoc, if someone adds, or modifies a global variable. That said, I believe that if you pre-declare a large global array, you can always remap its indices via constants, without this problem. I'd need to do some extensive testing on that, but I believe it works. That also gives you as many single global variables as you could possibly want, but it doesn't solve the gd register issue entirely, particularly with regard to hardcoded strings, or function call limitations. .
I should note, that if this works as I believe, I'll write a tutorial for it. You can rob my functions for handling this kind of nonsense, and abuse it to death.
Confirmed to work. The tutorial should be done in a day, or so.
Edited by ZoriaRPG, 28 November 2015 - 01:06 PM.
#97
Posted 29 November 2015 - 03:30 PM
I'm probably going to sound really stupid, but...
* It's now possible to scale up ZQuest in large mode. This hasn't been extensively tested, but it seems to work fine. Keep in mind that it runs at multiples of 800x600, so the next size up is 1600x1200.
...how do I actually do this? I don't see any options for it. I really like the idea of a scaled up large mode though!
#98
Posted 29 November 2015 - 03:45 PM
If the window would be too big to fit on the screen, it won't run at all.
#99
Posted 29 November 2015 - 03:51 PM
If the window would be too big to fit on the screen, it won't run at all.
I think that's the issue. I set the scale to 2 in the launcher and it just closed immediately. I figured the scale was for small mode or something and was causing issues or something, so I assumed there was another option for large mode, ha ha. Looks like I'm just a little shy from having it completely fit. xD
All righty though. Thanks for the help. ![]()
#100
Posted 29 November 2015 - 06:51 PM
What happened to the console option in ag.cfg in the final version of Build 29?
If I add it in manually, it doesn't open ZConsole.
Was the debugging console removed, or was the option renamed?
Edit: Well, I think I did something wrong, either by editing the wrong file, or because ag.cfg was in its virgin state. It works now, after running, exiting, and then editing the file. I will need to check to see if this is something that I can repeat.
Edited by ZoriaRPG, 29 November 2015 - 06:55 PM.
#101
Posted 30 November 2015 - 08:04 PM
https://youtu.be/GR1__1U7224
The only thing I really understand about it is that it requires you to have a spin attack that costs magic while not being able to pay for the magic cost. ZC promptly has a heart attack and swings your sword every frame.
#102
Posted 30 November 2015 - 08:20 PM
I'm going to postulate that the other Link class objects with a charge cycle would also have glitches if given a magic cost. Hell, the ladder could do even more quirky things if you gave it a cost. {{shudders}}
Quake hammer is something to check.
- Evan20000 likes this
#103
Posted 30 November 2015 - 11:00 PM
As far as I understand, Hurricane Spin (and most likely Super Quake) work perfectly fine with a Magic cost. However when you do that to a Spin Attack (or probably Quake Hammer Scroll)... (I got that problem when I was playing with the possibility of giving Link's regular Spin Attack a Magic cost)
#104
Posted 01 December 2015 - 08:41 AM
File: FIX_SpinAttackMagicCost.zs
You can also do this with the Quake Hammer, if it has similar problems.
Edited by ZoriaRPG, 01 December 2015 - 09:02 AM.
- Evan20000 likes this
#105
Posted 11 December 2015 - 12:30 AM
How do I keep my old ZC save files? Help!!!
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users

