Perhaps a way to have Freeform Combos attack just like you can? ... Rather, a way for something to damage enemies like your weapons can. Therefore, you could have soldier allies who attack enemies with you. (Albeit poorly. We all know Link is the ONLY man who can be called "The man." 😉 )
Discuss FF Combo Scripting Ideas HERE
idontknow wrote:In other words, having moving platforms where once Link steps on them, he takes on the movement of whatever's in the scriptWait....Didn't Jman post a moving platform script. I haven't tested it yet. Do you have to walk with the platforms?
No, you don't.
Jman, the platform doesn't work for me. I mean, the tile does move diagonally back & forth, but has no effect on link (He doesn't move w/ it)
Yeah, that's not the script that does that. o.o It's the most barebones of example scripts. Look around the Beta Discussion forum for more scripts. They're all scattered 'round here somewhere...
This is getting so complicated, (with so many operations of which half I still haven't got to in math) I will probably use the C compiler.
Whats a C compiler?
It's a script compiler that the devs are supposedly working on which will allow you to use syntax similar to that used by the C programming language. Y'know, like:
repeat {
while ((lx - x) > 16) {
waitframe;
}
data = 45;
while (lx < 100) {
lx+=1;
waitframe;
}
data = 44;
}will someone make a notepad, wordpad, whatever tutorial to explain how to use C++ and Allegro? Game Maker, RPGMaker 2003/XP, DreamMaker, and Visual Basic is nothing like that 😞.
Below are the new variables I have planned for the scripting language:
LINKX
LINKY
LINKDIR
LINKHP
LINKMP
LINKMAXHP
LINKMAXMP
LINKACTION
LINKFROZEN
WPNX
WPNY
WPNDIR
WPNSTEP
WPNANGULAR
WPNANGLE
WPNDRAWTYPE
WPNPOWER
WPNDEAD
WPNID
WPNTILE
WPNCSET
WPNFLASHCSET
WPNFRAMES
WPNFRAME
WPNASPEED
WPNFLASH
WPNFLIP
WPNCOUNT
ITEMX
ITEMY
ITEMDRAWTYPE
ITEMID
ITEMTILE
ITEMCSET
ITEMFLASHCSET
ITEMFRAMES
ITEMFRAME
ITEMASPEED
ITEMDELAY
ITEMFLASH
ITEMFLIP
ITEMCOUNT
NPCX
NPCY
NPCDIR
NPCRATE
NPCFRAMERATE
NPCHALTRATE
NPCDRAWTYPE
NPCHP
NPCID
NPCDP
NPCWDP
NPCTILE
NPCENEMY
NPCWEAPON
NPCITEMSET
NPCCSET
NPCBOSSPAL
NPCBGSFX
NPCCOUNT
There will be some new commands for these. LOADWPN, LOADITEM, and LOADNPC each take one argument (the index in the weapon, item, or npc list of the item to reference). BTW, an NPC is either a guy, enemy, or friendly character. There will also be CREATEWPN, CREATEITEM, and CREATENPC. These will create a new object and begin to reference it. Once an object is referenced, you can change attributes of the objects with the SET command.
An object is only referenced while the script is running. So, WAITFRAME or QUIT will cause an object reference to become invalid (because objects disappear from their lists either from being collected, killed, or fading away) to prevent data corruption. The ITEMCOUNT, WPNCOUNT, and NPCCOUNT tell how many of those objects are on the screen presently (so you can loop through all the enemies on the screen and triple their HP when Link enters the room).
Thoughts?
Holy Crap! O_O
And that's all I have to say about that...
Does "weapon" include such things as:
* Link's sword-slash?
* Link's sword beam?
* Enemy projectiles?
Also, howlonguntilthenextbeta.
Weapons actually only refer to the enemy weapons on the screen. I suppose I could split the list into EWPN and LWPN commands since the enemy and Link weapons are stored in separate lists internally.
DLBrooks33 wrote:Game Maker, RPGMaker 2003/XP, DreamMaker, and Visual Basic is nothing like that .
Trust me, I work with RPGMaker XP also. If you can program in ruby, you can program in C. It's actually easier in my opinion. Ive never needed Gamemakers scripting, and I just got Dreammaker, but I can assume they're not to difficult either.
Dark Nation wrote:sd0-sd7 - Persistent screen data. These values hold their data assigned to them for the current screen, even after going to another screen and coming back.
gd0-gd255 - Persistent global data. These can be set or read anywhere. So, you could set a global variable in one room then do something in another room based on that value.
YES. Oh my GOD yes. This might actually get me seriously working on a quest. I have several ideas that would be difficult, if not impossible, to implement without some sort of screen-local or game-global variables to keep track of world state. The idea of replicating the entire world just to allow a small part of the map to change permanently is irritating (and impractical if multiple of these changes may be independent of each other), and the compromises (room state carryovers and remote boss/kill-all trigger/dmap tomfoolery) can't do everything. I hadn't yet bothered to take a really close look at FFC scripting, as I figured without any persistent store they still wouldn't help me out, but this....this is GREAT news. Time for me to study the possibilities!
SETV fx,100
SETV fy,100
SETR d0,linkx
SETR d1,linky
SETV d4,5
loop WAITFRAME
SUBV d4,1
COMPAREV d4,0
GOTOFALSE loop
SETV d4,5
SETR d2,d0
SETR d3,d1
SETR d0,linkx
SETR d1,linky
COMPARER d0,d2
GOTOTRUE updown
COMPARER d0,d2
GOTOLESS left
COMPARER d0,d2
GOTOMORE right
GOTO updown
right COMPAREV fx,0
GOTOMORE updown
SUBV fx,1
GOTO updown
left COMPAREV fx,200
GOTOLESS updown
ADDV fx,1
updown COMPARER d1,d3
GOTOTRUE loop
COMPARER d1,d3
GOTOLESS up
COMPARER d1,d3
GOTOMORE down
GOTO loop
up COMPAREV fy,200
GOTOLESS loop
ADDV fy,1
GOTO loop
down COMPAREV fy,0
GOTOMORE loop
SUBV fy,1
GOTO loop
QUIT
Combo that mirrors Link's movement, but like in a mirror - you stand still, he does too. You move up, he goes down. And so on.
koopa wrote:Combo that mirrors Link's movement, but like in a mirror - you stand still, he does too. You move up, he goes down. And so on.
Your script is needlessly complex, and doesn't seem to take into account conveyor belts. Try this:
SETR d0,lx; record Link's position.
SETR d1,ly
WAITFRAME; Let Link move...
SUBR d0,lx; and record his new position.
SUBR d1,ly
ADDR x,d0; apply the change of position to self, in reverse
ADDR y,d1
GOTO 1
QUITyou're right there, thanks. I created it more as an example for a thread at ZCU.
Note I've yet to spend a great deal of time with the FFC Code so thes sugestion are just as much questions...
Can the Code be linked to the Misc1 & 2 Items? If the Misc 1 & 2 Items could be equiped to the "B" button and used to triger FFC code then we have custom items... I assume not, but if it were implemented then it truely would be an (even more) revolutionary feature.
Can FFC code can be used to create FFCs that damage enemies?
If I might suggest some additions, there are a couple of things I think'd be useful, but haven't seen listed anywhere as either present or planned...
[font=courier]this[/font] - Unless I just missed it, there's no way for an FFC to see its own ID, which means no references to others based on their relative positions in the list. Obviously, scripts would be more versatile if they didn't rely on hard-coded ID numbers.
[font=courier]PLAY[/font] - Unlikely, perhaps, but it'd be nice. We've already got FFC-based bosses and such... They'd be a lot more convincing if they could make sounds. And then, of course, there's the possibility of sound-based puzzles. Separate wav files might be nice, but even just using sounds from sfx.dat would be great.
[font=courier]RAND[/font] - I saw [font=courier]RNDR[/font] and [font=courier]RNDV[/font] are planned, but I'm not certain whether those are random or round. If they're the latter, we still need a way to get random numbers.
Hm... I think I'm forgetting one. Eh, maybe I'll think of it later.
PLAYSOUNDR and PLAYSOUNDV will play sounds in beta 13, thanks to jman.
RNDR and RNDV are for generating random numbers.
Dlbrooks33 wrote:will someone make a notepad, wordpad, whatever tutorial to explain how to use C++ and Allegro? Game Maker, RPGMaker 2003/XP, DreamMaker, and Visual Basic is nothing like that 😞.
C++ is not something you can learn easily. As in, you are better off buying a book or taking a class. It's far too complex for a simple .txt tutorial.
However, think of RPG Maker XP: you don't NEED to know Ruby to use it, but knowing it opens up a whole new realm of possibilities. It's the same here: ZC will still be ZC, and ZQuest isn't going to REQUIRE you to ever know a lick of programming to make your own Zelda-style game. Those who know how, however, have more flexibility with their quests.
ZC will still be ZC, and ZQuest isn't going to REQUIRE you to ever know a lick of programming to make your own Zelda-style game. Those who know how, however, have more flexibility with their quests.
And those who don't know how can still import and use scripts provided by others. So everyone wins! 😃
I'm hoping that a large database of cool scripts comes to to exist.
Oh, I remember the other: [font=courier]GOTOR[/font]. We can write more generic subroutines if we can store return addresses.
A way of reading line labels into registers to go along with that would be good, too.