BlueRey

Bank System By: BlueRey

Mar 10th, 2012
660
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.60 KB | None | 0 0
  1. /*
  2.      Bank System By: BlueRey
  3.  
  4.      Version: 0.1
  5.      Created: 01/01/2010 - 22:30
  6.  
  7. */
  8. #include a_samp
  9. #include dini
  10. #include dudb
  11. #include cpstream
  12. //==============================================================================
  13. new BankCP;
  14. new BankDor;
  15. new BankExit;
  16. new str[128];
  17. new Interior[MAX_PLAYERS];
  18. new BankMoney[MAX_PLAYERS];
  19. new Float:Pos[MAX_PLAYERS][4];
  20. #define Version "0.1"
  21. //==============================================================================
  22. public OnFilterScriptInit()
  23. {
  24.     BankCP = CPS_AddCheckpoint(2144.1709,1639.9510,993.5761,2.5,50);
  25.     BankDor = CreateObject(2634,2144.19,1627.1,994.257,0.0,0.0,180);
  26.     BankExit = CreatePickup(1559,23,2144.1033,1628.6090,993.5761);
  27.     printf("Bank System By: BlueRey - [V%s] - Loaded",Version);
  28.     return true;
  29. }
  30. //==============================================================================
  31. public OnFilterScriptExit()
  32. {
  33.     DestroyObject(BankDor);
  34.     DestroyPickup(BankExit);
  35.     CPS_RemoveCheckpoint(BankCP);
  36.     printf("Bank System By: BlueRey - [V%s] - Unloaded",Version);
  37.     return true;
  38. }
  39. //==============================================================================
  40. public OnPlayerConnect(playerid)
  41. {
  42.     if(!dini_Exists(GetBankFile(playerid)))
  43.     {
  44.         dini_Create(GetBankFile(playerid));
  45.         dini_IntSet(GetBankFile(playerid),"Money",0);
  46.         BankMoney[playerid] = 0;
  47.     }
  48.     else BankMoney[playerid] = dini_Int(GetBankFile(playerid),"Money");
  49.     return true;
  50. }
  51. //==============================================================================
  52. public OnPlayerDisconnect(playerid, reason)
  53. {
  54.     if(dini_Exists(GetBankFile(playerid))) dini_IntSet(GetBankFile(playerid),"Money",BankMoney[playerid]);
  55.     return true;
  56. }
  57. //==============================================================================
  58. public OnPlayerCommandText(playerid, cmdtext[])
  59. {
  60.     new cmd[256],tmp[256],idx;
  61.  
  62.     cmd = strtok(cmdtext,idx);
  63.  
  64.     if(strcmp(cmdtext,"/bank",true) == 0)
  65.     {
  66.         Interior[playerid] = GetPlayerInterior(playerid);
  67.         GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  68.         GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  69.         PlayerPlaySound(playerid,1063,0.0,0.0,0.0);
  70.         GameTextForPlayer(playerid,"~w~bank",1000,1);
  71.         SetPlayerPos(playerid,2144.2148,1630.1636,993.5761);
  72.         SetPlayerFacingAngle(playerid,357.1255);
  73.         SetPlayerVirtualWorld(playerid,0);
  74.         SetCameraBehindPlayer(playerid);
  75.         SetPlayerInterior(playerid,1);
  76.         return true;
  77.     }
  78.  
  79.     if(strcmp(cmd,"/deposit",true) == 0)
  80.     {
  81.         if(!CPS_IsPlayerInCheckpoint(playerid,BankCP)) return SendClientMessage(playerid,0xFF0000AA,"You're not in the bank.");
  82.         tmp = strtok(cmdtext,idx);
  83.         if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid,0xFF0000AA,"Usage: /Deposit [amount]");
  84.         new Money = strval(tmp);
  85.         if(GetPlayerMoney(playerid) < Money || Money < 1) return SendClientMessage(playerid,0xFF0000AA,"Incorrect amount.");
  86.         format(str,128,"Deposit $%d in your bank account.",Money);
  87.         SendClientMessage(playerid,0xFFFF00AA,str);
  88.         GivePlayerMoney(playerid,-Money);
  89.         BankMoney[playerid] += Money;
  90.         return true;
  91.     }
  92.  
  93.     if(strcmp(cmd,"/withdraw",true) == 0)
  94.     {
  95.         if(!CPS_IsPlayerInCheckpoint(playerid,BankCP)) return SendClientMessage(playerid,0xFF0000AA,"You're not in the bank.");
  96.         tmp = strtok(cmdtext,idx);
  97.         if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid,0xFF0000AA,"Usage: /Withdraw [amount]");
  98.         new Money = strval(tmp);
  99.         if(Money < 1) return SendClientMessage(playerid,0xFF0000AA,"Incorrect amount.");
  100.         if(Money > BankMoney[playerid]) return SendClientMessage(playerid,0xFF0000AA,"Incorrect amount.");
  101.         format(str,128,"You have withdraw $%d from you'r bank account.",Money);
  102.         SendClientMessage(playerid,0xFFFF00AA,str);
  103.         GivePlayerMoney(playerid,Money);
  104.         BankMoney[playerid] -= Money;
  105.         return true;
  106.     }
  107.  
  108.     if(strcmp(cmdtext,"/balance",true) == 0)
  109.     {
  110.         if(!CPS_IsPlayerInCheckpoint(playerid,BankCP)) return SendClientMessage(playerid,0xFF0000AA,"You're not in the bank.");
  111.         format(str,128,"Money in you'r bank account: $%d",BankMoney[playerid]);
  112.         SendClientMessage(playerid,0xFFFF00AA,str);
  113.         return true;
  114.     }
  115.     return false;
  116. }
  117. //==============================================================================
  118. public OnPlayerEnterCheckpoint(playerid)
  119. {
  120.     if(CPS_IsPlayerInCheckpoint(playerid,BankCP))
  121.     {
  122.         SendClientMessage(playerid,0x0F66AFF,"Welcome to the bank !");
  123.         SendClientMessage(playerid,0xFFFF00AA,"Commands: /deposit, /withdraw, /balance");
  124.     }
  125.     return true;
  126. }
  127. //==============================================================================
  128. public OnPlayerPickUpPickup(playerid,pickupid)
  129. {
  130.     if(pickupid == BankExit)
  131.     {
  132.         SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  133.         SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  134.         SetPlayerInterior(playerid,Interior[playerid]);
  135.         SetCameraBehindPlayer(playerid);
  136.         return true;
  137.     }
  138.     return true;
  139. }
  140. //==============================================================================
  141. stock IsNumeric(string[])
  142. {
  143.     for(new i = 0; i < strlen(string); i++) if(string[i] > '9' || string[i] < '0') return false;
  144.     return true;
  145. }
  146. //==============================================================================
  147. stock GetBankFile(playerid)
  148. {
  149.     new file[50];
  150.     format(file,sizeof(file),"Bank/%s.txt",GetName(playerid));
  151.     return file;
  152. }
  153. //==============================================================================
  154. stock GetName(playerid)
  155. {
  156.     new PlayerName[MAX_PLAYER_NAME];
  157.     GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
  158.     return PlayerName;
  159. }
  160. //==============================================================================
Add Comment
Please, Sign In to add comment