protected void RegionAdd_Click(object sender, System.EventArgs e) { EnterRegion.Validate(); InvalidRegion.Validate(); if (!EnterRegion.IsValid || !InvalidRegion.IsValid) { return; } DataRow newrow = RegionsSet.Tables["Regions"].NewRow(); newrow["Region"] = NewRegion.Text; RegionsSet.Tables["Regions"].Rows.Add(newrow); //lock (CommonFunctions.Connection) RegionsAdapter.Update(RegionsSet); Finish(); }
private LoginState NextState() { Console.WriteLine("State={0}", _state); LoginState s = _state; LoginState nextState = s; if (s == LoginState.SendUserLoginMessage) { nextState = LoginState.WaitAskSecondPassword; //passport UserLoginMessage msg = new UserLoginMessage(username); //LocalAddress IPAddress ip = IPAddress.Parse("10.0.0.0"); byte[] ipBytes = { 10, 0, 0, (byte)rand.Next(2, 254) }; uint localAddress = BitConverter.ToUInt32(ipBytes, 0); SetReadOnlyProperty <UserLoginMessage>(msg, "LocalAddress", localAddress); SetReadOnlyProperty <UserLoginMessage>(msg, "CheckSum", checksum); rand.NextBytes(msg.MachineID); Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <UserLoginMessage>(msg))), 460); } else if (s == LoginState.QueryCashShopBalance) { nextState = LoginState.WaitSecondPasswordResult; QueryCashShopBalanceMessage msg = new QueryCashShopBalanceMessage(); SendMsg <QueryCashShopBalanceMessage>(msg); SecondPasswordMessage passwordMsg = new SecondPasswordMessage(secondPassword); Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <SecondPasswordMessage>(passwordMsg))), 10000); } else if (s == LoginState.SelectCharacter) { nextState = LoginState.WaitLoginOk; SelectCharacterMessage charMsg = new SelectCharacterMessage(charNum); SleepRand(4765); SendMsg <SelectCharacterMessage>(charMsg); SleepRand(11); ClientLogMessage msg = new ClientLogMessage { LogType = (int)ClientLogMessage.LogTypes.Character }; //TODO: update these values Dictionary <string, string> clientInfo = new Dictionary <string, string> { ["CPUVendor"] = "GenuineIntel", ["CPUCores"] = "4", ["TotalRAM"] = "4095", ["GPUDevice"] = "Microsoft", ["TotalVRAM"] = "0", ["DXVersion"] = "95", ["PixelShader"] = "1_x", ["OSDescription"] = "Win8", ["PrimaryDisplay"] = "1440x900x32", ["LocaleLanguage"] = "English", ["MultiCoreBoost"] = "1", ["Controller"] = "M" }; int t = 1; foreach (KeyValuePair <string, string> entry in clientInfo) { msg.Key = entry.Key; msg.Value = entry.Value; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <ClientLogMessage>(msg))), t++); ; } msg.Key = "VirtualMachine"; msg.Value = "VMWare"; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <ClientLogMessage>(msg))), t + 43); } else if (s == LoginState.EnterRegion) { nextState = LoginState.WaitMailList; EnterRegion msg = new EnterRegion { RegionCode = 0 }; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <EnterRegion>(msg))), 55); QueryCharacterCommonInfoMessage query = new QueryCharacterCommonInfoMessage { CID = CID, QueryID = RandLong() }; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <QueryCharacterCommonInfoMessage>(query))), 67); RequestJoinPartyMessage request = new RequestJoinPartyMessage { RequestType = 0 }; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <RequestJoinPartyMessage>(request))), 184); } else if (s == LoginState.EnterChannel) { nextState = LoginState.WaitRankAlarmInfo; EnterChannel msg = new EnterChannel { ChannelID = -1, PartitionID = 0 }; ActionSync action = new ActionSync { Position = new Vector3D { X = 7520, Y = -352, Z = 24 }, Velocity = new Vector3D { X = 0, Y = 0, Z = 0 }, Yaw = 90, Sequence = 0, ActionStateIndex = 2, StartTime = 0, State = 1 }; msg.Action = action; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <EnterChannel>(msg))), 6); QueryRankAlarmInfoMessage query = new QueryRankAlarmInfoMessage { CID = CID }; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <QueryRankAlarmInfoMessage>(query))), 10); } else if (s == LoginState.QueryInnTalk) { nextState = LoginState.WaitNpcInnTalk; QueryNpcTalkMessage msg = new QueryNpcTalkMessage("t01_inn", "TI", "", "greeting"); Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <QueryNpcTalkMessage>(msg))), 61); } else if (s == LoginState.QueryNpcTalkTrade) { nextState = LoginState.WaitNpcTalkTrade; QueryNpcTalkMessage msg = new QueryNpcTalkMessage("t01_trade", "TRADE", "", "greeting"); Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <QueryNpcTalkMessage>(msg))), 10000); } else if (s == LoginState.ContinueSearch) { nextState = LoginState.WaitSearch; if (searchState.IsDone()) { Console.WriteLine("Finished searching"); Logout(); } Console.WriteLine("Searching for {0}", searchState.GetTradeCategory()); TradeCategorySearchMessage msg = new TradeCategorySearchMessage { tradeCategory = searchState.GetTradeCategory(), tradeCategorySub = "", minLevel = 1, maxLevel = 90, uniqueNumber = searchState.uniqueNumber, ChunkPageNumber = searchState.ChunkPageNumber, Order = SortOrder.Level, isDescending = true, DetailOptions = new List <DetailOption>() }; Scheduler.Schedule(jp, Job.Create((Action)(() => SendMsg <TradeCategorySearchMessage>(msg))), 1000); } else { Console.WriteLine("Nothing to do in state {0}", s); } _state = nextState; Console.WriteLine("Next State={0}", nextState); return(nextState); }