Advertisement
Guest User

Untitled

a guest
Jun 13th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 10.22 KB | None | 0 0
  1. //dCalc by Dominik. ist ein simples Taschenrechner Filterscript.
  2. #include <a_samp>
  3. #include <sscanf>
  4. #define DIALOG_CALC_AUSWAHL         1
  5. #define DIALOG_CALC_ADDITION_1      2
  6. #define DIALOG_CALC_ADDITION_2      3
  7. #define DIALOG_CALC_ERGEBNIS        4
  8. #define DIALOG_CALC_SUBTRAKTION_1   5
  9. #define DIALOG_CALC_SUBTRAKTION_2   6
  10. #define DIALOG_CALC_MULTI_1         7
  11. #define DIALOG_CALC_MULTI_2         8
  12. #define DIALOG_CALC_DIVI_1          9
  13. #define DIALOG_CALC_DIVI_2          10
  14. #define GRÜN 0x23FF00FF
  15. #define ROT 0xE10000FF
  16. #define ORANGE 0xFF8200FF
  17. #define CALC_PREIS 0//Preis des Taschenrechners
  18. new CalcGekauft[MAX_PLAYERS];
  19. public OnFilterScriptInit()
  20. {
  21.     print("\n--------------------------------------");
  22.     print(" dCalc by Dominik. geladen ...");
  23.     print("--------------------------------------\n");
  24.     return 1;
  25. }
  26. public OnPlayerConnect(playerid)
  27. {
  28.     CalcGekauft[playerid] = 0;
  29.     return 1;
  30. }
  31. public OnPlayerCommandText(playerid, cmdtext[])
  32. {
  33.     if (strcmp("/calc", cmdtext, true) == 0)
  34.     {
  35.         if(CalcGekauft[playerid] != 1) return SendClientMessage(playerid,ROT,"Du besitzt keinen Taschenrechner! Du kannst dir aber einen per /buycalc kaufen!");
  36.         ShowPlayerDialog(playerid,DIALOG_CALC_AUSWAHL,DIALOG_STYLE_LIST,"Taschenrechner - Welche Rechenart?","Addition\n\rSubtraktion\r\nMultiplikation\n\rDivision","Auswählen","Abbrechen");
  37.         return 1;
  38.     }
  39.     if(strcmp("/buycalc",cmdtext, true) == 0)
  40.     {
  41.         if(GetPlayerMoney(playerid) >= CALC_PREIS)
  42.         {
  43.             GivePlayerMoney(playerid,-CALC_PREIS); CalcGekauft[playerid] = 1;
  44.             SendClientMessage(playerid,GRÜN,"Du hast dir den Taschenrechner erfolgreich gekauft!");
  45.             return 1;
  46.         }
  47.         else
  48.         {
  49.             new string[64]; format(string,64,"Der Taschenrechner kostet $%d, du hast nur $%d",CALC_PREIS,GetPlayerMoney(playerid));
  50.             SendClientMessage(playerid,ROT,string);
  51.             return 1;
  52.         }
  53.     }
  54.     return 0;
  55. }
  56. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  57. {
  58.     switch(dialogid)
  59.     {
  60.         case DIALOG_CALC_AUSWAHL:
  61.         {
  62.             if(!response) return SendClientMessage(playerid,ROT,"Abgebrochen!");
  63.             switch(listitem)
  64.             {
  65.                 case 0: return ShowPlayerDialog(playerid,DIALOG_CALC_ADDITION_1,DIALOG_STYLE_INPUT,"Addition - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  66.                 case 1: return ShowPlayerDialog(playerid,DIALOG_CALC_SUBTRAKTION_1,DIALOG_STYLE_INPUT,"Subtraktion - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  67.                 case 2: return ShowPlayerDialog(playerid,DIALOG_CALC_MULTI_1,DIALOG_STYLE_INPUT,"Multiplikation - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  68.                 case 3: return ShowPlayerDialog(playerid,DIALOG_CALC_MULTI_1,DIALOG_STYLE_INPUT,"Division - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  69.             }
  70.         }
  71.         case DIALOG_CALC_ADDITION_1:
  72.         {
  73.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_AUSWAHL,DIALOG_STYLE_LIST,"Taschenrechner - Welche Rechenart?","Addition\n\rSubtraktion\r\nMultiplikation\n\r","Auswählen","Abbrechen");
  74.             if(response)
  75.             {
  76.                 new Float:zahl1;
  77.                 if(sscanf(inputtext,"f",zahl1)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0!") && ShowPlayerDialog(playerid,DIALOG_CALC_ADDITION_1,DIALOG_STYLE_INPUT,"Addition - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  78.                 SetPVarFloat(playerid,"CurrentNumber1",zahl1); SendClientMessage(playerid,ORANGE,"Gebe nun die 2te Zahl ein!");
  79.                 ShowPlayerDialog(playerid,DIALOG_CALC_ADDITION_2,DIALOG_STYLE_INPUT,"Addition - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  80.                 return 1;
  81.             }
  82.         }
  83.         case DIALOG_CALC_ADDITION_2:
  84.         {
  85.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_ADDITION_1,DIALOG_STYLE_INPUT,"Addition - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  86.             if(response)
  87.             {
  88.                 new Float:zahl2;
  89.                 if(sscanf(inputtext,"f",zahl2)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0!") && ShowPlayerDialog(playerid,DIALOG_CALC_ADDITION_2,DIALOG_STYLE_INPUT,"Addition - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  90.                 SetPVarFloat(playerid,"CurrentNumber2",zahl2); SendClientMessage(playerid,ORANGE,"Nun kommt dein Ergebnis!");
  91.                 new string[100]; format(string,100,"Art der Rechung: Addition\nRechung: %f + %f\nErgebnis: %f",GetPVarFloat(playerid,"CurrentNumber1"),GetPVarFloat(playerid,"CurrentNumber2"),GetPVarFloat(playerid,"CurrentNumber1") + GetPVarFloat(playerid,"CurrentNumber2"));
  92.                 ShowPlayerDialog(playerid,DIALOG_CALC_ERGEBNIS,DIALOG_STYLE_MSGBOX,"Ergebnis",string,"Verlassen","");
  93.                 return 1;
  94.             }
  95.         }
  96.         case DIALOG_CALC_ERGEBNIS: return 1;
  97.         case DIALOG_CALC_SUBTRAKTION_1:
  98.         {
  99.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_AUSWAHL,DIALOG_STYLE_LIST,"Taschenrechner - Welche Rechenart?","Addition\n\rSubtraktion\r\nMultiplikation\n\rDivision","Auswählen","Abbrechen");
  100.             if(response)
  101.             {
  102.                 new Float:zahl1;
  103.                 if(sscanf(inputtext,"d",zahl1)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0!") && ShowPlayerDialog(playerid,DIALOG_CALC_SUBTRAKTION_1,DIALOG_STYLE_INPUT,"Subtraktion - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  104.                 SetPVarFloat(playerid,"CurrentNumber1",zahl1); SendClientMessage(playerid,ORANGE,"Gebe nun die 2te Zahl ein!");
  105.                 ShowPlayerDialog(playerid,DIALOG_CALC_SUBTRAKTION_2,DIALOG_STYLE_INPUT,"Subtraktion - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  106.                 return 1;
  107.             }
  108.         }
  109.         case DIALOG_CALC_SUBTRAKTION_2:
  110.         {
  111.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_SUBTRAKTION_1,DIALOG_STYLE_INPUT,"Subtraktion - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  112.             if(response)
  113.             {
  114.                 new zahl2;
  115.                 if(sscanf(inputtext,"f",zahl2)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0!") && ShowPlayerDialog(playerid,DIALOG_CALC_SUBTRAKTION_2,DIALOG_STYLE_INPUT,"Subtraktion - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  116.                 SetPVarFloat(playerid,"CurrentNumber2",zahl2); SendClientMessage(playerid,ORANGE,"Nun kommt dein Ergebnis!");
  117.                 new string[100]; format(string,100,"Art der Rechung: Subtraktion\nRechung: %f - %f\nErgebnis: %f",GetPVarFloat(playerid,"CurrentNumber1"),GetPVarFloat(playerid,"CurrentNumber2"),GetPVarFloat(playerid,"CurrentNumber1") - GetPVarFloat(playerid,"CurrentNumber2"));
  118.                 ShowPlayerDialog(playerid,DIALOG_CALC_ERGEBNIS,DIALOG_STYLE_MSGBOX,"Ergebnis",string,"Verlassen","");
  119.                 return 1;
  120.             }
  121.         }
  122.         case DIALOG_CALC_MULTI_1:
  123.         {
  124.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_AUSWAHL,DIALOG_STYLE_LIST,"Taschenrechner - Welche Rechenart?","Addition\n\rSubtraktion\r\nMultiplikation\n\r","Auswählen","Abbrechen");
  125.             if(response)
  126.             {
  127.                 new Float:zahl1;
  128.                 if(sscanf(inputtext,"f",zahl1)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0!") && ShowPlayerDialog(playerid,DIALOG_CALC_MULTI_1,DIALOG_STYLE_INPUT,"Multiplikation - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  129.                 SetPVarFloat(playerid,"CurrentNumber1",zahl1); SendClientMessage(playerid,ORANGE,"Gebe nun die 2te Zahl ein!");
  130.                 ShowPlayerDialog(playerid,DIALOG_CALC_MULTI_2,DIALOG_STYLE_INPUT,"Multi - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  131.                 return 1;
  132.             }
  133.         }
  134.         case DIALOG_CALC_MULTI_2:
  135.         {
  136.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_MULTI_1,DIALOG_STYLE_INPUT,"Multiplikation - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  137.             if(response)
  138.             {
  139.                 new Float:zahl2;
  140.                 if(sscanf(inputtext,"f",zahl2)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwenden z.B. statt 24, 24.0") && ShowPlayerDialog(playerid,DIALOG_CALC_MULTI_2,DIALOG_STYLE_INPUT,"Multiplikation - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  141.                 SetPVarFloat(playerid,"CurrentNumber2",zahl2); SendClientMessage(playerid,ORANGE,"Nun kommt dein Ergebnis!");
  142.                 new string[100]; format(string,100,"Art der Rechung: Multiplikation\nRechung: %f * %f\nErgebnis: %f",GetPVarFloat(playerid,"CurrentNumber1"),GetPVarFloat(playerid,"CurrentNumber2"),GetPVarFloat(playerid,"CurrentNumber1") * GetPVarFloat(playerid,"CurrentNumber2"));
  143.                 ShowPlayerDialog(playerid,DIALOG_CALC_ERGEBNIS,DIALOG_STYLE_MSGBOX,"Ergebnis",string,"Verlassen","");
  144.                 return 1;
  145.             }
  146.         }
  147.         case DIALOG_CALC_DIVI_1:
  148.         {
  149.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_AUSWAHL,DIALOG_STYLE_LIST,"Taschenrechner - Welche Rechenart?","Addition\n\rSubtraktion\r\nMultiplikation\n\rDivision","Auswählen","Abbrechen");
  150.             if(response)
  151.             {
  152.                 new Float:zahl1;
  153.                 if(sscanf(inputtext,"f",zahl1)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0") && ShowPlayerDialog(playerid,DIALOG_CALC_DIVI_1,DIALOG_STYLE_INPUT,"Division - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  154.                 SetPVarFloat(playerid,"CurrentNumber1",zahl1); SendClientMessage(playerid,ORANGE,"Gebe nun die 2te Zahl ein!");
  155.                 ShowPlayerDialog(playerid,DIALOG_CALC_DIVI_2,DIALOG_STYLE_INPUT,"Division - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  156.                 return 1;
  157.             }
  158.         }
  159.         case DIALOG_CALC_DIVI_2:
  160.         {
  161.             if(!response) return ShowPlayerDialog(playerid,DIALOG_CALC_DIVI_1,DIALOG_STYLE_INPUT,"Division - Zahl 1","Gebe hier die 1te Zahl ein:","Weiter","Zurück");
  162.             if(response)
  163.             {
  164.                 new Float:zahl2;
  165.                 if(sscanf(inputtext,"f",zahl2)) return SendClientMessage(playerid,ROT,"Falscher Input! Verwende z.B. statt 24, 24.0") && ShowPlayerDialog(playerid,DIALOG_CALC_DIVI_2,DIALOG_STYLE_INPUT,"Division - Zahl 2","Gebe hier die 2te Zahl ein:","Weiter","Zurück");
  166.                 SetPVarFloat(playerid,"CurrentNumber2",zahl2); SendClientMessage(playerid,ORANGE,"Nun kommt dein Ergebnis!");
  167.                 new string[100]; format(string,100,"Art der Rechung: Multiplikation\nRechung: %f : %f\nErgebnis: %f",GetPVarFloat(playerid,"CurrentNumber1"),GetPVarFloat(playerid,"CurrentNumber2"),GetPVarFloat(playerid,"CurrentNumber1") / GetPVarFloat(playerid,"CurrentNumber1"));
  168.                 ShowPlayerDialog(playerid,DIALOG_CALC_ERGEBNIS,DIALOG_STYLE_MSGBOX,"Ergebnis",string,"Verlassen","");
  169.                 return 1;
  170.             }
  171.         }
  172.     }
  173.     return 1;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement