things for ZC/ZQ 3.0
#31
Posted 05 February 2013 - 09:10 PM
To go with this, a new constants editor (called "Script/Plugin settings" or something like that) in ZQuest would be awesome.
Actually, even if this doesn't appear in ZQ, it would be awesome to see this as an accompanying addon program. Put in some global scripts, and it parses them into their component sections and combines them for you. Throw in some other scripts and functions, and it combines them into one file, and lets you adjust their constants. Throw the resulting script into ZQ and you're set. Basically, it's a more advanced ZScript preprocessor.
#32
Posted 05 February 2013 - 10:27 PM
Edited by coolgamer012345, 05 February 2013 - 10:28 PM.
#33
Posted 05 February 2013 - 11:15 PM
#34
Posted 05 February 2013 - 11:56 PM
yeah but different attacks and different menus is had to do and takes time and hasnt been doe yet.
Edited by tox_von, 05 February 2013 - 11:56 PM.
#35
Posted 07 February 2013 - 08:43 PM
At the moment the guy says "let's play money making game" but it's more like "let's play money losing game". It would be fun, and probably easy to implement, to allow the player to actually make money playing this, by being able to change the odds. The way it is set up in the original game, you'll most likely lose, so I never bother playing it.
Edited by Jamian, 07 February 2013 - 08:44 PM.
#36
Posted 07 February 2013 - 08:56 PM
#37
Posted 07 February 2013 - 11:45 PM
Also, more string editor options. Mostly, it'd be nice to have a spell checker, and define the text box parameters yourself, use other fonts, and maybe even have the ability to make certain text appear slower, or letter by letter, as seen in ALttP, for example. I don't script, but I think it'd also be cool to have an in-engine 'spellchecker' for that as well, as someone else mentioned.
There isn't anything else I can think of that hasn't been mentioned already. Oh, wait, yeah there is, base it off of OoT plz, make it full 3D NOW!!
EDIT: Oh wait, actually, having larger enemies would be cool too. Buut, this has probably also already been said as well.
Edited by Anthus, 07 February 2013 - 11:47 PM.
#38
Posted 08 February 2013 - 12:13 AM
I think string control codes can do that with 2.5, actually. Use the \2\X code, where X is the delay between characters appearing.
#39
Posted 08 February 2013 - 12:56 PM
#40
Posted 08 February 2013 - 02:04 PM
How about being able to edit the "gamble" room type?
At the moment the guy says "let's play money making game" but it's more like "let's play money losing game". It would be fun, and probably easy to implement, to allow the player to actually make money playing this, by being able to change the odds. The way it is set up in the original game, you'll most likely lose, so I never bother playing it.
well there is a room type called gamble,it is a 1 in 3 chance you will win and a 1 in 9 chance it will be a 40,1 in 6 chance that you will win 30,and a 1 in 3 chance you will win 20 rupees.
#41
Posted 08 February 2013 - 02:07 PM
#42
Posted 08 February 2013 - 04:07 PM
You have something like a movie tape that consists of frames lets say 30. Now on the screen that corresponds to frame 1 you put 3 objects(numbered) each with their coordinates (rotation, place on the screen, place in the tilesheet). next you put the same objects on frame 15 with changed locations, rotations and with changed tiles. Now for the frames inbetween zelda classic would interpolate linearily between those positions for you to fill up frame 2-14(should not be hard to program, you could let the program extrapolate the missing frames after linearily). The objects and their data for each of those key frames then could be saved to a custom object that just saves an array of bools(storing if the object is used), an array of integers for x, y,rotation and tile positions. This data type could be called an animaton. Now you could give those animations a position on a screen and let them play out. If you let these animatons be accessed by scripts also it would be possible to access those arrays and then for example use them to control individual parts of a base boss(it moves by the script and the animaton moves the important parts relative to the bosses position because it gets moved with it). Also it would make much more complex item scripts a lot easier to setup(same way). Something like that should also be pretty straightforward to a newbie to use. Also would allows for a lot of ingame movies or similar things, should not be too hard to code. Furthermore it should be pretty memory effective(does not take a lot of space) Also things done this way can easily be used for many purposes especially if copying of those objects is possible.
If anyone has any thoughts on it i would love to hear them.
Also one more thing this of course comes from a scripter this request because complex animations are very annoying to code(take lots of time are simple and just annoying because they need lots of testing).
Here pseudo-code for the header:
class animatonframe{
public:
animationframe(); //default constructor
~animationframe; //default destructor
void add_object(int _xpos,int _ypos,int _rot,int _tile); //add an object to this list type
void remove_object(int num); //remove an object
int get_x_pos(int num); //access position data
int get_y_pos(int num);
void set_x_pos(int num);
void set_y_pos(int num);
int get_rot_pos(int num);
void set_rot_pos(int num);
int get_num_objects(); //get the number of objects to
int get_frame(); // get the frame number associated with the frame
void set_frame_num(); //change this number
void draw_animation_frame(); //draws the frame (can be used in the play animation in the next class)
private:
int* xpos; //array of xpositions (dynamic memory useage)
int* ypos; // array of ypos (dynamic memory useage)
int* rotangle; //array of rotation angles (dynamic memory useage)
int* tile; //array of tile numbers (dynamic memory useage)
int num_objects; // total number of objects(static memory useage)
int frame_num; //which number of frame we deal with(static memory useage)
};
animationframe get_frame_inbetween(animationframe frame1, animationframe frame 2){
return interpolate(frame1, frame 2);
}
animationframe extrapolate animtion_(animationframe frame, int to){
return extrapolate(frame, to);
}
class animaton{
public:
animaton(); //default constructor
~animaton(); //default destructor
void animate_animaton(); //play the animation
void add_frame(int i); //add a frame(to make the animation more complex
void remove_frame(int frame); //removes a frame
void set_cur_frame(int frame); // sets the current frame in the animation
int get_xpos(); // gets xpos
int get_ypos(); // gets ypos
int get_num_frames(); // gets the total number of frames
int get_curframe(); // gets the number of current frame
void set_curframe(); // set the number for current frame
private:
int xpos; //position where the animation is placed(static memory useage)
int ypos; //position where the animation is placed(static memory useage)
int num_frames; //number of animation frames in total(interpolated ones included)(static memory useage)
int curframe; //the frame the animation currently is in(static memory useage)
int num_real_frames; //the number of frames that is actually stored(static memory useage)
animatonframe* animframes; //the stored animation frames(dynamic memory useage)
};
//here so you can even write it to a file
std::ostream& operator<<(std::ostream& os,const animationframe& c);
std::ostream& operator<<(std::ostream& os,const animaton& c);
std::istream& operator>>(std::ifstream& is,animationframe& c);
std::istream& operator>>(std::ifstream& is,animaton& c);
If you now fill in all the functions for my header you are nearly done :-)
Also yes all those access functions are needed to prevent people from accessing things in the pointers the wrong way that is also why all variables are private.
Edited by aaa2, 08 February 2013 - 05:59 PM.
#43
Posted 08 February 2013 - 06:17 PM
#44
Posted 09 February 2013 - 12:19 PM
Edited by Zefram, 09 February 2013 - 12:29 PM.
#45
Posted 09 February 2013 - 12:22 PM
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users