static bool Money(StringArguments args, CommandHandler handler) { Player target = handler.getSelectedPlayerOrSelf(); if (!target) { handler.SendSysMessage(CypherStrings.NoCharSelected); return(false); } // check online security if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) { return(false); } long addmoney = args.NextInt64(); long moneyuser = (long)target.GetMoney(); if (addmoney < 0) { ulong newmoney = (ulong)(moneyuser + addmoney); Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.CurrentMoney), moneyuser, addmoney, newmoney); if (newmoney <= 0) { handler.SendSysMessage(CypherStrings.YouTakeAllMoney, handler.GetNameLink(target)); if (handler.needReportToTarget(target)) { target.SendSysMessage(CypherStrings.YoursAllMoneyGone, handler.GetNameLink()); } target.SetMoney(0); } else { if (newmoney > PlayerConst.MaxMoneyAmount) { newmoney = PlayerConst.MaxMoneyAmount; } handler.SendSysMessage(CypherStrings.YouTakeMoney, Math.Abs(addmoney), handler.GetNameLink(target)); if (handler.needReportToTarget(target)) { target.SendSysMessage(CypherStrings.YoursMoneyTaken, handler.GetNameLink(), Math.Abs(addmoney)); } target.SetMoney(newmoney); } } else { handler.SendSysMessage(CypherStrings.YouGiveMoney, addmoney, handler.GetNameLink(target)); if (handler.needReportToTarget(target)) { target.SendSysMessage(CypherStrings.YoursMoneyGiven, handler.GetNameLink(), addmoney); } if (addmoney >= PlayerConst.MaxMoneyAmount) { target.SetMoney(PlayerConst.MaxMoneyAmount); } else { target.ModifyMoney(addmoney); } } Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.NewMoney), moneyuser, addmoney, target.GetMoney()); return(true); }
static bool HandleModifyMoneyCommand(StringArguments args, CommandHandler handler) { Player target = handler.GetSelectedPlayerOrSelf(); if (!target) { handler.SendSysMessage(CypherStrings.NoCharSelected); return(false); } // check online security if (handler.HasLowerSecurity(target, ObjectGuid.Empty)) { return(false); } long moneyToAdd = args.NextInt64(); ulong targetMoney = target.GetMoney(); if (moneyToAdd < 0) { long newmoney = (long)targetMoney + moneyToAdd; Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.CurrentMoney), targetMoney, moneyToAdd, newmoney); if (newmoney <= 0) { handler.SendSysMessage(CypherStrings.YouTakeAllMoney, handler.GetNameLink(target)); if (handler.NeedReportToTarget(target)) { target.SendSysMessage(CypherStrings.YoursAllMoneyGone, handler.GetNameLink()); } target.SetMoney(0); } else { ulong moneyToAddMsg = (ulong)(moneyToAdd * -1); if (newmoney > (long)PlayerConst.MaxMoneyAmount) { newmoney = (long)PlayerConst.MaxMoneyAmount; } handler.SendSysMessage(CypherStrings.YouTakeMoney, moneyToAddMsg, handler.GetNameLink(target)); if (handler.NeedReportToTarget(target)) { target.SendSysMessage(CypherStrings.YoursMoneyTaken, handler.GetNameLink(), moneyToAddMsg); } target.SetMoney((ulong)newmoney); } } else { handler.SendSysMessage(CypherStrings.YouGiveMoney, moneyToAdd, handler.GetNameLink(target)); if (handler.NeedReportToTarget(target)) { target.SendSysMessage(CypherStrings.YoursMoneyGiven, handler.GetNameLink(), moneyToAdd); } if ((ulong)moneyToAdd >= PlayerConst.MaxMoneyAmount) { moneyToAdd = Convert.ToInt64(PlayerConst.MaxMoneyAmount); } moneyToAdd = (long)Math.Min((ulong)moneyToAdd, (PlayerConst.MaxMoneyAmount - targetMoney)); target.ModifyMoney(moneyToAdd); } Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.NewMoney), targetMoney, moneyToAdd, target.GetMoney()); return(true); }