public void DoWork() { TTRPG.Api.consoleOutput("Started Update Player PlayTime Thread"); while (!_interuped) { List <Client> players = TTRPG.Api.getAllPlayers(); foreach (Client player in players) { if (player.hasSyncedData("loggedin") && (bool)player.getSyncedData("loggedin")) { player.setSyncedData("PlayTime", player.getSyncedData("PlayTime") + 1); UpdatePlayerPlayTimeDisplay(player); // Add one RP for playtime RpLevelManager.AddRpToPlayer(player, 1, false); if (player.getSyncedData("PlayTime") % 60 == 0) { PayDayManager.SendPayDay(player); } } } Thread.Sleep(60000); } }
private void OnEntityEnterColShapeHandler(ColShape shape, NetHandle entity) { if (TTRPG.Api.getEntityType(entity) == EntityType.Player && shape.getData("bergwerk_colshape") != null && (bool)shape.getData("bergwerk_colshape")) { Client player = TTRPG.Api.getPlayerFromHandle(entity); if (player.isInVehicle && player.vehicle.getData("job_bergwerk_bulldozer") != null) { Vector3 markerPosition = (Vector3)shape.getData("position"); List <Vector3> markers = _alreadyUsedPositions.Get((int)player.getSyncedData("ID")); bool found = false; foreach (Vector3 position in markers) { if (position.DistanceTo(markerPosition) < 1) { markers.Remove(position); found = true; break; } } if (found) { player.triggerEvent("job_bergwerk_destroyMarker", markerPosition); if (markers.Count == 0) { player.vehicle.delete(); _alreadyUsedPositions.Remove((int)player.getSyncedData("ID")); int money = _marker.Length * 42; int newEp = (int)Math.Ceiling(_marker.Length * 0.5); MoneyManager.ChangePlayerMoney(player, (float)money / 2, false, MoneyManager.Categorys.Job, "BergwerksJob Barzahlung", ""); PayDayManager.AddIncomeToPayDay(player, (double)money / 2, PayDayManager.Category.Job, true); RpLevelManager.AddRpToPlayer(player, newEp, true); player.sendChatMessage( "~b~Vorarbeiter Karl sagt: Hier hast du schon mal die Hälfte deines Verdienstes auf die Hand: " + (money / 2).ToString("C2") + "!" + "Den Rest bekommst als Gehalt beim PayDay... Das Gesetz will es halt so :-/"); } else { ChatHelper.SendChatNotificationToPlayer(player, "~b~Job Info", "~b~Sehr gut! Dann fehlen ja nur noch " + markers.Count + " Positionen."); } } } } }
private void onClientEventHandler(Client player, string eventName, params object[] arguments) { if (eventName.Equals("stopFisherJob")) { _isUiOpen = true; } else if (eventName.Equals("payFisherJob")) { float money = (float)arguments[0]; Int32 steps = (Int32)arguments[1]; MoneyManager.ChangePlayerMoney(player, money, false, MoneyManager.Categorys.Job, "Fischerjob", ""); RpLevelManager.AddRpToPlayer(player, steps, true); player.sendChatMessage( "~b~Fischhändler Fritz sagt: Okay, diese Menge Fisch kaufe ich dir für " + money.ToString("C2") + " ab"); } }