Jump to content

Photo

My Script Wishlist and Your Script Ideas


  • Please log in to reply
242 replies to this topic

#16 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 22 May 2015 - 01:48 PM

Sorry about that. I'm still not entirely familiar with the system that this site uses. I often have to manually cut out the parts of a reply that I am not referring to when I quote someone because I don't know how to use do it otherwise. Where exactly do I click to use that plain text editor you mention, for example?

 
The top-left button; looks like a toggle switch, above 'Bold' and to the left of 'Remove Format', toggles modes.
 

That's a very nice and easy to understand example on running a script from an item. Thankfully, I've gotten far enough in my understanding of Zscript to know what this all means now.

 

 
An example of nested loops, including while, and do-while. If you want examples of nested for loops, alert me. In terms of common use, to me in ZScript, it's in the order of for, while, do. To accomplish most of the magic that I need, with the smallest footprint, for loops are my dolly.

 

Can you provide some example code of how to use that DrawScreenToLayer function you're referring to? Keep in mind that I still have some trouble with getting Screen->DrawTile to work properly. And how exactly would the cursor you're referring to be controlled? Also, what library is it in?


Indeed, but you'll need the function itself too. Do you use Skype? It would be easier, and less cluttering, to discuss this with you directly. I'd PM you, but I'm running quite low on mailbox space here, and I need to go through, archive, and remove discussions.
 
Here's the function though, and one usage example:
 
void DrawScreenToLayer(int sourceMap, int sourceScreen, int layerMin, int layerMax, int drawOpacity, int destLayer){
    for (int i = layerMin; i < layerMax; i++){
        Screen->DrawLayer(destLayer, sourceMap, sourceScreen, i, 0, 0, 0, drawOpacity);
    }
}
 
There is also a variation on this, with the destLayer arg, that draws hardcoded to layer 0, but most people will want layer control.
 
You'll see the power of the for loop though: One instruction, that carries out layer drawing multiple times, to the layer range specified.
 
Example:
 
DrawScreenToLayer( 1, 30, 0, 6, 100, 5 );
//Draws screen 30 of MAP 1 (note, MAP, not DMAP); layers 0 to 6, at 100% opacity, to the present screen, on layer 5.
 
At present, these are in TeleportMatrix2.1.zs , not in RPG.zh. I'll be moving the drawing functions over to the header presently.
 
Note also, that this draws for one frame. If you want it to draw perpetually, you need to call that in a while loop; and if you want it to draw for a specific duration (timed) you call the function from a for loop. Effects of drawing functions, are by their nature, extant for one frame, so that they can be continually updated.
 

This code is a vast improvement over what I created. Of course, the idea of making a while loop that just did nothing was something that I only recently began to understand. I could post my own coding attempt, which contains no instructions on how to use the songs once they've played. (And doesn't work.)

 
Indeed. The eccentricities of ZScript take a good while to comprehend. Again, post it, if you want us to point out where its problems lay, so that you can see what others may've done, and learn from any errors.
 

As the end product, I was thinking that there would be one item which would check for the acquisition of other items (for the songs) and when you used it, Link's appearance would change while it was being used (via whatever method would work best) and you could then select only the songs you had learnt


Well, the item itself, no-matter what you want it to do, needs to either run an FFC, or set a global boolean that permits your main active script to execute a codeblock tied to it. I wouldn't let the item script make any 'decisions', as that limits what you are able to do, given that whatever the item script does runs only for one frame, and then exits.
 

As for the songs themselves, one would be a warping around the world; one would trigger special warp points (like I have in another script that already works) and the third would warp you no matter where you were. Sort of a cross between the ocarina and magic mirror from LTTP. I've seen a script that could do the magic mirror and I have a script that does the warping at special warp spots, but not one that does both and warps you around to certain areas.

 
I've written both a mirror item (for another user here), and various teleportation items. If you want to try out how those work, the Teleport Matrix is a default item in LoE. If you have trouble working this out, I'd be willing to assist you.
 

My idea for using this is one of those things that hasn't been used (to my knowledge) in a game yet. I'll probably explain it better in my next list of suggested scripts.

 
Fair enough.
 

Really? I was thinking it would harder. Truth be told, I only suggested this because years ago I made a very basic Final Fantasy-esque battle system using nothing more than a graphing calculator and a coding language two steps removed from Basic. It is on the basis of what I learned then that I've studied Zscript over the past few months. I'm leaps and bounds ahead of where I was when I started but nowhere near proficient enough to do something like this. It isn't that much of a priority. My system can't run the sort of advanced RPG creation games that exist, so if I want to make a game I'm pretty much stuck using Zelda Classic.

 
Truth be told, without using Tango, making that work would be a gigantic, painful, mess. With Tango, if you know how to use it, it's rather straightforward. It's primarily menu dialogues... The combat dynamics of selecting a player, defining hit chances, and enemy-size random actions, are all rather elementary. If people want this in RPG.zh, I'll eventually include it, with an example quest.
 
I could probably even tie the enemy editor into that kind of engine, to define enemy HP, and other variables; despite never directly placing enemies in a game of that sort. 
 

Arrays are one of those things I've always had trouble with. My ideas for events are really much, much simpler. For example, one game I made in RPG Maker 3 on PlayStation 2 had a series of events (read ffcs for Zelda Classic) that would never activate unless you went up to them and examined them. If you did, it would increment an in-game counter. If you get to a certain point in the game and the counter was a above a certain level, you'd go one way. If not, another.


Think of an array as a table of variables, all sharing the same type.
 
int MyVars[10]={0,0,0,0,0,0,0,0,0,0};
 
Here, you have an array, 'MyVars'. Instead of making ten game variables, you can instead tie anything you would normally associate to an int variable, to one index of MyVars.
 
Thus, instead of:
 
int day = 1;
int week;
 
void adjustWeek(){
    if ( day > 7 ) {
        day = 1;
        week++;
    }
}
 
 
...you do this:
 
const int DAY = 0; //Assigns the constant 'DAY" to 0, so that we can use it to point to index '0' of MyVars.
const int WEEK = 1; //Assigns the constant 'WEEK" to 1, so that we can use it to point to index '1' of MyVars.
 
int MyVars[10]={1,0,0,0,0,0,0,0,0,0}; //The array declaration states a size of 10. This means that you have ten indices, from '0' to '9'.
 
//All user-defined arrays start at '0'.
//We're going to track days, and weeks with the first two indices, and at the start of the game, we'll be on day 1.
//Thus we initialise the first index with a value of '1' and the rest with '0'. We can immediately use the first two, for days and weeks, and the rest later.
//We can expand the size of this array if needed.
 
 
void adjustWeek(){
    if ( MyVars[DAY] > 7 ) { //Checks index 0 of the array MyVars to see if it is greater than 7.
        MyVars[DAY] = 1; //If so, it changes [i]the value stored in [/i]that index back to '1'.
        MyVars[WEEK]++; //and adds +1 to the [u]value[/u] stored in index '1' of MyVars.
    }
}
 
That's the general idea. There are also faster, and easier ways to read them, and to make evaluations based on array contents, without needing to continually type out the array name, and index position. You can make shortcut functions, and as long as you assign constants to all index positions, you could tuck every single variable in a game into one large array, and read them with about the same ease as you would by using ordinary var names.
 

 

In Zelda Classic, you could have secrets triggered that led to one set of one-time events if you went one way and another set for the other. The player would never know that the other events existed unless the counter and associated ffcs were reset to their original status. Or you could have it where all the triggered events were only available through one-time events and if you didn't trigger them, secrets wouldn't be activated on another screen that led to more one-time events.

 
I could go on about how I set up events, but the simple explanation is that I have global conditions that look for specific triggers (that can be any condition, or combination of conditions, from a combo type on a screen, to a time value in my custom game clock, to defeating an enemy, or collecting an item, or whatever that I desire).
 
If those triggers occur, the game sets an index in GameEvents[] to true. If that index is true, if statement codeblocks execute.
 

Currently using Notepad, because my standard word processor doesn't format it right and I can't afford to pay for anything else. Look for more outlandish scripting ideas later!

 
You are missing out on two, powerful, open-source, and free code editors...
 
SciTE (my preference) is a lightweight code editor for Windows.
Notepad++ is another very popular option. It has more features than SciTE, and otherwise runs on the same engine.

There is also a special code editor for ZScript that another member developed, although I don't recall the name of that project off-hand, and the word 'code' is not a valid search word for some reason.
  • Avaro and ywkls like this

#17 ywkls

ywkls

    Master

  • Members

Posted 22 May 2015 - 05:00 PM

 I click on that button you mentioned and it takes me to the actual code used to display things. I still don't know how to work with it, but I'll keep trying.

 

 

 

 


 
An example of nested loops, including while, and do-while. If you want examples of nested for loops, alert me. In terms of common use, to me in ZScript, it's in the order of for, while, do. To accomplish most of the magic that I need, with the smallest footprint, for loops are my dolly.

 

Thanks for this. I'll try to work out the rest on my own for now. Since this is for my next project rather than my current one, I have plenty of time to get all the bugs out. If I still can't solve things on my own, I'll create a script request.

 

 

Indeed, but you'll need the function itself too. Do you use Skype? It would be easier, and less cluttering, to discuss this with you directly. I'd PM you, but I'm running quite low on mailbox space here, and I need to go through, archive, and remove discussions.

 
Here's the function though, and one usage example:
 
void DrawScreenToLayer(int sourceMap, int sourceScreen, int layerMin, int layerMax, int drawOpacity, int destLayer){
    for (int i = layerMin; i < layerMax; i++){
        Screen->DrawLayer(destLayer, sourceMap, sourceScreen, i, 0, 0, 0, drawOpacity);
    }
}
 
There is also a variation on this, with the destLayer arg, that draws hardcoded to layer 0, but most people will want layer control.
 
You'll see the power of the for loop though: One instruction, that carries out layer drawing multiple times, to the layer range specified.
 
Example:
 
DrawScreenToLayer( 1, 30, 0, 6, 100, 5 );
//Draws screen 30 of MAP 1 (note, MAP, not DMAP); layers 0 to 6, at 100% opacity, to the present screen, on layer 5.
 
At present, these are in TeleportMatrix2.1.zs , not in RPG.zh. I'll be moving the drawing functions over to the header presently.
 
Note also, that this draws for one frame. If you want it to draw perpetually, you need to call that in a while loop; and if you want it to draw for a specific duration (timed) you call the function from a for loop. Effects of drawing functions, are by their nature, extant for one frame, so that they can be continually updated.

 

I could use Skype, except for the fact that my computer doesn't have a functional microphone. However, your explanation of the function is fairly straightforward. Is the code posted above the entirety of this function, requiring nothing else other than the standard libraries like std.zh, ffcscript.zh, string.zh, ghost.zh and stdExtra.zh? If so, I can just incorporate that directly into my script file whenever I get around to actually creating a script that needs it.

 

 

 Indeed. The eccentricities of ZScript take a good while to comprehend. Again, post it, if you want us to point out where its problems lay, so that you can see what others may've done, and learn from any errors.

 

Alright here's the code.

Spoiler

 

I kept it only because I thought I might post it when actually requesting the ocarina item in question and see what advice I could get. If you wish to offer some now, feel free. In some cases, I've been able to solve things on my own but in many others I just can't seem to figure it out.

 

 

 Well, the item itself, no-matter what you want it to do, needs to either run an FFC, or set a global boolean that permits your main active script to execute a codeblock tied to it. I wouldn't let the item script make any 'decisions', as that limits what you are able to do, given that whatever the item script does runs only for one frame, and then exits.

 
 
I've written both a mirror item (for another user here), and various teleportation items. If you want to try out how those work, the Teleport Matrix is a default item in LoE. If you have trouble working this out, I'd be willing to assist you.

 

Is that item in LoE have code that can be accessed? Many times when I play the games others have created (even the demos) I don't get very far before I give up because the level of difficulty or the amount of time required to get anywhere is too much for me.

 

I remember seeing a magic mirror/Oracle of Ages-style item that would create a portal that you could then use to warp between different maps but I didn't realize that you were the one who created it. I'll definitely take a look at the one in your game, but if I can't access it directly or look at the code; all I'll be able to do is see how it works.

 

 

 Truth be told, without using Tango, making that work would be a gigantic, painful, mess. With Tango, if you know how to use it, it's rather straightforward. It's primarily menu dialogues... The combat dynamics of selecting a player, defining hit chances, and enemy-size random actions, are all rather elementary. If people want this in RPG.zh, I'll eventually include it, with an example quest.

 
I could probably even tie the enemy editor into that kind of engine, to define enemy HP, and other variables; despite never directly placing enemies in a game of that sort.

 

You can't say that I'm not ambitious in my ideas.

 

 

 Think of an array as a table of variables, all sharing the same type.

 
int MyVars[10]={0,0,0,0,0,0,0,0,0,0};
 
Here, you have an array, 'MyVars'. Instead of making ten game variables, you can instead tie anything you would normally associate to an int variable, to one index of MyVars.
 
Thus, instead of:
 
int day = 1;
int week;
 
void adjustWeek(){
    if ( day > 7 ) {
        day = 1;
        week++;
    }
}
 
 
...you do this:
 
const int DAY = 0; //Assigns the constant 'DAY" to 0, so that we can use it to point to index '0' of MyVars.
const int WEEK = 1; //Assigns the constant 'WEEK" to 1, so that we can use it to point to index '1' of MyVars.
 
int MyVars[10]={1,0,0,0,0,0,0,0,0,0}; //The array declaration states a size of 10. This means that you have ten indices, from '0' to '9'.
 
//All user-defined arrays start at '0'.
//We're going to track days, and weeks with the first two indices, and at the start of the game, we'll be on day 1.
//Thus we initialise the first index with a value of '1' and the rest with '0'. We can immediately use the first two, for days and weeks, and the rest later.
//We can expand the size of this array if needed.
 
 
void adjustWeek(){
    if ( MyVars[DAY] > 7 ) { //Checks index 0 of the array MyVars to see if it is greater than 7.
        MyVars[DAY] = 1; //If so, it changes [i]the value stored in [/i]that index back to '1'.
        MyVars[WEEK]++; //and adds +1 to the [u]value[/u] stored in index '1' of MyVars.
    }
}
 
That's the general idea. There are also faster, and easier ways to read them, and to make evaluations based on array contents, without needing to continually type out the array name, and index position. You can make shortcut functions, and as long as you assign constants to all index positions, you could tuck every single variable in a game into one large array, and read them with about the same ease as you would by using ordinary var names.

 

Still not sure that I grasp everything. But I'm not giving up either.

 

 

I could go on about how I set up events, but the simple explanation is that I have global conditions that look for specific triggers (that can be any condition, or combination of conditions, from a combo type on a screen, to a time value in my custom game clock, to defeating an enemy, or collecting an item, or whatever that I desire).

 
If those triggers occur, the game sets an index in GameEvents[] to true. If that index is true, if statement codeblocks execute.

 

So, basically you set this up in your global loop to set GameEvents[i] to true, where i is which event has been triggered. Then later, would be code that says if GameEvents[i] is true and so forth? I think I might be able to figure out how to do something like that...

 

 

 You are missing out on two, powerful, open-source, and free code editors...

 
SciTE (my preference) is a lightweight code editor for Windows.
Notepad++ is another very popular option. It has more features than SciTE, and otherwise runs on the same engine.

There is also a special code editor for ZScript that another member developed, although I don't recall the name of that project off-hand, and the word 'code' is not a valid search word for some reason.

 

 

I'll try to use those, but I can't guarantee that I'll be able to get them to work since my system is a little outdated and has trouble with some modern programs.

 

Again, thanks for the tips!


Edited by ywkls, 22 May 2015 - 05:02 PM.


#18 ywkls

ywkls

    Master

  • Members

Posted 22 May 2015 - 05:20 PM

More outlandish scripting ideas!

 

Mask System- This is the one that would probably require more than one subscreen. My brother suggested this and I told him that except for the rings, I didn't think that this had been done. I would say that not only getting the appearance of Link to change would be hard, but having each mask actually do something and triggering certain events exclusive to each mask would be complex but potentially doable.

 

Vehicles/Airships- I know that Epona has been done, but what about some other kind of method of transportation? In Wind Waker we had the King of Red Lions; in Skyward Sword, the giant birds and in Spirit Tracks, the locomotive. I know of a few games that have it where your appearance changes in certain environments (Carnage in Space; Zodiac, Story of the Guardian) but what about a RPG-style vessel that would allow freedom of movement around the world.?

 

True Minigames- The only example I've seen of this was the game where you had to push blocks to form a picture used in The Forbidden City. What about an archery contest, with different prizes and moving targets? Or a digging game where you had to search for buried stuff? Or a game where you either had to kill a certain number of enemies in a certain amount of time, or survive a certain amount of time? These are just a few examples.

 

Sideview Enemies- This was a pet peeve of mine when I created a game a while back. Most normal foes ignore sideview gravity completely. I think that I've seen one game where someone has tried to script enemies that obey sideview gravity (Zodiac, Story of the Guardian) but I wasn't able to understand the code used well enough to duplicate it. And much of the code that works for creating enemies in a top-down field doesn't function the same in this environment.

 

Link->Invincible- Is this something that exists? I once thought it was, but now I'm not so sure. If so, you could create items that would protect you from all harm for a variable length of time.

 

More Equippable Items- In Ocarina of Time you could change Tunics, Swords and Shields. Many things in Zelda Classic are simply passive. So can you imagine switching out what you currently had depending on where you where? I think a few games have it where you can have more than one sword in your inventory, but I've no idea if they set that up through scripting or clever use of the item editor and subscreens. And I know that shields which respond to a button press exist, though I don't know of examples like Link's Awakening where you can equip the shield directly onto a button.

 

I'm sure I have more ideas, I just can't think of any right now.


Edited by ywkls, 22 May 2015 - 07:49 PM.


#19 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 22 May 2015 - 06:49 PM

I click on that button you mentioned and it takes me to the actual code used to display things. I still don't know how to work with it, but I'll keep trying.

 
 Correct. You click that, put line breaks where you need, and insert [ quote ] and [ /quote ] tags where you desire.
 

I could use Skype, except for the fact that my computer doesn't have a functional microphone. However, your explanation of the function is fairly straightforward. Is the code posted above the entirety of this function, requiring nothing else other than the standard libraries like std.zh, ffcscript.zh, string.zh, ghost.zh and stdExtra.zh? If so, I can just incorporate that directly into my script file whenever I get around to actually creating a script that needs it.

 
Oh, I primarily use Skype for written messages, and quick file transfers. I sadly don't have time, for conference calls, or a social life.

 

Alright here's the code.
 
I kept it only because I thought I might post it when actually requesting the ocarina item in question and see what advice I could get. If you wish to offer some now, feel free. In some cases, I've been able to solve things on my own but in many others I just can't seem to figure it out.

 
 
Problem number one, that I see at a glance, is that you nested infinite loops. You never want more than one while(true) loop per script. Instead, you can use one infinite loop--noting that you can only leave this with a break instruction--and conditional loops for anything else.
 
It's also important to realise that many instructions will never be executed with nested infinite loops:
 
 
global script globalscript{
    void run(){
        while(true){
            if(isPlaying)PlaySong();
            Waitframe();
        }
    }
}
 
If the boolean isPlaying is set true, that Waitframe() instruction will never execute.
 
What you want, is a while(isPlaying) instruction in the function.
 
In your PlaySong() function, nothing past the Waitframe() instruction at line 67 will ever run. The loop hits that Waitframe(), and never has a chance to progress further, because there's no break out of that infinite loop.
 
In general, you only want one Waitframe() in your main global active script. Any other Waitframe() there, should exist to halt further execution, while doing something specific, such as running special draw commands in a for loop. The Waitframe() instruction halts all following instructions, and will return control back out, reading back into  the loop from the start.
 
That's the main problem with infinite loops -- while(true) and while(false) are the only valid types, and while(false) although syntactically correct, wouldn't do anything -- which is why you use other variable conditions as the main evaluation points.
 

Is that item in LoE have code that can be accessed? Many times when I play the games others have created (even the demos) I don't get very far before I give up because the level of difficulty or the amount of time required to get anywhere is too much for me.
 
I remember seeing a magic mirror/Oracle of Ages-style item that would create a portal that you could then use to warp between different maps but I didn't realize that you were the one who created it. I'll definitely take a look at the one in your game, but if I can't access it directly or look at the code; all I'll be able to do is see how it works.

 
Not in the buffer. My buffer is usually three, to six import lines... I do make it available on-line, and can send you the codebase. In fact, the teleport stuff is now in RPG.zh, v0.96.9, that I'll be releasing as an update in my signature sometime today.
 
I coded a mirror for the 'Three Whistles' project by Obderhode (Edit: Seems to have been released as 'Flow of Time, Remastered'). If that's where you saw it, it's probably based on some of my methods. If not, I couldn't say... I believe there are several mirror items in quests at this point. I don't ultimately know if Obderhode used what I wrote as-is, either.
 
You may want to try the item itself though, so that when you see the functions, you can try to compare what you're seeing in the code, to what the item is doing in the game.
 

So, basically you set this up in your global loop to set GameEvents[ i ] to true, where i is which event has been triggered. Then later, would be code that says if GameEvents[ i ] is true and so forth? I think I might be able to figure out how to do something like that...

Correct, although external factors can modify GameEvents[]. I can set any index there from an FFC, or other script. Item pick-up scripts, speaking with NPCs, time passing, whatever I desire. The tricky part, is tracking cascading events, and preparing for combinations thereof.

 

