Advertisement
Guest User

Untitled

a guest
Dec 14th, 2011
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 24.09 KB | None | 0 0
  1. /*
  2.     Marco's Banksystem
  3.     Credits bitte drinlassen, wäre echt nett :D
  4. */
  5. #include <a_samp>
  6.  
  7. //#define MySQLUSE //Ausklammern, falls kein MySQL genutzt werden möchte. !!ACHTUNG!! Strickenkid's MySQL Plugin, nicht GStylezz!
  8.  
  9. #if defined MySQLUSE
  10. #include <mysql>
  11.  
  12. #define MySQL_Host "localhost" //Hier definierst Du den Host, im Hauptfall localhost
  13. #define MySQL_User "script"      //Hier definierst Du den User, den musst du selber erstellen
  14. #define MySQL_Pass "scripter"          //Hier definierst Du das Passwort, es darf nicht leer sein, sonst geht es nicht
  15. #define MySQL_DB "samp608"        //Hier definierst Du die Datenbank, die musst du allerdings selber erstellen ;)
  16.  
  17. #else
  18. #include <Dini>
  19. #endif
  20.  
  21. #define STARTBONUS 10000
  22. #define SPD ShowPlayerDialog
  23. #define SCM SendClientMessage
  24. #define IPC IsPlayerConnected
  25. #define COLOR_WHITE 0xFFFFFFAA
  26. #define DIALOG_BANK                 10
  27. #define DIALOG_KEIN_KONTO           11
  28. #define DIALOG_KONTOSTAND           12
  29. #define DIALOG_PIN_ERSTELLEN        13
  30. #define DIALOG_PIN                  14
  31. #define DIALOG_ABHEBEN              15
  32. #define DIALOG_EINZAHLEN            16
  33. #define DIALOG_FERTIG               18
  34. #define DIALOG_UEBERWEISUNG_BETRAG  19
  35. #define DIALOG_UEBERWEISEN_ID       20
  36. #define DIALOG_KARTE                21
  37.  
  38. new Ueberweiser[MAX_PLAYERS] ={-1,...};
  39. new DarfECAbholen[MAX_PLAYERS];
  40. new accFormat[128];
  41. new BankPickup;
  42.  
  43. forward ECKarteFertig(playerid);
  44. forward IsAtATM(playerid);
  45.  
  46. enum BankInfo
  47. {
  48.     sHatKonto,
  49.     sKonto,
  50.     sBankPIN,
  51.     sECKarte
  52. }
  53. new Bank[MAX_PLAYERS][BankInfo];
  54.  
  55. public OnFilterScriptInit()
  56. {
  57.     #if defined MySQLUSE
  58.     mysql_init();
  59.     mysql_connect(MySQL_Host,MySQL_User,MySQL_Pass,MySQL_DB);
  60.     #endif
  61.  
  62.     //ATMs
  63.     CreateObject(2942, 810.565063, -1623.768799, 13.189775, 0.0000, 0.0000, 90.0001);//1
  64.     CreateObject(2942, 1000.825195, -922.610168, 41.971024, 0.0000, 0.0000, 277.8123);//2
  65.     CreateObject(2942, 1504.693359, -1706.567749, 13.689775, 0.0000, 0.0000, 90.0000);//3
  66.     CreateObject(2942, 1928.620850, -1771.269043, 13.189775, 0.0000, 0.0000, 90.0000);//4
  67.     CreateObject(2942, 1036.071655, -1024.509766, 31.744461, 0.0000, 0.0000, 0.0000);//5
  68.     CreateObject(2942, 926.909912, -1355.081421, 13.021199, 0.0000, 0.0000, 270.0000);//6
  69.     CreateObject(2942, 491.439484, -1734.586548, 10.871187, 0.0000, 0.0000, 168.3452);//7
  70.     CreateObject(2942, 380.780701, -2021.725830, 7.478837, 0.0000, 0.0000, 0.0000);//8
  71.     CreateObject(2942, 1223.778320, -1744.292603, 13.240016, 0.0000, 0.0000, 193.3734);//9
  72.     CreateObject(2942, 2105.436035, -1809.228516, 13.197587, 0.0000, 0.0000, 270.0000);//10
  73.     CreateObject(2942, 2072.053955, -1836.951416, 13.197434, 0.0000, 0.0000, 90.0001);//11
  74.     CreateObject(2942, 1956.735596, -2186.291016, 13.189775, 0.0000, 0.0000, 90.0000);//12
  75.     CreateObject(2942, 2394.498047, -1914.865356, 13.189775, 0.0000, 0.0000, 0.0000);//13
  76.     CreateObject(2942, 2779.040283, -1821.910034, 10.157268, 0.0000, 0.0000, 33.7500);//14
  77.     CreateObject(2942, 1196.011841, -918.630188, 42.792793, 0.0000, 0.0000, 5.1566);//15
  78.     BankPickup = CreatePickup(1242, 19, 1459.5841,-1011.0598,26.8438, -1);
  79.     print("\n--------------------------------------");
  80.     print(" Marco's Banksystem loaded.");
  81.     print("--------------------------------------\n");
  82.     return 1;
  83. }
  84.  
  85. public OnFilterScriptExit()
  86. {
  87.     for(new i=0;i<MAX_PLAYERS;i++)
  88.     {
  89.         if(IsPlayerConnected(i))
  90.         {
  91.             BankSpeichern(i);
  92.         }
  93.     }
  94.     #if defined MySQLUSE
  95.     mysql_close();
  96.     #endif
  97.     return 1;
  98. }
  99.  
  100. public OnPlayerConnect(playerid)
  101. {
  102.     #if defined MySQLUSE
  103.     format(accFormat,sizeof accFormat,"SELECT * FROM `Bank` WHERE `Spielername`='%s'",Spielername(playerid));
  104.     mysql_query(accFormat);
  105.     mysql_store_result();
  106.     if(mysql_num_rows() > 0)
  107.     {
  108.         mysql_fetch_field("HatKonto",accFormat); Bank[playerid][sHatKonto] = strval(accFormat);
  109.         mysql_fetch_field("Konto",accFormat); Bank[playerid][sKonto] = strval(accFormat);
  110.         mysql_fetch_field("BankPIN",accFormat); Bank[playerid][sBankPIN] = strval(accFormat);
  111.         mysql_fetch_field("ECKarte",accFormat); Bank[playerid][sECKarte] = strval(accFormat);
  112.     }
  113.     else
  114.     {
  115.         format(accFormat,sizeof accFormat,"INSERT INTO `Bank` (`Spielername`,`HatKonto`,`Konto`,`BankPIN`,`ECKarte`) VALUES ('%s','0','0','0','0')",
  116.         Spielername(playerid));
  117.         mysql_query(accFormat);
  118.     }
  119.     mysql_free_result();
  120.     #else
  121.     format(accFormat,sizeof accFormat,"Bank/%s.ini",Spielername(playerid));
  122.     if(fexist(accFormat))
  123.     {
  124.         Bank[playerid][sHatKonto] = dini_Int(accFormat, "HatKonto");
  125.         Bank[playerid][sKonto] = dini_Int(accFormat, "Konto");
  126.         Bank[playerid][sBankPIN] = dini_Int(accFormat, "BankPIN");
  127.         Bank[playerid][sECKarte] = dini_Int(accFormat, "ECKarte");
  128.     }
  129.     else
  130.     {
  131.         dini_Create(accFormat);
  132.         dini_IntSet(accFormat, "HatKonto", 0);
  133.         dini_IntSet(accFormat, "Konto", 0);
  134.         dini_IntSet(accFormat, "BankPIN", 0);
  135.         dini_IntSet(accFormat, "ECKarte", 0);
  136.     }
  137.     #endif
  138.     return 1;
  139. }
  140.  
  141. public OnPlayerDisconnect(playerid, reason)
  142. {
  143.     BankSpeichern(playerid);
  144.     return 1;
  145. }
  146.  
  147. public OnPlayerCommandText(playerid, cmdtext[])
  148. {
  149.     new cmd[128], idx;
  150.     cmd = strtok(cmdtext, idx);
  151.     if(strcmp(cmd, "/exit", true) == 0)
  152.     {
  153.         if(IsPlayerConnected(playerid) == 1)
  154.         {
  155.             if(IsPlayerInRangeOfPoint(playerid,10.0,2315.952880,-1.618174,26.742187))
  156.             {
  157.                 SetPlayerPos(playerid,1459.5841,-1011.0598,26.8438);
  158.                 SetPlayerInterior(playerid,0);
  159.                 SCM(playerid,COLOR_WHITE,"Willkommen in Los Santos.");
  160.             }
  161.             else
  162.             {
  163.                 SCM(playerid,COLOR_WHITE,"Du bist nicht bei der Bank");
  164.             }
  165.         }
  166.     }
  167.     if(strcmp(cmd, "/enter", true) == 0)
  168.     {
  169.         if(IsPlayerConnected(playerid) == 1)
  170.         {
  171.             if(IsPlayerInRangeOfPoint(playerid,5.0,1459.5841,-1011.0598,26.8438))
  172.             {
  173.                 SetPlayerPos(playerid,2315.952880,-1.618174,26.742187);
  174.                 SetPlayerInterior(playerid,0);
  175.                 SCM(playerid,COLOR_WHITE,"Willkommen in der LS-Bank.");
  176.             }
  177.             else
  178.             {
  179.                 SCM(playerid,COLOR_WHITE,"Du bist nicht bei der Bank");
  180.             }
  181.         }
  182.     }
  183.     if(strcmp(cmd, "/bank", true) == 0)
  184.     {
  185.         if(IsPlayerConnected(playerid) == 1)
  186.         {
  187.             if(IsPlayerInRangeOfPoint(playerid,10.0,2315.952880,-1.618174,26.742187))
  188.             {
  189.                 if(Bank[playerid][sHatKonto] == 1)
  190.                 {
  191.                     SPD(playerid,DIALOG_PIN,DIALOG_STYLE_PASSWORD,"Los Santos Bank","Bitte geben sie ihren PIN ein:","Bestätigen","Abbrechen");
  192.                 }
  193.                 else
  194.                 {
  195.                     SPD(playerid,DIALOG_KEIN_KONTO,DIALOG_STYLE_MSGBOX,"Los Santos Bank","{FFFFFF}Sie haben derzeit noch {CC0000}kein{FFFFFF} Konto.\n Möchten sie sich nun ein Konto erstellen ?","Ja","Abbrechen");
  196.                 }
  197.             }
  198.             else
  199.             {
  200.                 return SCM(playerid,COLOR_WHITE,"Du bist nicht in der Bank.");
  201.             }
  202.         }
  203.         return 1;
  204.     }
  205.     if(strcmp(cmd, "/automat", true) == 0)
  206.     {
  207.         if(IsPlayerConnected(playerid) == 1)
  208.         {
  209.             if(IsAtATM(playerid))
  210.             {
  211.                 if(Bank[playerid][sECKarte] == 1)
  212.                 {
  213.                     SPD(playerid,DIALOG_PIN,DIALOG_STYLE_PASSWORD,"Los Santos Bank","Bitte geben sie ihren PIN ein:","Bestätigen","Abbrechen");
  214.                 }
  215.                 else
  216.                 {
  217.                     SCM(playerid,COLOR_WHITE,"Du hast keine EC-Karte !");
  218.                 }
  219.             }
  220.             else
  221.             {
  222.                 return SCM(playerid,COLOR_WHITE,"Du bist an keinem Automaten.");
  223.             }
  224.         }
  225.         return 1;
  226.     }
  227.     if (strcmp("/eckarteabholen", cmdtext, true, 10) == 0)
  228.     {
  229.         if(IPC(playerid) == 1)
  230.         {
  231.             if(DarfECAbholen[playerid] == 1)
  232.             {
  233.                 SCM(playerid,COLOR_WHITE,"Du hast nun eine EC-Karte. Jetzt kannst du auch an Automaten Geld abholen!");
  234.                 SCM(playerid,COLOR_WHITE,"Ausserdem kannst du nun auch mit Deiner EC_Karte einkaufen gehen.");
  235.             }
  236.             else
  237.             {
  238.                 SCM(playerid,COLOR_WHITE,"Du hast noch keine EC-Karte beantragt oder du musst noch etwas warten.");
  239.             }
  240.         }
  241.         return 1;
  242.     }
  243.  
  244.     return 0;
  245. }
  246. public ECKarteFertig(playerid)
  247. {
  248.     DarfECAbholen[playerid] = 1;
  249.     SCM(playerid, COLOR_WHITE,"Du kanst nun deine EC-Karte in der Bank abholen. (/eckarteabholen)");
  250.     return 1;
  251. }
  252.  
  253. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  254. {
  255.     if(dialogid == DIALOG_PIN)
  256.     {
  257.         if(response == 0)
  258.         {
  259.             return SCM(playerid, COLOR_WHITE,"Bank: Vielen Dank für ihren Besuch.");
  260.         }
  261.         if(response == 1)
  262.         {
  263.             if(strlen(inputtext) == 4)
  264.             {
  265.                 format(accFormat,sizeof accFormat,"%d",Bank[playerid][sBankPIN]);
  266.                 if(strcmp(inputtext,accFormat) == 0)
  267.                 {
  268.                     SPD(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","{FFFFFF}Kontostand\r\nAbheben\r\nEinzahlen\r\nÜberweisen\r\nEC-Karte beantragen","Weiter","Abbrechen");
  269.                 }
  270.                 else
  271.                 {
  272.                     SCM(playerid,COLOR_WHITE,"PIN-Code falsch.");
  273.                 }
  274.             }
  275.             else
  276.             {
  277.                 SCM(playerid,COLOR_WHITE,"Der PIN-Code muss genau 4 Zahlen betragen.");
  278.             }
  279.         }
  280.     }
  281.     if(dialogid == DIALOG_KEIN_KONTO)
  282.     {
  283.         if(response == 0)
  284.         {
  285.             return SCM(playerid, COLOR_WHITE,"Bank: Vielen Dank für ihren Besuch.");
  286.         }
  287.         if(response == 1)
  288.         {
  289.             SPD(playerid, DIALOG_PIN_ERSTELLEN, DIALOG_STYLE_INPUT,"LS Bank - Konto erstellen","Bitte geben sie hier ihren gewünschten PIN ein.\n{CC0000}Diesen musst du dir merken !!!","Erstellen","Abbrechen");
  290.         }
  291.     }
  292.     if(dialogid == DIALOG_PIN_ERSTELLEN)
  293.     {
  294.         if(response == 0)
  295.         {
  296.             return SCM(playerid, COLOR_WHITE,"Bank: Vielen Dank für ihren Besuch.");
  297.         }
  298.         if(response == 1)
  299.         {
  300.             if(strlen(inputtext) == 4)
  301.             {
  302.                 if(isNumeric(inputtext))
  303.                 {
  304.                     new string[256];
  305.                     format(string,sizeof(string),"Ihr Konto wurde erstellt. Ihr PIN lautet: %d", strval(inputtext));
  306.                     SCM(playerid,COLOR_WHITE,string);
  307.                     Bank[playerid][sHatKonto] = 1;
  308.                     Bank[playerid][sKonto] = STARTBONUS;
  309.                     Bank[playerid][sBankPIN] = strval(inputtext);
  310.                     BankSpeichern(playerid);
  311.                 }
  312.                 else
  313.                 {
  314.                     SPD(playerid, DIALOG_PIN_ERSTELLEN, DIALOG_STYLE_INPUT,"LS Bank - Konto erstellen","Bitte geben sie hier ihren gewünschten PIN ein.\n{CC0000}Es MÜSSEN genau 4 Zahlen sein.!!!","Erstellen","Abbrechen");
  315.                 }
  316.             }
  317.             else
  318.             {
  319.                 SPD(playerid, DIALOG_PIN_ERSTELLEN, DIALOG_STYLE_INPUT,"LS Bank - Konto erstellen","Bitte geben sie hier ihren gewünschten PIN ein.\n{CC0000}Es MÜSSEN genau 4 Zahlen sein.!!!","Erstellen","Abbrechen");
  320.             }
  321.         }
  322.     }
  323.     if(dialogid == DIALOG_BANK)
  324.     {
  325.         if(response == 0)
  326.         {
  327.             return SCM(playerid, COLOR_WHITE,"Bank: Vielen Dank für ihren Besuch.");
  328.         }
  329.         if(response == 1)
  330.         {
  331.             switch(listitem)
  332.             {
  333.                 case 0://Kontostand
  334.                 {
  335.                     new string[128];
  336.                     format(string,sizeof(string),"Ihr Kontostand beträgt:\n%d$",Bank[playerid][sKonto]);
  337.                     SPD(playerid,DIALOG_KONTOSTAND,DIALOG_STYLE_MSGBOX,"LS Bank - Kontostand",string,"Ok","Zurück");
  338.                 }
  339.                 case 1://Abheben
  340.                 {
  341.                     SPD(playerid,DIALOG_ABHEBEN,DIALOG_STYLE_INPUT,"LS Bank - Geld abheben","Wieviel Geld möchten sie von ihrem Konto abheben ?","Abheben","Zurück");
  342.                 }
  343.                 case 2://Einzahlen
  344.                 {
  345.                     SPD(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"LS Bank - Geld einzahlen","Wieviel Geld möchten sie von ihrem Konto einzahlen ?","Einzahlen","Zurück");
  346.                 }
  347.                 case 3://Überweisen
  348.                 {
  349.                     SPD(playerid,DIALOG_UEBERWEISEN_ID,DIALOG_STYLE_INPUT,"LS Bank - Überweisung","An wen möchten sie das Geld überweisen ?","Weiter","Abbrechen");
  350.                 }
  351.                 case 4://EC-Karte Beantragen
  352.                 {
  353.                     if(Bank[playerid][sECKarte] == 1)
  354.                     {
  355.                         return SCM(playerid,COLOR_WHITE,"Sie besitzen schon eine EC-Karte.");
  356.                     }
  357.                     SPD(playerid,DIALOG_KARTE,DIALOG_STYLE_MSGBOX,"LS Bank - EC-Karte beantragen","Möchten sie wirklich eine EC-Karte beantragen ?","Ja","Abbrechen");
  358.                 }
  359.             }
  360.         }
  361.     }
  362.     if(dialogid == DIALOG_ABHEBEN)
  363.     {
  364.         if(response == 0)
  365.         {
  366.             return SPD(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","{FFFFFF}Kontostand\r\nAbheben\r\nEinzahlen\r\nÜberweisen\r\nEC-Karte beantragen","Weiter","Abbrechen");
  367.         }
  368.         if(response == 1)
  369.         {
  370.             if(isNumeric(inputtext))
  371.             {
  372.                 new geld = Bank[playerid][sKonto];
  373.                 new summe = strval(inputtext);
  374.                 new string[128];
  375.                 if(geld <= strval(inputtext))
  376.                 {
  377.                     SCM(playerid,COLOR_WHITE,"Du hast nicht genügend Geld auf dem Konto.");
  378.                 }
  379.                 else
  380.                 {
  381.                     GivePlayerMoney(playerid, summe);
  382.                     Bank[playerid][sKonto] -= summe;
  383.                     format(string,sizeof(string),"Sie haben %d$ von ihrem Konto abgehoben.\nAktueller Kontostand: %d", summe, Bank[playerid][sKonto]);
  384.                     SPD(playerid,DIALOG_FERTIG,DIALOG_STYLE_MSGBOX,"LS Bank - Erfolgreich",string,"Ok","");
  385.                 }
  386.             }
  387.             else
  388.             {
  389.                 return SCM(playerid,COLOR_WHITE,"Du musst Zahlen eingeben!");
  390.             }
  391.         }
  392.     }
  393.     if(dialogid == DIALOG_EINZAHLEN)
  394.     {
  395.         if(response == 0)
  396.         {
  397.             return SPD(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","{FFFFFF}Kontostand\r\nAbheben\r\nEinzahlen\r\nÜberweisen\r\nEC-Karte beantragen","Weiter","Abbrechen");
  398.         }
  399.         if(response == 1)
  400.         {
  401.             if(isNumeric(inputtext))
  402.             {
  403.                 new summe = strval(inputtext);
  404.                 new string[128];
  405.                 if(GetPlayerMoney(playerid) <= strval(inputtext))
  406.                 {
  407.                     SCM(playerid,COLOR_WHITE,"Du hast nicht genügend Geld in deiner Tasche.");
  408.                 }
  409.                 else
  410.                 {
  411.                     GivePlayerMoney(playerid, -summe);
  412.                     Bank[playerid][sKonto] += summe;
  413.                     format(string,sizeof(string),"Sie haben %d$ auf ihr Konto eingezahlt.\nAktueller Kontostand: %d", summe, Bank[playerid][sKonto]);
  414.                     SPD(playerid,DIALOG_FERTIG,DIALOG_STYLE_MSGBOX,"LS Bank - Erfolgreich",string,"Ok","");
  415.                 }
  416.             }
  417.             else
  418.             {
  419.                 return SCM(playerid,COLOR_WHITE,"Du musst zahlen eingeben !");
  420.             }
  421.         }
  422.     }
  423.     if(dialogid == DIALOG_UEBERWEISEN_ID)
  424.     {
  425.         new pID;
  426.         if(response == 0)
  427.         {
  428.             return SPD(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","{FFFFFF}Kontostand\r\nAbheben\r\nEinzahlen\r\nÜberweisen\r\nEC-Karte beantragen","Weiter","Abbrechen");
  429.         }
  430.         if(response == 1)
  431.         {
  432.             if(sscanf(inputtext,"u",pID)) return SPD(playerid,DIALOG_UEBERWEISEN_ID,DIALOG_STYLE_INPUT,"LS Bank - Überweisung","An wen möchten sie das Geld überweisen ?\n{CC0000}Ungültiger Empfänger !1","Weiter","Abbrechen");
  433.             if(!IsPlayerConnected(pID))
  434.             {
  435.                 return SPD(playerid,DIALOG_UEBERWEISEN_ID,DIALOG_STYLE_INPUT,"LS Bank - Überweisung","An wen möchten sie das Geld überweisen ?\n{CC0000}Ungültiger Empfänger !2","Weiter","Abbrechen");
  436.             }
  437.             if(Bank[pID][sHatKonto] == 0)
  438.             {
  439.                 return SCM(playerid, COLOR_WHITE,"Der Spieler hat kein Konto.");
  440.             }
  441.             if(pID == playerid)
  442.             {
  443.                 return SPD(playerid,DIALOG_UEBERWEISEN_ID,DIALOG_STYLE_INPUT,"LS Bank - Überweisung","An wen möchten sie das Geld überweisen ?\n{CC0000}Ungültiger Empfänger !3","Weiter","Abbrechen");
  444.             }
  445.             SPD(playerid,DIALOG_UEBERWEISUNG_BETRAG,DIALOG_STYLE_INPUT,"LS Bank - Überweisung","Wieviel Geld möchten sie überweisen ?","Überweisen","Abbrechen");
  446.             Ueberweiser[playerid] = pID;
  447.             Ueberweiser[pID] = playerid;
  448.         }
  449.     }
  450.     if(dialogid == DIALOG_UEBERWEISUNG_BETRAG)
  451.     {
  452.         new pID = Ueberweiser[playerid];
  453.         new str[128],str2[128];
  454.         if(response == 0)
  455.         {
  456.             return SPD(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","{FFFFFF}Kontostand\r\nAbheben\r\nEinzahlen\r\nÜberweisen\r\nEC-Karte beantragen","Weiter","Abbrechen");
  457.         }
  458.         if(response == 1)
  459.         {
  460.             if(Bank[playerid][sKonto] < strval(inputtext))
  461.             {
  462.                 return SendClientMessage(playerid,0xC8C8C8FF,"Du hast nicht genug Geld auf dem Konto!");
  463.             }
  464.             Bank[playerid][sKonto] -= strval(inputtext); //Geld wird vom Konto abgezogen
  465.             Bank[pID][sKonto] += strval(inputtext); //und hier auf das Konto des Anderen addiert.
  466.             format(str,sizeof(str),"Sie haben %d$ auf das Konto von %s überwiesen",strval(inputtext),Spielername(pID));
  467.             ShowPlayerDialog(playerid,DIALOG_FERTIG,DIALOG_STYLE_MSGBOX,"LS Bank - Erfolgreich",str,"Schließen","");
  468.             format(str2,sizeof(str2),"%s hat ihnen %d$ auf ihr Konto überwiesen",Spielername(playerid),strval(inputtext));
  469.             SendClientMessage(pID,0xC8C8C8FF,str2);
  470.         }
  471.     }
  472.     if(dialogid == DIALOG_KARTE)
  473.     {
  474.         if(response == 0)
  475.         {
  476.             return SPD(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Los Santos Bank","{FFFFFF}Kontostand\r\nAbheben\r\nEinzahlen\r\nÜberweisen\r\nEC-Karte beantragen","Weiter","Abbrechen");
  477.         }
  478.         if(response == 1)
  479.         {
  480.             SCM(playerid,COLOR_WHITE,"Ihre EC-Karte wurde beantragt. In 5 Minuten kannst du sie hier abholen.");
  481.             SetTimerEx("ECKarteFertig",300000,0,"d",playerid);
  482.         }
  483.     }
  484.     return 1;
  485. }
  486. public OnPlayerPickUpPickup(playerid, pickupid)
  487. {
  488.     if(pickupid == BankPickup)
  489.     {
  490.         GameTextForPlayer(playerid,"/enter",5000,0);
  491.         return 1;
  492.     }
  493.     return 1;
  494. }
  495. public IsAtATM(playerid)
  496. {
  497.     if(IsPlayerInRangeOfPoint(playerid, 2.0, 1505.3571,-1706.5531,14.0469) || IsPlayerInRangeOfPoint(playerid, 2.0, 1223.6383,-1743.6448,13.5971))
  498.     {
  499.         return 1;
  500.     }
  501.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 491.4543,-1733.9115,11.2632) || IsPlayerInRangeOfPoint(playerid, 2.0, 380.7548,-2022.3887,7.8359))
  502.     {
  503.         return 1;
  504.     }
  505.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 1000.1720,-922.7279,42.3281) || IsPlayerInRangeOfPoint(playerid, 2.0, 1196.0596,-919.2913,43.1502))
  506.     {
  507.         return 1;
  508.     }
  509.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 1036.0769,-1025.1725,32.1016) || IsPlayerInRangeOfPoint(playerid, 2.0, 926.2456,-1355.0319,13.3783))
  510.     {
  511.         return 1;
  512.     }
  513.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 811.2282,-1623.7705,13.5547) || IsPlayerInRangeOfPoint(playerid, 2.0, 1929.2842,-1771.2465,13.5469))
  514.     {
  515.         return 1;
  516.     }
  517.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 2104.7717,-1809.2222,13.5547) || IsPlayerInRangeOfPoint(playerid, 2.0, 2072.7190,-1836.9708,13.5545))
  518.     {
  519.         return 1;
  520.     }
  521.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 1957.3990,-2186.2932,13.5469) || IsPlayerInRangeOfPoint(playerid, 2.0, 2779.4229,-1822.4525,10.2743))
  522.     {
  523.         return 1;
  524.     }
  525.     else if (IsPlayerInRangeOfPoint(playerid, 2.0, 2394.5190,-1915.5287,13.5469))
  526.     {
  527.         return 1;
  528.     }
  529.     return 0;
  530. }
  531. stock Spielername(playerid)
  532. {
  533.     new NoName[MAX_PLAYER_NAME];
  534.     GetPlayerName(playerid,NoName,sizeof NoName);
  535.     return NoName;
  536. }
  537. strtok(const string[], &index)
  538. {
  539.     new length = strlen(string);
  540.     while ((index < length) && (string[index] <= ' '))
  541.     {
  542.         index++;
  543.     }
  544.  
  545.     new offset = index;
  546.     new result[20];
  547.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  548.     {
  549.         result[index - offset] = string[index];
  550.         index++;
  551.     }
  552.     result[index - offset] = EOS;
  553.     return result;
  554. }
  555. stock sscanf(string[], format[], {Float,_}:...)
  556. {
  557.     #if defined isnull
  558.         if (isnull(string))
  559.     #else
  560.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  561.     #endif
  562.         {
  563.             return format[0];
  564.         }
  565.     #pragma tabsize 4
  566.     new
  567.         formatPos = 0,
  568.         stringPos = 0,
  569.         paramPos = 2,
  570.         paramCount = numargs(),
  571.         delim = ' ';
  572.     while (string[stringPos] && string[stringPos] <= ' ')
  573.     {
  574.         stringPos++;
  575.     }
  576.     while (paramPos < paramCount && string[stringPos])
  577.     {
  578.         switch (format[formatPos++])
  579.         {
  580.             case '\0':
  581.             {
  582.                 return 0;
  583.             }
  584.             case 'i', 'd':
  585.             {
  586.                 new
  587.                     neg = 1,
  588.                     num = 0,
  589.                     ch = string[stringPos];
  590.                 if (ch == '-')
  591.                 {
  592.                     neg = -1;
  593.                     ch = string[++stringPos];
  594.                 }
  595.                 do
  596.                 {
  597.                     stringPos++;
  598.                     if ('0' <= ch <= '9')
  599.                     {
  600.                         num = (num * 10) + (ch - '0');
  601.                     }
  602.                     else
  603.                     {
  604.                         return -1;
  605.                     }
  606.                 }
  607.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  608.                 setarg(paramPos, 0, num * neg);
  609.             }
  610.             case 'h', 'x':
  611.             {
  612.                 new
  613.                     num = 0,
  614.                     ch = string[stringPos];
  615.                 do
  616.                 {
  617.                     stringPos++;
  618.                     switch (ch)
  619.                     {
  620.                         case 'x', 'X':
  621.                         {
  622.                             num = 0;
  623.                             continue;
  624.                         }
  625.                         case '0' .. '9':
  626.                         {
  627.                             num = (num << 4) | (ch - '0');
  628.                         }
  629.                         case 'a' .. 'f':
  630.                         {
  631.                             num = (num << 4) | (ch - ('a' - 10));
  632.                         }
  633.                         case 'A' .. 'F':
  634.                         {
  635.                             num = (num << 4) | (ch - ('A' - 10));
  636.                         }
  637.                         default:
  638.                         {
  639.                             return -1;
  640.                         }
  641.                     }
  642.                 }
  643.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  644.                 setarg(paramPos, 0, num);
  645.             }
  646.             case 'c':
  647.             {
  648.                 setarg(paramPos, 0, string[stringPos++]);
  649.             }
  650.             case 'f':
  651.             {
  652.  
  653.                 new changestr[16], changepos = 0, strpos = stringPos;
  654.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  655.                 {
  656.                     changestr[changepos++] = string[strpos++];
  657.                     }
  658.                 changestr[changepos] = '\0';
  659.                 setarg(paramPos,0,_:floatstr(changestr));
  660.             }
  661.             case 'p':
  662.             {
  663.                 delim = format[formatPos++];
  664.                 continue;
  665.             }
  666.             case '\'':
  667.             {
  668.                 new
  669.                     end = formatPos - 1,
  670.                     ch;
  671.                 while ((ch = format[++end]) && ch != '\'') {}
  672.                 if (!ch)
  673.                 {
  674.                     return -1;
  675.                 }
  676.                 format[end] = '\0';
  677.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  678.                 {
  679.                     if (format[end + 1])
  680.                     {
  681.                         return -1;
  682.                     }
  683.                     return 0;
  684.                 }
  685.                 format[end] = '\'';
  686.                 stringPos = ch + (end - formatPos);
  687.                 formatPos = end + 1;
  688.             }
  689.             case 'u':
  690.             {
  691.                 new
  692.                     end = stringPos - 1,
  693.                     id = 0,
  694.                     bool:num = true,
  695.                     ch;
  696.                 while ((ch = string[++end]) && ch != delim)
  697.                 {
  698.                     if (num)
  699.                     {
  700.                         if ('0' <= ch <= '9')
  701.                         {
  702.                             id = (id * 10) + (ch - '0');
  703.                         }
  704.                         else
  705.                         {
  706.                             num = false;
  707.                         }
  708.                     }
  709.                 }
  710.                 if (num && IsPlayerConnected(id))
  711.                 {
  712.                     setarg(paramPos, 0, id);
  713.                 }
  714.                 else
  715.                 {
  716.                     #if !defined foreach
  717.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  718.                         #define __SSCANF_FOREACH__
  719.                     #endif
  720.                     string[end] = '\0';
  721.                     num = false;
  722.                     new
  723.                         name[MAX_PLAYER_NAME];
  724.                     id = end - stringPos;
  725.                     foreach (Player, playerid)
  726.                     {
  727.                         GetPlayerName(playerid, name, sizeof (name));
  728.                         if (!strcmp(name, string[stringPos], true, id))
  729.                         {
  730.                             setarg(paramPos, 0, playerid);
  731.                             num = true;
  732.                             break;
  733.                         }
  734.                     }
  735.                     if (!num)
  736.                     {
  737.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  738.                     }
  739.                     string[end] = ch;
  740.                     #if defined __SSCANF_FOREACH__
  741.                         #undef foreach
  742.                         #undef __SSCANF_FOREACH__
  743.                     #endif
  744.                 }
  745.                 stringPos = end;
  746.             }
  747.             case 's', 'z':
  748.             {
  749.                 new
  750.                     i = 0,
  751.                     ch;
  752.                 if (format[formatPos])
  753.                 {
  754.                     while ((ch = string[stringPos++]) && ch != delim)
  755.                     {
  756.                         setarg(paramPos, i++, ch);
  757.                     }
  758.                     if (!i)
  759.                     {
  760.                         return -1;
  761.                     }
  762.                 }
  763.                 else
  764.                 {
  765.                     while ((ch = string[stringPos++]))
  766.                     {
  767.                         setarg(paramPos, i++, ch);
  768.                     }
  769.                 }
  770.                 stringPos--;
  771.                 setarg(paramPos, i, '\0');
  772.             }
  773.             default:
  774.             {
  775.                 continue;
  776.             }
  777.         }
  778.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  779.         {
  780.             stringPos++;
  781.         }
  782.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  783.         {
  784.             stringPos++;
  785.         }
  786.         paramPos++;
  787.     }
  788.     do
  789.     {
  790.         if ((delim = format[formatPos++]) > ' ')
  791.         {
  792.             if (delim == '\'')
  793.             {
  794.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  795.             }
  796.             else if (delim != 'z')
  797.             {
  798.                 return delim;
  799.             }
  800.         }
  801.     }
  802.     while (delim > ' ');
  803.     return 0;
  804. }
  805. stock isNumeric(const string[]) {
  806.     new length=strlen(string);
  807.     if (length==0) return false;
  808.     for (new i = 0; i < length; i++) {
  809.         if (
  810.         (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
  811.         || (string[i]=='-' && i!=0)                                             // A '-' but not at first.
  812.         || (string[i]=='+' && i!=0)                                             // A '+' but not at first.
  813.         ) return false;
  814.     }
  815.     if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  816.     return true;
  817. }
  818. BankSpeichern(playerid)
  819. {
  820.     #if defined MySQLUSE
  821.     format(accFormat,sizeof accFormat,"UPDATE `Bank` SET `HatKonto`='%d',`Konto`='%d',`BankPIN`='%d',`ECKarte`='%d' WHERE `Spielername`='%s'",
  822.     Bank[playerid][sHatKonto],
  823.     Bank[playerid][sKonto],
  824.     Bank[playerid][sBankPIN],
  825.     Bank[playerid][sECKarte],
  826.     Spielername(playerid));
  827.     mysql_query(accFormat);
  828.     #else
  829.     if(fexist(accFormat))
  830.     {
  831.         dini_IntSet(accFormat,"HatKonto",Bank[playerid][sHatKonto]);
  832.         dini_IntSet(accFormat,"Konto",Bank[playerid][sKonto]);
  833.         dini_IntSet(accFormat,"BankPIN",Bank[playerid][sBankPIN]);
  834.         dini_IntSet(accFormat,"ECKarte",Bank[playerid][sECKarte]);
  835.     }
  836.     #endif
  837. }
  838.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement