forked from thgiang/rxjh_v19
-
Notifications
You must be signed in to change notification settings - Fork 0
/
攻城Class.cs
257 lines (243 loc) · 7.26 KB
/
攻城Class.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
using RxjhServer;
using RxjhServer.DbClss;
using System;
using System.Threading;
using System.Timers;
public class 攻城Class : IDisposable
{
private System.Timers.Timer 时间1;
private System.Timers.Timer 攻城中每分钟执行;
private System.Timers.Timer 时间2;
private DateTime 天魔攻城准备时间;
private DateTime 天魔攻城总时间;
private int 开始倒计时;
private int 申请人物数量;
private int 申请人物数量2;
public 攻城Class()
{
try
{
if (World.jlMsg == 1)
{
Form1.WriteLine(0, "EventClass-");
}
World.攻城战list.Clear();
天魔攻城准备时间 = DateTime.Now.AddMinutes(3.0);
World.攻城战进程 = 1;
foreach (Players value in World.allConnectedChars.Values)
{
if (value.人物坐标_地图 == 42101)
{
value.发送势力战开始倒计时(开始倒计时);
value.天魔神宫显示图标(value, World.申请攻城人物列表.Count);
}
else if (value.帮派名字 != string.Empty && value.人物坐标_地图 != 42101)
{
value.发送天魔神宫邀请();
}
}
时间1 = new System.Timers.Timer(4000.0);
时间1.Elapsed += 时间结束事件1;
时间1.Enabled = true;
时间1.AutoReset = true;
时间结束事件1(null, null);
World.天魔神宫大门是否死亡 = 0;
World.添加天魔怪物(16431, 57f, 470f, 42101, 0);
Thread.Sleep(1000);
World.添加天魔怪物(16430, -430f, -393f, 42101, 0);
Thread.Sleep(1000);
World.添加天魔怪物(16435, -435f, 523f, 42101, 0);
}
catch (Exception ex)
{
Form1.WriteLine(1, "攻城战 EventClass 出错:" + ((ex != null) ? ex.ToString() : null));
}
}
public void 时间结束事件1(object sender, ElapsedEventArgs e)
{
if (World.jlMsg == 1)
{
Form1.WriteLine(0, "EventClass_时间结束事件1");
}
try
{
TimeSpan timeSpan = 天魔攻城准备时间.Subtract(DateTime.Now);
int num = (int)timeSpan.TotalSeconds;
int minute = timeSpan.Minutes;
if (num <= 0)
{
World.攻城战进程 = 2;
num = 0;
}
开始倒计时 = num;
foreach (Players value in World.allConnectedChars.Values)
{
if (value.人物坐标_地图 == 42101)
{
value.发送势力战开始倒计时(开始倒计时);
value.天魔神宫显示图标(value, World.申请攻城人物列表.Count);
}
}
if (开始倒计时 <= 0)
{
时间1.Enabled = false;
时间1.Close();
时间1.Dispose();
World.攻城战进程 = 3;
foreach (Players value2 in World.allConnectedChars.Values)
{
if (value2.人物坐标_地图 == 42101)
{
value2.切换PK模式(2);
value2.天魔神宫开始消息();
}
}
天魔攻城总时间 = DateTime.Now.AddMinutes(30.0);
攻城中每分钟执行 = new System.Timers.Timer(4000.0);
攻城中每分钟执行.Elapsed += 时间结束事件2;
攻城中每分钟执行.Enabled = true;
攻城中每分钟执行.AutoReset = true;
时间结束事件2(null, null);
}
}
catch (Exception ex)
{
Form1.WriteLine(1, "攻城战 时间结束事件1 出错:" + ((ex != null) ? ex.ToString() : null));
}
}
public void 时间结束事件2(object sender, ElapsedEventArgs e)
{
if (World.jlMsg == 1)
{
Form1.WriteLine(0, "EventClass_时间结束事件2");
}
try
{
TimeSpan timeSpan = 天魔攻城总时间.Subtract(DateTime.Now);
int minute = timeSpan.Minutes;
int num = (int)timeSpan.TotalSeconds;
foreach (Players value in World.allConnectedChars.Values)
{
if (value.人物坐标_地图 == 42101)
{
value.天魔神宫显示图标(value, World.申请攻城人物列表.Count);
if (World.天魔神宫雕像是否死亡 == 1)
{
value.加载攻城数据();
World.天魔神宫雕像击杀添加怪物();
World.天魔神宫雕像是否死亡 = 0;
}
}
}
if (num <= 0)
{
攻城中每分钟执行.Enabled = false;
攻城中每分钟执行.Close();
攻城中每分钟执行.Dispose();
World.攻城战进程 = 4;
foreach (Players value2 in World.allConnectedChars.Values)
{
if (value2.人物坐标_地图 == 42101)
{
value2.天魔神宫守城胜利结束包(value2);
}
}
更新城主信息();
攻城结束奖励();
Dispose();
}
}
catch (Exception ex)
{
Form1.WriteLine(1, "攻城战 时间结束事件2 出错:" + ((ex != null) ? ex.ToString() : null));
}
}
public void 更新城主信息()
{
DateTime now2 = DateTime.Now;
DateTime now = DateTime.Now;
DBA.ExeSqlCommand(string.Format("UPDATE 攻城城主 SET 攻城奖励时间='{0}'", DateTime.Now.AddDays(2.0)));
DBA.ExeSqlCommand(string.Format("UPDATE 攻城城主 SET 攻城时间='{0}' ", now));
}
public void 攻城结束奖励()
{
foreach (Players value in World.allConnectedChars.Values)
{
foreach (攻城数据 value2 in World.攻城数据list.Values)
{
if (value.人物坐标_地图 == 42101)
{
if (value2.行会名字 == value.帮派名字)
{
if (value.追加状态列表.ContainsKey(1008002169))
{
value.追加状态列表[1008002169].时间结束事件();
}
追加状态类 追加状态类 = new 追加状态类(value, 172800000, 1008002169, 1);
value.追加状态列表.Add(追加状态类.FLD_PID, 追加状态类);
value.状态效果(BitConverter.GetBytes(1008002169), 1, 172800000);
value.Player_WuXun += 2000;
value.查百宝阁元宝数();
value.检察元宝数据(50, 1);
value.计算人物基本数据();
value.更新武功和状态();
value.更新HP_MP_SP();
RxjhClass.百宝记录(value.Userid, value.UserName, 0.0, "攻城战获得", 1, 50);
value.保存元宝数据();
value.系统提示("系统奖励攻城战胜利者每人" + 2000 + "点的武勋", 10, "奖励提示");
value.系统提示("系统奖励攻城战胜利者每人" + 50 + "元宝", 10, "奖励提示");
}
else
{
value.Player_WuXun += 500;
value.查百宝阁元宝数();
value.检察元宝数据(10, 1);
value.计算人物基本数据();
value.更新武功和状态();
value.更新HP_MP_SP();
value.保存元宝数据();
RxjhClass.百宝记录(value.Userid, value.UserName, 0.0, "攻城战获得", 1, 50);
value.系统提示("系统奖励攻城战参与者每人" + 500 + "点的武勋", 10, "奖励提示");
value.系统提示("系统奖励攻城战胜利者每人" + 10 + "元宝", 10, "奖励提示");
}
}
}
}
}
public void Dispose()
{
if (World.jlMsg == 1)
{
Form1.WriteLine(0, "EventClass-Dispose");
}
World.攻城战进程 = 0;
申请人物数量2 = 0;
申请人物数量 = 0;
World.delNpc(42101, 16431);
Thread.Sleep(500);
World.delNpc(42101, 16430);
Thread.Sleep(1000);
World.delNpc(42101, 16435);
if (时间1 != null)
{
时间1.Enabled = false;
时间1.Close();
时间1.Dispose();
}
if (攻城中每分钟执行 != null)
{
攻城中每分钟执行.Enabled = false;
攻城中每分钟执行.Close();
攻城中每分钟执行.Dispose();
}
if (时间2 != null)
{
时间2.Enabled = false;
时间2.Close();
时间2.Dispose();
}
World.申请攻城人物列表.Clear();
World.攻城战list.Clear();
World.攻城 = null;
}
}