Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**Diese Filterscript wurde von dem Benutzer heyhooo (Maxi B) geschrieben!**
- ***Ich bitte darum, meinen Namen nirgendswo zu entfernen.**
- ***Viel Spaß mit diesem simplen Aufgabensystem! (Rechenaufgaben [v1])**/
- #define FILTERSCRIPT
- #include <a_samp>
- #include <dini>
- #undef MAX_PLAYERS
- #define SCM SendClientMessage
- #define DIALOG_STATS 1
- #define DIALOG_HELP 2
- #define DIALOG_CREDIT 3
- //============**CONTROL_PANEL**=============//
- new mainmenu = 1; //1 - Mit Hauptsauswahl, 0 - Hauptauswahl aus ****ERKLÄRUNG HIERZU AM ENDE****
- new enablemiddlekey = 1; //1 - Man kann die Einheit mit der mittleren Maustaste beenden, 0 - nicht.
- new timertime = 10000; //größer als 0 - Angabe der Zeit in der einer Aufgabe gelöst werden muss (in millisekunden) - 0 timer aus!
- new command[20] = "/aufgaben"; //Command zum aufrufen des Menüs (Falls an[1])
- new stopcommand[20] = "/astop"; //Zum stoppen dieser Einheit.
- new manucommandl[20] = "/astartl"; //Command zum manuellen aufrufen der Aufgaben (leicht)(Falls aus[0])
- new manucommandm[20] = "/astartm"; //Command zum manuellen aufrufen der Aufgaben (mittel)(Falls aus[0])
- new manucommands[20] = "/astarts"; //Command zum manuellen aufrufen der Aufgaben (schwer)(Falls aus[0])
- new enablestats = 1; //1 - Zum einsehen von eigenen Stats, 2 - Zum Einsehen von eigenen und anderen Spielern(FOLGT NOCH), - 0 aus.
- new statscommand[20] = "/astats"; //Zum einsehen der eigenen Stats oder von anderen Spielern.
- new money = 0; //>0 - Zur Belohung des Spielers nach einer Aufgabe![in $], 0- Keine Belohung
- #define MAX_PLAYERS 50 //Maximale Spieler auf dem Server (ggf. ändern)
- #define hovercolor 0x00FF00FF //Farbe des Textdraws beim 'drüber gehen' mit der Maus
- #define successcolor 0x00D100FF //Farbe für Erfolgs-Nachrichten
- #define failedcolor 0xC00000FF //Farbe für Fehler-Nachrichten
- #define messagecolor 0xFFFFFFFF //Farbe für die Nachrichten
- //=========================================//
- new intask[MAX_PLAYERS];
- new ergebnis[MAX_PLAYERS];
- new Timervar[MAX_PLAYERS];
- new countdown[MAX_PLAYERS];
- enum astats
- {
- pName[25],
- pFails,
- pLWins,
- pMWins,
- pSWins,
- pWRound,
- pFRound,
- pScore
- }
- new PlayerStats[MAX_PLAYERS][astats];
- //Textdraws
- new Text:blackbox1;
- new Text:header;
- new Text:leicht;
- new Text:mittel;
- new Text:schwer;
- new Text:disleicht;
- new Text:dismittel;
- new Text:disschwer;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------------------");
- print("Aufgabensystem © by heyhooo / Maxi B. wurde geladen!");
- print("--------------------------------------------------\n");
- //Textdraws
- blackbox1 = TextDrawCreate(422.731628, 131.583358, "usebox");
- TextDrawLetterSize(blackbox1, 0.212240, 26.697967);
- TextDrawTextSize(blackbox1, 206.491958, 0.000000);
- TextDrawAlignment(blackbox1, 1);
- TextDrawColor(blackbox1, 0);
- TextDrawUseBox(blackbox1, true);
- TextDrawBoxColor(blackbox1, 102);
- TextDrawSetShadow(blackbox1, 0);
- TextDrawSetOutline(blackbox1, 0);
- TextDrawFont(blackbox1, 0);
- header = TextDrawCreate(215.519683, 136.500137, "Waehle die Schwirigkeit");
- TextDrawLetterSize(header, 0.485139, 2.416670);
- TextDrawAlignment(header, 1);
- TextDrawColor(header, -1061109505);
- TextDrawSetShadow(header, 3);
- TextDrawSetOutline(header, 0);
- TextDrawBackgroundColor(header, 51);
- TextDrawFont(header, 1);
- TextDrawSetProportional(header, 1);
- leicht = TextDrawCreate(231.449447, 203.583343, "Leicht");
- TextDrawLetterSize(leicht, 0.700189, 2.690835);
- TextDrawAlignment(leicht, 1);
- TextDrawColor(leicht, -1);
- TextDrawSetShadow(leicht, 0);
- TextDrawSetOutline(leicht, 1);
- TextDrawBackgroundColor(leicht, 51);
- TextDrawFont(leicht, 0);
- TextDrawSetProportional(leicht, 1);
- TextDrawSetSelectable(leicht, true);
- mittel = TextDrawCreate(232.855056, 257.833282, "Mittel");
- TextDrawLetterSize(mittel, 0.601332, 2.603332);
- TextDrawAlignment(mittel, 1);
- TextDrawColor(mittel, -1);
- TextDrawSetShadow(mittel, 0);
- TextDrawSetOutline(mittel, 1);
- TextDrawBackgroundColor(mittel, 51);
- TextDrawFont(mittel, 0);
- TextDrawSetProportional(mittel, 1);
- TextDrawSetSelectable(mittel, true);
- schwer = TextDrawCreate(230.043884, 309.750030, "Schwer");
- TextDrawLetterSize(schwer, 0.606017, 2.603332);
- TextDrawAlignment(schwer, 1);
- TextDrawColor(schwer, -1);
- TextDrawSetShadow(schwer, 0);
- TextDrawSetOutline(schwer, 1);
- TextDrawBackgroundColor(schwer, 51);
- TextDrawFont(schwer, 0);
- TextDrawSetProportional(schwer, 1);
- TextDrawSetSelectable(schwer, true);
- disleicht = TextDrawCreate(312.972320, 212.916625, "- Im Bereich von 10 - 100");
- TextDrawLetterSize(disleicht, 0.202151, 1.168331);
- TextDrawAlignment(disleicht, 1);
- TextDrawColor(disleicht, -2139062017);
- TextDrawSetShadow(disleicht, 0);
- TextDrawSetOutline(disleicht, 1);
- TextDrawBackgroundColor(disleicht, 51);
- TextDrawFont(disleicht, 1);
- TextDrawSetProportional(disleicht, 1);
- dismittel = TextDrawCreate(312.035522, 267.166748, "- Im Bereich von 10 - 1000");
- TextDrawLetterSize(dismittel, 0.200746, 1.197497);
- TextDrawAlignment(dismittel, 1);
- TextDrawColor(dismittel, -2139062017);
- TextDrawSetShadow(dismittel, 0);
- TextDrawSetOutline(dismittel, 1);
- TextDrawBackgroundColor(dismittel, 51);
- TextDrawFont(dismittel, 1);
- TextDrawSetProportional(dismittel, 1);
- disschwer = TextDrawCreate(311.566558, 318.499938, "- Alles moeglich");
- TextDrawLetterSize(disschwer, 0.200277, 1.197498);
- TextDrawAlignment(disschwer, 1);
- TextDrawColor(disschwer, -2139062017);
- TextDrawSetShadow(disschwer, 0);
- TextDrawSetOutline(disschwer, 1);
- TextDrawBackgroundColor(disschwer, 51);
- TextDrawFont(disschwer, 1);
- TextDrawSetProportional(disschwer, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n---------------------------------------------");
- print("Aufgabensystem © by heyhooo / Maxi B. unloaded!");
- print("---------------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new pfad[20], sName[25];
- countdown[playerid] = 3;
- intask[playerid] = 0;
- GetPlayerName(playerid, sName, 25);
- format(PlayerStats[playerid][pName], 25, sName);
- format(pfad, 20, "/astats/%s.ini",sName);
- if(!fexist("astats.ini")) dini_Create(pfad);
- PlayerStats[playerid][pFails] = dini_Int(pfad, "fails");
- PlayerStats[playerid][pLWins] = dini_Int(pfad, "lwins");
- PlayerStats[playerid][pMWins] = dini_Int(pfad, "mwins");
- PlayerStats[playerid][pSWins] = dini_Int(pfad, "swins");
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new pfad[20];
- format(pfad, 20, "/astats/%s.ini",PlayerStats[playerid][pName]);
- dini_IntSet(pfad, "fails", PlayerStats[playerid][pFails]);
- dini_IntSet(pfad, "lwins", PlayerStats[playerid][pLWins]);
- dini_IntSet(pfad, "mwins", PlayerStats[playerid][pMWins]);
- dini_IntSet(pfad, "swins", PlayerStats[playerid][pSWins]);
- TextDrawHideForPlayer(playerid, blackbox1);
- TextDrawHideForPlayer(playerid, header);
- TextDrawHideForPlayer(playerid, leicht);
- TextDrawHideForPlayer(playerid, mittel);
- TextDrawHideForPlayer(playerid, schwer);
- TextDrawHideForPlayer(playerid, disleicht);
- TextDrawHideForPlayer(playerid, dismittel);
- TextDrawHideForPlayer(playerid, disschwer);
- countdown[playerid] = 3;
- intask[playerid] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(intask[playerid] != 0)
- {
- new string[80];
- if(strval(text) == ergebnis[playerid]) {
- if(intask[playerid] == 1)PlayerStats[playerid][pLWins] += 1;
- else if(intask[playerid] == 2)PlayerStats[playerid][pMWins] += 1;
- else if(intask[playerid] == 3)PlayerStats[playerid][pSWins] += 1;
- PlayerStats[playerid][pWRound] += 1;
- format(string, 80, "[RICHTIG]Du hast die Aufgabe erfolgreich gelöst! (%d)", ergebnis[playerid]);
- SCM(playerid, successcolor, "[RICHTIG]Du hast die Aufgabe erfolgreich gelöst!");
- GivePlayerTask(playerid);
- countdown[playerid] = 3;
- if(money > 0) GivePlayerMoney(playerid,money);
- KillTimer(Timervar[playerid]);
- return 0;
- }
- else {
- format(string,80,"[FALSCH]Das war leider nicht richtig! Es wäre %d gewesen!",ergebnis[playerid]);
- PlayerStats[playerid][pFails] += 1; PlayerStats[playerid][pFRound] += 1;
- SCM(playerid, failedcolor, string);
- GivePlayerTask(playerid);
- countdown[playerid] = 3;
- KillTimer(Timervar[playerid]);
- return 0;
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new string[100], tmp[20], idx;
- if (strcmp(command, cmdtext, true, 20) == 0)
- {
- if(intask[playerid] == 0)
- {
- if(mainmenu == 0) return 1;
- TextDrawShowForPlayer(playerid, blackbox1);
- TextDrawShowForPlayer(playerid, header);
- TextDrawShowForPlayer(playerid, leicht);
- TextDrawShowForPlayer(playerid, mittel);
- TextDrawShowForPlayer(playerid, schwer);
- TextDrawShowForPlayer(playerid, disleicht);
- TextDrawShowForPlayer(playerid, dismittel);
- TextDrawShowForPlayer(playerid, disschwer);
- SelectTextDraw(playerid, hovercolor);
- }
- return 1;
- }
- if (strcmp("/ahelp", cmdtext, true) == 0)
- {
- new info[400],info2[100];
- format(info,sizeof(info),"{FFFFFF}Das Aufgabensystem besteht in dieser Verion aus Rechenaufgaben!\n");
- if(mainmenu == 1) strcat(info,"Du kannst das Startmenu unter {0069FF)/aufgaben{FFFFFF} aufrufen und somit deine Schwirigkeit wählen.\n");
- if(mainmenu == 0) format(info2,sizeof(info2),"Du kannst deine Schwirigkeit per Command (%s - Leicht, %s - Mittel, %s - Schwer) wählen und somit direkt starten!\n", manucommandl,manucommandm,manucommands); format(info,sizeof(info), "%s%s", info, info2);
- strcat(info, "Der Schwirigkeitsgrad hat auch auswirkung darauf, wie viele Punkte du jewiels bekommst, wenn die Antwort richtig war!\nLeicht - 1; Mittel - 2; Schwer - 3\n");
- format(info2, sizeof(info2),"Deine Statisiken kannst du unter %s nachgucken. Dort wird alles aufgelistet!\nUnd jetzt versuchs doch gleich mal!");
- ShowPlayerDialog(playerid, DIALOG_HELP,DIALOG_STYLE_MSGBOX,"Das Aufgabensystem",info,"OK","");
- }
- if (strcmp("/acredit", cmdtext, true) == 0)
- {
- new string2[60];
- format(string2, sizeof(string2),"{FFFFFF}Das Aufgabensystem ([v1]Rechenaufgaben) wurde von heyho geschrieben und veröffentlicht!");
- ShowPlayerDialog(playerid, DIALOG_CREDIT, DIALOG_STYLE_MSGBOX,"Aufgabensystem by heyho",string2,"OK","");
- }
- if (strcmp(cmdtext,statscommand, true) == 0)
- {
- if(enablestats == 0) return 1;
- tmp = strtok(cmdtext, idx);
- new info[200],info2[200],info3[100],info4[100],info5[120],zsm[400];
- PlayerStats[playerid][pScore] = (PlayerStats[playerid][pLWins]+(PlayerStats[playerid][pMWins]*2)+(PlayerStats[playerid][pSWins]*3))-PlayerStats[playerid][pFails];
- if(enablestats >= 0 && IsNumeric(tmp) == 1 && strval(tmp) != INVALID_PLAYER_ID) {
- new givepl = strval(tmp);
- format(string, sizeof(string),"Stats von %s",PlayerStats[givepl][pName]);
- format(info,sizeof(info),"{FFFFFF}%s hat\n{0069FF}%d richtige{FFFFFF} und {FF2800}%d falsche{FFFFFF} Aufgaben gelöst!\n",PlayerStats[givepl][pLWins]+PlayerStats[givepl][pMWins]+PlayerStats[givepl][pSWins],PlayerStats[givepl][pFails]);
- format(info2,sizeof(info2),"Davon sind %d leichte, %d mittlere und %d Schwere Aufgaben richtig!\nDas ergibt einen Punktestand von %d", PlayerStats[givepl][pLWins],PlayerStats[givepl][pMWins],PlayerStats[givepl][pSWins], PlayerStats[givepl][pScore]);
- format(zsm,sizeof(zsm),"%s%s",info,info2);
- ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,string,info,"OK","");
- }
- else {
- format(info2,sizeof(info2),"{0069FF}Hier kannst du deine eigenen Stats sehen!\n{FFFFFF}");
- if(enablestats == 2) format(info3,sizeof(info3),"\nUm die Stats eines anderen zu sehen tippe '%s [playerid]'.\n\n",statscommand);
- format(info4,sizeof(info4),"{FFFFFF}Du hast\n{00FF00}%d richtige{FFFFFF} und {FF2800}%d falsche{FFFFFF} Aufgaben gelöst!\n",PlayerStats[playerid][pLWins]+PlayerStats[playerid][pMWins]+PlayerStats[playerid][pSWins],PlayerStats[playerid][pFails]);
- format(info5,sizeof(info5),"Davon sind %d leichte, %d mittlere und %d Schwere Aufgaben richtig!\nDas ergibt einen Punktestand von %d", PlayerStats[playerid][pLWins],PlayerStats[playerid][pMWins],PlayerStats[playerid][pSWins], PlayerStats[playerid][pScore]);
- format(zsm,sizeof(zsm),"%s%s%s%s",info2,info3,info4,info5);
- ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Meine Stats",zsm,"OK","");
- if(enablestats == 2) {format(string, sizeof(string),"Benutze %s [playerid], um die Stats eines anderen einzusehen",statscommand);SCM(playerid, messagecolor, string);}
- printf("%s",tmp);
- return 1;
- }
- printf("%s",tmp);
- return 1;
- }
- if (strcmp(stopcommand, cmdtext, true, 20) == 0)
- {
- SCM(playerid, messagecolor, "Du hast die Rechenaufgaben beendet!");
- format(string, 70, "In dieser Runde hast du %d richtig und %d falsch gelöst!", PlayerStats[playerid][pWRound],PlayerStats[playerid][pFRound]);
- SCM(playerid, messagecolor, string);
- intask[playerid] = 0;
- countdown[playerid] = 3;
- KillTimer(Timervar[playerid]);
- return 1;
- }
- if (strcmp(manucommandl, cmdtext, true, 20) == 0)
- {
- intask[playerid] = 1;
- SCM(playerid, messagecolor, "Dir werden nun in der Schwirigkeit 'Leicht' Rechenaufgaben gestellt!");
- format(string, sizeof(string),"Zum stoppen dieser Einheit tippe einfach %s", stopcommand);
- if(enablemiddlekey == 1)strcat(string, " oder drücke die mittlere Maustaste!");
- SCM(playerid, messagecolor, string);
- if(timertime > 0) {format(string, sizeof(string),"{FFFFFF}Du hast jeweils {0069FF}%d{FFFFFF} Sekunden für eine Aufgabe Zeit!",timertime/1000); SCM(playerid, messagecolor, string);}
- SCM(playerid, messagecolor, string);
- GivePlayerTask(playerid);
- return 1;
- }
- if (strcmp(manucommandm, cmdtext, true, 20) == 0)
- {
- intask[playerid] = 2;
- SCM(playerid, messagecolor, "Dir werden nun in der Schwirigkeit 'Mittel' Rechenaufgaben gestellt!");
- format(string, sizeof(string),"Zum stoppen dieser Einheit tippe einfach %s", stopcommand);
- if(enablemiddlekey == 1)strcat(string, " oder drücke die mittlere Maustaste!");
- SCM(playerid, messagecolor, string);
- if(timertime > 0) {format(string, sizeof(string),"{FFFFFF}Du hast jeweils {0069FF}%d{FFFFFF} Sekunden für eine Aufgabe Zeit!",timertime/1000); SCM(playerid, messagecolor, string);}
- SCM(playerid, messagecolor, string);
- GivePlayerTask(playerid);
- return 1;
- }
- if (strcmp(manucommands, cmdtext, true, 20) == 0)
- {
- intask[playerid] = 3;
- SCM(playerid, messagecolor, "Dir werden nun in der Schwirigkeit 'Schwer' Rechenaufgaben gestellt!");
- format(string, sizeof(string),"Zum stoppen dieser Einheit tippe einfach %s", stopcommand);
- if(enablemiddlekey == 1)strcat(string, " oder drücke die mittlere Maustaste!");
- SCM(playerid, messagecolor, string);
- if(timertime > 0) {format(string, sizeof(string),"{FFFFFF}Du hast jeweils {0069FF}%d{FFFFFF} Sekunden für eine Aufgabe Zeit!",timertime/1000); SCM(playerid, messagecolor, string);}
- SCM(playerid, messagecolor, string);
- GivePlayerTask(playerid);
- return 1;
- }
- return 0;
- }
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- new string[80];
- if(clickedid == leicht)
- {
- intask[playerid] = 1;
- SCM(playerid, messagecolor, "Dir werden nun in der Schwirigkeit 'Leicht' Rechenaufgaben gestellt!");
- format(string, sizeof(string),"Zum stoppen dieser Einheit tippe einfach %s", stopcommand);
- if(enablemiddlekey == 1)strcat(string, " oder drücke die mittlere Maustaste!");
- SCM(playerid, messagecolor, string);
- if(timertime > 0) {format(string, sizeof(string),"{FFFFFF}Du hast jeweils {0069FF}%d{FFFFFF} Sekunden für eine Aufgabe Zeit!",timertime/1000); SCM(playerid, messagecolor, string);}
- SCM(playerid, messagecolor, string);
- GivePlayerTask(playerid);
- return 1;
- }
- if(clickedid == mittel)
- {
- intask[playerid] = 2;
- SCM(playerid, messagecolor, "Dir werden nun in der Schwirigkeit 'Mittel' Rechenaufgaben gestellt!");
- format(string, sizeof(string),"Zum stoppen dieser Einheit tippe einfach %s", stopcommand);
- if(enablemiddlekey == 1)strcat(string, " oder drücke die mittlere Maustaste!");
- SCM(playerid, messagecolor, string);
- if(timertime > 0) {format(string, sizeof(string),"{FFFFFF}Du hast jeweils {0069FF}%d{FFFFFF} Sekunden für eine Aufgabe Zeit!",timertime/1000); SCM(playerid, messagecolor, string);}
- SCM(playerid, messagecolor, string);
- GivePlayerTask(playerid);
- }
- if(clickedid == schwer)
- {
- intask[playerid] = 3;
- SCM(playerid, messagecolor, "Dir werden nun in der Schwirigkeit 'Schwer' Rechenaufgaben gestellt!");
- format(string, sizeof(string),"Zum stoppen dieser Einheit tippe einfach %s", stopcommand);
- if(enablemiddlekey == 1)strcat(string, " oder drücke die mittlere Maustaste!");
- SCM(playerid, messagecolor, string);
- if(timertime > 0) {format(string, sizeof(string),"{FFFFFF}Du hast jeweils {0069FF}%d{FFFFFF} Sekunden für eine Aufgabe Zeit!",timertime/1000); SCM(playerid, messagecolor, string);}
- SCM(playerid, messagecolor, string);
- GivePlayerTask(playerid);
- return 1;
- }
- return 1;
- }
- /*
- art 0 = addition
- art 1 = subtraktion
- art 2 = add. subtrak.
- art 3 = subtrak add
- art 4 = multiplikation
- art 5 = division
- art 6 = multi. divi.
- art 7 = divi. multi.
- */
- stock GivePlayerTask(playerid)
- {
- new vars[4], art, string[50];
- CancelSelectTextDraw(playerid);
- TextDrawHideForPlayer(playerid, blackbox1);
- TextDrawHideForPlayer(playerid, header);
- TextDrawHideForPlayer(playerid, leicht);
- TextDrawHideForPlayer(playerid, mittel);
- TextDrawHideForPlayer(playerid, schwer);
- TextDrawHideForPlayer(playerid, disleicht);
- TextDrawHideForPlayer(playerid, dismittel);
- TextDrawHideForPlayer(playerid, disschwer);
- if(timertime > 0) Timervar[playerid] = SetTimerEx("ATimer", timertime - 3000, 0, "i",playerid);
- if(intask[playerid] == 1)
- {
- art = random(1);
- vars[0] = 10+random(90); vars[1] = 10+random(90);
- if(art == 1) {
- do {
- vars[0] = 10+random(90); vars[1] = 10+random(90);
- } while(vars[0] < vars[1]);
- }
- else if(art == 0) {format(string, sizeof(string), "[AUFGABE]: %d + %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]+vars[1];}
- else if(art == 1) {format(string, sizeof(string), "[AUFGABE]: %d - %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]-vars[1];}
- }
- else if(intask[playerid] == 2)
- {
- art = random(3);
- vars[0] = 10+random(990); vars[1] = 10+random(990);
- if(art == 0) {format(string, sizeof(string), "[AUFGABE]: %d + %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]+vars[1];}
- else if(art == 1) {
- do {
- vars[0] = 10+random(990); vars[1] = 10+random(990);
- } while(vars[0] < vars[1]);
- format(string, sizeof(string), "[AUFGABE]: %d - %d", vars[0], vars[1]);
- ergebnis[playerid] = vars[0]-vars[1];
- }
- else if(art == 2) {
- vars[0] = 10+random(30); vars[1] = 10+random(10);
- format(string, sizeof(string), "[AUFGABE]: %d * %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]*vars[1];
- }
- else if(art == 3) {
- vars[0] = 20+random(30); vars[1] = 10+random(10);
- vars[0] = vars[0] * vars[1];
- format(string, sizeof(string), "[AUFGABE]: %d / %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]/vars[1];
- }
- }
- else if(intask[playerid] == 3)
- {
- new anzahl = random(3);
- art = random(3);
- vars[0] = 10+random(10000); vars[1] = 10+random(10000); vars[2] = 10+random(40);
- if(art == 0) {
- if(anzahl == 0) {format(string, sizeof(string), "[AUFGABE]: %d + %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]+vars[1];}
- else if(anzahl == 1) {format(string, sizeof(string), "[AUFGABE]: %d + %d + %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]+vars[1]+vars[2];}
- else if(anzahl == 2) {format(string, sizeof(string), "[AUFGABE]: %d + %d - %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]+vars[1]-vars[2];}
- else if(anzahl == 3) {format(string, sizeof(string), "[AUFGABE]: %d + %d * %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]+vars[1]*vars[2];}
- }
- else if(art == 1) {
- if(anzahl == 0) {format(string, sizeof(string), "[AUFGABE]: %d - %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]-vars[1];}
- else if(anzahl == 1) {format(string, sizeof(string), "[AUFGABE]: %d - %d + %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]-vars[1]+vars[2];}
- else if(anzahl == 2) {format(string, sizeof(string), "[AUFGABE]: %d - %d - %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]-vars[1]-vars[2];}
- else if(anzahl == 3) {format(string, sizeof(string), "[AUFGABE]: %d - %d * %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]-vars[1]*vars[2];}
- }
- else if(art == 2) {
- vars[0] = 10+random(50); vars[1] = 10+random(30); vars[2] = 10+random(60);
- if(anzahl == 0) {format(string, sizeof(string), "[AUFGABE]: %d * %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]*vars[1];}
- else if(anzahl == 1) {format(string, sizeof(string), "[AUFGABE]: %d * %d + %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]*vars[1]+vars[2];}
- else if(anzahl == 2) {format(string, sizeof(string), "[AUFGABE]: %d * %d - %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]*vars[1]-vars[2];}
- else if(anzahl == 3) {format(string, sizeof(string), "[AUFGABE]: %d * %d * %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]*vars[1]*vars[2];}
- }
- else if(art == 3) {
- vars[0] = 20+random(80); vars[1] = 20+random(50); vars[2] = 10+random(60);
- vars[0] = vars[0] * vars[1];
- if(anzahl == 0) {format(string, sizeof(string), "[AUFGABE]: %d / %d", vars[0], vars[1]); ergebnis[playerid] = vars[0]/vars[1];}
- if(anzahl == 1) {format(string, sizeof(string), "[AUFGABE]: %d / %d + %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]/vars[1]+vars[2];}
- if(anzahl == 2) {format(string, sizeof(string), "[AUFGABE]: %d / %d - %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]/vars[1]-vars[2];}
- if(anzahl == 3) {format(string, sizeof(string), "[AUFGABE]: %d / %d * %d", vars[0], vars[1], vars[2]); ergebnis[playerid] = vars[0]/vars[1]*vars[2];}
- }
- }
- else return 1;
- return SCM(playerid, messagecolor, string);
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(enablemiddlekey == 1 && (newkeys & KEY_SUBMISSION) && intask[playerid] > 0)
- {
- new string[70];
- SCM(playerid, messagecolor, "Du hast die Rechenaufgaben beendet!");
- format(string, 70, "In dieser Runde hast du %d richtig und %d falsch gelöst!", PlayerStats[playerid][pWRound],PlayerStats[playerid][pFRound]);
- SCM(playerid, messagecolor, string);
- intask[playerid] = 0;
- countdown[playerid] = 3;
- KillTimer(Timervar[playerid]);
- }
- return 1;
- }
- forward ATimer(playerid);
- public ATimer(playerid)
- {
- if(countdown[playerid] != 0)
- {
- new timestring[4];
- format(timestring, 4, "%d",countdown[playerid]);
- PlayerPlaySound(playerid, 5201, 0, 0, 0);
- GameTextForPlayer(playerid, timestring, 1000, 3);
- countdown[playerid] --;
- return Timervar[playerid] = SetTimerEx("ATimer", 1000, 0, "i",playerid);
- }
- new string[100];
- countdown[playerid] = 3;
- PlayerPlaySound(playerid, 5205, 0, 0, 0);
- SCM(playerid, failedcolor, "Die Zeit ist abgelaufen! Starte es erneut für weitere Aufgaben!");
- format(string, 70, "In dieser Runde hast du %d richtig und %d falsch gelöst!", PlayerStats[playerid][pWRound],PlayerStats[playerid][pFRound]);
- SCM(playerid, messagecolor, string);
- PlayerStats[playerid][pFails]++;
- intask[playerid] = 0;
- return 1;
- }
- IsNumeric(const string[])
- {
- new i;
- while(string[i] != '\0') //end of string
- {
- if (string[i] > '9' || string[i] < '0'){return 0;}
- i++;
- }
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- /********ERKLÄRUNG ZUM MAINMENU*********
- Das Mainmenu wird durch den freien Befehl (default: /aufgaben) aufgerufen.
- Hier kann zwischen leichten, mittleren und schweren Aufgaben gewählt werden.
- Wer dieses nicht möchte stellt es um und muss somit diese Auswahl manuell treffen.
- Dies geht über die selbst gewählten Befehle (default: /astartl, /astartm, /astarts).
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement