Stack Overflow на русском Asked by karakym on November 25, 2021
есть определенное событие после которого я записываю дату DateTime.Now
в переменную StartTime
и запускаю таймер. Теперь когда таймер тикает, нужно по событию выводить остаток времени таймера. Делаю я это так: "...ждать еще: "+(DateTime.Now - StartTime).TotalMinutes+" минут");
в следствии чего хоть в консоль хоть на вывод в string мне выдает такой результат: ждать еще: 4.18333333333333E-06 минут
Вопрос: как вывести правильно???? Я пробовал convert.toint32
а так же просто подставлять (int)
, все это выводит 0, почему, что я делаю не так?
using System.Collections.Generic;
using System;
using System.Reflection;
using System.Data;
using UnityEngine;
using Oxide.Core;
using RustExtended;
using Oxide.Core.Plugins;
using RustProto;
//using System.Linq;
namespace Oxide.Plugins
{
[Info("CallAirDrop", "XBOCT", "2.0.1")]
[Description("Вызов дропа игроками за валюту")]
class CallAirDrop : RustLegacyPlugin
{
Vector3 cachedPos;
string chatName = "MegaPUB";//Врефикс в чате
float timeForCD = 3600f;//Время перезарядки вызова самолета в секундах
bool airCooldown = false;//По умолчанию перезарядки нет
static string calledAirdrop = "Самолёт уже летит";
static string airdropPlayer = "Дроп упадет возле [color red]{1}";
static string wrongarguments = "Что то не правильно написал, или такого игрока нет";
void LoadDefaultConfig() { }
private void CheckCfg<T>(string Key, ref T var)
{
if (Config[Key] is T)
var = (T)Config[Key];
else
Config[Key] = var;
}
void Init()
{
CheckCfg<string>("Сообщение: Вызво дропа случайно на карте", ref calledAirdrop);
CheckCfg<string>("Сообщение: Вызов дропа себе", ref airdropPlayer);
CheckCfg<string>("Сообщение: Wrong Arguments", ref wrongarguments);
SaveConfig();
}
[ChatCommand("air")] //Команда вызова
void cmdChatBan(NetUser netuser, string command, string[] args)
{
ulong money = RustExtended.Economy.GetBalance(netuser.userID);
// Меню информации
if(args.Length == 0) {
rust.SendChatMessage(netuser, chatName, "[COLOR#00BFFF]Вызов [COLOR#d9ae04]Самолета с лутом[COLOR#00BFFF]:");
rust.SendChatMessage(netuser, chatName, "➩[COLOR#00BFFF]/air map Случайное место - [COLOR#FFFFFF]Цена: 50 000 Р");
rust.SendChatMessage(netuser, chatName, "➩[COLOR#00BFFF]/air me Вызвать себе - [COLOR#FFFFFF]Цена: 100 000 Р");
rust.SendChatMessage(netuser, chatName, "➩[COLOR#00BFFF]/air [COLOR#FFFFFF][ник] [COLOR#00BFFF]Вызвать игроку - [COLOR#FFFFFF]Цена: 175 000 Р");
return;
}
//Проверяем вызов на перезарядку
if (airCooldown)
{
DateTime StartTime = DateTime.Now;
timer.Once(timeForCD, () =>
{
airCooldown = false;
Puts("Можно снова вызвать дроп.");
});
TimeSpan TimerTotal = TimeSpan.FromSeconds(timeForCD);
TimeSpan TimerPassed = DateTime.Now.Subtract(StartTime);
TimeSpan result = TimerTotal - TimerPassed;
rust.SendChatMessage(netuser, "[COLOR#00BFFF]Снабжение не готово, ожидайте еще: [COLOR#d9ae04]"+(int)result.TotalMinutes+" минут");
Puts(netuser + "Попытался вызвать дроп. Но вызов на перезарядке, ждать еще: "+result.TotalMinutes+" минут");
return;
}
else
{
// Случайную точку
if (args.Length == 1 && args[0].ToString() == "map")
{
if (money < 50000)
{
ulong ost = 50000 - money;
rust.SendChatMessage(netuser, "[COLOR#00BFFF]Вам не хватает: [COLOR#d9ae04]" + ost + "[COLOR#00BFFF]. У вас: [COLOR#17c90e]" + money);
Puts(netuser + "Попытался вызвать случайный дроп. Не хватает: " + ost + ". Денег всего: " + money);
return;
} else {
RustExtended.Economy.BalanceSub(netuser.userID, 50000);
SendReply(netuser, calledAirdrop); SupplyDropZone.CallAirDrop();
airCooldown = true;
Puts(netuser + "Вызвал дроп в случайную точку. Денег осталось: " +money);
return;
}
}
// Вызвать себе
if (args.Length == 1 && args[0].ToString() == "me")
{
if (money < 100000)
{
ulong ost = 100000 - money;
rust.SendChatMessage(netuser, "[COLOR#00BFFF]Вам не хватает: [COLOR#d9ae04]" + ost + "[COLOR#00BFFF]. У вас: [COLOR#17c90e]" + money);
Puts(netuser + "Попытался вызвать дроп себе. Не хватает: " + ost + ". Денег всего: " + money);
return;
} else {
RustExtended.Economy.BalanceSub(netuser.userID, 100000);
cachedPos = netuser.playerClient.lastKnownPosition;
if(cachedPos != default(Vector3))
{
//SupplyDropZone.CallAirDropAt(cachedPos);
SendReply(netuser, string.Format(airdropPlayer, cachedPos.ToString(), netuser.playerClient.userName.ToString()));
airCooldown = true;
Puts(netuser + "Вызвал себе дроп. Денег осталось: " +money);
return;
}
}
}
// Вызвать игроку
if (money < 175000)
{
ulong ost = 175000 - money;
rust.SendChatMessage(netuser, "[COLOR#00BFFF]Вам не хватает: [COLOR#d9ae04]" + ost + "[COLOR#00BFFF]. У вас: [COLOR#17c90e]" + money);
Puts(netuser + "Попытался вызвать дроп себе. Не хватает: " + ost + ". Денег всего: " + money);
return;
} else {
RustExtended.Economy.BalanceSub(netuser.userID, 175000);
NetUser targetuser = rust.FindPlayer(args[0]);
if (targetuser != null)
{
cachedPos = targetuser.playerClient.lastKnownPosition;
if(cachedPos != default(Vector3))
{
SupplyDropZone.CallAirDropAt(cachedPos);
SendReply(netuser, string.Format(airdropPlayer, cachedPos.ToString(), targetuser.playerClient.userName.ToString()));
airCooldown = true;
Puts(netuser + "Вызвал дроп для " + targetuser + ". Денег осталось: " +money);
return;
}
} else {
SendReply(netuser, wrongarguments);
return;
}
}
}
}
}
}
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP