Off Topic > PAWN Scripting

Simple ATM/Bank System

(1/1)

Life:
Hello today i will be giving you s simple ATM/Bank System.

// ATM/bank system using zcmd

#include <zcmd>
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_RED 0xFF0000FF
#define COLOR_GREEN 0x00FF00FF
#define COLOR_YELLOW 0xFFFF00FF

// ATM positions (can be changed)
new Float:ATM_Pos[][3] =
{
    {123.4, 567.8, 9.0},
    {234.5, 678.9, 1.2},
    // add more ATMs as necessary
};

// Function to check if the player is near an ATM
stock IsPlayerNearATM(playerid)
{
    new Float:playerPos[3];
    GetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2]);
    for(new i = 0; i < sizeof(ATM_Pos); i++)
    {
        if(GetDistanceBetweenPoints3D(playerPos[0], playerPos[1], playerPos[2], ATM_Pos[0], ATM_Pos[1], ATM_Pos[2]) < 1.5)
        {
            return i;
        }
    }
    return -1;
}

// Command to check player's account balance
CMD:checkbalance(playerid)
{
    new balance = GetPlayerMoney(playerid);
    SendClientMessage(playerid, COLOR_YELLOW, "Your balance is: $%d", balance);
    return 1;
}

// Command to deposit money into player's account
CMD:deposit(playerid, params[])
{
    new amount = strval(params);
    if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You are not connected to the server.");
    if(amount < 0) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid amount.");
   
    new atmID = IsPlayerNearATM(playerid);
    if(atmID == -1) return SendClientMessage(playerid, COLOR_RED, "Error: You are not near an ATM.");
   
    if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid, COLOR_RED, "Error: Insufficient funds.");
   
    SetPlayerMoney(playerid, GetPlayerMoney(playerid) - amount);
    SetPlayerMoneyInAccount(playerid, amount);
GetPlayerMoneyInAccount(playerid, atmID);
return 1;
}

// Command to withdraw money from player's account
CMD:withdraw(playerid, params[])
{
new amount = strval(params);
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You are not connected to the server.");
if(amount < 0) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid amount.");
new atmID = IsPlayerNearATM(playerid);
if(atmID == -1) return SendClientMessage(playerid, COLOR_RED, "Error: You are not near an ATM.");

if(GetPlayerMoneyInAccount(playerid, atmID) < amount) return SendClientMessage(playerid, COLOR_RED, "Error: Insufficient funds.");

SetPlayerMoney(playerid, GetPlayerMoney(playerid) + amount);
SetPlayerMoneyInAccount(playerid, GetPlayerMoneyInAccount(playerid, atmID)
SendClientMessage(playerid, COLOR_GREEN, "You have withdrawn $%d from your account.", amount);
return 1;
}

// Command to transfer money from player's account to another player's account
CMD:transfer(playerid, params[])
{
new amount, recipientid;
sscanf(params, "ud", amount, recipientid);
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_RED, "Error: You are not connected to the server.");
if(amount < 0) return SendClientMessage(playerid, COLOR_RED, "Error: Invalid amount.");
if(!IsPlayerConnected(recipientid))
return SendClientMessage(playerid, COLOR_RED, "Error: The recipient is not connected to the server.");
if(playerid == recipientid) return SendClientMessage(playerid, COLOR_RED, "Error: You cannot transfer money to yourself.");
new atmID = IsPlayerNearATM(playerid);
if(atmID == -1) return SendClientMessage(playerid, COLOR_RED, "Error: You are not near an ATM.");

if(GetPlayerMoneyInAccount(playerid, atmID) < amount) return SendClientMessage(playerid, COLOR_RED, "Error: Insufficient funds.");

SetPlayerMoneyInAccount(playerid, GetPlayerMoneyInAccount(playerid, atmID) - amount, atmID);
SetPlayerMoneyInAccount(recipientid, GetPlayerMoneyInAccount(recipientid, atmID) + amount, atmID);
SendClientMessage(playerid, COLOR_GREEN, "You have transferred $%d to player %d's account.", amount, recipientid);
SendClientMessage(recipientid, COLOR_GREEN, "Player %d has transferred $%d to your account.", playerid, amount);
return 1;
}

If you find any errors please let me know

Krzychu:
 :D

Navigation

[0] Message Index

Go to full version