a.lozzache

event или function выполняется несколько раз

Recommended Posts

Проблема такова, когда игрок садится на скутер, вызывается окно аренды (|Арендовать | Отмена|), после нажатия на кнопку ''Арендовать'' у него должно списаться 100$, но проблема в том, что после того как он садится на этот же скутер еще раз, сумма снятия становится на 100$ больше. То есть 1-й раз снимает 100$, 2-й раз снимает 200$, 3-й раз снимает 300$ и т.д. Как сделать, так чтобы снималась конкретно установленная сумма (100$), и чтобы после нажатия на кнопку ''Арендовать'' при повторной посадке на арендованный скутер окно аренды не вызывалось?

HTML окна аренды:

<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8">
	<link rel="stylesheet" href="css/style.css" type="text/css"/>
	<title>Title</title>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
	<script type="text/javascript" src="js/arenda.js">
	</script>
</head>
<body>
<div class="container" id="container">
	<form>
		<h3>Аренда данного транспорта стоит 100$</h3>
		<input type="button" class="testbutton" id="rent" onclick= "mp.trigger('playerClickRent');" value="Арендовать"/>
		<input type="button" class="testbutton" id="otmena" name="otmena" onclick = "$('.container').hide()" value="Отмена"/>
	</form>
</div>
<script>
        $("#rent").click(function() {
            $('#container').fadeOut("slow", function() {
        });
    });
</script>
</body>
</html>

JavaScript, который принимает событие клика по кнопке ''Арендовать'' на Client-Side:

function playerEnterVehicleHandler(vehicle, seat) {
   const vehicleID = vehicle.id;
    if (vehicleID == 9){
    mp.browsers.new('package://freeroam/arenda/arenda.html');
    mp.gui.cursor.visible = true;
    mp.events.add("playerClickRent", () => {
        mp.events.callRemote("rent");//отправляет данные на сервер
    });
    };
};
mp.events.add("playerEnterVehicle", playerEnterVehicleHandler);

JavaScript, который принимает событие клика по кнопке "Арендовать" на Server-Side:

mp.events.add('rent', (player) => {
console.log(`нажал кнопку Арендовать`);
player.outputChatBox(`${player.name}"арендовал скутер"`);
   if (player.data.customMoney >= 100){
           player.data.customMoney -= 100;}
       else {
       player.removeFromVehicle()
          player.outputChatBox("Недостаточно средств")};

});

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.