Project L

by Unknown

Back to Project L.

Unknown2007-02-16 22:55:35
I don't think that we should let this plan die. I know it seems inactive at the moment, and most of the people haven't been active in this forum for a while, but I think that we should put it to good use. I'd be willing to help jumpstart the project, and even though I don't much about coding, I'm willing to learn, and start helping more. I think this is an important part of keeping a large playerbase, because some people don't have the ability or time to be able make their own, and not everyone is loaded with credits and gold and money in the first place. If anyone is still interested in this, please post on this thread and let me know, and I will attempt to reorganize and restart the project.

Seraphi
Unknown2007-02-17 01:06:09
Combat systems are massive creatures, very complex and usually highly customized to an individual. Open source ones come with a whole unique set of problems, too. I speak from (extensive) experience on this. While the ACP was wildly popular, it was never more than a starter bit of code and a whole lot of headaches. Scripts that sell for credits at least have some motivator that drives their development.

These things either don't get off the ground because:
1. They're disorganized and everyone's waiting for someone else to kick it into gear.
2. You've got an abundance of willing people who know little to nothing about coding.
3. Creative differences in how things should be coded: what client, language, release format, modules, etc.

If you can overcome all the hurdles and get it moving (i.e., a group site with a good bit of code to show), I will consider joining the project.
Unknown2007-02-17 01:15:44
If I can get Ethelon on board, everything will be better. I don't even know if he is active anymore though. Thank you, and I hope that eventually the requirements will be met, and you will consider joining.

Seraphi
Unknown2007-02-17 02:06:55
Keep in mind that third point, especially. Ethelon codes in VBscript for MUSHclient. I code for zMUD (and CMUD). Two very different things.
Unknown2007-02-17 03:39:59
On that note, is VBscript very useful for Zmud?
Unknown2007-02-17 11:54:06
No. While you -can- use any WSH language installed (VBscript, ######, Perlscript, etc), the interaction with zMUD is not the greatest. It's far easier to find ways to use the zMUD script constructs that do what you want instead.
Unknown2007-02-17 19:04:19
So ideally, if this were to work, we would need two teams, the Zmud team and the Mushclient team.
Unknown2007-03-21 23:52:25
QUOTE(Code)
#include
#include
#include
#include
#include
using namespace std;

int main()
{string curealiasp;
cout << " Jello's Healing queue Constructor (for purgatives).\\n\\n This program lets you select from the list of purgative afflictions and\\nthen outputs, in the order you selected, a zmud script that will heal them with\\nthe priorities you wanted.\\n\\n First, enter the name of the alias you want to use to have your system\\nheal purgatives.\\n\\n This will not only be called upon by your system automatically, but in\\nthe event you need to manually override the healing queue, it is the alias\\nyou will type in to make your system drink purgatives in case something made\\nyou stop. Things that can make you stop include stupidity, repeated stunning,\\naeon, etc. The system has a fail safe against such things but it is not 100%.\\n\\nName of your purgatives alias:";
cin >> curealiasp;
cout << "\\nNow, you must enter in the type of vial you want to use for the drink \\"balance\\".\\n The reason for this is that there are no unique messages for when you\\ndrink a purgative as opposed to healing, mana, bromide etc. So unless you\\norganize your vials to have all your purgatives in one kind and other liquids\\nin other kinds of vials, it is not feasible to track potion balance.\\n\\nChoose your vial type for purgatives from a list:\\n";
cout << "1. You take a drink from a turquoise vial.\\n2. You take a drink from an opal vial.\\n3. You take a drink from a ruby vial.\\n";
int vialchoice=4;
string purgevial;
while (vialchoice>3) {
cin >> vialchoice;
switch (vialchoice) {
case 1: purgevial="You take a drink from a turquoise vial."; cout << "\\nDrinking from your turquoise vials will now use the system's purgative balance.";
break;
case 2: purgevial="You take a drink from an opal vial."; cout << "\\nDrinking from your opal vials will now use the system's purgative balance.";
break;
case 3: purgevial="You take a drink from a ruby vial."; cout << "\\nDrinking from your ruby vials will now use the system's purgative balance.";
break;
default: cout << "You didn't enter a valid choice, please re-enter a number:\\n";
break;
}}
vector purgequeue(0);
string chills="#if (@chills=1) \\{drink fire} ";
string burning="#if (@burning=1) \\{drink frost} ";
string vomiting="#if (@vomiting=1) \\{drink choleric} ";
string dysentery="#if (@dysentery=1) \\{drink choleric} ";
string worms="#if (@worms=1) \\{drink choleric} ";
string love="#if (@love=1) \\{drink choleric} ";
string hypersomnia="#if (@hypersomnia=1) \\{drink choleric} ";
string hemophelia="#if (@hemophelia=1) \\{drink sanguine} ";
string healthleech="#if (@healthleech=1) \\{drink sanguine} ";
string confusion="#if (@confusion=1) \\{drink sanguine} ";
string lethargy="#if (@lethargy=1) \\{drink sanguine} ";
string scalping="#if (@scalping=1) \\{drink sanguine} ";
string powersink="#if (@powersink=1) \\{drink phlegmatic} ";
string shyness="#if (@shyness=1) \\{drink phlegmatic} ";
string generosity="#if (@generosity=1) \\{drink phlegmatic} ";
string weakness="#if (@weakness=1) \\{drink phlegmatic} ";
string ugly="#if (@ugly=1) \\{drink love} ";
cout << "\\n\\n Now for the big one. When you are ready, a list of all purgative-cured\\nafflictions will be displayed. You should probably have planned out the order\\nyou wanted ahead of time on some paper. The afflictions will be chosen by the\\nnumber next to them and cured in the order you enter here should you have them.\\nSo, affliction 5 will be cured before 6, etc.\\nEnter \\"y\\" to begin.";
string begin;
cin >> begin;
if (begin!="y" && begin!="Y" && begin!="yes") {cout << "You didn't enter y or Y. Enter those when you are ready to move on."; cin >> begin;}
cout << "\\n\\n1. Chills 2. Burning 3. Vomiting 4. Dysentery 5. Worms\\n\\n6. Love 7. Hypersomnia 8. Hemophelia 9. Healthleech 10. Confusion\\n\\n11. Lethargy 12. Scalping 13. Powersink 14. Shyness 15. Generosity\\n\\n16. Weakness 17. Disloyalty\\n";
cout << "\\nEnter in any number. Try not to enter the same number multiple times.\\nType \\"0\\" to re-display the list.";
int nowpick, lastpick, i;
for (i = 0; i <=16; i++) {
cin >> nowpick;
if (nowpick==0) {i--;cout << "\\n\\n1. Chills 2. Burning 3. Vomiting 4. Dysentery 5. Worms\\n\\n6. Love 7. Hypersomnia 8. Hemophelia 9. Healthleech 10. Confusion\\n\\n11. Lethargy 12. Scalping 13. Powersink 14. Shyness 15. Generosity\\n\\n16. Weakness 17. Disloyalty\\n";}
else if(nowpick==1) {purgequeue.push_back(chills); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==2) {purgequeue.push_back(burning); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==3) {purgequeue.push_back(vomiting); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==4) {purgequeue.push_back(dysentery); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==5) {purgequeue.push_back(worms); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==6) {purgequeue.push_back(love); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==7) {purgequeue.push_back(hypersomnia); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==8) {purgequeue.push_back(hemophelia); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==9) {purgequeue.push_back(healthleech); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==10) {purgequeue.push_back(confusion); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==11) {purgequeue.push_back(lethargy); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==12) {purgequeue.push_back(scalping); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==13) {purgequeue.push_back(powersink); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==14) {purgequeue.push_back(shyness); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==15) {purgequeue.push_back(generosity); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==16) {purgequeue.push_back(weakness); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else if(nowpick==17) {purgequeue.push_back(ugly); cout << "Chills chosen as priority #" << i+1 << ".\\n";}
else {cout << "The number you entered wasn't on the list, try again."; i--;}
};
ofstream queuewrite;
queuewrite.open("purgequeue.txt");
queuewrite << "Cut and paste these lines into zmud one at a time, though some such as the main queue will be quite long. Also, I STRONGLY suggest you increase your wrapwidth in Lusternia's config beyond the default 80 so that knight triggers don't get messed up by odd weapon names.\\n\\n";
queuewrite << "#trigger \\{" << purgevial << "} \\{purgabal=0}\\n\\n";
queuewrite << "#trigger \\{You may drink another purgative or curing potion.} \\{purgabal=1}\\n\\n";
queuewrite << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue;
queuewrite << "\\{" << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "\\{";
queuewrite << purgequeue << "\\{" << purgequeue << "\\{" << purgequeue << "}}}}}}}}}}}}}}}}";
queuewrite.close();
cout << "\\n Done! Now open \\"purgequeue.txt\\" in the same folder as this program and cut and paste it into zmud. You will want to have no other healing related triggers\\nin those settings or they may overlap and ruin each other.\\n\\nEnter anything to end the program.";
int end; // just to keep it displaying at the moment.
cin >> end;
if (end) return 0;
return 0;
}
ninja.gif
Unknown2007-03-22 12:37:24
How long have you been writing C++ code? Nice use of streams and STL, but lacking in a bit of logic and some things could be simplified or improved with loops or switch statements. Also, I think you forgot to edit your a few strings when you copied and pasted it for all those afflictions.
Unknown2007-03-22 22:17:00
QUOTE(Zarquan @ Mar 22 2007, 12:37 PM) 392412
How long have you been writing C++ code? Nice use of streams and STL, but lacking in a bit of logic and some things could be simplified or improved with loops or switch statements. Also, I think you forgot to edit your a few strings when you copied and pasted it for all those afflictions.
Yeah, I was starting to get bored and will be changing the output text away from saying "chill added" every time etc., I was just trying to get the complicated part done first. I'm going to put in a fail safe for if someone chooses the same affliction twice when making their priority list too. I took a 3 month class on C++ this quarter so I've been coding in C++ for 3 months. I guess a case and switch could organize the push.back() thing better and allow me to keep real track of if an affliction has been picked period though, hmmm... but if someone can't even keep track of if they've already picked an affliction yet then they aren't trying and it's not going to hugely concern me, since my goal is to make something to make learning zmud and combat easier, and not something that'll heal perfectly for them in every situation, track probabilities of random afflictions, etc.