Advertisement
Guest User

ATM System by EQU

a guest
Sep 25th, 2014
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.99 KB | None | 0 0
  1. ///////////////////////////////////////////////////////////////////
  2. //                      ATM SYSTEM BY EQU                        //
  3. ///////////////////////////////////////////////////////////////////
  4. //                       !!Wichtig!!                             //
  5. // Passt die Abfragen wie Geld, Kontostand etc.. euer Script an!!//
  6. ///////////////////////////////////////////////////////////////////
  7.  
  8. #include <a_samp>
  9. #include <ocmd>
  10. #include <dini>
  11. #include <sscanf2>
  12.  
  13. // FARBEN
  14. #define     HBLAU   "{00E0E6}"
  15. #define     HWEIS   "{FFFFFF}"
  16. #define     HGRUN      "{5FD84A}"
  17. #define     HORANGE    "{E4AD21}"
  18.  
  19. #define     BLAU                            0x0087FFFF
  20. #define     WEIS                            0xC8C8C8FF
  21. #define     ORANGE                          0xFFAA00FF
  22. #define     HELLROT                         0xD83A37CA
  23. #define     DUNKELROT                       0x870000FF
  24.  
  25. enum SpielerDaten
  26. {
  27.     pAdminlevel,
  28.     pKontostand,
  29.     pGeld,
  30. }
  31.  
  32. new PlayerDaten[MAX_PLAYERS][SpielerDaten];
  33.  
  34. enum
  35. {
  36.     DIALOG_ATMHILFE,
  37. }
  38.  
  39. enum AInfo
  40. {
  41.     atmname[16],
  42.     Float:atmx,
  43.     Float:atmy,
  44.     Float:atmz,
  45.     Float:atmxrot,
  46.     Float:atmyrot,
  47.     Float:atmzrot,
  48.     atmobjectid,
  49.     atm_objekt,
  50.     ATMVirtualID,
  51.     Text3D:atm_label
  52. }
  53.  
  54. #define MAXIMUM_ATMS 30
  55. new ATMInfo[MAXIMUM_ATMS][AInfo];
  56.  
  57. ocmd:delatm(playerid,params[])
  58. {
  59.     new id, string[80], string2[80];
  60.     new ExistsATM[20];
  61.     if(PlayerDaten[playerid][pAdminlevel] != 1)return SendClientMessage(playerid,DUNKELROT," Du hast kein Zugriff auf diesen Befehl!"); // ANPASSEN!!
  62.     if(sscanf(params,"i",id)) return SendClientMessage(playerid,ORANGE," Benutzung: /delatm [ID]");
  63.     format(ExistsATM,sizeof(ExistsATM),"/ATM/%d.ini",id);
  64.     if(dini_Exists(ExistsATM))
  65.     {
  66.         format(string,sizeof(string),""#HWEIS"Geldautomat"#HGRUN"(Nr.%i) "#HWEIS"wurde gelöscht!",id);
  67.         print(string);
  68.         SendClientMessage(playerid,WEIS,string);
  69.         DelATM(id);
  70.     }
  71.     else
  72.     {
  73.         format(string2,sizeof(string2),""#HWEIS"Geldautomat mit der "#HROT"(Nr.%i) "#HWEIS"Existiert nicht!",id);
  74.         SendClientMessage(playerid,WEIS,string2);
  75.     }
  76.     return 1;
  77. }
  78.  
  79. ocmd:atmhilfe(playerid)
  80. {
  81.     new string[185];
  82.     format(string,sizeof(string), ""#HWEIS" /einzahlen (Wird verwendet um Geld einzuzahlen)\n /auszahlen (Wird verwendet um Geld auszuzahlen)\n /uberweisen (Wird verwendet um Geld an einem anderne Mitspieler zu Überweisen)");
  83.     ShowPlayerDialog(playerid, DIALOG_ATMHILFE, DIALOG_STYLE_MSGBOX, "ATM - Hilfe",string,"Schließen","");
  84.     return 1;
  85. }
  86.  
  87. ocmd:einzahlen(playerid,params[])
  88. {
  89.     new bool:atmfound = false;
  90.     for(new atmid=1;atmid<MAXIMUM_ATMS;atmid++)
  91.     {
  92.         if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
  93.         {
  94.             new pID, geldmenge;
  95.             if(sscanf(params,"d", geldmenge))return SendClientMessage(playerid, ORANGE, "Benutzung: /einzahlen [Geldmenge]");
  96.             if(PlayerDaten[playerid][pGeld] < geldmenge)return SendClientMessage(playerid, ORANGE, " Nicht genügend Geld!");
  97.             {
  98.                 new string[60];
  99.                 format(string, sizeof(string), " Es wurden %d$ Eingezahlt.", geldmenge);
  100.                 SendClientMessage(pID, ORANGE, string);
  101.                 PlayerDaten[playerid][pKontostand] += geldmenge;
  102.                 PlayerDaten[playerid][pGeld] -= geldmenge;
  103.                 return 1;
  104.             }
  105.         }
  106.     }
  107.     if(atmfound == false)SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
  108.     return 1;
  109. }
  110.  
  111. ocmd:auszahlen(playerid,params[])
  112. {
  113.     new bool:atmfound = false;
  114.     for(new atmid=1;atmid<MAXIMUM_ATMS;atmid++)
  115.     {
  116.         if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
  117.         {
  118.             new pID, geldmenge;
  119.             if(sscanf(params,"d", geldmenge))return SendClientMessage(playerid, ORANGE, "Benutzung: /auszahlen [Geldmenge]");
  120.             if(PlayerDaten[playerid][pKontostand] < geldmenge)return SendClientMessage(playerid, ORANGE, " Nicht genügend Geld auf dem Konto!");
  121.             {
  122.                 new string[60];
  123.                 format(string, sizeof(string), " Es wurden %d$ Ausgezahlt.", geldmenge);
  124.                 SendClientMessage(pID, ORANGE, string);
  125.                 PlayerDaten[playerid][pKontostand] -= geldmenge;
  126.                 PlayerDaten[playerid][pGeld] += geldmenge;
  127.                 return 1;
  128.             }
  129.         }
  130.     }
  131.     if(atmfound == false)SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
  132.     return 1;
  133. }
  134.  
  135. ocmd:uberweisen(playerid,params[])
  136. {
  137.     new bool:atmfound = false;
  138.     for(new atmid=1;atmid<MAXIMUM_ATMS;atmid++)
  139.     {
  140.         if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
  141.         {
  142.             new pID, geldmenge;
  143.             new name[MAX_PLAYER_NAME];
  144.             GetPlayerName(playerid,name,sizeof(name));
  145.             if(sscanf(params,"ud", pID, geldmenge))return SendClientMessage(playerid, ORANGE, "Benutzung: /uberweisung [Name/ID] [Geldmenge]");
  146.             if(playerid == pID)return SendClientMessage(playerid, ORANGE, " Du kannst dir nicht selber Geld überweisen!");
  147.             if(!IsPlayerConnected(pID))return SendClientMessage(playerid, ORANGE, " Angegebender Spieler ist nicht Online!");
  148.             {
  149.                 new string[60];
  150.                 format(string, sizeof(string), " Es wurden %d$ an %s Überwiesen.", geldmenge, name[pID]);
  151.                 SendClientMessage(playerid, ORANGE, string);
  152.                 format(string, sizeof(string), " %s hat dir %d$ Überwiesen.", name[playerid], geldmenge);
  153.                 SendClientMessage(pID, ORANGE, string);
  154.                 PlayerDaten[playerid][pKontostand] -= geldmenge;
  155.                 PlayerDaten[pID][pKontostand] += geldmenge;
  156.                 return 1;
  157.             }
  158.         }
  159.     }
  160.     if(atmfound == false)SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
  161.     return 1;
  162. }
  163.  
  164. ocmd:catm(playerid,params[])
  165. {
  166.     if(PlayerDaten[playerid][pAdminlevel] != 1)return SendClientMessage(playerid,DUNKELROT ," Du hast kein Zugriff auf diesen Befehl!"); // ANPASSEN!!
  167.     {
  168.         new Float:x,Float:y,Float:z,string[140], rotation, atmgeldmenge;
  169.         new pVirtualID = GetPlayerVirtualWorld(playerid);
  170.         if(sscanf(params, "id", rotation, atmgeldmenge)) return SendClientMessage(playerid,ORANGE,"Benutzung: /catm [rotationation: 90, 180, 270, 360] [Wie viel Geld soll der ATM besitzen?]");
  171.         if(rotation != 90 && rotation != 180 && rotation != 270 && rotation != 360) return SendClientMessage(playerid,ORANGE,"Es sind nur Rotationen von 90, 180, 270 oder 360 erlaubt!");
  172.         GetPlayerPos(playerid,x,y,z);
  173.         format(string,sizeof(string),""#HWEIS"Erstellt an: "#HWEIS"X: "#HBLAU"%f "#HWEIS"Y: "#HBLAU"%f "#HWEIS"Z: "#HBLAU"%f", x, y, z);
  174.         SendClientMessage(playerid, WEIS, string);
  175.         SetPlayerPos(playerid,x,y,z+2);
  176.         CATM(x, y, z, rotation, pVirtualID);
  177.     }
  178.     return 1;
  179. }
  180.  
  181. stock DelATM(atmid)
  182. {
  183.     new pfad[50];
  184.     format(pfad,50,"/ATM/%d.ini",atmid);
  185.     DestroyObject(ATMInfo[atmid][atm_objekt]);
  186.     Delete3DTextLabel(ATMInfo[atmid][atm_label]);
  187.     new string[128];
  188.     format(string,sizeof(string)," Geldautomat mit der Nr.%d wurde aus der Datenbank entfernt!",atmid);
  189.     print(string);
  190.     dini_Remove(pfad);
  191.     return 1;
  192. }
  193.  
  194. stock SaveATM(atmid)
  195. {
  196.     new BDatei[64];
  197.     format(BDatei,50,"/ATM/%d.ini",atmid);
  198.     dini_Set(BDatei,"Object",ATMInfo[atmid][atmobjectid]);
  199.     dini_Set(BDatei,"Text",ATMInfo[atmid][atmname]);
  200.     dini_Set(BDatei,"Text",ATMInfo[atmid][atmname]);
  201.     dini_FloatSet(BDatei,"X",ATMInfo[atmid][atmx]);
  202.     dini_FloatSet(BDatei,"Y",ATMInfo[atmid][atmy]);
  203.     dini_FloatSet(BDatei,"Z",ATMInfo[atmid][atmz]);
  204.     dini_FloatSet(BDatei,"XRot",ATMInfo[atmid][atmxrot]);
  205.     dini_FloatSet(BDatei,"YRot",ATMInfo[atmid][atmyrot]);
  206.     return 1;
  207. }
  208.  
  209. stock CATM(Float:x,Float:y,Float:z, rotation, pVirtualID)
  210. {
  211.     new BDatei[64];
  212.     for(new atmid=1;atmid<MAXIMUM_ATMS;atmid++)
  213.     {
  214.         format(BDatei,50,"/ATM/%d.ini",atmid);
  215.         if(!fexist(BDatei))
  216.         {
  217.             dini_Create(BDatei);
  218.             dini_Set(BDatei,"Text", "Test");
  219.             dini_IntSet(BDatei,"Object",2942);
  220.             dini_FloatSet(BDatei,"X",x);
  221.             dini_FloatSet(BDatei,"Y",y);
  222.             dini_FloatSet(BDatei,"Z",z);
  223.             dini_FloatSet(BDatei,"XRot",0.000000);
  224.             dini_FloatSet(BDatei,"YRot",0.000000);
  225.             dini_FloatSet(BDatei,"ZRot", rotation);
  226.             dini_IntSet(BDatei,"VirtualID", pVirtualID);
  227.             return LATM(atmid);
  228.         }
  229.     }
  230.     return 1;
  231. }
  232.  
  233. stock LATM(atmid)
  234. {
  235.     new BDatei[64], string[32];
  236.     format(BDatei,50,"/ATM/%d.ini",atmid);
  237.     if(!fexist(BDatei))return 0;
  238.     format(ATMInfo[atmid][atmname],32,"%s",dini_Get(BDatei,"Text"));
  239.     ATMInfo[atmid][atmobjectid] = dini_Int(BDatei,"Object");
  240.     ATMInfo[atmid][ATMVirtualID] = dini_Int(BDatei,"VirtualID");
  241.     ATMInfo[atmid][atmx] = dini_Float(BDatei,"X");
  242.     ATMInfo[atmid][atmy] = dini_Float(BDatei,"Y");
  243.     ATMInfo[atmid][atmz] = dini_Float(BDatei,"Z");
  244.     ATMInfo[atmid][atmxrot] = dini_Float(BDatei,"XRot");
  245.     ATMInfo[atmid][atmyrot] = dini_Float(BDatei,"YRot");
  246.     ATMInfo[atmid][atmzrot] = dini_Float(BDatei,"ZRot");
  247.     ATMInfo[atmid][atm_objekt] = CreateObject(2942, ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]-0.4, ATMInfo[atmid][atmxrot],ATMInfo[atmid][atmyrot],ATMInfo[atmid][atmzrot],1000);
  248.     format(string,sizeof(string),"Bankautmat (Nr.%i) - /atm",atmid);
  249.     ATMInfo[atmid][atm_label] = Create3DTextLabel(string,BLAU, ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz], 40.0, ATMInfo[atmid][ATMVirtualID], 0);
  250.     return 1;
  251. }
  252.  
  253. main()
  254. {
  255.     print("\n----------------------------------");
  256.     print(" ATM System by EQU");
  257.     print("----------------------------------\n");
  258. }
  259.  
  260. public OnGameModeInit()
  261. {
  262.  
  263.     SetGameModeText("Blank Script");
  264.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  265.     for(new atmid=1;atmid<MAXIMUM_ATMS;atmid++)
  266.     {
  267.         LATM(atmid);
  268.     }
  269.     return 1;
  270. }
  271.  
  272. public OnGameModeExit()
  273. {
  274.     for(new atmid=1;atmid<MAXIMUM_ATMS;atmid++)
  275.     {
  276.         SaveATM(atmid);
  277.     }
  278.     return 1;
  279. }
  280.  
  281. public OnPlayerRequestClass(playerid, classid)
  282. {
  283.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  284.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  285.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  286.     return 1;
  287. }
  288.  
  289. public OnPlayerConnect(playerid)
  290. {
  291.     return 1;
  292. }
  293.  
  294. public OnPlayerDisconnect(playerid, reason)
  295. {
  296.     return 1;
  297. }
  298.  
  299. public OnPlayerSpawn(playerid)
  300. {
  301.     return 1;
  302. }
  303.  
  304. public OnPlayerDeath(playerid, killerid, reason)
  305. {
  306.     return 1;
  307. }
  308.  
  309. public OnVehicleSpawn(vehicleid)
  310. {
  311.     return 1;
  312. }
  313.  
  314. public OnVehicleDeath(vehicleid, killerid)
  315. {
  316.     return 1;
  317. }
  318.  
  319. public OnPlayerText(playerid, text[])
  320. {
  321.     return 1;
  322. }
  323.  
  324. public OnPlayerCommandText(playerid, cmdtext[])
  325. {
  326.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  327.     {
  328.         // Do something here
  329.         return 1;
  330.     }
  331.     return 0;
  332. }
  333.  
  334. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  335. {
  336.     return 1;
  337. }
  338.  
  339. public OnPlayerExitVehicle(playerid, vehicleid)
  340. {
  341.     return 1;
  342. }
  343.  
  344. public OnPlayerStateChange(playerid, newstate, oldstate)
  345. {
  346.     return 1;
  347. }
  348.  
  349. public OnPlayerEnterCheckpoint(playerid)
  350. {
  351.     return 1;
  352. }
  353.  
  354. public OnPlayerLeaveCheckpoint(playerid)
  355. {
  356.     return 1;
  357. }
  358.  
  359. public OnPlayerEnterRaceCheckpoint(playerid)
  360. {
  361.     return 1;
  362. }
  363.  
  364. public OnPlayerLeaveRaceCheckpoint(playerid)
  365. {
  366.     return 1;
  367. }
  368.  
  369. public OnRconCommand(cmd[])
  370. {
  371.     return 1;
  372. }
  373.  
  374. public OnPlayerRequestSpawn(playerid)
  375. {
  376.     return 1;
  377. }
  378.  
  379. public OnObjectMoved(objectid)
  380. {
  381.     return 1;
  382. }
  383.  
  384. public OnPlayerObjectMoved(playerid, objectid)
  385. {
  386.     return 1;
  387. }
  388.  
  389. public OnPlayerPickUpPickup(playerid, pickupid)
  390. {
  391.     return 1;
  392. }
  393.  
  394. public OnVehicleMod(playerid, vehicleid, componentid)
  395. {
  396.     return 1;
  397. }
  398.  
  399. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  400. {
  401.     return 1;
  402. }
  403.  
  404. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  405. {
  406.     return 1;
  407. }
  408.  
  409. public OnPlayerSelectedMenuRow(playerid, row)
  410. {
  411.     return 1;
  412. }
  413.  
  414. public OnPlayerExitedMenu(playerid)
  415. {
  416.     return 1;
  417. }
  418.  
  419. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  420. {
  421.     return 1;
  422. }
  423.  
  424. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  425. {
  426.     return 1;
  427. }
  428.  
  429. public OnRconLoginAttempt(ip[], password[], success)
  430. {
  431.     return 1;
  432. }
  433.  
  434. public OnPlayerUpdate(playerid)
  435. {
  436.     return 1;
  437. }
  438.  
  439. public OnPlayerStreamIn(playerid, forplayerid)
  440. {
  441.     return 1;
  442. }
  443.  
  444. public OnPlayerStreamOut(playerid, forplayerid)
  445. {
  446.     return 1;
  447. }
  448.  
  449. public OnVehicleStreamIn(vehicleid, forplayerid)
  450. {
  451.     return 1;
  452. }
  453.  
  454. public OnVehicleStreamOut(vehicleid, forplayerid)
  455. {
  456.     return 1;
  457. }
  458.  
  459. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  460. {
  461.     return 1;
  462. }
  463.  
  464. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  465. {
  466.     return 1;
  467. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement