Advertisement
OtaconEvil

[INC] Cash Register System in SA-MP By OTACON

Jul 28th, 2013
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.02 KB | None | 0 0
  1. /*
  2.              Prohibido TOTALMENTE el Robo de Créditos o la
  3.               Publicación de este INCLUDE sin Mi Permiso.
  4.  
  5.                      FULLY spaces Theft Credit or
  6.            Publication of this INCLUDE without my permission.
  7.  
  8.         SIMPLE INCLUDE --> Cash Register System in SA-MP
  9.         CREDITOS: OTACON ;)
  10.         NOTA: Menos Creditos para los que me los critican.. JO'PUTAS! :D xD ;)
  11. */
  12. /*
  13.     native CreateCashRegister(_slot, Float:_posX, Float:_posY, Float:_posZ, Float:_posrX, Float:_posrY, Float:_posrZ); //para crear la caja registradora.
  14.     native DestroyCashRegister(_slot); //para destruir la caja registradora.
  15.     native IsPlayerInRangeOfCashRegister(playerid, Float:_distance); //para verificar si el player se encuentra cerca de una caja registradora.
  16.     native UpdateCashRegister(_slot); //para actualizar los datos de dinero de una caja registradora.
  17.     native GiveMoneyFromCashRegister(playerid, _cant); //para retirar una cantidad especifica de dinero de la caja registradora.
  18.     native PutMoneyInCashRegister(playerid, _cant); //para colocar una cantidad especifica de dinero de la caja registradora, restandosela al player.
  19.     native CountCashRegister(); //cuenta todas las cajas registradoras que hay creadas.
  20.     native DestroyCashRegisterAll(); //destruye todas las cajas registradoras creadas.
  21.     native GetMoneyInCashRegister(playerid); //verifica si la caja correspondiente tiene dinero.
  22. */
  23. // ========== [ -|- FUNCTION -|- ] ==========
  24. #define DIS_CASH 2.0
  25. #define OBJ_CASH (2369)
  26. #define MAX_SLOTS (200)
  27. enum box {
  28.     _ObjectCashRegister[MAX_SLOTS],
  29.     Text3D:_LabelCashRegister[MAX_SLOTS],
  30.     _MoneyCashRegister[MAX_SLOTS],
  31. };
  32. new CashRegister[box];
  33. stock CreateCashRegister(_slot, Float:_posX, Float:_posY, Float:_posZ, Float:_posrX, Float:_posrY, Float:_posrZ) {
  34.     CashRegister[_ObjectCashRegister][_slot]=CreateObject(OBJ_CASH, _posX, _posY, _posZ, _posrX, _posrY, _posrZ);
  35.     CashRegister[_LabelCashRegister][_slot]=Create3DTextLabel("_", -1, _posX, _posY, _posZ+1, 3.0, 0, 0);
  36.     CashRegister[_MoneyCashRegister][_slot]=0;
  37.     UpdateCashRegister(_slot);
  38. }
  39. stock DestroyCashRegister(_slot) {
  40.     DestroyObject(CashRegister[_ObjectCashRegister][_slot]);
  41.     Delete3DTextLabel(CashRegister[_LabelCashRegister][_slot]);
  42.     CashRegister[_MoneyCashRegister][_slot]=0;
  43. }
  44. stock IsPlayerInRangeOfCashRegister(playerid, Float:_distance) {
  45.     new Float:_posbox[4], Float:_playerbox[3];
  46.     for(new _slots=0; _slots<MAX_SLOTS; _slots++) {
  47.         if(!IsValidObject(CashRegister[_ObjectCashRegister][_slots])) continue;
  48.         GetPlayerPos(playerid, _playerbox[0], _playerbox[1], _playerbox[2]);
  49.         GetObjectPos(CashRegister[_ObjectCashRegister][_slots],_posbox[0],_posbox[1],_posbox[2]);
  50.         _posbox[3] = floatsqroot(floatpower(floatabs(floatsub(_playerbox[0],_posbox[0])),2)+ floatpower(floatabs(floatsub(_playerbox[1],_posbox[1])),2)+ floatpower(floatabs(floatsub(_playerbox[2],_posbox[2])),2));
  51.         if(_posbox[3] < _distance) return true;
  52.     } return false;
  53. }
  54. stock UpdateCashRegister(_slot) {
  55.     new _data[100];
  56.     format(_data,sizeof(_data), "{3FA900}Dinero en \nRegistradora: \n{FFFFFF}$%02d.0", CashRegister[_MoneyCashRegister][_slot]);
  57.     Update3DTextLabelText(CashRegister[_LabelCashRegister][_slot], -1, _data);
  58. }
  59. stock DestroyCashRegisterAll() {
  60.     for(new _slots=0; _slots<MAX_SLOTS; _slots++) {
  61.         if(!IsValidObject(CashRegister[_ObjectCashRegister][_slots])) continue;
  62.         DestroyCashRegister(_slots);
  63.     }
  64. }
  65. stock CountCashRegister() {
  66.     new count=0;
  67.     for(new _slots=0; _slots<MAX_SLOTS; _slots++) {
  68.         if(!IsValidObject(CashRegister[_ObjectCashRegister][_slots])) continue;
  69.         count++;
  70.     } return count;
  71. }
  72. stock GiveMoneyFromCashRegister(playerid, _cant) {
  73.     new Float:_posbox[4], Float:_playerbox[3];
  74.     for(new _slots=0; _slots<MAX_SLOTS; _slots++) {
  75.         if(!IsValidObject(CashRegister[_ObjectCashRegister][_slots])) continue;
  76.         GetPlayerPos(playerid, _playerbox[0], _playerbox[1], _playerbox[2]);
  77.         GetObjectPos(CashRegister[_ObjectCashRegister][_slots],_posbox[0],_posbox[1],_posbox[2]);
  78.         _posbox[3] = floatsqroot(floatpower(floatabs(floatsub(_playerbox[0],_posbox[0])),2)+ floatpower(floatabs(floatsub(_playerbox[1],_posbox[1])),2)+ floatpower(floatabs(floatsub(_playerbox[2],_posbox[2])),2));
  79.         if(_posbox[3] < DIS_CASH) {
  80.             if(CashRegister[_MoneyCashRegister][_slots]<=0) return false;
  81.             GivePlayerMoney(playerid, (0+_cant));
  82.             CashRegister[_MoneyCashRegister][_slots]-=_cant;
  83.             UpdateCashRegister(_slots);
  84.         }
  85.     } return true;
  86. }
  87. stock PutMoneyInCashRegister(playerid, _cant) {
  88.     new Float:_posbox[4], Float:_playerbox[3];
  89.     for(new _slots=0; _slots<MAX_SLOTS; _slots++) {
  90.         if(!IsValidObject(CashRegister[_ObjectCashRegister][_slots])) continue;
  91.         GetPlayerPos(playerid, _playerbox[0], _playerbox[1], _playerbox[2]);
  92.         GetObjectPos(CashRegister[_ObjectCashRegister][_slots],_posbox[0],_posbox[1],_posbox[2]);
  93.         _posbox[3] = floatsqroot(floatpower(floatabs(floatsub(_playerbox[0],_posbox[0])),2)+ floatpower(floatabs(floatsub(_playerbox[1],_posbox[1])),2)+ floatpower(floatabs(floatsub(_playerbox[2],_posbox[2])),2));
  94.         if(_posbox[3] < DIS_CASH) {
  95.             if(_cant>GetPlayerMoney(playerid)||GetPlayerMoney(playerid)<_cant) return false;
  96.             GivePlayerMoney(playerid, (0-_cant));
  97.             CashRegister[_MoneyCashRegister][_slots]+=_cant;
  98.             UpdateCashRegister(_slots);
  99.         }
  100.     } return true;
  101. }
  102. stock GetMoneyInCashRegister(playerid) {
  103.     new Float:_posbox[4], Float:_playerbox[3];
  104.     for(new _slots=0; _slots<MAX_SLOTS; _slots++) {
  105.         if(!IsValidObject(CashRegister[_ObjectCashRegister][_slots])) continue;
  106.         GetPlayerPos(playerid, _playerbox[0], _playerbox[1], _playerbox[2]);
  107.         GetObjectPos(CashRegister[_ObjectCashRegister][_slots],_posbox[0],_posbox[1],_posbox[2]);
  108.         _posbox[3] = floatsqroot(floatpower(floatabs(floatsub(_playerbox[0],_posbox[0])),2)+ floatpower(floatabs(floatsub(_playerbox[1],_posbox[1])),2)+ floatpower(floatabs(floatsub(_playerbox[2],_posbox[2])),2));
  109.         if(_posbox[3] < DIS_CASH) return CashRegister[_MoneyCashRegister][_slots];
  110.     } return true;
  111. }
  112. // ========== [ -|- FUNCTION -|- ] ==========
  113. /*
  114.     #include <a_samp>
  115.     #include <zcmd>
  116.     #include <a_CashRegister>
  117.  
  118.     public OnFilterScriptInit() {
  119.         print("\n**************************************");
  120.         print("     Cash Register System in SA-MP      ");
  121.         print("           Date: 23/07/2013             ");
  122.         print("            Author: OTACON              ");
  123.         print("     --* Loaded with Success!!. *--     ");
  124.         print("***************************************\n");
  125.  
  126.         CreateCashRegister(0, -2674.64355, 267.79822, 3.32653,   0.00000, 0.00000, 0.00000);
  127.         CreateCashRegister(1, -2677.96436, 267.79922, 3.32653,   0.00000, 0.00000, 0.00000);
  128.         CreateCashRegister(2, -2681.52490, 267.79755, 3.32653,   0.00000, 0.00000, 0.00000);
  129.         CreateCashRegister(3, -2671.36157, 267.61661, 3.32653,   0.00000, 0.00000, 0.00000);
  130.         CreateCashRegister(4, -2684.68579, 267.89069, 3.32653,   0.00000, 0.00000, 0.00000);
  131.         CreateCashRegister(5, -2688.02539, 268.00455, 3.32653,   0.00000, 0.00000, 0.00000);
  132.         CreateCashRegister(6, -2691.34619, 267.99829, 3.32653,   0.00000, 0.00000, 0.00000);
  133.         CreateCashRegister(7, -2694.72437, 268.12247, 3.32653,   0.00000, 0.00000, 0.00000);
  134.         CreateCashRegister(8, -2668.12427, 267.47256, 3.32653,   0.00000, 0.00000, 0.00000);
  135.         CreateCashRegister(9, -2664.72852, 267.28238, 3.32653,   0.00000, 0.00000, 0.00000);
  136.         CreateCashRegister(10, -2661.40698, 267.19272, 3.32653,   0.00000, 0.00000, 0.00000);
  137.         CreateCashRegister(11, -2658.32715, 267.10367, 3.32653,   0.00000, 0.00000, 0.00000);
  138.         return true;
  139.     }
  140.     public OnFilterScriptExit() {
  141.         print("\n**************************************");
  142.         print("     Cash Register System in SA-MP      ");
  143.         print("           Date: 23/07/2013             ");
  144.         print("            Author: OTACON              ");
  145.         print("   --* Downloaded with Success!!. *--   ");
  146.         print("***************************************\n");
  147.  
  148.         DestroyCashRegister(0);
  149.         DestroyCashRegister(1);
  150.         DestroyCashRegister(2);
  151.         DestroyCashRegister(3);
  152.         DestroyCashRegister(4);
  153.         DestroyCashRegister(5);
  154.         DestroyCashRegister(6);
  155.         DestroyCashRegister(7);
  156.         DestroyCashRegister(8);
  157.         DestroyCashRegister(9);
  158.         DestroyCashRegister(10);
  159.         return true;
  160.     }
  161.     COMMAND:test1(playerid, params[]) {
  162.         if(!IsPlayerInRangeOfCashRegister(playerid, 2.0)) return SendClientMessage(playerid,-1,"usted no se encuentra cerca de una caja registradora.");
  163.         if(GetPlayerMoney(playerid)<=0) return SendClientMessage(playerid,-1,"usted no tiene mas dinero encima.");
  164.         PutMoneyInCashRegister(playerid, 5000);
  165.         SendClientMessage(playerid,-1,"Has colocado $5000 en la caja registradora");
  166.         return true;
  167.     }
  168.     COMMAND:test2(playerid, params[]) {
  169.         if(!IsPlayerInRangeOfCashRegister(playerid, 2.0)) return SendClientMessage(playerid,-1,"usted no se encuentra cerca de una caja registradora.");
  170.         if(GetMoneyInCashRegister(playerid)<=0) return SendClientMessage(playerid,-1,"esta caja registradora no tiene mas dinero.");
  171.         GiveMoneyFromCashRegister(playerid, 100);
  172.         SendClientMessage(playerid,-1,"Has quitado $100 de la caja registradora");
  173.         return true;
  174.     }
  175.     COMMAND:test3(playerid, params[]) {
  176.         new _info[100];
  177.         format(_info,sizeof(_info),"Hay %d xajas registradoras creadas.",CountCashRegister());
  178.         SendClientMessage(playerid,-1,_info);
  179.         return true;
  180.     }
  181.     COMMAND:test4(playerid, params[]) {
  182.         DestroyCashRegisterAll();
  183.         SendClientMessage(playerid,-1,"Has destruido todas las cajas registradoras creadas");
  184.         return true;
  185.     }
  186. */
  187. /*
  188.              Prohibido TOTALMENTE el Robo de Créditos o la
  189.               Publicación de este INCLUDE sin Mi Permiso.
  190.  
  191.                      FULLY spaces Theft Credit or
  192.            Publication of this INCLUDE without my permission.
  193.  
  194.         SIMPLE INCLUDE --> Cash Register System in SA-MP
  195.         CREDITOS: OTACON ;)
  196.         NOTA: Menos Creditos para los que me los critican.. JO'PUTAS! :D xD ;)
  197. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement