#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>
#define STARTCOLORTEXT SetConsoleTextAttribute (h, FOREGROUND_GREEN | FOREGROUND_INTENSITY )
#define ENDCOLORTEXT SetConsoleTextAttribute (h, WOldColorAttrs)
#define TITLE printf("Warning__3's xp-to-lvl calculater\nBuild 18\n\n")
int main(void){
int startxp, slutxp=0, hourxp, displayxp, tid, tim, min, choosenmin, minxp;
int xpone=0, xptwo=0, xpthree=0, xpfour=0, xpfive=0, xpsix=0, xpseven=0, xpeight=0, xpnine=0, xpten=0;
char askxplog;
FILE *xplog;
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
WORD WOldColorAttrs;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
GetConsoleScreenBufferInfo(h, &csbiInfo);
WOldColorAttrs=csbiInfo.wAttributes;
STARTCOLORTEXT;
TITLE;
SetConsoleTextAttribute (h, FOREGROUND_GREEN );
printf("1. Enter the time you want between the calculations.\n");
printf("2. Enter the current xp to next level in the skill you choose.\n");
printf("3. When the countdown reach zero you will hear a sound,\n");
printf("then enter the xp to next level again.\n\n");
printf("Tips 'n' tricks!\n");
ENDCOLORTEXT;
printf("If choosen, logfile will be saved at \"C:\\W3XTL\\xplog.txt\"\n");
printf("If you want to reset the xp just enter 0 xp after the countdown.\n");
printf("You can pause the countdown using the PAUSE-button on your keyboard.\n");
printf("---------------------------------------------------------------------\n\n");
printf("\nDo you want a xp log saved at \"C:\\W3XTL\\\" (Y/N)? ");
STARTCOLORTEXT;
scanf("%s", &askxplog);
ENDCOLORTEXT;
while(askxplog != 'y' || askxplog != 'Y' || askxplog != 'N' || askxplog != 'n'){
if (askxplog == 'y' || askxplog == 'Y') {
if( !chdir("c:\\W3XTL") );
else
system("mkdir c:\\W3XTL");
xplog=fopen("C:\\W3XTL\\xplog.txt", "a+");
fprintf(xplog, "Logfile of Warning__3's xp-to-lvl calculator.\n\n");
fclose(xplog);
xplog=fopen("C:\\W3XTL\\xplog.txt", "a+");
break;
}
else if (askxplog == 'N' || askxplog == 'n'){
break;
}
printf("Error input, try again! ");
STARTCOLORTEXT;
scanf("%s", &askxplog);
ENDCOLORTEXT;
}
printf("Minutes between the calculations (1-60): ");
STARTCOLORTEXT; scanf("%d", &choosenmin); ENDCOLORTEXT;
while (choosenmin == 0 || choosenmin > 60){
printf("Error input, try again!\n");
printf("Minutes between the calculations (1-60): ");
STARTCOLORTEXT; scanf("%d", &choosenmin); ENDCOLORTEXT;
}
while (1){
time_t now;
time(&now);
if(slutxp < 1){
printf("\nExperience left to next level: ");
STARTCOLORTEXT; scanf("%d", &startxp); ENDCOLORTEXT;
}
else {
printf("\nExperience left to next level: ");
STARTCOLORTEXT; printf("%d\n", slutxp); ENDCOLORTEXT;
startxp=slutxp;
}
int counterseca=9, countersecb=5, countermin=choosenmin;
STARTCOLORTEXT;
printf("\nWaiting for %d minutes 00 seconds", countermin);
countermin--;
sleep(1000);
ENDCOLORTEXT;
while (counterseca>0){
STARTCOLORTEXT;
printf("\rWaiting for %d minutes %d%d seconds", countermin, countersecb, counterseca);
sleep(1000);
counterseca--;
ENDCOLORTEXT;
if (countermin==0 && countersecb==0 && counterseca==0){
STARTCOLORTEXT;
printf("\rWaiting for 0 minutes 00 seconds");
sleep(1000);
ENDCOLORTEXT;
printf("\rExperience to level after %d min: \a",choosenmin);
STARTCOLORTEXT;
}
else if (counterseca==0 && countersecb==0){
STARTCOLORTEXT;
printf("\rWaiting for %d minutes 00 seconds", countermin);
sleep(1000);
countermin--;
countersecb=5;
counterseca=9;
ENDCOLORTEXT;
}
else if (counterseca==0){
STARTCOLORTEXT;
printf("\rWaiting for %d minutes %d0 seconds", countermin, countersecb);
sleep(1000);
counterseca=9;
countersecb--;
ENDCOLORTEXT;
}
}
STARTCOLORTEXT; scanf("%d", &slutxp); ENDCOLORTEXT;
while (slutxp >= startxp){
printf("Error input, try again!\n");
printf("\rExperience to level after %d min: ",choosenmin);
STARTCOLORTEXT; scanf("%d", &slutxp); ENDCOLORTEXT;
}
if (xpone == 0) {
xpone=startxp-slutxp;
displayxp=xpone;
minxp=xpone;
hourxp=minxp/choosenmin*60;
}
else if (xptwo == 0) {
xptwo=startxp-slutxp;
displayxp=xptwo;
minxp=(xpone+xptwo)/2;
hourxp=minxp/choosenmin*60;
}
else if (xpthree == 0) {
xpthree=startxp-slutxp;
displayxp=xpthree;
minxp=(xpone+xptwo+xpthree)/3;
hourxp=minxp/choosenmin*60;
}
else if (xpfour == 0) {
xpfour=startxp-slutxp;
displayxp=xpfour;
minxp=(xpone+xptwo+xpthree+xpfour)/4;
hourxp=minxp/choosenmin*60;
}
else if (xpfive == 0) {
xpfive=startxp-slutxp;
displayxp=xpfive;
minxp=(xpone+xptwo+xpthree+xpfour+xpfive)/5;
hourxp=minxp/choosenmin*60;
}
else if (xpsix == 0) {
xpsix=startxp-slutxp;
displayxp=xpsix;
minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix)/6;
hourxp=minxp/choosenmin*60;
}
else if (xpseven == 0) {
xpseven=startxp-slutxp;
displayxp=xpseven;
minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven)/7;
hourxp=minxp/choosenmin*60;
}
else if (xpeight == 0) {
xpeight=startxp-slutxp;
displayxp=xpeight;
minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight)/8;
hourxp=minxp/choosenmin*60;
}
else if (xpnine == 0) {
xpnine=startxp-slutxp;
displayxp=xpnine;
minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight+xpnine)/9;
hourxp=minxp/choosenmin*60;
}
else if (xpten == 0) {
xpten=startxp-slutxp;
displayxp=xpten;
minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight+xpnine+xpten)/10;
hourxp=minxp/choosenmin*60;
xpone=minxp;
xptwo=0; xpthree=0; xpfour=0; xpfive=0; xpsix=0;
xpseven=0; xpeight=0; xpnine=0; xpten=0;
}
tid=slutxp/minxp*choosenmin;
tim=tid/60;
min=tid-tim*60;
printf("\nLevel up in: ");
STARTCOLORTEXT; printf("%d", tim); ENDCOLORTEXT;
printf(" hours and ");
STARTCOLORTEXT; printf("%d", min); ENDCOLORTEXT;
printf(" minutes!\n");
printf("You gained: ");
STARTCOLORTEXT; printf("%d", displayxp); ENDCOLORTEXT;
printf(" xp in %d min, ",choosenmin);
STARTCOLORTEXT; printf("%d", hourxp); ENDCOLORTEXT;
printf(" xp per hour!\n");
printf("----------------------------------------------\n\n");
if (askxplog == 'y' || askxplog == 'Y') {
fprintf(xplog,"-------------------------------------------------------------------------------%s", ctime(&now));
fprintf(xplog,"Starting xp: %d, ending xp %d!\n",startxp, slutxp);
fprintf(xplog,"%d hours and %d minutes to level up. ", tim, min);
fprintf(xplog,"%d xp in %d min, %d xp per hour!\n", displayxp, choosenmin, hourxp);
}
}
}