Mask System- This is the one that would probably require more than one subscreen. My brother suggested this and I told him that except for the rings, I didn't think that this had been done. I would say that not only getting the appearance of Link to change would be hard, but having each mask actually do something and triggering certain events exclusive to each mask would be complex but potentially doable.

Some games have done that, IIRC. You have two options for changing the appearance of the player character: Link Tile Modifiers, and draw functions.
 
The first, is explained in depth elsewhere. Usually you'd use things such as shields, and wisp rings to shift the LTM. The main problem with this, is the sheer volume of tile pages you waste, to stack every possible combination of modifiers.
 
With option two, you may draw over the player character, or turn the player invisible, and draw a replacement sprite. Both have been done, or at least, attempted.

 

Vehicles/Airships- I know that Epona has been done, but what about some other kind of method of transportation? In Wind Waker we had the King of Red Lions; in Skyward Sword, the giant birds and in Spirit Tracks, the locomotive. I know of a few games that have it where your appearance changes in certain environments (Carnage in Space; Zodiac, Story of the Guardian) but what about a RPG-style vessel that would allow freedom of movement around the world.?

I have a Dalek saucer ship. Does that count?
 
I'll probably add the traditional vessels into the RPG header. At the least, a standard ship is in my notes. This starts to tread on quest-specific again though. My purpose for a standard ship, was to segregate land water, and sea water, for swimming. The player would not be able to swim any real distance in sea water, without starting to take stat damage.
 
Coding vessel objects however, presents various problems. You're pretty much entering terrorist where you are coding your own movement engines; based on combo types, and possibly entire combo lists.

 

True Minigames- The only example I've seen of this was the game where you had to push blocks to form a picture used in The Forbidden City. What about an archery contest, with different prizes and moving targets? Or a digging game where you had to search for buried stuff? Or a game where you either had to kill a certain number of enemies in a certain amount of time, or survive a certain amount of time? These are just a few examples.

This doesn't even need scripting, and I can think of a host of games that had both, or either, skill minigames, and luck minigames. 'Hero of Dreams' comes to mind there, as it had a bit of both, and the minigames often acted to invisibly prepare the player for a game mechanic later on in the story.
 
'Eiyuu' has the 'Burn the Rope' game.
 
Several CC games had numerous 'Time Trial' areas, too. I think that you're not seeing them now, primarily because people managed to get burnt out on them, so they've become 'old fashioned'. The same applies to extraneous fetch quests, and other deviations. Many of the present questmakers have been focused on miniquest styles, or on dungeoncrawlers/gauntlets; and those who aren't usually tend to go either with immersive story games, or something entirely different to traditional styles.
 
I have no objection to minigames, but they need to be fresh, and not designed to entirely troll the player.

 

Sideview Enemies- This was a pet peeve of mine when I created a game a while back. Most normal foes ignore sideview gravity completely. I think that I've seen on game where someone has tried to script enemies that obey sideview gravity (Zodiac, Story of the Guardian) but I wasn't able to understand the code used well enough to duplicate it. And much of the code that works for creating enemies in a top-down field doesn't function the same in this environment.

Eh? Non-flying enemies obey gravity in side-view. Occasionally, they obey it too well.
 
Zodiac has expanded physics, but the internal physics for sideview gravity aren't that broken. You may want to check your quest rules, or modify your gravity variables. The QR 'Flying enemies can appear on unwalkable combos' may also be important here.
 
What problems have you encountered?
 

 

Link->Invincible- Is this something that exists? I once thought it was, but now I'm not so sure. If so, you could create items that would protect you from all harm for a variable length of time.

Negative. You're thinking of Link->CollDetection. Protection for a variable amount of time, works by giving link a 'clock' item, normally. The cheat menu allows you to set an 'Invincible' flag too. Giving Link a clock does stun all enemies while he has it though, so what most of us do, is turn off his collision detection.
 
That's the only way to effectively make him invincible, however, you can also do this in a limited manner, by calculating present HP, storing it, and setting Link->HP to that value every frame while he's supposed to be invincible. You can also turn off Link's knockback at the same time, by setting Link->HitDir to -1 if it is anything else.
 

More Equippable Items- In Ocarina of Time you could change Tunics, Swords and Shields. Many things in Zelda Classic are simply passive. So can you imagine switching out what you currently had depending on where you where? I think a few games have it where you can have more than one sword in your inventory, but I've no idea if they set that up through scripting or clever use of the item editor and subscreens. And I know that shields which respond to a button press exist, though I don't know of examples like Link's Awakening where you can equip the shield directly onto a button.

I have an 'Equip' menu for that, and once I code my custom subscreen, that will also permit equipping items. I've essentially designed the game theory for LoE, in such a way that all items are 'active'. Some equip themselves by default, if nothing is equipped in their 'slot', but otherwise, the player can unequip, or equip passive items. It isn't that hard to do, and you'll find functions for that in RPG_zh/RPG_Equipment.zlib.
 
Note, that the menu itself, is not yet implemented. I was hoping to find a way to make it auto-scroll when the player reaches a boundary, but that's going to wait until I have a new stock of whiskey...
 
The main stock items for this type of system, are rings, armour, boots, and ladder/flippers. My own game theory expands this, but you understand the general idea. If you read the quest project long-description for LoE, I believe it includes this concept, and has since the game inception.
 
Most people don;t do this, because it adds a layer of complexity to a game. Unless they have a good reason for it, or if they're making items have costs, or special properties, they usually don;t bother. I posted information on this topic in several threads; most recently, in one that Binx has in scripting discussion.

P.S. I updated RPG.zh in my signature, to alpha 0.96.9, if you want to see those teleport functions, and the other things that I merged.

Edited by ZoriaRPG, 23 May 2015 - 12:46 PM.

  • ywkls likes this

#20 ywkls

ywkls

    Master

  • Members

Posted 23 May 2015 - 06:40 AM

 Some games have done that, IIRC. 

 

IIRC? I don't know all of the common abbreviations yet so you'll have to explain that one.

 

 

You have two options for changing the appearance of the player character: Link Tile Modifiers, and draw functions.

 
The first, is explained in depth elsewhere. Usually you'd use things such as shields, and wisp rings to shift the LTM. The main problem with this, is the sheer volume of tile pages you waste, to stack every possible combination of modifiers.
 
With option two, you may draw over the player character, or turn the player invisible, and draw a replacement sprite. Both have been done, or at least, attempted.

 

Option two seems like the way to go, if I ever wanted to try to do that. I'm guessing that you'd use a variation of DrawTile, with coordinates matching your location and tied to the possible directions that you could be facing so it would switch whenever you moved.

 

 

 I have a Dalek saucer ship. Does that count?

 
I'll probably add the traditional vessels into the RPG header. At the least, a standard ship is in my notes. This starts to tread on quest-specific again though. My purpose for a standard ship, was to segregate land water, and sea water, for swimming. The player would not be able to swim any real distance in sea water, without starting to take stat damage.
 
Coding vessel objects however, presents various problems. You're pretty much entering terrorist where you are coding your own movement engines; based on combo types, and possibly entire combo lists.

 

Yes, the saucer ship counts. As for the rest, it sounds too complicated to be of practical use to me anytime soon.

 

 

 This doesn't even need scripting, and I can think of a host of games that had both, or either, skill minigames, and luck minigames. 'Hero of Dreams' comes to mind there, as it had a bit of both, and the minigames often acted to invisibly prepare the player for a game mechanic later on in the story.

 

i actually tried to play Hero of Dreams. Couldn't beat the first boss of the first dungeon. Is there a topic somewhere that has instructions on how to set up mini-games? A tutorial maybe? I think that I'm just too familiar with the way things had to be back in 1.92 to realize the options that are available.

 

 

 
 'Eiyuu' has the 'Burn the Rope' game.

 

I've heard of this game (Burn the Rope) but never played it. As for setting that up without scripts... clearly the makers of Eiyuu were geniuses.

 

 

 
Several CC games had numerous 'Time Trial' areas, too. I think that you're not seeing them now, primarily because people managed to get burnt out on them, so they've become 'old fashioned'. The same applies to extraneous fetch quests, and other deviations. Many of the present questmakers have been focused on miniquest styles, or on dungeoncrawlers/gauntlets; and those who aren't usually tend to go either with immersive story games, or something entirely different to traditional styles.

 
I have no objection to minigames, but they need to be fresh, and not designed to entirely troll the player.

 

CC games? I don't know what those are, sorry. As for the idea of fetch quests, I'm actually incorporating a number of those in my latest project.

 

I honestly don't see the point of mini-quests. Whenever I play a game, I don't want something that I can beat in a few hours. However, placing mini-quests within my main quest is something that I'm doing in my current project.

 

My first new game in years was mostly a dungeon-crawler with occasional enemy gauntlets. I'm trying to incorporate more story into my latest project, without interfering with the player's ability to progress through the game.

 

As for making fresh mini-games, since I'm not entirely sure how to create any mini-games; I have nothing to really contribute on that end.

 

 

 
 Eh? Non-flying enemies obey gravity in side-view. Occasionally, they obey it too well.

 
Zodiac has expanded physics, but the internal physics for sideview gravity aren't that broken. You may want to check your quest rules, or modify your gravity variables. The QR 'Flying enemies can appear on unwalkable combos' may also be important here.
 
What problems have you encountered?

 

Tektite and leever-type enemies ignored it completely in my experience. And I once tried to use Ghost.zh to script a boss, only to have the animation that appeared repeatedly fall through the floor without dying, even though it should have been solid. Also, many enemies ignored combos and flags like No Enemies. And then there's the problem with the edges of platforms and spawning at the edge of the screen and falling off. I think that there were others, but I can't remember them at the moment.

 

 

 
 Negative. You're thinking of Link->CollDetection. Protection for a variable amount of time, works by giving link a 'clock' item, normally. The cheat menu allows you to set an 'Invincible' flag too. Giving Link a clock does stun all enemies while he has it though, so what most of us do, is turn off his collision detection.

 
That's the only way to effectively make him invincible, however, you can also do this in a limited manner, by calculating present HP, storing it, and setting Link->HP to that value every frame while he's supposed to be invincible. You can also turn off Link's knockback at the same time, by setting Link->HitDir to -1 if it is anything else.

 

So I'd set Link->CollDetection to false for a period of time (say 3600 frames) or have the code store Link->HP in a variable and set it to maintain that value every frame while he's supposed to be invincible? And set Link->HitDir to -1, of course. Sounds doable...

 

 

 
 I have an 'Equip' menu for that, and once I code my custom subscreen, that will also permit equipping items. I've essentially designed the game theory for LoE, in such a way that all items are 'active'. Some equip themselves by default, if nothing is equipped in their 'slot', but otherwise, the player can unequip, or equip passive items. It isn't that hard to do, and you'll find functions for that in RPG_zh/RPG_Equipment.zlib.

 
Note, that the menu itself, is not yet implemented. I was hoping to find a way to make it auto-scroll when the player reaches a boundary, but that's going to wait until I have a new stock of whiskey...
 
The main stock items for this type of system, are rings, armour, boots, and ladder/flippers. My own game theory expands this, but you understand the general idea. If you read the quest project long-description for LoE, I believe it includes this concept, and has since the game inception.
 
Most people don;t do this, because it adds a layer of complexity to a game. Unless they have a good reason for it, or if they're making items have costs, or special properties, they usually don;t bother. I posted information on this topic in several threads; most recently, in one that Binx has in scripting discussion.

P.S. I updated RPG.zh in my signature, to alpha 0.96.9, if you want to see those teleport functions, and the other things that I merged.

 

 

I'll take a more thorough look at RPG.zh now, then. I know that you previously had some files at your own web address rather than a file-sharing site (like Dropbox) and the problem I had implementing that method in the past was the fact that I had to copy the whole file into whatever program I was using to edit code. Downloading it seems a lot easier to me.

 

Again, thanks for helping out!



#21 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 23 May 2015 - 01:22 PM

IIRC? I don't know all of the common abbreviations yet so you'll have to explain that one.


'If I recollect, correctly.'
 
 

Option two seems like the way to go, if I ever wanted to try to do that. I'm guessing that you'd use a variation of DrawTile, with coordinates matching your location and tied to the possible directions that you could be facing so it would switch whenever you moved.


Drawtile, or Drawsprite.
 
 
 

i actually tried to play Hero of Dreams. Couldn't beat the first boss of the first dungeon. Is there a topic somewhere that has instructions on how to set up mini-games? A tutorial maybe? I think that I'm just too familiar with the way things had to be back in 1.92 to realize the options that are available.


Wait, what? I'll have to go back and look at the first dungeon boss again, but HoD wasn't an overly difficult game, although it does have some enemy-heavy areas.

Most typical minigames involve disabling items (DMAP settings), enemy editor magic, secret combos, and FFCs/changers. I have a concept, for LoE, that is somewhat like mini-games, with their own rule sets; but it's not quite the same as what you have in mind. If you want to read the concept for that, I can send it to you. (This is not the place to tangent into discussing the game, and my game-specific concepts.)
 

I've heard of this game (Burn the Rope) but never played it. As for setting that up without scripts... clearly the makers of Eiyuu were geniuses.


Mekers, plural, is probably wrong here. While Team had help with scripting, I'm pretty sure that Team did the design for the game, and at least that specific minigame, without assistance.  It works by setting up ropes in the enemy editor, that have the NPCD (FIre, 1-Hit-Kill), and disabling any other (non-candle) LWeapon items for that DMAP. (I can tell you that, without needing to look at the .qst file.)
 
 

CC games? I don't know what those are, sorry. As for the idea of fetch quests, I'm actually incorporating a number of those in my latest project.


CC == CastChaos.  CC made some very large, story-oriented games, however, the story is usually incomprehensible, due to Hungarian to English translation (by the questmaker) of a plot that may, or may not make sense in the first place. (It's convoluted, and involves parallel dimensions, with all sorts of in-humour, and cross-series references.)

 

CC also tends to use random triggers, and forces the player to rely on the Lens... I don't agree with that questmaking style, but the games are big, and pretty.

Otherwise, I'm not a huge fan of perpetual fetch-quests; especially if they force strict linearity.
 

I honestly don't see the point of mini-quests. Whenever I play a game, I don't want something that I can beat in a few hours. However, placing mini-quests within my main quest is something that I'm doing in my current project.


They're for three types of people, in general:

  • Those who haven;t time in general, to play a complete game.
  • Those who don't have the attention span to dedicate to a single, longer game.
  • People who want short games, to produce LP videos.

They're also made by questmakers who may fall under one of the above categories, in reverse (e.g. not enough time to make a long quest; wants to make many small projects versus one large game).
 

My first new game in years was mostly a dungeon-crawler with occasional enemy gauntlets. I'm trying to incorporate more story into my latest project, without interfering with the player's ability to progress through the game.

 

I'll be strictly honest, I'm not a fan of 'enemies, enemies, enemies', either, for a quest style.

 

A well-devised story should never 'be in the way': If a player isn't interested in story-focused games, then they shouldn't play a story-focused game. I call that, 'common sense'. If you base you game around expectations of every single possible player, you'd better be making a Tetris clone. It's hard to go wrong there. Otherwise, aim at a specific, target audience, and ignore complaints outside of that target.
 

As for making fresh mini-games, since I'm not entirely sure how to create any mini-games; I have nothing to really contribute on that end.


The main thing you'll need to do, is come up with a concept, and rules/limitations/special requirements, for a minigame. Until you have that established, there's no real way for anyone to detail how to make it work in ZC.

 

Again, I'll send you the rule set for my special encounters system, which is similar to mini-games, if you want an idea of what I mean by devising a rule set, before designing the game.
 
 

Tektite and leever-type enemies ignored it completely in my experience. And I once tried to use Ghost.zh to script a boss, only to have the animation that appeared repeatedly fall through the floor without dying, even though it should have been solid. Also, many enemies ignored combos and flags like No Enemies. And then there's the problem with the edges of platforms and spawning at the edge of the screen and falling off. I think that there were others, but I can't remember them at the moment.


Oh, that's right. Tektites don't obey gravity, in general. They don't obey anything. In fact, Tektites will multiply inside your quest file, and start flooding out of your laptop at night.

I don't remember what problems leever enemies have in sideview, but I can take a guess. In my experience, any enemy that can have a Z-axis, will ignore Flags 95 and 96... If it can fump, fly, or phase, it eats Flag 96 for breakfast, but jumping is usually how they break stop flags.

Zodiac, is an open quest though, if you ever want to go in, and find out how things work. (I'm not sure if C-Dawg keeps the code in his buffer.)
 
 

So I'd set Link->CollDetection to false for a period of time (say 3600 frames) or have the code store Link->HP in a variable and set it to maintain that value every frame while he's supposed to be invincible? And set Link->HitDir to -1, of course. Sounds doable...


Negative, you'd either set Link->CollEctection = false -- or -- store, and modify HP, and set Link->HitDir.

 

Disabling CollDetection allows the player to walk on damage combos, and do other wacky things. Nothing can collide, including FFCs that you need to collide with the player, if you disable CollDetection.

That's why I suggested an alternative, as if you have an invincible player with Link->CollDetection(false), and you have, for example, an FFC that turns on the lighting in a room, when the player touches it, it won't work if that's based on LinkCollision(this).
 

I'll take a more thorough look at RPG.zh now, then. I know that you previously had some files at your own web address rather than a file-sharing site (like Dropbox) and the problem I had implementing that method in the past was the fact that I had to copy the whole file into whatever program I was using to edit code. Downloading it seems a lot easier to me.


I won't use any of those big, megacorp, file sharing services. Period.

I don't understand what you mean by 'problem' here. Why would you not want to download the file? All you need do, is right-click, and select 'save target as'. instead of opening the file in your browser.

You can always download files from a server like this, if they aren't in a directory with restricted read permissions. It requires no more than a basic browser: No javascript, no extensions, no plug-ins, not even frames.

Compare that to the number of browser scripts that try to exec, just by visiting mediafire, or any other cloudware site. It's sickening.

I block all browser scripts by default, so I need to permit any of them to run, and I never give any of those sites global permissions. That's quite unwise, especially when any of their advertisers could embed evilware in their media. If anyone believes that the site admins check every off-site advert, then they're mad. Those 'free' hosting sites aren't free as in either 'free speech', or 'free beer'. They generate their revenue in ways, that may not be very friendly.

 

You should probably install, and configure either Notepad++, or SciTE before digging into the header.

 

In addition, Mero created a ZScript Language formatting template for NP++, and I created templates for ZScript in SciTE.

 

Either of these will aid in working with ZScript files; although that for both, there may be questionable keyword highlighting.


Edited by ZoriaRPG, 23 May 2015 - 01:31 PM.

  • ywkls likes this

#22 coolgamer012345

coolgamer012345

    🔸

  • Members
  • Location:Indiana, USA

Posted 23 May 2015 - 01:36 PM

I won't use any of those big, megacorp, file sharing services. Period.

I don't understand what you mean by 'problem' here. Why would you not want to download the file? All you need do, is right-click, and select 'save target as'. instead of opening the file in your browser.

You can always download files from a server like this, if they aren't in a directory with restricted read permissions. It requires no more than a basic browser: No javascript, no extensions, no plug-ins, not even frames.

Compare that to the number of browser scripts that try to exec, just by visiting mediafire, or any other cloudware site. It's sickening.

I block all browser scripts by default, so I need to permit any of them to run, and I never give any of those sites global permissions. That's quite unwise, especially when any of their advertisers could embed evilware in their media. If anyone believes that the site admins check every off-site advert, then they're mad. Those 'free' hosting sites aren't free as in either 'free speech', or 'free beer'. They generate their revenue in ways, that may not be very friendly.

I have something to say to that:
Dropbox. A free account gives you 2GB of space to hold stuff, you can also buy (rent?) a paid account for about $10 per month which lets you hold 1TB of space, supposedly, and a "business" account for $15 per month, which supposedly lets you share "unlimited" amount of files (I am gonna assume that it isn't literally unlimited, but you get the point). I saw the prices in dollars so they might be a bit different in Euros.

 

So far, I haven't had any problems with ads or anything from Dropbox stuff (as far as I can tell, and I don't really have problems with ads in general because adblock+ and not visiting many sites with ads..).


Edited by Coolgamer012345, 23 May 2015 - 01:37 PM.

  • ywkls likes this

#23 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 23 May 2015 - 03:03 PM

I have something to say to that:
Dropbox. A free account gives you 2GB of space to hold stuff, you can also buy (rent?) a paid account for about $10 per month which lets you hold 1TB of space, supposedly, and a "business" account for $15 per month, which supposedly lets you share "unlimited" amount of files (I am gonna assume that it isn't literally unlimited, but you get the point). I saw the prices in dollars so they might be a bit different in Euros.

 

So far, I haven't had any problems with ads or anything from Dropbox stuff (as far as I can tell, and I don't really have problems with ads in general because adblock+ and not visiting many sites with ads..).

 

I cannot strongly enough, recommend running NoScript if you're using these services. AdBlock+ does nothing, with regard to what scripts are allowed to exec in your browser.

 

Security issues aside, both longevity, and datum access are dubious. Most of the file sharing sites have at most, a 5-year lifespan. Many closed due to distributing pirated medium, which also says to me that anything you upload is content checked, and thus, people will always be snooping in your datum.

 

The extra steps to reach files, and the nuisance 'register before downloading?' prompt, are also annoying. I prefer a one-click, to a file, approach, by placing everything on a basic Apache server. I realise that this is a 'luxury' these days, although there are many ways to obtain shell accounts from various trusted sources.

 

I further wouldn't place bets on any 'unlimited' service. That word is often abused in marketing nomenclature, to mean whatever the UELA wants it to mean.



#24 Lejes

Lejes

    Seeker of Runes

  • Members
  • Location:Flying High Above Monsteropolis

Posted 23 May 2015 - 03:13 PM

True Minigames- The only example I've seen of this was the game where you had to push blocks to form a picture used in The Forbidden City. What about an archery contest, with different prizes and moving targets? Or a digging game where you had to search for buried stuff? Or a game where you either had to kill a certain number of enemies in a certain amount of time, or survive a certain amount of time? These are just a few examples.



Forbidden City has more than just the block pushing mini game. It has several others including the Trendy Game. I made my own Trendy Game, too. It's not as good as the one in Forbidden City, but I could give you the code if you want to look at it. I also made a slot machine. Promised Lands also has a number of mini games, including the digging game you mentioned.


Sideview Enemies- This was a pet peeve of mine when I created a game a while back. Most normal foes ignore sideview gravity completely. I think that I've seen one game where someone has tried to script enemies that obey sideview gravity (Zodiac, Story of the Guardian) but I wasn't able to understand the code used well enough to duplicate it. And much of the code that works for creating enemies in a top-down field doesn't function the same in this environment.


I made a few sideview enemies as well. Some basic things that hop or fly.
  • ywkls likes this

#25 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 23 May 2015 - 04:23 PM

Forbidden City has more than just the block pushing mini game. It has several others including the Trendy Game. I made my own Trendy Game, too. It's not as good as the one in Forbidden City, but I could give you the code if you want to look at it. I also made a slot machine. Promised Lands also has a number of mini games, including the digging game you mentioned.



I made a few sideview enemies as well. Some basic things that hop or fly.

 

Lejes, you should add the sideview enemies to the Script DB, as a package; and I remember that slot machine. ;)

 

I checked, and all the Zodiac engine code is in the buffer.



#26 Moosh

Moosh

    Tiny Little Questmaker

  • ZC Developers

Posted 23 May 2015 - 04:36 PM

True Minigames- The only example I've seen of this was the game where you had to push blocks to form a picture used in The Forbidden City. What about an archery contest, with different prizes and moving targets? Or a digging game where you had to search for buried stuff? Or a game where you either had to kill a certain number of enemies in a certain amount of time, or survive a certain amount of time? These are just a few examples.

Relevant video from today: https://www.youtube....h?v=SNLOETNQtI4

 

SNLOETN. That almost looks like a word in some ancient tongue.

 

Ahem, anyways, scripted minigames are super cool to see in quests. The trouble is that there's often some hardcoding involved be it prizes or in the case of the example I posted, the very essence of the minigame. A simple archery game wouldn't be too difficult, but then you can do that easily without scripting so what's the point other than to be flashy? The coolest stuff is the stuff that isn't easily distributable I suppose.



#27 ywkls

ywkls

    Master

  • Members

Posted 23 May 2015 - 05:37 PM

Forbidden City has more than just the block pushing mini game. It has several others including the Trendy Game. I made my own Trendy Game, too. It's not as good as the one in Forbidden City, but I could give you the code if you want to look at it. I also made a slot machine. Promised Lands also has a number of mini games, including the digging game you mentioned.

 

Considering that I haven't actually played the Forbidden City, but only watched a few Let's Plays, I think I can be forgiven for not knowing about that. As for the Trendy Game, i assume you're referring to the one from Link's Awakening where there's a conveyor with prizes and you have to maneuver the claw to select what you want as they go about? I don't know If I'd want that particular game, but looking at code has given me ideas before so I'd love to check it out. I may have a few mini-games in my current project if I can figure out how to do them...

 

 

Lejes, you should add the sideview enemies to the Script DB, as a package; and I remember that slot machine. ;)

 

I checked, and all the Zodiac engine code is in the buffer.

 

I second this motion. All in favor?

 

As for the Zodiac code.... I know about that. I've looked at that code. It gave me a headache. And since I haven't been able to get far enough in the demo to where those enemies appear, I don't know how they actually behave.

 

 

Relevant video from today: https://www.youtube....h?v=SNLOETNQtI4

 

SNLOETN. That almost looks like a word in some ancient tongue.

 

Ahem, anyways, scripted minigames are super cool to see in quests. The trouble is that there's often some hardcoding involved be it prizes or in the case of the example I posted, the very essence of the minigame. A simple archery game wouldn't be too difficult, but then you can do

that easily without scripting so what's the point other than to be flashy? The coolest stuff is the stuff that isn't easily distributable I suppose.

 

I saw that video actually. I don't know how it works, of course although there are some parts I can guess. By the way, how exactly would an archery game without scripting work? Keep in mind that I only recently learned that combo cycling even existed. (And this is after years of working with Zelda Classic on my own.)

 

 

I have something to say to that:
Dropbox. A free account gives you 2GB of space to hold stuff, you can also buy (rent?) a paid account for about $10 per month which lets you hold 1TB of space, supposedly, and a "business" account for $15 per month, which supposedly lets you share "unlimited" amount of files (I am gonna assume that it isn't literally unlimited, but you get the point). I saw the prices in dollars so they might be a bit different in Euros.

 

So far, I haven't had any problems with ads or anything from Dropbox stuff (as far as I can tell, and I don't really have problems with ads in general because adblock+ and not visiting many sites with ads..).

 

One of the things I noted whenever I created my own Dropbox account was that I didn't have to be a member to download anything. I didn't even know that they had paid options. Of course, since I only recently started using file-sharing sites; my ignorance can be explained.

 

 

'If I recollect, correctly.'

 

I actually figured this out on my own before you answered, but thanks for the explanation.

 

 

Wait, what? I'll have to go back and look at the first dungeon boss again, but HoD wasn't an overly difficult game, although it does have some enemy-heavy areas.

 

There are tons of spikes, and enemies flying at you and you have to hit four switches with a boomerang and only have four hearts... I got through the first two stages and kept dying on the third. Gave up because making my own game was more interesting.

 

 

Most typical minigames involve disabling items (DMAP settings), enemy editor magic, secret combos, and FFCs/changers. I have a concept, for LoE, that is somewhat like mini-games, with their own rule sets; but it's not quite the same as what you have in mind. If you want to read the concept for that, I can send it to you. (This is not the place to tangent into discussing the game, and my game-specific concepts.)

 

Did you know that if some items are scripted, telling the DMAP editor to disable that item is useless? For example, in one game it was hard-coded to use the Roc's Feather if I pressed the Ex1 button. Even with the Roc's Feather disabled, this still occurred. I think it might have been because the code in quest manually set the value of LInk->Jump, though.

 

As for mini-games I might want someday, let me get back to you on that.

 

 

Mekers, plural, is probably wrong here. While Team had help with scripting, I'm pretty sure that Team did the design for the game, and at least that specific minigame, without assistance.  It works by setting up ropes in the enemy editor, that have the NPCD (FIre, 1-Hit-Kill), and disabling any other (non-candle) LWeapon items for that DMAP. (I can tell you that, without needing to look at the .qst file.)

 

I just though Teamudf was well... a team. As for how that mini-game is set up, I would never have thought of that on my own.

 

I'm now breaking this reply into two posts because the first one seems to be having some technical difficulties.


Edited by ywkls, 23 May 2015 - 05:38 PM.


#28 ywkls

ywkls

    Master

  • Members

Posted 23 May 2015 - 06:00 PM

They're for three types of people, in general:

  • Those who haven;t time in general, to play a complete game.
  • Those who don't have the attention span to dedicate to a single, longer game.
  • People who want short games, to produce LP videos.

They're also made by questmakers who may fall under one of the above categories, in reverse (e.g. not enough time to make a long quest; wants to make many small projects versus one large game).

 

I'd say as far as making quests go, I only do one at a time. As far as ideas go, I always have about a million ideas for the various things I might want to do bouncing around the back of my head. I detest any game that's too short, though the fact that most Zelda games can be done quickly and Metroid games are over in a few hours are the exception to the rule. Generally speaking, when looking for games outside of Zelda Classic; I prefer things well over twenty hours long. (To show how devoted to a game I can be, I have several i've clocked more than 300 hours in.)

 

 

I'll be strictly honest, I'm not a fan of 'enemies, enemies, enemies', either, for a quest style.

 

A well-devised story should never 'be in the way': If a player isn't interested in story-focused games, then they shouldn't play a story-focused game. I call that, 'common sense'. If you base you game around expectations of every single possible player, you'd better be making a Tetris clone. It's hard to go wrong there. Otherwise, aim at a specific, target audience, and ignore complaints outside of that target.

 

In my case, I'm having a main story that everybody who plays the game will see and then a bunch of subsidiary stories that only those determined to find every secret will uncover. The full game experience (and secret ending) will only be available to those who do everything.

 

 

The main thing you'll need to do, is come up with a concept, and rules/limitations/special requirements, for a minigame. Until you have that established, there's no real way for anyone to detail how to make it work in ZC.

 

Again, I'll send you the rule set for my special encounters system, which is similar to mini-games, if you want an idea of what I mean by devising a rule set, before designing the game.

 

Well, for the archery game for example... each target would have different point value. These would be ffc scripts most likely with inherent values for how many points each and run with relatively slow velocities until they hit a changer and switched. If your arrow hits a target (perhaps using that ffc trigger script you suggested to detect collision),  a script counter is increased by the amount that ffc is set to. This target ffc data would be cleared after they were hit. A governing ffc would monitor the other ffcs and when no ffcs of the target type were detected would store your score in a variable and clear the counter for the next game. If your total exceeded a preset amount, you'd win a prize. To play, you'd have to pay rupees of course.

 

 

Oh, that's right. Tektites don't obey gravity, in general. They don't obey anything. In fact, Tektites will multiply inside your quest file, and start flooding out of your laptop at night.

I don't remember what problems leever enemies have in sideview, but I can take a guess. In my experience, any enemy that can have a Z-axis, will ignore Flags 95 and 96... If it can fump, fly, or phase, it eats Flag 96 for breakfast, but jumping is usually how they break stop flags.

Zodiac, is an open quest though, if you ever want to go in, and find out how things work. (I'm not sure if C-Dawg keeps the code in his buffer.)

 

The main difficulty wasn't any of these things but the capacity of enemies that were walking type to pass through walls when hit by my character's attacks. This only occurred with enemies whose size had been increased beyond normal via scripting, though.

 

 

Disabling CollDetection allows the player to walk on damage combos, and do other wacky things. Nothing can collide, including FFCs that you need to collide with the player, if you disable CollDetection.

That's why I suggested an alternative, as if you have an invincible player with Link->CollDetection(false), and you have, for example, an FFC that turns on the lighting in a room, when the player touches it, it won't work if that's based on LinkCollision(this).

 

I understood what you mean the first time, don't worry. I just phrased my response wrong, that's all.

 

 

I won't use any of those big, megacorp, file sharing services. Period.

I don't understand what you mean by 'problem' here. Why would you not want to download the file? All you need do, is right-click, and select 'save target as'. instead of opening the file in your browser.

You can always download files from a server like this, if they aren't in a directory with restricted read permissions. It requires no more than a basic browser: No javascript, no extensions, no plug-ins, not even frames.

Compare that to the number of browser scripts that try to exec, just by visiting mediafire, or any other cloudware site. It's sickening.

I block all browser scripts by default, so I need to permit any of them to run, and I never give any of those sites global permissions. That's quite unwise, especially when any of their advertisers could embed evilware in their media. If anyone believes that the site admins check every off-site advert, then they're mad. Those 'free' hosting sites aren't free as in either 'free speech', or 'free beer'. They generate their revenue in ways, that may not be very friendly.

 

The page I'm referring to must have been years old then, because the link in your signature downloaded just fine. And until I can somehow gain access to my own file-sharing site, the ones available for free on the internet are all I've got. I do agree that most of them are more trouble than they're worth, though.

 

 

You should probably install, and configure either Notepad++, or SciTE before digging into the header.

 

In addition, Mero created a ZScript Language formatting template for NP++, and I created templates for ZScript in SciTE.

 

Either of these will aid in working with ZScript files; although that for both, there may be questionable keyword highlighting.

 

Which of those would allow access to the .zlib files? Because right now I can't open them. Or do I just need to change the extension? Again thanks to everyone for your advice.



#29 Moosh

Moosh

    Tiny Little Questmaker

  • ZC Developers

Posted 23 May 2015 - 06:11 PM

I saw that video actually. I don't know how it works, of course although there are some parts I can guess. By the way, how exactly would an archery game without scripting work? Keep in mind that I only recently learned that combo cycling even existed. (And this is after years of working with Zelda Classic on my own.)

I believe the simplest form would be you have a target combo or FFC with an arrow flag on it and when you shoot it it turns the floor into direct warps that take you to the next screen. On each screen you'd also have a timed side warp that takes you to a failure screen. You could also do the survival minigame with invincible enemies and timed warps. If timed warps that only apply to individual screens aren't your thing I believe there's a script out there for timers that span multiple screens.

 

The rupees in that video are being controlled by a bunch of arrays. Arrays for the positioning, how long they stay spawned for, and everything. Whenever a rupee is created it finds an empty spot in the item array, puts it in the item array and also sets the parallel integer arrays. The various rupee spawn patterns could be done with manually editing large arrays, but I just read flags off of other screens in the quest to make for easier editing. It finds a combo with a certain flag and then places the item at ComboX(Combo), ComboY(Combo). The balloon behavior is kinda hard to explain but it's basically a simpler version of my ALttP bumper script. And lastly the rupee snakes are a bunch more parallel array shenanigans. It's once again rather difficult to explain.


  • ywkls likes this

#30 Lejes

Lejes

    Seeker of Runes

  • Members
  • Location:Flying High Above Monsteropolis

Posted 23 May 2015 - 06:48 PM

Considering that I haven't actually played the Forbidden City, but only watched a few Let's Plays, I think I can be forgiven for not knowing about that. As for the Trendy Game, i assume you're referring to the one from Link's Awakening where there's a conveyor with prizes and you have to maneuver the claw to select what you want as they go about? I don't know If I'd want that particular game, but looking at code has given me ideas before so I'd love to check it out. I may have a few mini-games in my current project if I can figure out how to do them...


Here.

 

 

I made a huge mess with the booleans and I'm not sure even I could make sense of it now, but there it is.

 

As for the sideview enemies, I wanted to make a bunch more of them, but I kind of abandoned the project they were a part of. I currently only have 7 regular enemies and a boss.


  • ywkls likes this


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users