Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Promillerechner von EvilToastBrot
- #include <a_samp>
- #define D1 2398
- #define D2 2399
- #define D3 2400
- #define D4 2401
- #define Grey 0xAFAFAFAA
- #define Orange 0xFF9933FF
- #define Yellow 0xFFFF00AA
- #define OwnGetr 100
- new Geschlecht[MAX_PLAYERS];
- new Float:Alcmenge[MAX_PLAYERS];
- new Float:Gewicht[MAX_PLAYERS];
- new Getraenk[MAX_PLAYERS];
- new Getraenkeauswahl[MAX_PLAYERS];
- new Float:Alcgehalt[MAX_PLAYERS];
- new Float:Promille[MAX_PLAYERS];
- new Float:Ausnuechterung[MAX_PLAYERS];
- enum getr
- {
- name[50],
- gehalt,
- id
- }
- new Getraenke[][getr] = {
- {"Vodka", 42, 1},
- {"Jack Daniels", 45, 2},
- {"Asbach Uralt", 38, 3},
- {"Bier", 5, 4},
- {"Bacardi", 40, 5},
- {"Wein", 12, 6},
- {"Mischbier", 2, 7},
- {"Eigenes Getränk", 0, OwnGetr}
- };
- forward CalcAlc(playerid);
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("Promillerechner by EvilToastBrot");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Getraenkeauswahl[playerid] = 0;
- Alcgehalt[playerid] = 0;
- Getraenk[playerid] = 0;
- Alcmenge[playerid] = 0;
- Promille[playerid] = 0;
- Gewicht[playerid] = 0;
- Ausnuechterung[playerid] = 0;
- Getraenkeauswahl[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(Getraenkeauswahl[playerid])
- {
- for(new i = 0; i<sizeof Getraenke; i++)
- {
- if(!strcmp(Getraenke[i][name], "Eigenes Getränk", true))
- {
- Getraenk[playerid] = OwnGetr;
- ShowPlayerDialog(playerid, D3, 1, "Alkoholgehalt", "Gib bitte den Alkoholgehalt des Getränks an.", "Weiter", "Abbrechen");
- Getraenkeauswahl[playerid] = 0;
- return 0;
- }
- if(Getraenke[i][id] == strval(text))
- {
- Getraenk[playerid] = Getraenke[i][id];
- ShowPlayerDialog(playerid, D2, 1, "Menge", "Gib die Menge des getrunkenen Getränks ein! ( In Liter! )", "Weiter", "Abbrechen");
- Alcgehalt[playerid] = Getraenke[i][gehalt];
- Getraenkeauswahl[playerid] = 0;
- return 0;
- }
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/promille", cmdtext, true) == 0)
- {
- ShowPlayerDialog(playerid, D1, 0, "Geschlecht", "Gib bitte dein Geschlecht an.", "Männlich", "Weiblich");
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == D1)
- {
- if(response)
- {
- Geschlecht[playerid] = 1; // Männlich
- }
- if(!response)
- {
- Geschlecht[playerid] = 2; // Weiblich
- }
- ShowGetraenke(playerid);
- SendClientMessage(playerid, Orange, "Gib die Nummer des Getränkes ein, mit dem du rechnen willst oder erstelle ein eigenes Getränk!");
- Getraenkeauswahl[playerid] = 1;
- }
- if(dialogid == D3)
- {
- if(response)
- {
- if(strval(inputtext) > 92 || strval(inputtext) < 1)
- {
- ShowPlayerDialog(playerid, D3, 1, "Alkoholgehalt", "Gib bitte den Alkoholgehalt des Getränks an.", "Weiter", "Abbrechen");
- SendClientMessage(playerid, Grey, "Ungültiger Alkoholwert! ( Zwischen 1 und 92 )");
- return 1;
- }
- Alcgehalt[playerid] = floatstr(inputtext);
- ShowPlayerDialog(playerid, D2, 1, "Menge", "Gib die Menge des getrunkenen Getränks ein! ( In Liter! )", "Weiter", "Abbrechen");
- }
- }
- if(dialogid == D2)
- {
- if(response)
- {
- new Float:menge = floatstr(inputtext);
- Alcmenge[playerid] = floatmul(menge, 100);
- Alcmenge[playerid] = floatmul(Alcmenge[playerid], Alcgehalt[playerid]);
- Alcmenge[playerid] = floatmul(Alcmenge[playerid], 0.08);
- ShowPlayerDialog(playerid, D4, 1, "Gewicht", "Gib bitte dein Gewicht an. ( Kilogramm )", "Berechnen", "Abbrechen");
- }
- }
- if(dialogid == D4)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid, D4, 1, "Gewicht", "Gib bitte dein Gewicht an. ( Kilogramm )", "Berechnen", "Abbrechen");
- return 1;
- }
- new Float:gew = floatstr(inputtext);
- if(gew < 30 || gew > 200)
- {
- SendClientMessage(playerid, Grey, "Ungültiges Gewicht!");
- ShowPlayerDialog(playerid, D4, 1, "Gewicht", "Gib bitte dein Gewicht an. ( Kilogramm )", "Berechnen", "Abbrechen");
- return 1;
- }
- Gewicht[playerid] = gew;
- CalcAlc(playerid);
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- stock ShowGetraenke(playerid)
- {
- new str[150];
- for(new i = 0; i<sizeof Getraenke; i++)
- {
- format(str, sizeof str, "%d: %s, Alkoholgehalt: %d%%", Getraenke[i][id], Getraenke[i][name], Getraenke[i][gehalt]);
- SendClientMessage(playerid, Yellow, str);
- }
- }
- public CalcAlc(playerid)
- {
- new str[128];
- if(Geschlecht[playerid] == 1)
- {
- new Float:c = floatmul(0.7, Gewicht[playerid]);
- Promille[playerid] = floatdiv(Alcmenge[playerid], c);
- }
- if(Geschlecht[playerid] == 1)
- {
- new Float:c = floatmul(0.6, Gewicht[playerid]);
- Promille[playerid] = floatdiv(Alcmenge[playerid], c);
- }
- Ausnuechterung[playerid] = floatmul(Promille[playerid], 10.0);
- format(str, sizeof str, "Du hast zur Zeit einen Promillewert von %0.2f%%!", Promille[playerid]);
- SendClientMessage(playerid, Orange, str);
- format(str, sizeof str, "Du brauchst ungefähr %0.1f Stunden um auszunüchtern!", Ausnuechterung[playerid]);
- SendClientMessage(playerid, Orange, str);
- if(Promille[playerid] <= 0.5) format(str, sizeof str, "Du spürst die Wirkung des Alkohols!");
- if(Promille[playerid] <= 1.0 && Promille[playerid] > 0.5) format(str, sizeof str, "Du hast Koordinationsschwierigkeiten und leichte Sprachstörungen!");
- if(Promille[playerid] <= 2.0 && Promille[playerid] > 1.0) format(str, sizeof str, "Du bist stark betrunken!");
- if(Promille[playerid] <= 2.5 && Promille[playerid] > 2.0) format(str, sizeof str, "Du hast einen Vollrausch! Erbrechen!");
- if(Promille[playerid] <= 3.0 && Promille[playerid] > 2.5) format(str, sizeof str, "Für 'ungeübte Trinker' besteht ab hier Lebensgefahr!");
- if(Promille[playerid] <= 3.5 && Promille[playerid] > 3.0) format(str, sizeof str, "Koma! Für 'geübte Trinker' Bewusstseinsverlust");
- if(Promille[playerid] <= 4.0 && Promille[playerid] > 3.5) format(str, sizeof str, "Tod!");
- Alcgehalt[playerid] = 0;
- Getraenk[playerid] = 0;
- Alcmenge[playerid] = 0;
- Promille[playerid] = 0;
- Gewicht[playerid] = 0;
- Ausnuechterung[playerid] = 0;
- Getraenkeauswahl[playerid] = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement