Advertisement
Guest User

Promillerechner by EvilToastBrot

a guest
Dec 3rd, 2010
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.17 KB | None | 0 0
  1. // Promillerechner von EvilToastBrot
  2.  
  3. #include <a_samp>
  4.  
  5. #define D1 2398
  6. #define D2 2399
  7. #define D3 2400
  8. #define D4 2401
  9. #define Grey 0xAFAFAFAA
  10. #define Orange 0xFF9933FF
  11. #define Yellow 0xFFFF00AA
  12. #define OwnGetr 100
  13.  
  14. new Geschlecht[MAX_PLAYERS];
  15. new Float:Alcmenge[MAX_PLAYERS];
  16. new Float:Gewicht[MAX_PLAYERS];
  17. new Getraenk[MAX_PLAYERS];
  18. new Getraenkeauswahl[MAX_PLAYERS];
  19. new Float:Alcgehalt[MAX_PLAYERS];
  20. new Float:Promille[MAX_PLAYERS];
  21. new Float:Ausnuechterung[MAX_PLAYERS];
  22. enum getr
  23. {
  24.     name[50],
  25.     gehalt,
  26.     id
  27. }
  28. new Getraenke[][getr] = {
  29. {"Vodka", 42, 1},
  30. {"Jack Daniels", 45, 2},
  31. {"Asbach Uralt", 38, 3},
  32. {"Bier", 5, 4},
  33. {"Bacardi", 40, 5},
  34. {"Wein", 12, 6},
  35. {"Mischbier", 2, 7},
  36. {"Eigenes Getränk", 0, OwnGetr}
  37. };
  38. forward CalcAlc(playerid);
  39. public OnFilterScriptInit()
  40. {
  41.     print("\n--------------------------------------");
  42.     print("Promillerechner by EvilToastBrot");
  43.     print("--------------------------------------\n");
  44.     return 1;
  45. }
  46.  
  47. public OnFilterScriptExit()
  48. {
  49.     return 1;
  50. }
  51.  
  52. public OnPlayerRequestClass(playerid, classid)
  53. {
  54.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  55.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  56.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  57.     return 1;
  58. }
  59.  
  60. public OnPlayerConnect(playerid)
  61. {
  62.     Getraenkeauswahl[playerid] = 0;
  63.     Alcgehalt[playerid] = 0;
  64.     Getraenk[playerid] = 0;
  65.     Alcmenge[playerid] = 0;
  66.     Promille[playerid] = 0;
  67.     Gewicht[playerid] = 0;
  68.     Ausnuechterung[playerid] = 0;
  69.     Getraenkeauswahl[playerid] = 0;
  70.     return 1;
  71. }
  72.  
  73. public OnPlayerDisconnect(playerid, reason)
  74. {
  75.     return 1;
  76. }
  77.  
  78. public OnPlayerSpawn(playerid)
  79. {
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerDeath(playerid, killerid, reason)
  84. {
  85.     return 1;
  86. }
  87.  
  88. public OnVehicleSpawn(vehicleid)
  89. {
  90.     return 1;
  91. }
  92.  
  93. public OnVehicleDeath(vehicleid, killerid)
  94. {
  95.     return 1;
  96. }
  97.  
  98. public OnPlayerText(playerid, text[])
  99. {
  100.     if(Getraenkeauswahl[playerid])
  101.     {
  102.         for(new i = 0; i<sizeof Getraenke; i++)
  103.         {
  104.             if(!strcmp(Getraenke[i][name], "Eigenes Getränk", true))
  105.             {
  106.                 Getraenk[playerid] = OwnGetr;
  107.                 ShowPlayerDialog(playerid, D3, 1, "Alkoholgehalt", "Gib bitte den Alkoholgehalt des Getränks an.", "Weiter", "Abbrechen");
  108.                 Getraenkeauswahl[playerid] = 0;
  109.                 return 0;
  110.             }
  111.             if(Getraenke[i][id] == strval(text))
  112.             {
  113.                 Getraenk[playerid] = Getraenke[i][id];
  114.                 ShowPlayerDialog(playerid, D2, 1, "Menge", "Gib die Menge des getrunkenen Getränks ein! ( In Liter! )", "Weiter", "Abbrechen");
  115.                 Alcgehalt[playerid] = Getraenke[i][gehalt];
  116.                 Getraenkeauswahl[playerid] = 0;
  117.                 return 0;
  118.             }
  119.         }
  120.     }
  121.     return 1;
  122. }
  123.  
  124. public OnPlayerCommandText(playerid, cmdtext[])
  125. {
  126.     if (strcmp("/promille", cmdtext, true) == 0)
  127.     {
  128.         ShowPlayerDialog(playerid, D1, 0, "Geschlecht", "Gib bitte dein Geschlecht an.", "Männlich", "Weiblich");
  129.         return 1;
  130.     }
  131.     return 0;
  132. }
  133.  
  134. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  135. {
  136.     if(dialogid == D1)
  137.     {
  138.         if(response)
  139.         {
  140.             Geschlecht[playerid] = 1; // Männlich
  141.         }
  142.         if(!response)
  143.         {
  144.             Geschlecht[playerid] = 2; // Weiblich
  145.         }
  146.         ShowGetraenke(playerid);
  147.         SendClientMessage(playerid, Orange, "Gib die Nummer des Getränkes ein, mit dem du rechnen willst oder erstelle ein eigenes Getränk!");
  148.         Getraenkeauswahl[playerid] = 1;
  149.     }
  150.     if(dialogid == D3)
  151.     {
  152.         if(response)
  153.         {
  154.             if(strval(inputtext) > 92 || strval(inputtext) < 1)
  155.             {
  156.                 ShowPlayerDialog(playerid, D3, 1, "Alkoholgehalt", "Gib bitte den Alkoholgehalt des Getränks an.", "Weiter", "Abbrechen");
  157.                 SendClientMessage(playerid, Grey, "Ungültiger Alkoholwert! ( Zwischen 1 und 92 )");
  158.                 return 1;
  159.             }
  160.             Alcgehalt[playerid] = floatstr(inputtext);
  161.             ShowPlayerDialog(playerid, D2, 1, "Menge", "Gib die Menge des getrunkenen Getränks ein! ( In Liter! )", "Weiter", "Abbrechen");
  162.         }
  163.     }
  164.     if(dialogid == D2)
  165.     {
  166.         if(response)
  167.         {
  168.             new Float:menge = floatstr(inputtext);
  169.             Alcmenge[playerid] = floatmul(menge, 100);
  170.             Alcmenge[playerid] = floatmul(Alcmenge[playerid], Alcgehalt[playerid]);
  171.             Alcmenge[playerid] = floatmul(Alcmenge[playerid], 0.08);
  172.             ShowPlayerDialog(playerid, D4, 1, "Gewicht", "Gib bitte dein Gewicht an. ( Kilogramm )", "Berechnen", "Abbrechen");
  173.         }
  174.     }
  175.     if(dialogid == D4)
  176.     {
  177.         if(response)
  178.         {
  179.             if(!strlen(inputtext))
  180.             {
  181.                 ShowPlayerDialog(playerid, D4, 1, "Gewicht", "Gib bitte dein Gewicht an. ( Kilogramm )", "Berechnen", "Abbrechen");
  182.                 return 1;
  183.             }
  184.             new Float:gew = floatstr(inputtext);
  185.             if(gew < 30 || gew > 200)
  186.             {
  187.                 SendClientMessage(playerid, Grey, "Ungültiges Gewicht!");
  188.                 ShowPlayerDialog(playerid, D4, 1, "Gewicht", "Gib bitte dein Gewicht an. ( Kilogramm )", "Berechnen", "Abbrechen");
  189.                 return 1;
  190.             }
  191.             Gewicht[playerid] = gew;
  192.             CalcAlc(playerid);
  193.         }
  194.     }
  195.     return 1;
  196. }
  197.  
  198. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  199. {
  200.     return 1;
  201. }
  202. stock ShowGetraenke(playerid)
  203. {
  204.     new str[150];
  205.     for(new i = 0; i<sizeof Getraenke; i++)
  206.     {
  207.         format(str, sizeof str, "%d: %s, Alkoholgehalt: %d%%", Getraenke[i][id], Getraenke[i][name], Getraenke[i][gehalt]);
  208.         SendClientMessage(playerid, Yellow, str);
  209.     }
  210. }
  211. public CalcAlc(playerid)
  212. {
  213.     new str[128];
  214.     if(Geschlecht[playerid] == 1)
  215.     {
  216.         new Float:c = floatmul(0.7, Gewicht[playerid]);
  217.         Promille[playerid] = floatdiv(Alcmenge[playerid], c);
  218.     }
  219.     if(Geschlecht[playerid] == 1)
  220.     {
  221.         new Float:c = floatmul(0.6, Gewicht[playerid]);
  222.         Promille[playerid] = floatdiv(Alcmenge[playerid], c);
  223.     }
  224.     Ausnuechterung[playerid] = floatmul(Promille[playerid], 10.0);
  225.     format(str, sizeof str, "Du hast zur Zeit einen Promillewert von %0.2f%%!", Promille[playerid]);
  226.     SendClientMessage(playerid, Orange, str);
  227.     format(str, sizeof str, "Du brauchst ungefähr %0.1f Stunden um auszunüchtern!", Ausnuechterung[playerid]);
  228.     SendClientMessage(playerid, Orange, str);
  229.     if(Promille[playerid] <= 0.5) format(str, sizeof str, "Du spürst die Wirkung des Alkohols!");
  230.     if(Promille[playerid] <= 1.0 && Promille[playerid] > 0.5) format(str, sizeof str, "Du hast Koordinationsschwierigkeiten und leichte Sprachstörungen!");
  231.     if(Promille[playerid] <= 2.0 && Promille[playerid] > 1.0) format(str, sizeof str, "Du bist stark betrunken!");
  232.     if(Promille[playerid] <= 2.5 && Promille[playerid] > 2.0) format(str, sizeof str, "Du hast einen Vollrausch! Erbrechen!");
  233.     if(Promille[playerid] <= 3.0 && Promille[playerid] > 2.5) format(str, sizeof str, "Für 'ungeübte Trinker' besteht ab hier Lebensgefahr!");
  234.     if(Promille[playerid] <= 3.5 && Promille[playerid] > 3.0) format(str, sizeof str, "Koma! Für 'geübte Trinker' Bewusstseinsverlust");
  235.     if(Promille[playerid] <= 4.0 && Promille[playerid] > 3.5) format(str, sizeof str, "Tod!");
  236.     Alcgehalt[playerid] = 0;
  237.     Getraenk[playerid] = 0;
  238.     Alcmenge[playerid] = 0;
  239.     Promille[playerid] = 0;
  240.     Gewicht[playerid] = 0;
  241.     Ausnuechterung[playerid] = 0;
  242.     Getraenkeauswahl[playerid] = 0;
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement