Files
reallife-gamemode/ReallifeGamemode.Client/Gui/taximeter.ts
2020-08-02 16:31:24 +02:00

106 lines
2.9 KiB
TypeScript

import InputHelper from '../inputhelper';
let browser: BrowserMp;
let price: Number;
let lastkilometer: Number = 0;
let lastPrice: Number = 0;
let totalPrice: Number = 0;
var myVar;
export default function taximeterInput(globalData: IGlobalData) {
var customerBrowser: boolean = false;
var price1_browser = 0;
var km_browser = 0;
mp.events.add("CLIENT:setFarePrice", () => {
/*
var textBox = new InputHelper("Setzen Sie ihre Fahrtkosten [2 - 50 $/km]", globalData);
textBox.show();
textBox.getValue((data) => {
var amount = parseInt(data);
if (isNaN(amount)) {
mp.game.graphics.notify('~r~Du musst eine Nummer eingeben!');
return;
}
price = amount;
mp.events.callRemote("SERVER:setFare", amount);
});
}
*/
mp.events.callRemote("SERVER:setFare", 60);
price = 60;
});
mp.events.add("CLIENT:startFare", () => {
browser = mp.browsers.new('package://assets/html/taximeter/index.html');
});
mp.events.add('CLIENT:stopFare', () => {
if (browser) {
browser.destroy();
browser = null;
}
globalData.InInput = false;
});
function myTimer() {
if (totalPrice == lastPrice) return;
let payPrice = +totalPrice - +lastPrice;
lastPrice = totalPrice;
mp.events.callRemote("SERVER:payFare", payPrice, lastkilometer);
}
mp.events.add("CEF:updateLastPrice", (price, lastkilometer1) => {
totalPrice = price
lastkilometer = lastkilometer1;
});
mp.events.add("CEF:Taxi_CefLoaded", () => {
if (!customerBrowser) {
browser.execute(`setFarePrice('${price}');`)
myVar = setInterval(myTimer, 100);
} else {
browser.execute(`setFarePrice('${price1_browser}');`);
browser.execute(`updateKilometer('${km_browser}')`);
}
});
mp.events.add("CLIENT:startCustomerFare", (price1, km) => {
price1_browser = price1;
km_browser = km;
browser = mp.browsers.new('package://assets/html/taximeter/index.html');
});
mp.events.add("CLIENT:updateFare", (km) => {
if (browser) {
browser.execute(`updateKilometer('${JSON.parse(km)}')`);
}
});
mp.events.add("CLIENT:cancelFareCustomer", () => { //for Customer
if (browser) {
browser.destroy();
browser = null;
}
mp.events.callRemote("SERVER:cancelFareCustomer", lastPrice);
});
mp.events.add("CLIENT:cancelFare", () => { //for Taxidriver
if (browser) {
browser.destroy();
browser = null;
}
});
mp.events.add("CLIENT:resetFareClock", () => { //for Taxidriver
if (browser) {
clearInterval(myVar);
browser.execute(`setFarePrice('${price}');`)
}
});
}